Vasiliy Tereshkov
Vasiliy Tereshkov
Having enum types would allow for stronger type checking. Before: ``` // th.um type Platform* = int const ( PlatformUnknown* = 0 PlatformLinux* PlatformWindows* PlatformMacOs* PlatformWeb* ) // main.um import...
The proposed syntax is less ambiguous, which will improve code readability. Before: ``` a.b() // A function `b` from module `a` or a method `b` of variable `a`? ``` After:...
Umka has some features that make the language more complex and difficult to learn than is usually acceptable for a scripting language, especially in game development, where the target audience...
``` fn foo(): (int, bool) { return 42, true } fn main() { a, b, c := foo(), 7 // Error: Nested expression lists are not allowed } ``` Related:...
Weak pointers are now only allowed for heap-allocated data: ``` fn f() { a := 42 wp := weak ^int(&a) if p := ^int(wp); p != null { printf(repr(p^) +...
C source: ``` // fwd.c #include "umka_api.h" void umproc(UmkaStackSlot *param, UmkaStackSlot *result) { int n = param[0].intVal; void *umka = result->ptrVal; const int callback = umkaGetFunc(umka, NULL, "callback"); int sum...
We need something like `nan()`, `isnan()`, `isinf()`, `isfinite()` in C99.
Fibers are unable to free the allocated heap if their functions have not returned in a regular way. This caused memory leaks, such as #16 and #255. To make the...
Having a language server could be useful for highlighting compiler errors on-the-fly, autocompleting, etc.
Related: https://todo.sr.ht/~mrms/tophat/27