diff options
Diffstat (limited to 'todo.txt')
-rwxr-xr-x | todo.txt | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/todo.txt b/todo.txt index c666f7903..b43357007 100755 --- a/todo.txt +++ b/todo.txt @@ -1,8 +1,16 @@ version 0.8.14 ============== -- bug: tsortdev does not run with native GC? +- implement closures + - test evals.nim with closures + - deactivate lambda lifting for JS backend + - Test that iterators within closures work etc; test generics; + test recursion + - test constant closures + - 'closureEnv' magic for easy interfacing with C + - object {.pure, final.} does not work again! +- bug: tsortdev does not run with native GC? - ``=`` should be overloadable; requires specialization for ``=``? version 0.9.0 @@ -18,7 +26,7 @@ version 0.9.0 use tyInt+node for that - implement the high level optimizer - change overloading resolution -- implement closures; implement proper coroutines +- implement proper coroutines - implement ``partial`` pragma for partial evaluation - we need to support iteration of 2 different data structures in parallel - make exceptions compatible with C++ exceptions @@ -44,8 +52,7 @@ Bugs result = forward(x) - bug: stress testing basic method example (eval example) - without ``-d:release`` leaks memory; good way to figure out how a - fixed amount of stack can hold an arbitrary number of GC roots! + without ``-d:release`` leaks memory? - bug: temp2.nim triggers weird compiler and except.nim bug - bug: negative array indexes fail to index check @@ -56,6 +63,11 @@ version 0.9.XX - implicit ref/ptr->var conversion; the compiler may store an object implicitly on the heap for write barrier efficiency; better: proc specialization in the code gen +- shared memory heap: ``shared ref`` etc. The only hard part in the GC is to + "stop the world". However, it may be worthwhile to generate explicit + (or implicit) syncGC() calls in loops. Automatic loop injection seems + troublesome, but maybe we can come up with a simple heuristic. (All procs + that `new` shared memory are syncGC() candidates...) - EcmaScript needs a new and better code gen: simply adapt the C code gen to it - tlastmod returns wrong results on BSD (Linux, MacOS X: works) - nested tuple unpacking; tuple unpacking in non-var-context @@ -125,6 +137,8 @@ Low priority - warning for implicit openArray -> varargs conversion - implement explicit varargs; **but** ``len(varargs)`` problem remains! --> solve by implicit conversion from varargs to openarray +- implement closures that support nesting > 1 + Version 2 ========= @@ -160,6 +174,4 @@ Version 2 a full blown statement; a ``try`` expression might be a good idea to make error handling more light-weight people also want ``inc a; inc b`` - --> solved by providing an expr version of most control structures? - |