minor tweaks; updated todo.txt
This commit is contained in:
parent
e6675bd8b2
commit
fab8cee13d
5 changed files with 16 additions and 17 deletions
|
|
@ -380,6 +380,7 @@ proc evalOp(m: TMagic, n, a, b, c: PNode): PNode =
|
||||||
of mInSet: result = newIntNodeT(ord(inSet(a, b)), n)
|
of mInSet: result = newIntNodeT(ord(inSet(a, b)), n)
|
||||||
of mRepr:
|
of mRepr:
|
||||||
# BUGFIX: we cannot eval mRepr here for reasons that I forgot.
|
# BUGFIX: we cannot eval mRepr here for reasons that I forgot.
|
||||||
|
discard
|
||||||
of mIntToStr, mInt64ToStr: result = newStrNodeT($(getOrdValue(a)), n)
|
of mIntToStr, mInt64ToStr: result = newStrNodeT($(getOrdValue(a)), n)
|
||||||
of mBoolToStr:
|
of mBoolToStr:
|
||||||
if getOrdValue(a) == 0: result = newStrNodeT("false", n)
|
if getOrdValue(a) == 0: result = newStrNodeT("false", n)
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ when false:
|
||||||
if path[path.len-1] == '/' or existsDir(path):
|
if path[path.len-1] == '/' or existsDir(path):
|
||||||
path = path / "index.html"
|
path = path / "index.html"
|
||||||
|
|
||||||
if not ExistsFile(path):
|
if not existsFile(path):
|
||||||
discardHeaders(client)
|
discardHeaders(client)
|
||||||
notFound(client)
|
notFound(client)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -243,7 +243,7 @@ when not defined(useNimRtl):
|
||||||
|
|
||||||
# on UNIX, the GC uses ``SIGFREEZE`` to tell every thread to stop so that
|
# on UNIX, the GC uses ``SIGFREEZE`` to tell every thread to stop so that
|
||||||
# the GC can examine the stacks?
|
# the GC can examine the stacks?
|
||||||
proc stopTheWord() = nil
|
proc stopTheWord() = discard
|
||||||
|
|
||||||
# We jump through some hops here to ensure that Nimrod thread procs can have
|
# We jump through some hops here to ensure that Nimrod thread procs can have
|
||||||
# the Nimrod calling convention. This is needed because thread procs are
|
# the Nimrod calling convention. This is needed because thread procs are
|
||||||
|
|
|
||||||
26
todo.txt
26
todo.txt
|
|
@ -1,6 +1,17 @@
|
||||||
version 0.9.4
|
version 0.9.6
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
- fix the bug that keeps 'defer' template from working
|
||||||
|
- make '--implicitStatic:on' the default
|
||||||
|
- fix the tuple unpacking in lambda bug
|
||||||
|
- make tuple unpacking work in a non-var/let context
|
||||||
|
- special rule for ``[]=``
|
||||||
|
- ``=`` should be overloadable; requires specialization for ``=``; general
|
||||||
|
lift mechanism in the compiler is already implemented for 'fields'
|
||||||
|
- built-in 'getImpl'
|
||||||
|
- type API for macros; make 'spawn' a macro
|
||||||
|
- markAndSweepGC should expose an API for fibers
|
||||||
|
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
====
|
====
|
||||||
|
|
@ -16,7 +27,6 @@ Bugs
|
||||||
version 0.9.x
|
version 0.9.x
|
||||||
=============
|
=============
|
||||||
|
|
||||||
- fix the bug that keeps 'defer' template from working
|
|
||||||
- pragmas need 'bindSym' support
|
- pragmas need 'bindSym' support
|
||||||
- pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work
|
- pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work
|
||||||
reliably with user-defined pragmas
|
reliably with user-defined pragmas
|
||||||
|
|
@ -28,18 +38,10 @@ version 0.9.x
|
||||||
- ensure (ref T)(a, b) works as a type conversion and type constructor
|
- ensure (ref T)(a, b) works as a type conversion and type constructor
|
||||||
- optimize 'genericReset'; 'newException' leads to code bloat
|
- optimize 'genericReset'; 'newException' leads to code bloat
|
||||||
- stack-less GC
|
- stack-less GC
|
||||||
- make '--implicitStatic:on' the default
|
|
||||||
- implicit deref for parameter matching
|
- implicit deref for parameter matching
|
||||||
|
|
||||||
- special rule for ``[]=``
|
|
||||||
- ``=`` should be overloadable; requires specialization for ``=``; general
|
|
||||||
lift mechanism in the compiler is already implemented for 'fields'
|
|
||||||
- built-in 'getImpl'
|
|
||||||
- VM: optimize opcAsgnStr
|
- VM: optimize opcAsgnStr
|
||||||
|
|
||||||
- change comment handling in the AST; that's lots of work as c2nim and pas2nim
|
|
||||||
make use of the fact every node can have a comment!
|
|
||||||
|
|
||||||
|
|
||||||
version 0.9.X
|
version 0.9.X
|
||||||
=============
|
=============
|
||||||
|
|
@ -111,10 +113,6 @@ GC
|
||||||
- precise stack marking; embrace C++ code generation for that
|
- precise stack marking; embrace C++ code generation for that
|
||||||
- marker procs for Boehm GC
|
- marker procs for Boehm GC
|
||||||
- hybrid GC
|
- hybrid GC
|
||||||
- GC: implement simple generational GC
|
|
||||||
* 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
|
|
||||||
- acyclic vs prunable; introduce GC hints
|
- acyclic vs prunable; introduce GC hints
|
||||||
- use big blocks in the allocator
|
- use big blocks in the allocator
|
||||||
- object pooling support for *hard* realtime systems
|
- object pooling support for *hard* realtime systems
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ proc walker(dir: string) =
|
||||||
moveFile(dest=path, sourc=newName(path))
|
moveFile(dest=path, sourc=newName(path))
|
||||||
of pcDir:
|
of pcDir:
|
||||||
walker(path)
|
walker(path)
|
||||||
else: nil
|
else: discard
|
||||||
|
|
||||||
if paramCount() == 1:
|
if paramCount() == 1:
|
||||||
walker(paramStr(1))
|
walker(paramStr(1))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue