diff options
-rw-r--r-- | compiler/semfold.nim | 1 | ||||
-rw-r--r-- | lib/pure/httpserver.nim | 2 | ||||
-rw-r--r-- | lib/system/threads.nim | 2 | ||||
-rw-r--r-- | todo.txt | 26 | ||||
-rw-r--r-- | tools/trimcc.nim | 2 |
5 files changed, 16 insertions, 17 deletions
diff --git a/compiler/semfold.nim b/compiler/semfold.nim index 79abfaf4d..c0c8a28c8 100644 --- a/compiler/semfold.nim +++ b/compiler/semfold.nim @@ -380,6 +380,7 @@ proc evalOp(m: TMagic, n, a, b, c: PNode): PNode = of mInSet: result = newIntNodeT(ord(inSet(a, b)), n) of mRepr: # BUGFIX: we cannot eval mRepr here for reasons that I forgot. + discard of mIntToStr, mInt64ToStr: result = newStrNodeT($(getOrdValue(a)), n) of mBoolToStr: if getOrdValue(a) == 0: result = newStrNodeT("false", n) diff --git a/lib/pure/httpserver.nim b/lib/pure/httpserver.nim index 8de708c5d..885742b64 100644 --- a/lib/pure/httpserver.nim +++ b/lib/pure/httpserver.nim @@ -192,7 +192,7 @@ when false: if path[path.len-1] == '/' or existsDir(path): path = path / "index.html" - if not ExistsFile(path): + if not existsFile(path): discardHeaders(client) notFound(client) else: diff --git a/lib/system/threads.nim b/lib/system/threads.nim index 0d52e4d09..d3b3aa457 100644 --- a/lib/system/threads.nim +++ b/lib/system/threads.nim @@ -243,7 +243,7 @@ when not defined(useNimRtl): # on UNIX, the GC uses ``SIGFREEZE`` to tell every thread to stop so that # 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 # the Nimrod calling convention. This is needed because thread procs are diff --git a/todo.txt b/todo.txt index bc7c7979a..c2335dd32 100644 --- a/todo.txt +++ b/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 ==== @@ -16,7 +27,6 @@ Bugs version 0.9.x ============= -- fix the bug that keeps 'defer' template from working - pragmas need 'bindSym' support - pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work 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 - optimize 'genericReset'; 'newException' leads to code bloat - stack-less GC -- make '--implicitStatic:on' the default - 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 -- 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 ============= @@ -111,10 +113,6 @@ GC - precise stack marking; embrace C++ code generation for that - marker procs for Boehm 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 - use big blocks in the allocator - object pooling support for *hard* realtime systems diff --git a/tools/trimcc.nim b/tools/trimcc.nim index fd15726a5..6271d2b9a 100644 --- a/tools/trimcc.nim +++ b/tools/trimcc.nim @@ -21,7 +21,7 @@ proc walker(dir: string) = moveFile(dest=path, sourc=newName(path)) of pcDir: walker(path) - else: nil + else: discard if paramCount() == 1: walker(paramStr(1)) |