Updated Roadmap (markdown)
This commit is contained in:
parent
8e07a05706
commit
0c7c1bb8f3
52
Roadmap.md
52
Roadmap.md
|
@ -6,54 +6,42 @@
|
|||
<th>Notes</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Implement static[T] properly</td>
|
||||
<td>for version 1.0</td>
|
||||
<td>The implementation has lots of issues, but what's worse the spec is not nearly clear enough and seems to conflate 2 different ideas.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Support overloading of the assignment operator</td>
|
||||
<td>for version 1.0</td>
|
||||
<td>like <tt class="docutils literal"><span class="pre">fields</span></tt> and destructors an assignment operator needs to be lifted</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Automatic dereference in more contexts</td>
|
||||
<td>cancelled</td>
|
||||
<td>important to be able to write more generic containers easily</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Comment handling is weird</td>
|
||||
<td>implemented for 0.10.0</td>
|
||||
<td>comments should be optional and not part of the grammar, unless it is a documentation comment</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>The new concurrency model</td>
|
||||
<td>implemented for 0.10.0</td>
|
||||
<td>this requires frontend and backend changes, but no changes to the runtime/GC</td>
|
||||
<td>might make into 1.0</td>
|
||||
<td>important to be able to write more generic containers easily; current plan is rewrite a.f() to f(a[]) but not in further contexts</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>asFunc pragma</td>
|
||||
<td>0.9.8</td>
|
||||
<td>After 1.0</td>
|
||||
<td>provides a nice bridge from 'var T' to 'returns T'; can be entirely implemented as a macro with the upcoming types API
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Extended macros API</td>
|
||||
<td>0.9.8</td>
|
||||
<td>after 1.0</td>
|
||||
<td>missing: an API for working with types; the builtin getImpl</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Pragmas are not supported for 'bindSym'</td>
|
||||
<td>0.9.8</td>
|
||||
<td>after 1.0</td>
|
||||
<td>this makes clean macros impossible to write when it comes to pragmas</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Support overloading of the assignment operator</td>
|
||||
<td>0.9.8</td>
|
||||
<td>like <tt class="docutils literal"><span class="pre">fields</span></tt> and destructors an assignment operator needs to be lifted</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Type checking for tuples</td>
|
||||
<td>0.9.8</td>
|
||||
<td>needs to be refined. Recursive tuples should be forbidden.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Alias analysis needs to specified and controllable with pragmas</td>
|
||||
<td>after 1.0</td>
|
||||
|
@ -63,7 +51,7 @@
|
|||
<tr>
|
||||
<td>Destructors need to interact with finalizers</td>
|
||||
<td>after 1.0</td>
|
||||
<td>destructors and finalizers are implemented, but do not interact. <tt class="docutils literal"><span class="pre">new</span></tt> which takes a finalizer needs to be deprecated. People should use a destructor instead</td>
|
||||
<td>destructors and finalizers are implemented, but do not interact. <tt class="docutils literal"><span class="pre">new</span></tt> which takes a finalizer needs to be deprecated. People should use a destructor instead. However, destructors should ultimately depend on an escape analysis.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -128,7 +116,7 @@
|
|||
|
||||
<tr>
|
||||
<td>Deterministic code generation</td>
|
||||
<td>0.9.8</td>
|
||||
<td>after 1.0</td>
|
||||
<td>deterministic code generation makes C code caching much more effective</td>
|
||||
</tr>
|
||||
|
||||
|
@ -151,7 +139,7 @@
|
|||
</tr>
|
||||
|
||||
<tr><td>Pure RC'ing GC</td>
|
||||
<td>after 1.0</td>
|
||||
<td>unknown</td>
|
||||
<td>important for better interoperability with Objective-C</td>
|
||||
</tr>
|
||||
|
||||
|
|
Loading…
Reference in New Issue