documented object constrs; endb works again
This commit is contained in:
parent
2b4922aea0
commit
a64d4dc35c
11 changed files with 152 additions and 143 deletions
51
todo.txt
51
todo.txt
|
|
@ -1,6 +1,9 @@
|
|||
version 0.9.2
|
||||
=============
|
||||
|
||||
- fix destructors; don't work yet when used as expression; alternative for
|
||||
version 1: disallow expressions yielding a type with a destructor that are
|
||||
not in a 'let/var' context (p(a.openFile, b.openFile) makes no sense anyway)
|
||||
- lazy overloading resolution:
|
||||
* get rid of ``expr[typ]``, use perhaps ``static[typ]`` instead
|
||||
* special case ``tyStmt``
|
||||
|
|
@ -8,16 +11,24 @@ version 0.9.2
|
|||
* test libffi on windows
|
||||
* test: times.format with the FFI
|
||||
- acyclic vs prunable; introduce GC hints
|
||||
- implement constructors
|
||||
- more checks
|
||||
- document them
|
||||
- CGEN: ``restrict`` pragma + backend support; computed goto support
|
||||
- fix:
|
||||
- 'result' is not properly cleaned for NRVO
|
||||
- document NimMain and check whether it works for threading
|
||||
- fix destructors; don't work yet when used as expression; alternative for
|
||||
version 1: disallow expressions yielding a type with a destructor that are
|
||||
not in a 'let/var' context (p(a.openFile, b.openFile) makes no sense anyway)
|
||||
|
||||
|
||||
Bugs
|
||||
====
|
||||
|
||||
- 'result' is not properly cleaned for NRVO
|
||||
- instantiated generics are listed in error messages
|
||||
- sneaking with qualifiedLookup() is really broken!
|
||||
- aporia.nim(968, 5) Error: ambiguous identifier: 'DELETE' --
|
||||
use a qualifier
|
||||
- blocks can "export" an identifier but the CCG generates {} for them ...
|
||||
- JS gen: fix exception handling
|
||||
- osproc execProcesses can deadlock if all processes fail (as experienced
|
||||
in c++ mode)
|
||||
- bootstrapping does not work in C++ mode
|
||||
- case statement exhaustiveness checking is still wrong
|
||||
|
||||
|
||||
version 0.9.4
|
||||
|
|
@ -40,7 +51,7 @@ version 0.9.X
|
|||
- test&finish first class iterators:
|
||||
* nested iterators
|
||||
- implement the missing features wrt inheritance
|
||||
- better support for *hard* realtime systems
|
||||
- object pooling support for *hard* realtime systems
|
||||
- improve the compiler as a service
|
||||
- better support for macros that rewrite procs
|
||||
- macros need access to types and symbols (partially implemented)
|
||||
|
|
@ -71,8 +82,9 @@ version 0.9.XX
|
|||
==============
|
||||
|
||||
- object branch transitions can't work with the current 'reset'; add a 'reset'
|
||||
with an additional parameter --> re-evaluate this issue after constructors
|
||||
have been added
|
||||
with an additional parameter --> simple:
|
||||
provide a 'reset(x, TObj(k: nkValue))' instead? why bother? '=' does the
|
||||
same.
|
||||
- document nimdoc properly finally
|
||||
- make 'clamp' a magic for the range stuff
|
||||
- better type syntax for functions and tuples: tuple(int, int); (int,int)->int
|
||||
|
|
@ -103,6 +115,8 @@ Not essential for 1.0.0
|
|||
* first version: mark black in write barrier
|
||||
* second version: introduce fake roots instead of marking black
|
||||
* third version: find some clever heuristic which is preferable
|
||||
- object constructors: static check for fields if discriminator is known at
|
||||
compile time
|
||||
|
||||
|
||||
GC
|
||||
|
|
@ -122,18 +136,3 @@ Optimizations
|
|||
even further write barrier specialization
|
||||
- inlining of first class functions
|
||||
- proc specialization in the code gen for write barrier specialization
|
||||
|
||||
|
||||
Bugs
|
||||
====
|
||||
|
||||
- instantiated generics are listed in error messages
|
||||
- sneaking with qualifiedLookup() is really broken!
|
||||
- aporia.nim(968, 5) Error: ambiguous identifier: 'DELETE' --
|
||||
use a qualifier
|
||||
- blocks can "export" an identifier but the CCG generates {} for them ...
|
||||
- JS gen: fix exception handling
|
||||
- the better scoping for locals is the wrong default for endb
|
||||
- osproc execProcesses can deadlock if all processes fail (as experienced
|
||||
in c++ mode)
|
||||
- case statement exhaustiveness checking is still wrong
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue