Updated Roadmap (markdown)

This commit is contained in:
Araq 2014-12-26 05:46:06 -08:00
parent 8e07a05706
commit 0c7c1bb8f3
1 changed files with 20 additions and 32 deletions

View File

@ -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>