Language feature |
Scheduled for |
Notes |
Automatic dereference in more contexts |
cancelled |
important to be able to write more generic containers easily |
Comment handling is weird |
implemented for 0.10.0 |
comments should be optional and not part of the grammar, unless it is a documentation comment |
The new concurrency model |
implemented for 0.10.0 |
this requires frontend and backend changes, but no changes to the runtime/GC |
asFunc pragma |
0.9.8 |
provides a nice bridge from 'var T' to 'returns T'; can be entirely implemented as a macro with the upcoming types API
|
Extended macros API |
0.9.8 |
missing: an API for working with types; the builtin getImpl |
Pragmas are not supported for 'bindSym' |
0.9.8 |
this makes clean macros impossible to write when it comes to pragmas |
Support overloading of the assignment operator |
0.9.8 |
like fields and destructors an assignment operator needs to be lifted |
Type checking for tuples |
0.9.8 |
needs to be refined. Recursive tuples should be forbidden. |
Alias analysis needs to specified and controllable with pragmas |
after 1.0 |
alias analysis affects memory safety rules |
Destructors need to interact with finalizers |
after 1.0 |
destructors and finalizers are implemented, but do not interact. new which takes a finalizer needs to be deprecated. People should use a destructor instead |
~ Operator for effects |
after 1.0 |
it is not entirely clear what ~F should mean. |
Prevent object branch transitions from low(selector) |
after 1.0 |
object branch transitions from low(selector) are allowed, because they are simply too useful, but can break memory safety. Now that the language has a proper notion of construction, we can make them safe. |
Push pragma needs to be reworked |
after 1.0 |
it should be distinguished between 'push' for 'type', 'proc' etc. |
Returning 'var T' is unsafe and needs static analysis to make safe |
after 1.0 |
the compiler already checks for trivial examples |
Some effects like GCMem don't need to be white-listed |
after 1.0 |
unclear whether this only affects built-in properties like GCMem, Recursive. |
Term rewriting macros need more love |
after 1.0 |
we need much more tests and use them in production |
Weaken the requirements for forward declarations |
after 1.0 |
two different design ideas exist: one conservative and so will work, the other highly experimental |
Write tracking |
after 1.0 |
algorithm exists. Can be extended to compute lent pointers. |