ToDo list
Just to remember what is left to do. The list is by no means complete.
General
- More on function overloading.
- More on operator overloading.
- Slices/sublist/substring,
[begin:end:step]. Should make a copy, right? It's an error to use[]instead ofslice()on lists in a loop. - Implement a language server. See https://microsoft.github.io/language-server-protocol/.
- Bugs, bugs, bugs...
- Refactor generics? Find all calls and type annotations early and replace.
Memory
- Short lived objects should not be shared pointers. Preferably on the stack instead. Return tuples probably important.
- Probably replace shared pointers with a non-atomic version as the memory allocator is for one thread.
- Weak references? See https://github.com/eerimoq/mys/blob/main/examples/wip/linked_list/src/lib.mys.
Postponed
- Iterators?
- Context managers?
- Macro or comptime? Needed for logging and varargs like tricks.
Exception backtrace, but how?
Zig is known to brag about its backtraces: https://ziglang.org/#Stack-traces-on-all-targets . Given that it's another dead-in-the-water language, makes sense to steal as much as possible from it.
Will have a look eventually, thanks.
Don't forget about the usual glibc backtracing support - https://www.gnu.org/software/libc/manual/html_node/Backtraces.html . I for example used it in early days of micropython hacking, when I wasn't familiar with the codebase. The whole point of Zig bragging is that they implemented something like that even for baremetal targets (supposedly, in lightweight manner, though definition of "lightweight" varies for different people).