diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-01-22 06:17:01 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-01-22 06:17:07 +0100 |
commit | 9952d16674445c0b92bf5df10799ca9bd6ae9199 (patch) | |
tree | adc5042127fdf69e291145e816913c0c074c065f /todo.txt | |
parent | aeda6c517eac016d425c81829aa529c881d3f3e1 (diff) | |
download | Nim-9952d16674445c0b92bf5df10799ca9bd6ae9199.tar.gz |
finally todo.txt reflects reality again
Diffstat (limited to 'todo.txt')
-rw-r--r-- | todo.txt | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/todo.txt b/todo.txt index 21bec6e27..802e8eb6a 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,12 @@ version 1.0 battle plan ======================= -- iters for js +- make 'not nil' the default (produce warnings instead of errors for + a smooth migration path) +- case objects needs to be safe and need to support pattern matching +- sanctionize some macro implementation for interfaces +- implement a way to forward object type declarations across module + boundaries; C++ style - fix "high priority" bugs - try to fix as many compiler crashes as reasonable @@ -21,7 +26,6 @@ Not critical for 1.0 'static[T]' mess in the compiler! - ``not`` or ``~`` for the effects system - document and stress test ``.partial`` object declarations -- add "all threads are blocked" detection to 'spawn' - figure out why C++ bootstrapping is so much slower - The bitwise 'not' operator cold be renamed to 'bnot' to prevent 'not 4 == 5' from compiling. -> requires 'mixin' annotation for procs! @@ -30,8 +34,6 @@ Not critical for 1.0 - incrSeq - addChar - pragmas need 'bindSym' support -- allow simple read accesses to global variables --> difficult to ensure that - no data races happen - pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work reliably with user-defined pragmas - memory manager: add a measure of fragmentation @@ -39,8 +41,6 @@ Not critical for 1.0 - optimize 'genericReset'; 'newException' leads to code bloat - prevent 'alloc(TypeWithGCedMemory)'? -- split docgen into separate tool; not happy how it worked with ``nimsuggest`` - though - map ``string`` and ``seq`` to ``std::string`` and ``std::vector`` - macro support for '='; bind '=' to a memory region - macros as type pragmas @@ -50,7 +50,6 @@ Bugs ==== - VM: Pegs do not work at compile-time -- VM: ptr/ref T cannot work in general - blocks can "export" an identifier but the CCG generates {} for them ... - ConcreteTypes in a 'case' means we don't check for duplicated case branches @@ -58,8 +57,7 @@ Bugs GC == -- use big blocks in the allocator -- provide tool/API to track leaks/object counts +- use slightly bigger blocks in the allocator - resizing of strings/sequences could take into account the memory that is allocated @@ -67,7 +65,6 @@ GC Concurrency =========== -- test 'deepCopy' for closures - implement 'foo[1..4] = spawn(f[4..7])' Low priority: |