mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-07 05:23:20 +00:00
further planning of Nim is done via RFCs; no todo.txt anymore
This commit is contained in:
71
todo.txt
71
todo.txt
@@ -1,71 +0,0 @@
|
||||
version 1.0 battle plan
|
||||
=======================
|
||||
|
||||
- let 'doAssert' analyse the expressions and produce more helpful output
|
||||
- fix "high priority" bugs
|
||||
- try to fix as many compiler crashes as reasonable
|
||||
|
||||
|
||||
Not critical for 1.0
|
||||
====================
|
||||
|
||||
- introduce ``nkStmtListExpr`` for template/macro invokations to produce
|
||||
better stack traces
|
||||
- make 'break' not leave named blocks
|
||||
- make FlowVar compatible to Futures
|
||||
- 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
|
||||
|
||||
- find a solution for the x.f[T](y) gotcha
|
||||
- implement ``.delegate`` for .experimental
|
||||
- annotation support for getType()
|
||||
- make '--implicitStatic:on' the default; then we can also clean up the
|
||||
'static[T]' mess in the compiler!
|
||||
- ``not`` or ``~`` for the effects system
|
||||
- figure out why C++ bootstrapping is so much slower
|
||||
- make 'nil' work for 'add':
|
||||
- resizeString
|
||||
- incrSeq
|
||||
- addChar
|
||||
- pragmas need 'bindSym' support
|
||||
- pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work
|
||||
reliably with user-defined pragmas
|
||||
- we need a magic thisModule symbol
|
||||
- optimize 'genericReset'; 'newException' leads to code bloat
|
||||
|
||||
- prevent 'alloc(TypeWithGCedMemory)'?
|
||||
- map ``string`` and ``seq`` to ``std::string`` and ``std::vector``
|
||||
- macro support for '='; bind '=' to a memory region
|
||||
- macros as type pragmas
|
||||
|
||||
|
||||
Bugs
|
||||
====
|
||||
|
||||
- VM: Pegs do not work at compile-time
|
||||
- blocks can "export" an identifier but the CCG generates {} for them ...
|
||||
|
||||
|
||||
GC
|
||||
==
|
||||
|
||||
- resizing of strings/sequences could take into account the memory that
|
||||
is allocated
|
||||
|
||||
|
||||
Concurrency
|
||||
===========
|
||||
|
||||
- implement 'foo[1..4] = spawn(f[4..7])'
|
||||
|
||||
Low priority:
|
||||
- support for exception propagation? (hard to implement)
|
||||
- the copying of the 'ref Promise' into the thead local storage only
|
||||
happens to work due to the write barrier's implementation
|
||||
|
||||
|
||||
CGEN
|
||||
====
|
||||
- codegen should use "NIM_CAST" macro and respect aliasing rules for GCC
|
||||
- ``restrict`` pragma + backend support
|
||||
Reference in New Issue
Block a user