summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/semfold.nim1
-rw-r--r--lib/pure/httpserver.nim2
-rw-r--r--lib/system/threads.nim2
-rw-r--r--todo.txt26
-rw-r--r--tools/trimcc.nim2
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))