mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
95 lines
2.6 KiB
Plaintext
95 lines
2.6 KiB
Plaintext
version 0.10
|
|
============
|
|
|
|
- document the tables module better
|
|
|
|
- The bitwise 'not' operator will be renamed to 'bnot' to
|
|
prevent 'not 4 == 5' from compiling. -> requires 'mixin' annotation for procs!
|
|
- A named tuple will be compatible to a tuple with different names.
|
|
- The 'do' notation might be trimmed so that its only purpose is to pass
|
|
multiple multi line constructs to a macro.
|
|
|
|
- c2nim depends on the compiler
|
|
- make nimble part of the distribution
|
|
- split idetools into separate tool
|
|
- split docgen into separate tool
|
|
|
|
|
|
|
|
Concurrency
|
|
-----------
|
|
|
|
- test 'deepCopy' for closures
|
|
- 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
|
|
|
|
|
|
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
|
|
====
|
|
|
|
- VM: Pegs do not work at compile-time
|
|
- VM: ptr/ref T cannot work in general
|
|
- scopes are still broken for generic instantiation!
|
|
- 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 ...
|
|
|
|
|
|
version 0.9.x
|
|
=============
|
|
|
|
- implicit deref for parameter matching; but only for x.f(a, b) --> looks like
|
|
a nice compromise
|
|
- overloading of '='
|
|
- 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
|
|
|
|
|
|
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
|
|
==
|
|
|
|
- hybrid GC
|
|
- use big blocks in the allocator
|
|
- provide tool/API to track leaks/object counts
|
|
- resizing of strings/sequences could take into account the memory that
|
|
is allocated
|
|
|
|
|
|
CGEN
|
|
====
|
|
- codegen should use "NIM_CAST" macro and respect aliasing rules for GCC
|
|
- ``restrict`` pragma + backend support
|
|
- 'const' objects including case objects
|