diff options
Diffstat (limited to 'todo.txt')
-rwxr-xr-x | todo.txt | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/todo.txt b/todo.txt deleted file mode 100755 index 20f7af41b..000000000 --- a/todo.txt +++ /dev/null @@ -1,132 +0,0 @@ -- we need a way to disable tests -- deprecate ^ and make it available as operator -- test branch coverage -- checked exceptions -- explicit indices for array literals -- built-in serialization -- do not ambiguity error for methods if amibiguity only affects the same - dispatcher anyway - - -High priority (version 0.9.0) -============================= - - -- fix implicit generic routines -- fix the streams implementation so that it uses methods -- fix overloading resolution -- wrong co-/contravariance - - -Bugs ----- -- proc (x: int) is passable to proc (x: var int) !? -- detected by pegs module 64bit: p(result, result) should use a temporary! -- the parser allows empty object case branches - - -To implement ------------- - -* sort routine -* hash tables and sets -* distinct types for array/seq indexes -* constant sequences - -* implement closures for the C code generator - - - -Low priority ------------- -- resizing of strings/sequences could take into account the memory that - is allocated -- implicit conversions from ``ptr/ref T`` to ``var T`` (from - ``ptr/ref T`` to ``T``)? -- documentation: type converters -- typeAllowed() for parameters... -- find a way to reintroduce the cleanup() pass for C code generation: this - is hard because of partial evaluation --> symbol files will fix this as - a side effect -- implement better error handling: errornous top level statements are ignored - and not part of the symbal table --> for REPL - --> this needs deletion operation for symbol table! -- floating point checks for EcmaScript -- enhance `` notation for identifier concatenation: `concat` a `these` -- prefer proc in current module over other procs with same overloading result? -- real types for template results -- generalized case statement (requires better transf) -- normalize for the DOM -- tlastmod returns wrong results on BSD (Linux, MacOS X: works) -- nested tuple unpacking -- fast assignment optimization for TPeg - - -Library -------- - -- locale support -- conversion between character sets -- bignums -- ftp (and other internet protocols) - -- pdcurses bindings -- queues additional to streams: have two positions (read/write) instead of one - -- for system: - proc `@` [T](a: openArray[T]): seq[T] = - newSeq(result, a.len) - for i in 0..a.len-1: result[i] = a[i] - - --> ensure @[] calls the array version! - - -Version 2 ---------- - -- language change: inheritance should only work with reference types, so that - the ``type`` field is not needed for objects! --> zero overhead aggregation - BETTER: ``is`` and safe object conversions only work with ref objects. Same - for multi methods. - -- explicit nil types? - * nil seq[int] - * nil string - * nil ref int - * nil ptr THallo - * nil proc - -- better for backwards compatibility: default nilable, but ``not nil`` - notation: - - type - PWindow = ref TWindow not nil -- the two other parsers - - -Low priority ------------- - -- ``when T is int`` for generic code -- ``when validCode( proc () )`` for generic code -- macros: ``typecheck`` pragma; this allows transformations based on types! -- find a way for easy constructors and destructors; (destructors are much more - important than constructors) -- code generated for type information is wasteful - - -Other ideas ------------ -- startsWith `=^` -- endsWith `=$` -- ignore case `=?` --> `=$?` too? - - -RST ---- -- footnotes; prefix :i: whitespace before :i:, _reference, `reference`__ - __ anonymous: www.nimrod.org -- rewrite the parser to use the new better look ahead technique that c2nim - uses - - |