diff --git a/Roadmap.md b/Roadmap.md
index 7881188..4ee69b6 100644
--- a/Roadmap.md
+++ b/Roadmap.md
@@ -1,4 +1,5 @@
+
Language feature |
Scheduled for |
@@ -7,68 +8,20 @@
Automatic dereference in more contexts |
- 0.9.6 |
+ cancelled |
important to be able to write more generic containers easily |
- support overloading of the assignment operator |
- 0.9.8 |
- like fields and destructors an assignment operator needs to be lifted |
-
-
-
- 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 |
-
-
-
- the new concurrency model |
- 0.9.6 |
- this requires frontend and backend changes, but no changes to the runtime/GC |
-
-
-
- weaken the requirements for forward declarations |
- after 1.0 |
- two different design ideas exist: one conservative and so will work, the other highly experimental |
-
-
-
- comment handling is weird |
- 0.9.6 |
+ 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 |
- push pragma needs to be reworked |
- after 1.0 |
- it should be distinguished between 'push' for 'type', 'proc' etc. |
-
-
-
- pragmas are not supported for 'bindSym' |
- 0.9.8 |
- this makes clean macros impossible to write when it comes to pragmas |
-
-
-
- type checking for tuples |
- 0.9.8 |
- needs to be refined. Recursive tuples should be forbidden. |
-
-
-
- extended macros API |
- 0.9.8 |
- missing: an API for working with types; the builtin getImpl |
-
-
-
- write tracking |
- after 1.0 |
- algorithm exists. Can be extended to compute lent pointers. |
+ The new concurrency model |
+ implemented for 0.10.0 |
+ this requires frontend and backend changes, but no changes to the runtime/GC |
@@ -78,41 +31,95 @@
- 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. |
+ Extended macros API |
+ 0.9.8 |
+ missing: an API for working with types; the builtin getImpl |
- ~ operator for effects |
- after 1.0 |
- it is not entirely clear what ~F should mean. |
+ Pragmas are not supported for 'bindSym' |
+ 0.9.8 |
+ this makes clean macros impossible to write when it comes to pragmas |
- 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. |
+ Support overloading of the assignment operator |
+ 0.9.8 |
+ like fields and destructors an assignment operator needs to be lifted |
- returning 'var T' is unsafe and needs static analysis to make safe |
- after 1.0 |
- the compiler already checks for trivial examples |
+ 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 |
+ Alias analysis needs to specified and controllable with pragmas |
after 1.0 |
alias analysis affects memory safety rules |
- term rewriting macros need more love |
+ 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. |
+
+
+
+
+