documentation improvements; higher level Mongodb wrapper
This commit is contained in:
parent
e9260e6c4d
commit
c53ad1b39f
15 changed files with 1109 additions and 686 deletions
31
todo.txt
31
todo.txt
|
|
@ -1,6 +1,7 @@
|
|||
version 0.9.0
|
||||
=============
|
||||
|
||||
- sigil-like operator: @x.abc parsed as (@x).abc
|
||||
- document AVR/embedded systems better
|
||||
- implement ``--script:sh|bat`` command line option
|
||||
- make GC realtime capable: GC_step(ms: int)
|
||||
|
|
@ -14,7 +15,6 @@ version 0.9.0
|
|||
- test constant closures
|
||||
|
||||
- dead code elim for JS backend; 'of' operator for JS backend
|
||||
- const ptr/ref
|
||||
- unsigned ints and bignums; requires abstract integer literal type:
|
||||
use tyInt+node for that
|
||||
- implement the high level optimizer
|
||||
|
|
@ -25,10 +25,7 @@ version 0.9.0
|
|||
- we need to support iteration of 2 different data structures in parallel
|
||||
- make exceptions compatible with C++ exceptions
|
||||
- change how comments are part of the AST
|
||||
- optional indentation for 'case' statement; hm, keep in mind other syntax
|
||||
changes that people want; may turn out to be a bad idea
|
||||
- activate more thread tests
|
||||
- optimize method dispatchers
|
||||
- rethink the syntax: distinction between expr and stmt is unfortunate;
|
||||
indentation handling is quite complex too; problem with exception handling
|
||||
is that often the scope of ``try`` is wrong and apart from that ``try`` is
|
||||
|
|
@ -63,18 +60,11 @@ version 0.9.XX
|
|||
- implicit ref/ptr->var conversion; the compiler may store an object
|
||||
implicitly on the heap for write barrier efficiency; better:
|
||||
proc specialization in the code gen
|
||||
- shared memory heap: ``shared ref`` etc. The only hard part in the GC is to
|
||||
"stop the world". However, it may be worthwhile to generate explicit
|
||||
(or implicit) syncGC() calls in loops. Automatic loop injection seems
|
||||
troublesome, but maybe we can come up with a simple heuristic. (All procs
|
||||
that `new` shared memory are syncGC() candidates...)
|
||||
- EcmaScript needs a new and better code gen: simply adapt the C code gen to it
|
||||
- tlastmod returns wrong results on BSD (Linux, MacOS X: works)
|
||||
- nested tuple unpacking; tuple unpacking in non-var-context
|
||||
- 'nimrod def': does not always work?
|
||||
- implement/generalize the effect system
|
||||
- test branch coverage
|
||||
- checked exceptions
|
||||
- make pegs support a compile-time option and make c2nim use regexes instead
|
||||
per default?
|
||||
- 'const' objects including case objects
|
||||
|
|
@ -103,7 +93,6 @@ version 0.9.XX
|
|||
Library
|
||||
-------
|
||||
|
||||
- wrappers for mongodb
|
||||
- suffix trees
|
||||
- locale support; i18n module
|
||||
- bignums
|
||||
|
|
@ -144,6 +133,7 @@ Low priority
|
|||
- implement explicit varargs; **but** ``len(varargs)`` problem remains!
|
||||
--> solve by implicit conversion from varargs to openarray
|
||||
- implement closures that support nesting > 1
|
||||
- optimize method dispatchers
|
||||
|
||||
|
||||
Further optimization ideas
|
||||
|
|
@ -153,8 +143,21 @@ Further optimization ideas
|
|||
information inlining would provide, but don't inline for code size reasons.
|
||||
|
||||
|
||||
Version 2
|
||||
=========
|
||||
Version 2 and beyond
|
||||
====================
|
||||
|
||||
|
||||
- shared memory heap: ``shared ref`` etc. The only hard part in the GC is to
|
||||
"stop the world". However, it may be worthwhile to generate explicit
|
||||
(or implicit) syncGC() calls in loops. Automatic loop injection seems
|
||||
troublesome, but maybe we can come up with a simple heuristic. (All procs
|
||||
that `new` shared memory are syncGC() candidates...)
|
||||
|
||||
- implement/generalize the effect system; checked exceptions
|
||||
- const ptr/ref
|
||||
|
||||
- optional indentation for 'case' statement; hm, keep in mind other syntax
|
||||
changes that people want; may turn out to be a bad idea
|
||||
|
||||
- language change: inheritance should only work with reference types, so that
|
||||
the ``type`` field is not needed for objects! --> zero overhead aggregation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue