diff --git a/Roadmap.md b/Roadmap.md
index d2d6080..24965d9 100644
--- a/Roadmap.md
+++ b/Roadmap.md
@@ -1,272 +1,157 @@
-
-
-
- Language feature |
-
- Scheduled for |
-
- Notes |
-
-
-
-
-
-
- Automatic dereference in more contexts |
-
- 0.9.6 |
-
- important to be able to write more generic containers easily |
-
-
-
-
-
-
- support overloading of the assignment operator |
-
- 0.9.6 |
-
- like fields and destructors an assignment operator needs to be lifted |
-
-
-
-
-
-
- destructors need to interact with finalizers |
-
- 0.9.6 |
-
- 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 |
-
- 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.6 |
-
- 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 |
-
- 0.9.8 |
-
- algorithm exists. Can be extended to compute lent pointers. |
-
-
-
-
- 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
- |
-
-
- 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. |
-
-
-
-
-
-
- ~ operator for effects |
-
- after 1.0 |
-
- it is not entirely clear what ~F should mean. |
-
-
-
-
-
-
- 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. |
-
-
-
-
-
-
- returning 'var T' is unsafe and needs static analysis to make safe |
-
- after 1.0 |
-
- the compiler already checks for trivial examples |
-
-
-
-
-
-
- alias analysis needs to specified and controllable with pragmas |
-
- after 1.0 |
-
- alias analysis affects memory safety rules |
-
-
-
-
-
-
- term rewriting macros need more love |
-
- after 1.0 |
-
- we need much more tests and use them in production |
-
-
-
-
-
- Compiler feature |
-
- Scheduled for |
-
- Notes |
-
-
-
-
-
-
- high level optimizer |
-
- after 1.0 |
-
- use the effect system for optimizations; interacts with TR macros;
- performs:
- - GCSE
-
- - loop invariant hoisting
-
- - escape analysis for string/seq
-
- - inlining of small lambdas
-
-
-
- |
-
-
-
-
-
-pure RC'ing GC |
-
- after 1.0 |
-
- important for better interoperability with Objective-C |
-
-
-
-
-
-
- GPU backend |
-
- after 1.0 |
-
-
-
-
-
- symbol files |
-
- after 1.0 |
- symbol files provide true incremental compilation beyond the caching of generated C code |
-
-
-
-
-
- deterministic code generation |
-
- 0.9.8 |
- deterministic code generation makes C code caching much more effective |
-
-
-
+
+
+ Language feature |
+ Scheduled for |
+ Notes |
+
+
+
+ Automatic dereference in more contexts |
+ 0.9.6 |
+ 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 |
+ 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.6 |
+ 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. |
+
+
+
+ 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
+ |
+
+
+ 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. |
+
+
+
+ ~ operator for effects |
+ after 1.0 |
+ it is not entirely clear what ~F should mean. |
+
+
+
+ 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. |
+
+
+
+ returning 'var T' is unsafe and needs static analysis to make safe |
+ after 1.0 |
+ the compiler already checks for trivial examples |
+
+
+
+ alias analysis needs to specified and controllable with pragmas |
+ after 1.0 |
+ alias analysis affects memory safety rules |
+
+
+
+ term rewriting macros need more love |
+ after 1.0 |
+ we need much more tests and use them in production |
+
+
+
+ Compiler feature |
+ Scheduled for |
+ Notes |
+
+
+
+ high level optimizer |
+ after 1.0 |
+ use the effect system for optimizations; interacts with TR macros;
+ performs:
+ - GCSE
+ - loop invariant hoisting
+ - escape analysis for string/seq
+ - inlining of small lambdas
+
+ |
+
+
+pure RC'ing GC |
+ after 1.0 |
+ important for better interoperability with Objective-C |
+
+
+
+ GPU backend |
+ after 1.0 |
+
+
+
+ symbol files |
+ after 1.0 |
+ symbol files provide true incremental compilation beyond the caching of generated C code |
+
+
+
+ deterministic code generation |
+ 0.9.8 |
+ deterministic code generation makes C code caching much more effective |
+
+
+