diff options
Diffstat (limited to 'todo.txt')
-rw-r--r-- | todo.txt | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/todo.txt b/todo.txt index 6068c049b..12e82331f 100644 --- a/todo.txt +++ b/todo.txt @@ -1,14 +1,37 @@ -version 0.10 -============ +version 0.10.4 +============== - Repetition renders the ridiculous reasonable. +- make 'nil' work for 'add': + - resizeString + - incrSeq + - addChar -- introduce ``--experimental`` switch -- c2nim depends on the compiler + +version 0.10.6 (RC1?) +===================== + +- make '--implicitStatic:on' the default; then we can also clean up the + 'static[T]' mess in the compiler! +- finish 'parallel' or mark as experimental +- Deprecate ``immediate`` for templates and macros +- special case varargs[untyped] and varargs[typed] + + +version 1.0 +=========== + +- macro support for '='; bind '=' to a memory region +- remove echo $foo gotcha +- add "all threads are blocked" detection to 'spawn' +- figure out why C++ bootstrapping is so much slower +- nimsuggest: auto-completion needs to work in 'class' macros +- The bitwise 'not' operator will be renamed to 'bnot' to + prevent 'not 4 == 5' from compiling. -> requires 'mixin' annotation for procs! +- iterators always require a return type - make nimble part of the distribution -- split idetools into separate tool - split docgen into separate tool - +- special rule for ``[]=``, items, pairs +- BUG: echo with template `$`*(info: TLineInfo): expr = toFileLineCol(info) Concurrency @@ -26,12 +49,9 @@ Low priority: Misc ---- -- make '--implicitStatic:on' the default - make tuple unpacking work in a non-var/let context -- special rule for ``[]=``, items, pairs - built-in 'getImpl' - prevent 'alloc(TypeWithGCedMemory)' -- some table related tests are wrong (memory usage checks) Bugs @@ -40,37 +60,31 @@ Bugs - VM: Pegs do not work at compile-time - VM: ptr/ref T cannot work in general - scopes are still broken for generic instantiation! -- bug: type conversions concerning proc types are weird -- compilation of niminst takes way too long. looks like a regression -- docgen: sometimes effects are listed twice - blocks can "export" an identifier but the CCG generates {} for them ... +- ConcreteTypes in a 'case' means we don't check for duplicated case branches +- typedesc matches a generic type T! version 0.9.x ============= -- implicit deref for parameter matching; but only for x.f(a, b) --> looks like - a nice compromise -- overloading of '=' +- pragmas need 'bindSym' support - allow simple read accesses to global variables --> difficult to ensure that no data races happen -- pragmas need 'bindSym' support - pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work reliably with user-defined pragmas - memory manager: add a measure of fragmentation - implement 'bits' pragmas - we need a magic thisModule symbol -- ensure (ref T)(a, b) works as a type conversion and type constructor - optimize 'genericReset'; 'newException' leads to code bloat +- The 'do' notation might be trimmed so that its only purpose is to pass + multiple multi line constructs to a macro. version 0.9.X ============= - macros as type pragmas -- implement type API for macros -- lazy overloading resolution: - * special case ``tyStmt`` - document NimMain and check whether it works for threading GC @@ -87,4 +101,3 @@ CGEN ==== - codegen should use "NIM_CAST" macro and respect aliasing rules for GCC - ``restrict`` pragma + backend support -- 'const' objects including case objects |