summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/actiontable/tactiontable2.nim2
-rw-r--r--tests/assert/tassert.nim2
-rw-r--r--tests/assert/tuserassert.nim2
-rw-r--r--tests/async/tasyncawait.nim21
-rw-r--r--tests/async/tasyncdiscard.nim4
-rw-r--r--tests/async/tasyncexceptions.nim40
-rw-r--r--tests/async/tasyncfile.nim36
-rw-r--r--tests/async/tasynciossl.nim5
-rw-r--r--tests/async/tasynctry.nim51
-rw-r--r--tests/async/tnestedpfuturetypeparam.nim4
-rw-r--r--tests/benchmark.nim4
-rw-r--r--tests/bind/tnicerrorforsymchoice.nim8
-rw-r--r--tests/borrow/tborrow.nim2
-rw-r--r--tests/casestmt/tcasestm.nim2
-rw-r--r--tests/ccgbugs/tccgen1.nim2
-rw-r--r--tests/ccgbugs/tcodegenbug1.nim2
-rw-r--r--tests/ccgbugs/tmissinginit.nim30
-rw-r--r--tests/clearmsg/mb.nim2
-rw-r--r--tests/clearmsg/mc.nim3
-rw-r--r--tests/clearmsg/ta.nim12
-rw-r--r--tests/closure/tclosure.nim2
-rw-r--r--tests/closure/tclosurebug2.nim28
-rw-r--r--tests/closure/tforum.nim44
-rw-r--r--tests/concurrency/tnodeadlocks.nim54
-rw-r--r--tests/constr/tconstr1.nim2
-rw-r--r--tests/controlflow/tbreak.nim44
-rw-r--r--tests/converter/tconvert.nim34
-rw-r--r--tests/destructor/tdestructor.nim6
-rw-r--r--tests/destructor/tdestructor2.nim2
-rw-r--r--tests/destructor/tdictdestruct.nim2
-rw-r--r--tests/dll/client.nim2
-rw-r--r--tests/dll/server.nim2
-rw-r--r--tests/effects/teffects1.nim10
-rw-r--r--tests/effects/teffects2.nim8
-rw-r--r--tests/effects/tgcsafe.nim17
-rw-r--r--tests/enum/tenumitems.nim2
-rw-r--r--tests/exception/texcpt1.nim4
-rw-r--r--tests/exception/tnestedreturn.nim10
-rw-r--r--tests/exception/tnestedreturn2.nim10
-rw-r--r--tests/exception/tunhandledexc.nim6
-rw-r--r--tests/exception/twrongexc.nim6
-rw-r--r--tests/float/tfloat1.nim4
-rw-r--r--tests/float/tfloat2.nim4
-rw-r--r--tests/float/tfloat3.nim6
-rw-r--r--tests/gc/bintrees.nim2
-rw-r--r--tests/gc/closureleak.nim2
-rw-r--r--tests/generics/mdotlookup.nim8
-rw-r--r--tests/generics/tcan_alias_generic.nim2
-rw-r--r--tests/generics/tcan_alias_specialised_generic.nim2
-rw-r--r--tests/generics/tcan_inherit_generic.nim2
-rw-r--r--tests/generics/tcan_specialise_generic.nim2
-rw-r--r--tests/generics/tdotlookup.nim5
-rw-r--r--tests/generics/texplicitgeneric1.nim2
-rw-r--r--tests/generics/tgeneric0.nim12
-rw-r--r--tests/generics/tgeneric2.nim6
-rw-r--r--tests/generics/tgeneric3.nim312
-rw-r--r--tests/generics/tgenericprocvar.nim2
-rw-r--r--tests/generics/tgenericvariant.nim8
-rw-r--r--tests/generics/tinferredgenericprocs.nim2
-rw-r--r--tests/generics/tmetafield.nim2
-rw-r--r--tests/generics/tspecialised_is_equivalent.nim2
-rw-r--r--tests/generics/tthread_generic.nim2
-rw-r--r--tests/init/tuninit1.nim2
-rw-r--r--tests/iter/titer2.nim6
-rw-r--r--tests/iter/titer6.nim4
-rw-r--r--tests/iter/titer8.nim4
-rw-r--r--tests/js.nim2
-rw-r--r--tests/let/tlet.nim4
-rw-r--r--tests/lookups/tkoeniglookup.nim2
-rw-r--r--tests/macros/tdebugstmt.nim2
-rw-r--r--tests/manyloc/argument_parser/argument_parser.nim70
-rw-r--r--tests/manyloc/argument_parser/ex_wget.nim.cfg (renamed from tests/manyloc/argument_parser/ex_wget.nimrod.cfg)0
-rw-r--r--tests/manyloc/keineschweine/dependencies/chipmunk/chipmunk.nim12
-rw-r--r--tests/manyloc/keineschweine/dependencies/nake/nake.nim2
-rw-r--r--tests/manyloc/keineschweine/dependencies/nake/nakefile.nim2
-rw-r--r--tests/manyloc/keineschweine/enet_server/nakefile.nim4
-rw-r--r--tests/manyloc/keineschweine/keineschweine.nim.cfg (renamed from tests/manyloc/keineschweine/keineschweine.nimrod.cfg)0
-rw-r--r--tests/manyloc/nake/nake.nim2
-rw-r--r--tests/manyloc/nake/nakefile.nim22
-rw-r--r--tests/manyloc/nake/nakefile.nim.cfg (renamed from tests/manyloc/nake/nakefile.nimrod.cfg)0
-rw-r--r--tests/manyloc/named_argument_bug/main.nim.cfg (renamed from tests/manyloc/named_argument_bug/main.nimrod.cfg)0
-rw-r--r--tests/manyloc/named_argument_bug/tri_engine/math/vec.nim8
-rw-r--r--tests/manyloc/packages/noconflicts.nim.cfg (renamed from tests/manyloc/packages/noconflicts.nimrod.cfg)0
-rw-r--r--tests/manyloc/standalone/barebone.nim.cfg (renamed from tests/manyloc/standalone/barebone.nimrod.cfg)0
-rw-r--r--tests/metatype/tcompositetypeclasses.nim4
-rw-r--r--tests/metatype/ttypeclasses.nim15
-rw-r--r--tests/metatype/typeclassinference.nim11
-rw-r--r--tests/misc/t99bott.nim2
-rw-r--r--tests/misc/tdllvar.nim4
-rw-r--r--tests/misc/temit.nim4
-rw-r--r--tests/misc/teventemitter.nim24
-rw-r--r--tests/misc/thallo.nim2
-rw-r--r--tests/misc/tints.nim2
-rw-r--r--tests/misc/tissue710.nim10
-rw-r--r--tests/misc/tlastmod.nim8
-rw-r--r--tests/misc/tloops.nim2
-rw-r--r--tests/misc/tmandelbrot.nim4
-rw-r--r--tests/misc/tnot.nim6
-rw-r--r--tests/misc/tpos.nim6
-rw-r--r--tests/misc/tprep.nim4
-rw-r--r--tests/misc/tradix.nim20
-rw-r--r--tests/misc/treadln.nim4
-rw-r--r--tests/misc/tsimplesort.nim42
-rw-r--r--tests/misc/tstrange.nim9
-rw-r--r--tests/misc/tunsignedcmp.nim15
-rw-r--r--tests/misc/tvarious1.nim9
-rw-r--r--tests/misc/tvarnums.nim2
-rw-r--r--tests/modules/mexport2a.nim5
-rw-r--r--tests/modules/mexport2b.nim1
-rw-r--r--tests/modules/texport.nim3
-rw-r--r--tests/modules/texport2.nim10
-rw-r--r--tests/modules/tmismatchedvisibility.nim9
-rw-r--r--tests/modules/tselfimport.nim9
-rw-r--r--tests/objects/tobjcov.nim2
-rw-r--r--tests/objvariant/tcheckedfield1.nim2
-rw-r--r--tests/objvariant/tyaoption.nim12
-rw-r--r--tests/overflw/toverflw.nim4
-rw-r--r--tests/overflw/toverflw2.nim2
-rw-r--r--tests/overload/toverl4.nim77
-rw-r--r--tests/parallel/nim.cfg (renamed from tests/parallel/nimrod.cfg)0
-rw-r--r--tests/parallel/tdeepcopy.nim18
-rw-r--r--tests/parallel/tdeepcopy2.nim35
-rw-r--r--tests/parallel/tflowvar.nim25
-rw-r--r--tests/parallel/tguard1.nim37
-rw-r--r--tests/parallel/tguard2.nim27
-rw-r--r--tests/parallel/tlet_spawn.nim14
-rw-r--r--tests/parallel/tsysspawn.nim2
-rw-r--r--tests/parallel/tsysspawnbadarg.nim2
-rw-r--r--tests/procvar/tprocvars.nim6
-rw-r--r--tests/range/tmatrix3.nim4
-rw-r--r--tests/range/tsubrange2.nim2
-rw-r--r--tests/range/tsubrange3.nim3
-rw-r--r--tests/showoff/thtml2.nim4
-rw-r--r--tests/stdlib/techo.nim2
-rw-r--r--tests/stdlib/testequivalence.nim1
-rw-r--r--tests/stdlib/tircbot.nim6
-rw-r--r--tests/stdlib/tpegs.nim10
-rw-r--r--tests/stdlib/tunidecode.nim2
-rw-r--r--tests/stdlib/txmlgen.nim6
-rw-r--r--tests/stdlib/txmltree.nim4
-rw-r--r--tests/system/toString.nim8
-rw-r--r--tests/table/ptables.nim9
-rw-r--r--tests/table/ttables.nim2
-rw-r--r--tests/template/t_otemplates.nim6
-rw-r--r--tests/template/tissue993.nim4
-rw-r--r--tests/testament/backend.nim2
-rw-r--r--tests/testament/caasdriver.nim24
-rw-r--r--tests/testament/categories.nim26
-rw-r--r--tests/testament/htmlgen.nim4
-rw-r--r--tests/testament/specs.nim12
-rw-r--r--tests/testament/tester.nim20
-rw-r--r--tests/threads/nim.cfg (renamed from tests/threads/nimrod.cfg)0
-rw-r--r--tests/threads/tthreadanalysis.nim6
-rw-r--r--tests/threads/tthreadanalysis2.nim2
-rw-r--r--tests/threads/tthreadheapviolation1.nim6
-rw-r--r--tests/trmacros/targlist.nim2
-rw-r--r--tests/typerel/tnoargopenarray.nim4
-rw-r--r--tests/typerel/trectuple.nim4
-rw-r--r--tests/typerel/trectuples.nim4
-rw-r--r--tests/types/tforwty2.nim4
-rw-r--r--tests/types/tillegaltyperecursion.nim4
-rw-r--r--tests/types/tillrec.nim2
-rw-r--r--tests/usingstmt/tusingstatement.nim2
-rw-r--r--tests/varstmt/tlet.nim2
-rw-r--r--tests/vm/tasmparser.nim174
-rw-r--r--tests/vm/tcompiletimetable.nim11
-rw-r--r--tests/vm/tconsteval.nim8
-rw-r--r--tests/vm/trgba.nim18
-rw-r--r--tests/vm/twrongarray.nim17
-rw-r--r--tests/vm/twrongconst.nim2
170 files changed, 1401 insertions, 609 deletions
diff --git a/tests/actiontable/tactiontable2.nim b/tests/actiontable/tactiontable2.nim
index bfeb1c169..99bb3dca0 100644
--- a/tests/actiontable/tactiontable2.nim
+++ b/tests/actiontable/tactiontable2.nim
@@ -1,6 +1,6 @@
 discard """
   line: 21
-  errormsg: "invalid type: 'TTable[string, proc (string){.gcsafe.}]'"
+  errormsg: "invalid type: 'Table[string, proc (string){.gcsafe.}]'"
 """
 
 import tables
diff --git a/tests/assert/tassert.nim b/tests/assert/tassert.nim
index 0ea8d2034..b3df30bd1 100644
--- a/tests/assert/tassert.nim
+++ b/tests/assert/tassert.nim
@@ -5,7 +5,7 @@ discard """
 """
 # test assert and exception handling
 
-proc callB() = assert(False)
+proc callB() = assert(false)
 proc callA() = callB()
 proc callC() = callA()
 
diff --git a/tests/assert/tuserassert.nim b/tests/assert/tuserassert.nim
index 8710ee486..57b229ca9 100644
--- a/tests/assert/tuserassert.nim
+++ b/tests/assert/tuserassert.nim
@@ -3,7 +3,7 @@ discard """
 """
 
 template myAssert(cond: expr) = 
-  when rand(3) < 3:
+  when 3 <= 3:
     let c = cond.astToStr
     if not cond:
       echo c, "ugh"
diff --git a/tests/async/tasyncawait.nim b/tests/async/tasyncawait.nim
index 2d65db4bd..5165b0f06 100644
--- a/tests/async/tasyncawait.nim
+++ b/tests/async/tasyncawait.nim
@@ -21,15 +21,8 @@ proc launchSwarm(port: TPort) {.async.} =
     var sock = newAsyncRawSocket()
 
     await connect(sock, "localhost", port)
-    when true:
-      await sendMessages(sock)
-      closeSocket(sock)
-    else:
-      # Issue #932: https://github.com/Araq/Nimrod/issues/932
-      var msgFut = sendMessages(sock)
-      msgFut.callback =
-        proc () =
-          closeSocket(sock)
+    await sendMessages(sock)
+    closeSocket(sock)
 
 proc readMessages(client: TAsyncFD) {.async.} =
   while true:
@@ -47,18 +40,18 @@ proc readMessages(client: TAsyncFD) {.async.} =
 proc createServer(port: TPort) {.async.} =
   var server = newAsyncRawSocket()
   block:
-    var name: TSockaddr_in
+    var name: Sockaddr_in
     when defined(windows):
       name.sin_family = toInt(AF_INET).int16
     else:
       name.sin_family = toInt(AF_INET)
     name.sin_port = htons(int16(port))
     name.sin_addr.s_addr = htonl(INADDR_ANY)
-    if bindAddr(server.TSocketHandle, cast[ptr TSockAddr](addr(name)),
-                sizeof(name).TSocklen) < 0'i32:
-      osError(osLastError())
+    if bindAddr(server.SocketHandle, cast[ptr SockAddr](addr(name)),
+                sizeof(name).Socklen) < 0'i32:
+      raiseOSError(osLastError())
   
-  discard server.TSocketHandle.listen()
+  discard server.SocketHandle.listen()
   while true:
     var client = await accept(server)
     asyncCheck readMessages(client)
diff --git a/tests/async/tasyncdiscard.nim b/tests/async/tasyncdiscard.nim
index 966851acc..71aba29e2 100644
--- a/tests/async/tasyncdiscard.nim
+++ b/tests/async/tasyncdiscard.nim
@@ -13,7 +13,7 @@ discard """
 import asyncio, asyncdispatch, asyncnet
 
 proc main {.async.} =
-  proc f: PFuture[int] {.async.} =
+  proc f: Future[int] {.async.} =
     discard
     echo 1
     discard
@@ -24,7 +24,7 @@ proc main {.async.} =
   echo x
   echo 3
 
-  proc g: PFuture[int] {.async.} =
+  proc g: Future[int] {.async.} =
     discard
     echo 4
     discard
diff --git a/tests/async/tasyncexceptions.nim b/tests/async/tasyncexceptions.nim
new file mode 100644
index 000000000..30ef41756
--- /dev/null
+++ b/tests/async/tasyncexceptions.nim
@@ -0,0 +1,40 @@
+discard """
+  file: "tasyncexceptions.nim"
+  exitcode: 1
+  outputsub: "Error: unhandled exception: foobar [Exception]"
+"""
+import asyncdispatch
+
+proc accept(): Future[int] {.async.} =
+  await sleepAsync(100)
+  result = 4
+
+proc recvLine(fd: int): Future[string] {.async.} =
+  await sleepAsync(100)
+  return "get"
+
+proc processClient(fd: int) {.async.} =
+  # these finish synchronously, we need some async delay to emulate this bug.
+  var line = await recvLine(fd)
+  var foo = line[0]
+  if foo == 'g':
+    raise newException(EBase, "foobar")
+  
+
+proc serve() {.async.} =
+
+  while true:
+    var fut = await accept()
+    await processClient(fut)
+
+when isMainModule:
+  proc main =
+    var fut = serve()
+    fut.callback =
+      proc () =
+        if fut.failed:
+          # This test ensures that this exception crashes the application
+          # as it is not handled.
+          raise fut.error
+    runForever()
+  main()
diff --git a/tests/async/tasyncfile.nim b/tests/async/tasyncfile.nim
new file mode 100644
index 000000000..c3cf33512
--- /dev/null
+++ b/tests/async/tasyncfile.nim
@@ -0,0 +1,36 @@
+discard """
+  file: "tasyncfile.nim"
+  exitcode: 0
+"""
+import asyncfile, asyncdispatch, os
+
+proc main() {.async.} =
+  let fn = getTempDir() / "foobar.txt"
+  removeFile(fn)
+
+  # Simple write/read test.
+  block:
+    var file = openAsync(fn, fmReadWrite)
+    await file.write("test")
+    file.setFilePos(0)
+    await file.write("foo")
+    file.setFilePos(0)
+    let data = await file.readAll()
+    doAssert data == "foot"
+    file.close()
+  
+  # Append test
+  block:
+    var file = openAsync(fn, fmAppend)
+    await file.write("\ntest2")
+    let errorTest = file.readAll()
+    await errorTest
+    doAssert errorTest.failed
+    file.close()
+    file = openAsync(fn, fmRead)
+    let data = await file.readAll()
+    
+    doAssert data == "foot\ntest2"
+    file.close()
+  
+waitFor main()
diff --git a/tests/async/tasynciossl.nim b/tests/async/tasynciossl.nim
index 26c4c587c..b0222e4ff 100644
--- a/tests/async/tasynciossl.nim
+++ b/tests/async/tasynciossl.nim
@@ -1,11 +1,12 @@
 discard """
   file: "tasynciossl.nim"
-  cmd: "nimrod $target --hints:on --define:ssl $options $file"
+  cmd: "nim $target --hints:on --define:ssl $options $file"
   output: "20000"
 """
 import sockets, asyncio, strutils, times
 
-var disp = newDispatcher()
+var disp {.threadvar.}: PDispatcher
+disp = newDispatcher()
 var msgCount = 0
 
 when defined(ssl):
diff --git a/tests/async/tasynctry.nim b/tests/async/tasynctry.nim
new file mode 100644
index 000000000..66ea40d49
--- /dev/null
+++ b/tests/async/tasynctry.nim
@@ -0,0 +1,51 @@
+discard """
+  file: "tasynctry.nim"
+  exitcode: 0
+  output: '''
+Generic except: Test
+Specific except
+Multiple idents in except
+Multiple except branches
+Multiple except branches 2
+'''
+"""
+import asyncdispatch
+
+# Here we are testing the ability to catch exceptions.
+
+proc foobar() {.async.} =
+  if 5 == 5:
+    raise newException(EInvalidIndex, "Test")
+
+proc catch() {.async.} =
+  # TODO: Create a test for when exceptions are not caught.
+  try:
+    await foobar()
+  except:
+    echo("Generic except: ", getCurrentExceptionMsg())
+
+  try:
+    await foobar()
+  except EInvalidIndex:
+    echo("Specific except")
+
+  try:
+    await foobar()
+  except OSError, EInvalidField, EInvalidIndex:
+    echo("Multiple idents in except")
+
+  try:
+    await foobar()
+  except OSError, EInvalidField:
+    assert false
+  except EInvalidIndex:
+    echo("Multiple except branches")
+
+  try:
+    await foobar()
+  except EInvalidIndex:
+    echo("Multiple except branches 2")
+  except OSError, EInvalidField:
+    assert false
+
+asyncCheck catch()
diff --git a/tests/async/tnestedpfuturetypeparam.nim b/tests/async/tnestedpfuturetypeparam.nim
index 1db442170..bf346ff8e 100644
--- a/tests/async/tnestedpfuturetypeparam.nim
+++ b/tests/async/tnestedpfuturetypeparam.nim
@@ -1,8 +1,8 @@
 import asyncdispatch, asyncnet
 
 proc main {.async.} =
-  proc f: PFuture[seq[int]] {.async.} =
-    await newAsyncSocket().connect("www.google.com", TPort(80))
+  proc f: Future[seq[int]] {.async.} =
+    await newAsyncSocket().connect("www.google.com", Port(80))
   let x = await f()
 
 asyncCheck main()
diff --git a/tests/benchmark.nim b/tests/benchmark.nim
index 8dd9cc2e2..0613d1bf9 100644
--- a/tests/benchmark.nim
+++ b/tests/benchmark.nim
@@ -1,6 +1,6 @@
 #
 #
-#            Nimrod Benchmark tool
+#            Nim Benchmark tool
 #        (c) Copyright 2012 Dominik Picheta
 #
 #    See the file "copying.txt", included in this
@@ -15,7 +15,7 @@ type
 
 proc compileBench(file: string) =
   ## Compiles ``file``.
-  doAssert(execCmdEx("nimrod c -d:release " & file).exitCode == QuitSuccess)
+  doAssert(execCmdEx("nim c -d:release " & file).exitCode == QuitSuccess)
 
 proc runBench(file: string): TBenchResult =
   ## Runs ``file`` and returns info on how long it took to run.
diff --git a/tests/bind/tnicerrorforsymchoice.nim b/tests/bind/tnicerrorforsymchoice.nim
index 4e7a271b3..e1ff090dd 100644
--- a/tests/bind/tnicerrorforsymchoice.nim
+++ b/tests/bind/tnicerrorforsymchoice.nim
@@ -1,17 +1,17 @@
 discard """
   line: 18
-  errormsg: "type mismatch: got (proc (TScgi) | proc (PAsyncSocket, PStringTable, string){.gcsafe.})"
+  errormsg: "type mismatch: got (proc (TScgi) | proc (AsyncSocket, StringTableRef, string){.gcsafe.})"
 """
 
 #bug #442
 import scgi, sockets, asyncio, strtabs
-proc handleSCGIRequest[TScgi: TScgiState | PAsyncScgiState](s: TScgi) =
+proc handleSCGIRequest[TScgi: ScgiState | AsyncScgiState](s: TScgi) =
   discard
-proc handleSCGIRequest(client: PAsyncSocket, headers: PStringTable, 
+proc handleSCGIRequest(client: AsyncSocket, headers: StringTableRef, 
                        input: string) =
   discard
 
-proc test(handle: proc (client: PAsyncSocket, headers: PStringTable, 
+proc test(handle: proc (client: AsyncSocket, headers: StringTableRef, 
                         input: string), b: int) =
   discard
 
diff --git a/tests/borrow/tborrow.nim b/tests/borrow/tborrow.nim
index 8e6aeba74..d4df5f524 100644
--- a/tests/borrow/tborrow.nim
+++ b/tests/borrow/tborrow.nim
@@ -18,4 +18,4 @@ proc `++`(x, y: DF): DF {.borrow.}
 proc `$`(x: DI): string {.borrow.}
 proc `$`(x: DF): string {.borrow.}
 
-echo  4544.DI ++ 343.di, " ", (4.5.df ++ 0.5.df).float == 5.0
+echo  4544.DI ++ 343.DI, " ", (4.5.DF ++ 0.5.DF).float == 5.0
diff --git a/tests/casestmt/tcasestm.nim b/tests/casestmt/tcasestm.nim
index b033b98ec..a21b6be0d 100644
--- a/tests/casestmt/tcasestm.nim
+++ b/tests/casestmt/tcasestm.nim
@@ -5,7 +5,7 @@ discard """
 # Test the case statement
 
 type
-  tenum = enum eA, eB, eC
+  Tenum = enum eA, eB, eC
 
 var
   x: string = "yyy"
diff --git a/tests/ccgbugs/tccgen1.nim b/tests/ccgbugs/tccgen1.nim
index 137dd545d..9234bbd6c 100644
--- a/tests/ccgbugs/tccgen1.nim
+++ b/tests/ccgbugs/tccgen1.nim
@@ -45,7 +45,7 @@ type
   PText* = ref Text
   Text = object of CharacterData
   
-  PComment* = ref comment
+  PComment* = ref Comment
   Comment = object of CharacterData
   
   PCDataSection* = ref CDataSection
diff --git a/tests/ccgbugs/tcodegenbug1.nim b/tests/ccgbugs/tcodegenbug1.nim
index 7d0fc4ad5..9b9771485 100644
--- a/tests/ccgbugs/tcodegenbug1.nim
+++ b/tests/ccgbugs/tcodegenbug1.nim
@@ -51,7 +51,7 @@ proc `$`*(status: TStatusEnum): string =
     return "unknown"
     
 proc makeCommitPath*(platform, hash: string): string =
-  return platform / "nimrod_" & hash.substr(0, 11) # 11 Chars.
+  return platform / "nim_" & hash.substr(0, 11) # 11 Chars.
 
 type
   TFlag = enum
diff --git a/tests/ccgbugs/tmissinginit.nim b/tests/ccgbugs/tmissinginit.nim
new file mode 100644
index 000000000..d440608e6
--- /dev/null
+++ b/tests/ccgbugs/tmissinginit.nim
@@ -0,0 +1,30 @@
+discard """
+  output: '''0
+0
+0
+0
+[[a = nil,
+b = nil]]'''
+"""
+
+# bug #1475
+type
+  Crash = object
+    a: string
+    b: seq[string]
+
+proc initCrash(): Crash = discard
+
+proc test() =
+  var blongname = [initCrash()]
+  echo repr(blongname)
+
+# bug #1434
+proc bug: array[1, int] = discard
+
+echo bug()[0]
+echo bug()[0]
+echo bug()[0]
+echo bug()[0]
+
+when isMainModule: test()
diff --git a/tests/clearmsg/mb.nim b/tests/clearmsg/mb.nim
new file mode 100644
index 000000000..2d21e2396
--- /dev/null
+++ b/tests/clearmsg/mb.nim
@@ -0,0 +1,2 @@
+type
+  typ* = distinct string
diff --git a/tests/clearmsg/mc.nim b/tests/clearmsg/mc.nim
new file mode 100644
index 000000000..79d7431df
--- /dev/null
+++ b/tests/clearmsg/mc.nim
@@ -0,0 +1,3 @@
+
+type
+  typ* = distinct int
diff --git a/tests/clearmsg/ta.nim b/tests/clearmsg/ta.nim
new file mode 100644
index 000000000..b21522d12
--- /dev/null
+++ b/tests/clearmsg/ta.nim
@@ -0,0 +1,12 @@
+discard """
+  errormsg: 'type mismatch: got (mc.typ)'
+  line: 12
+"""
+
+import mb, mc
+
+proc test(testing: mb.typ) =
+  discard
+
+var s: mc.typ
+test(s)
diff --git a/tests/closure/tclosure.nim b/tests/closure/tclosure.nim
index 764aaa97d..445a99b6d 100644
--- a/tests/closure/tclosure.nim
+++ b/tests/closure/tclosure.nim
@@ -36,7 +36,7 @@ myData.each do (x: int):
 
 type
   ITest = tuple[
-    setter: proc(v: Int),
+    setter: proc(v: int),
     getter: proc(): int]
 
 proc getInterf(): ITest =
diff --git a/tests/closure/tclosurebug2.nim b/tests/closure/tclosurebug2.nim
index ec4f0045b..12e4e3509 100644
--- a/tests/closure/tclosurebug2.nim
+++ b/tests/closure/tclosurebug2.nim
@@ -38,17 +38,17 @@ template rawInsertImpl() {.dirty.} =
   data[h].val = val
   data[h].slot = seFilled
 
-template AddImpl() {.dirty.} =
-  if mustRehash(len(t.data), t.counter): Enlarge(t)
-  RawInsert(t, t.data, key, val)
+template addImpl() {.dirty.} =
+  if mustRehash(len(t.data), t.counter): enlarge(t)
+  rawInsert(t, t.data, key, val)
   inc(t.counter)
 
-template PutImpl() {.dirty.} =
-  var index = RawGet(t, key)
+template putImpl() {.dirty.} =
+  var index = rawGet(t, key)
   if index >= 0:
     t.data[index].val = val
   else:
-    AddImpl()
+    addImpl()
 
 proc len*[A, B](t: TOrderedTable[A, B]): int {.inline.} =
   ## returns the number of keys in `t`.
@@ -89,7 +89,7 @@ iterator mvalues*[A, B](t: var TOrderedTable[A, B]): var B =
   forAllOrderedPairs:
     yield t.data[h].val
 
-proc RawGet[A, B](t: TOrderedTable[A, B], key: A): int =
+proc rawGet[A, B](t: TOrderedTable[A, B], key: A): int =
   rawGetImpl()
 
 proc `[]`*[A, B](t: TOrderedTable[A, B], key: A): B =
@@ -97,21 +97,21 @@ proc `[]`*[A, B](t: TOrderedTable[A, B], key: A): B =
   ## default empty value for the type `B` is returned
   ## and no exception is raised. One can check with ``hasKey`` whether the key
   ## exists.
-  var index = RawGet(t, key)
+  var index = rawGet(t, key)
   if index >= 0: result = t.data[index].val
 
 proc mget*[A, B](t: var TOrderedTable[A, B], key: A): var B =
   ## retrieves the value at ``t[key]``. The value can be modified.
   ## If `key` is not in `t`, the ``EInvalidKey`` exception is raised.
-  var index = RawGet(t, key)
+  var index = rawGet(t, key)
   if index >= 0: result = t.data[index].val
-  else: raise newException(EInvalidKey, "key not found: " & $key)
+  else: raise newException(KeyError, "key not found: " & $key)
 
 proc hasKey*[A, B](t: TOrderedTable[A, B], key: A): bool =
   ## returns true iff `key` is in the table `t`.
   result = rawGet(t, key) >= 0
 
-proc RawInsert[A, B](t: var TOrderedTable[A, B], 
+proc rawInsert[A, B](t: var TOrderedTable[A, B], 
                      data: var TOrderedKeyValuePairSeq[A, B],
                      key: A, val: B) =
   rawInsertImpl()
@@ -120,7 +120,7 @@ proc RawInsert[A, B](t: var TOrderedTable[A, B],
   if t.last >= 0: data[t.last].next = h
   t.last = h
 
-proc Enlarge[A, B](t: var TOrderedTable[A, B]) =
+proc enlarge[A, B](t: var TOrderedTable[A, B]) =
   var n: TOrderedKeyValuePairSeq[A, B]
   newSeq(n, len(t.data) * growthFactor)
   var h = t.first
@@ -129,7 +129,7 @@ proc Enlarge[A, B](t: var TOrderedTable[A, B]) =
   while h >= 0:
     var nxt = t.data[h].next
     if t.data[h].slot == seFilled: 
-      RawInsert(t, n, t.data[h].key, t.data[h].val)
+      rawInsert(t, n, t.data[h].key, t.data[h].val)
     h = nxt
   swap(t.data, n)
 
@@ -139,7 +139,7 @@ proc `[]=`*[A, B](t: var TOrderedTable[A, B], key: A, val: B) =
 
 proc add*[A, B](t: var TOrderedTable[A, B], key: A, val: B) =
   ## puts a new (key, value)-pair into `t` even if ``t[key]`` already exists.
-  AddImpl()
+  addImpl()
 
 proc initOrderedTable*[A, B](initialSize=64): TOrderedTable[A, B] =
   ## creates a new ordered hash table that is empty. `initialSize` needs to be
diff --git a/tests/closure/tforum.nim b/tests/closure/tforum.nim
new file mode 100644
index 000000000..4f6a16ff7
--- /dev/null
+++ b/tests/closure/tforum.nim
@@ -0,0 +1,44 @@
+discard """
+  output: '''asdas
+processClient end
+false
+'''
+"""
+
+type
+  PAsyncHttpServer = ref object
+    value: string
+  PFutureBase = ref object
+    callback: proc () {.closure.}
+    value: string
+    failed: bool
+
+proc accept(server: PAsyncHttpServer): PFutureBase =
+  new(result)
+  result.callback = proc () =
+    discard
+  server.value = "hahaha"
+
+proc processClient(): PFutureBase =
+  new(result)
+
+proc serve(server: PAsyncHttpServer): PFutureBase =
+  iterator serveIter(): PFutureBase {.closure.} =
+    echo server.value
+    while true:
+      var acceptAddrFut = server.accept()
+      yield acceptAddrFut
+      var fut = acceptAddrFut.value
+
+      var f = processClient()
+      f.callback =
+        proc () =
+          echo("processClient end")
+          echo(f.failed)
+      yield f
+  var x = serveIter
+  for i in 0 .. 1:
+    result = x()
+    result.callback()
+
+discard serve(PAsyncHttpServer(value: "asdas"))
diff --git a/tests/concurrency/tnodeadlocks.nim b/tests/concurrency/tnodeadlocks.nim
index d44196039..7a3eedbc2 100644
--- a/tests/concurrency/tnodeadlocks.nim
+++ b/tests/concurrency/tnodeadlocks.nim
@@ -1,6 +1,6 @@
 discard """
   outputsub: "101"
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
+  cmd: "nim $target --hints:on --threads:on $options $file"
 """
 
 import os, locks
@@ -20,46 +20,46 @@ proc threadFunc(interval: tuple[a, b: int]) {.thread.} =
     when nodeadlocks:
       case i mod 6
       of 0:
-        Acquire(L) # lock stdout
-        Acquire(M)
-        Acquire(N)
+        acquire(L) # lock stdout
+        acquire(M)
+        acquire(N)
       of 1:
-        Acquire(L)
-        Acquire(N) # lock stdout
-        Acquire(M)
+        acquire(L)
+        acquire(N) # lock stdout
+        acquire(M)
       of 2:
-        Acquire(M)
-        Acquire(L)
-        Acquire(N)
+        acquire(M)
+        acquire(L)
+        acquire(N)
       of 3:
-        Acquire(M)
-        Acquire(N)
-        Acquire(L)
+        acquire(M)
+        acquire(N)
+        acquire(L)
       of 4:
-        Acquire(N)
-        Acquire(M)
-        Acquire(L)
+        acquire(N)
+        acquire(M)
+        acquire(L)
       of 5:
-        Acquire(N)
-        Acquire(L)
-        Acquire(M)
+        acquire(N)
+        acquire(L)
+        acquire(M)
       else: assert false
     else:
-      Acquire(L) # lock stdout
-      Acquire(M)
+      acquire(L) # lock stdout
+      acquire(M)
       
     echo i
     os.sleep(10)
     when nodeadlocks:
       echo "deadlocks prevented: ", deadlocksPrevented
     when nodeadlocks:
-      Release(N)
-    Release(M)
-    Release(L)
+      release(N)
+    release(M)
+    release(L)
 
-InitLock(L)
-InitLock(M)
-InitLock(N)
+initLock(L)
+initLock(M)
+initLock(N)
 
 proc main =
   for i in 0..high(thr):
diff --git a/tests/constr/tconstr1.nim b/tests/constr/tconstr1.nim
index cb6594213..45e303554 100644
--- a/tests/constr/tconstr1.nim
+++ b/tests/constr/tconstr1.nim
@@ -10,7 +10,7 @@ type
     s: string,

     x, y: int,

     z: float,

-    chars: set[Char]]

+    chars: set[char]]

 

 proc testSem =

   var

diff --git a/tests/controlflow/tbreak.nim b/tests/controlflow/tbreak.nim
new file mode 100644
index 000000000..7deab4caf
--- /dev/null
+++ b/tests/controlflow/tbreak.nim
@@ -0,0 +1,44 @@
+discard """
+  output: '''10
+true true
+true false
+false true
+false false'''
+"""
+
+var
+  x = false
+  run = true
+
+while run:
+  run = false
+  block myblock:
+    if true:
+      break
+    echo "leaving myblock"
+  x = true
+doAssert(x)
+
+# bug #1418
+iterator foo: int =
+  for x in 0 .. 9:
+    for y in [10,20,30,40,50,60,70,80,90]:
+      yield x + y
+
+for p in foo():
+  echo p
+  break
+
+iterator permutations: int =
+  yield 10
+
+for p in permutations():
+  break
+
+# regression:
+proc main =
+  for x in [true, false]:
+    for y in [true, false]:
+      echo x, " ", y
+
+main()
diff --git a/tests/converter/tconvert.nim b/tests/converter/tconvert.nim
index a8ddcf119..a37140234 100644
--- a/tests/converter/tconvert.nim
+++ b/tests/converter/tconvert.nim
@@ -1,5 +1,3 @@
-import
-  Cairo
 
 converter FloatConversion64(x: int): float64 = return toFloat(x)
 converter FloatConversion32(x: int): float32 = return toFloat(x)
@@ -7,34 +5,10 @@ converter FloatConversionPlain(x: int): float = return toFloat(x)
 
 const width = 500
 const height = 500
-const outFile = "CairoTest.png"
-
-var surface = Cairo.ImageSurfaceCreate(CAIRO.FORMAT_RGB24, width, height)
-var ç = Cairo.Create(surface)
-
-ç.SetSourceRGB(1, 1, 1)
-ç.Paint()
-
-ç.SetLineWidth(10)
-ç.SetLineCap(CAIRO.LINE_CAP_ROUND)
-
-const count = 12
-var winc = width / count
-var hinc = width / count
-for i in 1 .. count-1:
-  var amount = i / count
-  ç.SetSourceRGB(0, 1 - amount, amount)
-  ç.MoveTo(i * winc, hinc)
-  ç.LineTo(width - i * winc, height - hinc)
-  ç.Stroke()
-
-  ç.SetSourceRGB(1 - amount, 0, amount)
-  ç.MoveTo(winc, i * hinc)
-  ç.LineTo(width - winc, height - i * hinc)
-  ç.Stroke()
-
-echo(surface.WriteToPNG(outFile))
-surface.Destroy()
+
+proc ImageSurfaceCreate(w, h: float) = discard
+
+ImageSurfaceCreate(width, height)
 
 type TFoo = object
 
diff --git a/tests/destructor/tdestructor.nim b/tests/destructor/tdestructor.nim
index e5236aaab..f0ea3c5c6 100644
--- a/tests/destructor/tdestructor.nim
+++ b/tests/destructor/tdestructor.nim
@@ -55,14 +55,14 @@ type
         q: TMyGeneric3[TMyObj, int, int]
       r: string
 
-proc destruct(o: var TMyObj) {.destructor.} =
+proc destroy(o: var TMyObj) {.override.} =
   if o.p != nil: dealloc o.p
   echo "myobj destroyed"
 
-proc destroy(o: var TMyGeneric1) {.destructor.} =
+proc destroy(o: var TMyGeneric1) {.override.} =
   echo "mygeneric1 destroyed"
 
-proc destroy[A, B](o: var TMyGeneric2[A, B]) {.destructor.} =
+proc destroy[A, B](o: var TMyGeneric2[A, B]) {.override.} =
   echo "mygeneric2 destroyed"
 
 proc open: TMyObj =
diff --git a/tests/destructor/tdestructor2.nim b/tests/destructor/tdestructor2.nim
index da9192a3f..a5b62860c 100644
--- a/tests/destructor/tdestructor2.nim
+++ b/tests/destructor/tdestructor2.nim
@@ -8,7 +8,7 @@ type
     x, y: int
     p: pointer
     
-proc destruct(o: var TMyObj) {.destructor.} =
+proc destroy(o: var TMyObj) {.override.} =
   if o.p != nil: dealloc o.p
   
 proc open: TMyObj =
diff --git a/tests/destructor/tdictdestruct.nim b/tests/destructor/tdictdestruct.nim
index b7043f7b7..17ded4853 100644
--- a/tests/destructor/tdictdestruct.nim
+++ b/tests/destructor/tdictdestruct.nim
@@ -11,7 +11,7 @@ proc fakeNew[T](x: var ref T, destroy: proc (a: ref T) {.nimcall.}) =
 proc destroyDict[TK, TV](a: PDict[TK, TV]) =
     return
 proc newDict[TK, TV](a: TK, b: TV): PDict[TK, TV] =
-    Fakenew(result, destroyDict[TK, TV])
+    fakeNew(result, destroyDict[TK, TV])
 
 # Problem: destroyDict is not instantiated when newDict is instantiated!    
 
diff --git a/tests/dll/client.nim b/tests/dll/client.nim
index 45fa8f639..d535e8750 100644
--- a/tests/dll/client.nim
+++ b/tests/dll/client.nim
@@ -1,6 +1,6 @@
 discard """
   output: "Done"
-  cmd: "nimrod $target --debuginfo --hints:on --define:useNimRtl $options $file"
+  cmd: "nim $target --debuginfo --hints:on --define:useNimRtl $options $file"
 """
 
 type
diff --git a/tests/dll/server.nim b/tests/dll/server.nim
index b2fac9ecc..df3223444 100644
--- a/tests/dll/server.nim
+++ b/tests/dll/server.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod $target --debuginfo --hints:on --define:useNimRtl --app:lib $options $file"
+  cmd: "nim $target --debuginfo --hints:on --define:useNimRtl --app:lib $options $file"
 """
 
 type
diff --git a/tests/effects/teffects1.nim b/tests/effects/teffects1.nim
index 0014cff46..e32096b57 100644
--- a/tests/effects/teffects1.nim
+++ b/tests/effects/teffects1.nim
@@ -1,7 +1,7 @@
 discard """
-  line: 1913
+  line: 2170
   file: "system.nim"
-  errormsg: "can raise an unlisted exception: ref EIO"
+  errormsg: "can raise an unlisted exception: ref IOError"
 """
 
 type
@@ -9,13 +9,13 @@ type
   TObjB = object of TObj
     a, b, c: string
   
-  EIO2 = ref object of EIO
+  IO2Error = ref object of IOError
   
 proc forw: int {. .}
   
-proc lier(): int {.raises: [EIO2].} =
+proc lier(): int {.raises: [IO2Error].} =
   writeln stdout, "arg"
 
 proc forw: int =
-  raise newException(EIO, "arg")
+  raise newException(IOError, "arg")
 
diff --git a/tests/effects/teffects2.nim b/tests/effects/teffects2.nim
index 7e6b17c36..89ad16edc 100644
--- a/tests/effects/teffects2.nim
+++ b/tests/effects/teffects2.nim
@@ -1,6 +1,6 @@
 discard """
   line: 19
-  errormsg: "can raise an unlisted exception: ref EIO"
+  errormsg: "can raise an unlisted exception: ref IOError"
 """
 
 type
@@ -8,13 +8,13 @@ type
   TObjB = object of TObj
     a, b, c: string
   
-  EIO2 = ref object of EIO
+  EIO2 = ref object of IOError
   
 proc forw: int {.raises: [].}
 
-proc lier(): int {.raises: [EIO].} =
+proc lier(): int {.raises: [IOError].} =
   writeln stdout, "arg"
 
 proc forw: int =
-  raise newException(EIO, "arg")
+  raise newException(IOError, "arg")
 
diff --git a/tests/effects/tgcsafe.nim b/tests/effects/tgcsafe.nim
new file mode 100644
index 000000000..0d5109439
--- /dev/null
+++ b/tests/effects/tgcsafe.nim
@@ -0,0 +1,17 @@
+discard """
+  line: 16
+  errormsg: "'mainUnsafe' is not GC-safe"
+  cmd: "nim $target --hints:on --threads:on $options $file"
+"""
+
+proc mymap(x: proc ()) =
+  x()
+
+var
+  myglob: string
+
+proc mainSafe() {.gcsafe.} =
+  mymap(proc () = echo "foo")
+
+proc mainUnsafe() {.gcsafe.} =
+  mymap(proc () = myglob = "bar"; echo "foo", myglob)
diff --git a/tests/enum/tenumitems.nim b/tests/enum/tenumitems.nim
index b6eee5ba8..b92cff6bf 100644
--- a/tests/enum/tenumitems.nim
+++ b/tests/enum/tenumitems.nim
@@ -1,6 +1,6 @@
 discard """
   line: 7
-  errormsg: "type mismatch"
+  errormsg: "expression 'items' cannot be called"
 """
 
 type a = enum b,c,d
diff --git a/tests/exception/texcpt1.nim b/tests/exception/texcpt1.nim
index ec74c9470..50a95eeec 100644
--- a/tests/exception/texcpt1.nim
+++ b/tests/exception/texcpt1.nim
@@ -2,8 +2,8 @@ discard """
   outputsub: "-6"
 """
 type
-  ESomething = object of E_Base
-  ESomeOtherErr = object of E_Base
+  ESomething = object of Exception
+  ESomeOtherErr = object of Exception
 
 proc genErrors(s: string) =
   if s == "error!":
diff --git a/tests/exception/tnestedreturn.nim b/tests/exception/tnestedreturn.nim
index b9f7843f6..591638f0e 100644
--- a/tests/exception/tnestedreturn.nim
+++ b/tests/exception/tnestedreturn.nim
@@ -10,8 +10,8 @@ proc test1() =
   finally: echo "A"
 
   try:
-    raise newException(EOS, "Problem")
-  except EOS:
+    raise newException(OSError, "Problem")
+  except OSError:
     return
 
 test1()
@@ -23,7 +23,7 @@ proc test2() =
 
   try:
     return
-  except EOS:
+  except OSError:
     discard
 
 test2()
@@ -31,8 +31,8 @@ test2()
 proc test3() =
   try:
     try:
-      raise newException(EOS, "Problem")
-    except EOS:
+      raise newException(OSError, "Problem")
+    except OSError:
       return
   finally:
     echo "C"
diff --git a/tests/exception/tnestedreturn2.nim b/tests/exception/tnestedreturn2.nim
index 14a2dab92..4bd2d535d 100644
--- a/tests/exception/tnestedreturn2.nim
+++ b/tests/exception/tnestedreturn2.nim
@@ -1,14 +1,14 @@
 discard """
-  file: "tnestedreturn.nim"
-  outputsub: "Error: unhandled exception: Problem [EOS]"
+  file: "tnestedreturn2.nim"
+  outputsub: "Error: unhandled exception: Problem [OSError]"
   exitcode: "1"
 """
 
 proc test4() =
   try:
     try:
-      raise newException(EOS, "Problem")
-    except EOS:
+      raise newException(OSError, "Problem")
+    except OSError:
       return
   finally:
     discard
@@ -17,4 +17,4 @@ proc test4() =
 # but could cause segmentation fault if 
 # exceptions are not handled properly.
 test4()
-raise newException(EOS, "Problem")
+raise newException(OSError, "Problem")
diff --git a/tests/exception/tunhandledexc.nim b/tests/exception/tunhandledexc.nim
index f24881aef..aa9d61236 100644
--- a/tests/exception/tunhandledexc.nim
+++ b/tests/exception/tunhandledexc.nim
@@ -4,8 +4,8 @@ discard """
   exitcode: "1"
 """
 type
-  ESomething = object of E_Base
-  ESomeOtherErr = object of E_Base
+  ESomething = object of Exception
+  ESomeOtherErr = object of Exception
 
 proc genErrors(s: string) =
   if s == "error!":
@@ -13,7 +13,7 @@ proc genErrors(s: string) =
   else:
     raise newException(EsomeotherErr, "bla")
 
-when True:
+when true:
   try:
     genErrors("errssor!")
   except ESomething:
diff --git a/tests/exception/twrongexc.nim b/tests/exception/twrongexc.nim
index 755f7d979..4e921b8a3 100644
--- a/tests/exception/twrongexc.nim
+++ b/tests/exception/twrongexc.nim
@@ -1,11 +1,11 @@
 discard """
   file: "twrongexc.nim"
-  outputsub: "Error: unhandled exception:  [EInvalidValue]"
+  outputsub: "Error: unhandled exception:  [ValueError]"
   exitcode: "1"
 """
 try:
-  raise newException(EInvalidValue, "")
-except EOverflow:
+  raise newException(ValueError, "")
+except OverflowError:
   echo("Error caught")
   
 
diff --git a/tests/float/tfloat1.nim b/tests/float/tfloat1.nim
index f290fdb57..ed99260ea 100644
--- a/tests/float/tfloat1.nim
+++ b/tests/float/tfloat1.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tfloat1.nim"
-  outputsub: "Error: unhandled exception: FPU operation caused an overflow [EFloatOverflow]"
+  outputsub: "Error: unhandled exception: FPU operation caused an overflow [FloatOverflowError]"
   exitcode: "1"
 """
 # Test new floating point exceptions
@@ -10,6 +10,6 @@ discard """
 var x = 0.8
 var y = 0.0
 
-echo x / y #OUT Error: unhandled exception: FPU operation caused an overflow [EFloatOverflow]
+echo x / y #OUT Error: unhandled exception: FPU operation caused an overflow
 
 
diff --git a/tests/float/tfloat2.nim b/tests/float/tfloat2.nim
index 51883674f..b84120fba 100644
--- a/tests/float/tfloat2.nim
+++ b/tests/float/tfloat2.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tfloat2.nim"
-  outputsub: "Error: unhandled exception: FPU operation caused a NaN result [EFloatInvalidOp]"
+  outputsub: "Error: unhandled exception: FPU operation caused a NaN result [FloatInvalidOpError]"
   exitcode: "1"
 """
 # Test new floating point exceptions
@@ -10,6 +10,6 @@ discard """
 var x = 0.0
 var y = 0.0
 
-echo x / y #OUT Error: unhandled exception: FPU operation caused a NaN result [EFloatInvalidOp]
+echo x / y #OUT Error: unhandled exception: FPU operation caused a NaN result
 
 
diff --git a/tests/float/tfloat3.nim b/tests/float/tfloat3.nim
index 4382dd3ed..a3f5a2fc7 100644
--- a/tests/float/tfloat3.nim
+++ b/tests/float/tfloat3.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tfloat3.nim"
-  output: "Nimrod    3.4368930843, 0.3299290698 C double: 3.4368930843, 0.3299290698"
+  output: "Nim    3.4368930843, 0.3299290698 C double: 3.4368930843, 0.3299290698"
 """
 
 import math, strutils
@@ -13,11 +13,11 @@ void printFloats(void) {
 }
 """.}
 
-proc c_printf(frmt: CString) {.importc: "printf", header: "<stdio.h>", varargs.}
+proc c_printf(frmt: cstring) {.importc: "printf", header: "<stdio.h>", varargs.}
 proc printFloats {.importc, nodecl.}
 
 var x: float = 1.234567890123456789
-c_printf("Nimrod    %.10f, %.10f ", exp(x), cos(x))
+c_printf("Nim    %.10f, %.10f ", exp(x), cos(x))
 printFloats()
 
 
diff --git a/tests/gc/bintrees.nim b/tests/gc/bintrees.nim
index 3f8acee1e..5b65bb437 100644
--- a/tests/gc/bintrees.nim
+++ b/tests/gc/bintrees.nim
@@ -1,4 +1,4 @@
-# -*- nimrod -*-
+# -*- nim -*-
 
 import os, strutils
 
diff --git a/tests/gc/closureleak.nim b/tests/gc/closureleak.nim
index 669e05227..38ee1250a 100644
--- a/tests/gc/closureleak.nim
+++ b/tests/gc/closureleak.nim
@@ -29,5 +29,5 @@ for i in 0 .. <10:
   f.func = proc = 
     echo f.id
 
-gc_fullcollect()
+GC_fullcollect()
 echo alive_foos.len <= 3
diff --git a/tests/generics/mdotlookup.nim b/tests/generics/mdotlookup.nim
index 7a5e0ccbf..0c4d0c87c 100644
--- a/tests/generics/mdotlookup.nim
+++ b/tests/generics/mdotlookup.nim
@@ -6,3 +6,11 @@ type MyObj = object
 proc foo*(b: any) =
   var o: MyObj
   echo b.baz, " ", o.x.baz, " ", b.baz()
+
+import sets
+
+var intset = initSet[int]()
+
+proc func*[T](a: T) =
+  if a in intset: echo("true")
+  else: echo("false")
diff --git a/tests/generics/tcan_alias_generic.nim b/tests/generics/tcan_alias_generic.nim
index e90bdc6d2..780a47841 100644
--- a/tests/generics/tcan_alias_generic.nim
+++ b/tests/generics/tcan_alias_generic.nim
@@ -1,5 +1,5 @@
 ##
-## can_alias_generic Nimrod Module
+## can_alias_generic Nim Module
 ##
 ## Created by Eric Doughty-Papassideris on 2011-02-16.
 ## Copyright (c) 2011 FWA. All rights reserved.
diff --git a/tests/generics/tcan_alias_specialised_generic.nim b/tests/generics/tcan_alias_specialised_generic.nim
index 8d4a29abd..a737d3580 100644
--- a/tests/generics/tcan_alias_specialised_generic.nim
+++ b/tests/generics/tcan_alias_specialised_generic.nim
@@ -3,7 +3,7 @@ discard """
 """
 
 ##
-## can_alias_specialised_generic Nimrod Module
+## can_alias_specialised_generic Nim Module
 ##
 ## Created by Eric Doughty-Papassideris on 2011-02-16.
 ## Copyright (c) 2011 FWA. All rights reserved.
diff --git a/tests/generics/tcan_inherit_generic.nim b/tests/generics/tcan_inherit_generic.nim
index a6f4d946b..ce2b6452f 100644
--- a/tests/generics/tcan_inherit_generic.nim
+++ b/tests/generics/tcan_inherit_generic.nim
@@ -1,5 +1,5 @@
 ##
-## can_inherit_generic Nimrod Module
+## can_inherit_generic Nim Module
 ##
 ## Created by Eric Doughty-Papassideris on 2011-02-16.
 ## Copyright (c) 2011 FWA. All rights reserved.
diff --git a/tests/generics/tcan_specialise_generic.nim b/tests/generics/tcan_specialise_generic.nim
index 64d5f56e3..c510910e8 100644
--- a/tests/generics/tcan_specialise_generic.nim
+++ b/tests/generics/tcan_specialise_generic.nim
@@ -1,5 +1,5 @@
 ##
-## can_specialise_generic Nimrod Module
+## can_specialise_generic Nim Module
 ##
 ## Created by Eric Doughty-Papassideris on 2011-02-16.
 ## Copyright (c) 2011 FWA. All rights reserved.
diff --git a/tests/generics/tdotlookup.nim b/tests/generics/tdotlookup.nim
index b886cd8c9..d3deca7fc 100644
--- a/tests/generics/tdotlookup.nim
+++ b/tests/generics/tdotlookup.nim
@@ -1,7 +1,10 @@
 discard """
-  output: '''5 5 5'''
+  output: '''5 5 5
+false'''
 """
 
 import mdotlookup
 
 foo(7)
+# bug #1444
+func(4)
diff --git a/tests/generics/texplicitgeneric1.nim b/tests/generics/texplicitgeneric1.nim
index 6cca71ac0..d54044368 100644
--- a/tests/generics/texplicitgeneric1.nim
+++ b/tests/generics/texplicitgeneric1.nim
@@ -18,7 +18,7 @@ proc newDict*[TKey, TValue](): PDict[TKey, TValue] =
 proc add*[TKey, TValue](d: PDict[TKey, TValue], k: TKey, v: TValue) = 
   d.data.add((k, v))
   
-iterator items*[Tkey, tValue](d: PDict[TKey, TValue]): tuple[k: TKey, 
+iterator items*[Tkey, TValue](d: PDict[TKey, TValue]): tuple[k: TKey, 
                v: TValue] = 
   for k, v in items(d.data): yield (k, v)
     
diff --git a/tests/generics/tgeneric0.nim b/tests/generics/tgeneric0.nim
index 9292b729f..45450ccca 100644
--- a/tests/generics/tgeneric0.nim
+++ b/tests/generics/tgeneric0.nim
@@ -1,9 +1,9 @@
 import tables
 
 type
-  TX = TTable[string, int]
+  TX = Table[string, int]
 
-proc foo(models: seq[TTable[string, float]]): seq[float] =
+proc foo(models: seq[Table[string, float]]): seq[float] =
   result = @[]
   for model in models.items:
     result.add model["foobar"]
@@ -16,4 +16,12 @@ proc foo[T](p: TType[T, range[0..1]]) =
 proc foo[T](p: TType[T, range[0..2]]) =
   echo "bar"
 
+#bug #1366
+
+proc reversed(x) =
+  for i in countdown(x.low, x.high):
+    echo i
+
+reversed(@[-19, 7, -4, 6])
+
 
diff --git a/tests/generics/tgeneric2.nim b/tests/generics/tgeneric2.nim
index 56803017a..21eb4693e 100644
--- a/tests/generics/tgeneric2.nim
+++ b/tests/generics/tgeneric2.nim
@@ -1,7 +1,7 @@
 import tables
 
 type
-  TX = TTable[string, int]
+  TX = Table[string, int]
 
 proc foo(models: seq[TX]): seq[int] =
   result = @[]
@@ -9,7 +9,7 @@ proc foo(models: seq[TX]): seq[int] =
     result.add model["foobar"]
 
 type
-  obj = object
-    field: TTable[string, string]
+  Obj = object
+    field: Table[string, string]
 var t: Obj
 discard initTable[type(t.field), string]()
diff --git a/tests/generics/tgeneric3.nim b/tests/generics/tgeneric3.nim
index 963d0ccfb..6fb929efb 100644
--- a/tests/generics/tgeneric3.nim
+++ b/tests/generics/tgeneric3.nim
@@ -7,17 +7,17 @@ type
         value: D
         node: PNode[T,D]
         when not (D is string):
-          val_set: Bool
+          val_set: bool
 
   TItems[T,D] = seq[ref TItem[T,D]]
   TNode {.acyclic, pure, final, shallow.} [T,D] = object
         slots: TItems[T,D]
         left: PNode[T,D]
-        count: Int32
+        count: int32
 
 
   RPath[T,D] = tuple[
-    Xi: Int,
+    Xi: int,
     Nd: PNode[T,D] ]
 
 const
@@ -29,41 +29,41 @@ const
   cLenMax = 128
   cCenter = cLenMax div 2
 
-proc len[T,D] (n:PNode[T,D]): Int {.inline.} =
-  return n.Count
+proc len[T,D] (n:PNode[T,D]): int {.inline.} =
+  return n.count
 
-proc clean[T: TOrdinal|TNumber](o: var T) {.inline.} = discard
+proc clean[T: SomeOrdinal|SomeNumber](o: var T) {.inline.} = discard
 
 proc clean[T: string|seq](o: var T) {.inline.} =
   o = nil
 
 proc clean[T,D] (o: ref TItem[T,D]) {.inline.} = 
   when (D is string) :
-    o.Value = nil
+    o.value = nil
   else :
     o.val_set = false
 
-proc isClean[T,D] (it: ref TItem[T,D]): Bool {.inline.} = 
+proc isClean[T,D] (it: ref TItem[T,D]): bool {.inline.} = 
   when (D is string) :
-    return it.Value == nil
+    return it.value == nil
   else :
     return not it.val_set
 
-proc isClean[T,D] (n: PNode[T,D], x: Int): Bool {.inline.} = 
-  when (D is string) :
-    return n.slots[x].Value == nil
-  else :
+proc isClean[T,D](n: PNode[T,D], x: int): bool {.inline.} = 
+  when (D is string):
+    return n.slots[x].value == nil
+  else:
     return not n.slots[x].val_set
 
-proc setItem[T,D] (AKey: T, AValue: D, ANode: PNode[T,D]): ref TItem[T,D] {.inline.} = 
-  new(Result)
-  Result.Key = AKey
-  Result.Value = AValue
-  Result.Node = ANode
+proc setItem[T,D](Akey: T, Avalue: D, ANode: PNode[T,D]): ref TItem[T,D] {.inline.} = 
+  new(result)
+  result.key = Akey
+  result.value = Avalue
+  result.node = ANode
   when not (D is string) :
-    Result.val_set = true
+    result.val_set = true
 
-proc cmp[T:Int8|Int16|Int32|Int64|Int] (a,b: T): T {.inline.} =
+proc cmp[T:int8|int16|int32|int64|int] (a,b: T): T {.inline.} =
   return a-b
 
 template binSearchImpl *(docmp: expr) {.immediate.} =
@@ -76,41 +76,41 @@ template binSearchImpl *(docmp: expr) {.immediate.} =
     if SW < 0: result = I + 1 
     else:
       H = I - 1
-      if SW == 0 : bFound = True
+      if SW == 0 : bFound = true
   if bFound: inc(result)
   else: result = - result
 
-proc bSearch[T,D] (haystack: PNode[T,D], needle:T): Int {.inline.} =
+proc bSearch[T,D] (haystack: PNode[T,D], needle:T): int {.inline.} =
   binSearchImpl(haystack.slots[I].key.cmp(needle))
 
-proc DeleteItem[T,D] (n: PNode[T,D], x: Int): PNode[T,D] {.inline.} =
+proc DeleteItem[T,D] (n: PNode[T,D], x: int): PNode[T,D] {.inline.} =
   var w = n.slots[x]
-  if w.Node != nil : 
+  if w.node != nil : 
     clean(w)
     return n
-  dec(n.Count)
-  if n.Count > 0 :
-    for i in countup(x, n.Count -1) : n.slots[i] = n.slots[i + 1]
-    n.slots[n.Count] = nil
-    case n.Count 
+  dec(n.count)
+  if n.count > 0 :
+    for i in countup(x, n.count -1) : n.slots[i] = n.slots[i + 1]
+    n.slots[n.count] = nil
+    case n.count 
     of cLen1 : setLen(n.slots, cLen1)
     of cLen2 : setLen(n.slots, cLen2)
     of cLen3 : setLen(n.slots, cLen3)
     of cLenCenter : setLen(n.slots, cLenCenter)
     of cLen4 : setLen(n.slots, cLen4)
     else: discard
-    Result = n
+    result = n
 
   else :
-    Result = n.Left
+    result = n.left
     n.slots = nil
-    n.Left = nil
+    n.left = nil
 
-proc InternalDelete[T,D] (ANode: PNode[T,D], key: T, AValue: var D): PNode[T,D] = 
+proc internalDelete[T,D] (ANode: PNode[T,D], key: T, Avalue: var D): PNode[T,D] = 
   var Path: array[0..20, RPath[T,D]]
   var n = ANode
-  Result = n
-  clean(AValue)
+  result = n
+  clean(Avalue)
   var h = 0
   while n != nil:
     var x = bSearch(n, key)
@@ -119,17 +119,17 @@ proc InternalDelete[T,D] (ANode: PNode[T,D], key: T, AValue: var D): PNode[T,D]
       Path[h].Xi = - x
       inc(h)
       if x == 0 :
-        n = n.Left
+        n = n.left
       else :
         x = (-x) -1
-        if x < n.Count :
-          n = n.slots[x].Node
+        if x < n.count :
+          n = n.slots[x].node
         else :
           n = nil
     else : 
       dec(x)
       if isClean(n, x) : return
-      AValue = n.slots[x].Value
+      Avalue = n.slots[x].value
       var n2 = DeleteItem(n, x)
       dec(h)
       while (n2 != n) and (h >=0) :
@@ -139,30 +139,30 @@ proc InternalDelete[T,D] (ANode: PNode[T,D], key: T, AValue: var D): PNode[T,D]
         if x >= 0 :
           if (n == nil) and isClean(w.Nd, x) :
             n = w.Nd
-            n.slots[x].Node = nil 
+            n.slots[x].node = nil 
             n2 = DeleteItem(n, x)
           else :
-            w.Nd.slots[x].Node = n
+            w.Nd.slots[x].node = n
             return
         else :
-          w.Nd.Left = n
+          w.Nd.left = n
           return
         dec(h)
       if h < 0:
-        Result = n2
+        result = n2
       return
 
-proc InternalFind[T,D] (n: PNode[T,D], key: T): ref TItem[T,D] {.inline.} =
+proc internalFind[T,D] (n: PNode[T,D], key: T): ref TItem[T,D] {.inline.} =
   var wn = n
   while wn != nil :
     var x = bSearch(wn, key)
     if x <= 0 :
       if x == 0 :
-        wn = wn.Left
+        wn = wn.left
       else :
         x = (-x) -1
-        if x < wn.Count : 
-          wn = wn.slots[x].Node
+        if x < wn.count : 
+          wn = wn.slots[x].node
         else :
           return nil
 
@@ -171,32 +171,32 @@ proc InternalFind[T,D] (n: PNode[T,D], key: T): ref TItem[T,D] {.inline.} =
   return nil
 
 proc traceTree[T,D](root: PNode[T,D]) =
-  proc traceX(x: Int) = 
+  proc traceX(x: int) = 
     write stdout, "("
     write stdout, x
     write stdout, ") "
 
   proc traceEl(el: ref TItem[T,D]) =
     write stdout, " key: "
-    write stdout, el.Key
+    write stdout, el.key
     write stdout, " value: "
-    write stdout, el.Value
+    write stdout, el.value
 
 
   proc traceln(space: string) =
     writeln stdout, ""
     write stdout, space
 
-  proc doTrace(n: PNode[T,D], level: Int) =
+  proc doTrace(n: PNode[T,D], level: int) =
     var space = repeatChar(2 * level)
     traceln(space)
     write stdout, "node: "
     if n == nil:
       writeln stdout, "is empty"
       return
-    write stdout, n.Count
+    write stdout, n.count
     write stdout, " elements: "
-    if n.Left != nil:
+    if n.left != nil:
       traceln(space)
       write stdout, "left: "
       doTrace(n.left, level +1)
@@ -204,188 +204,188 @@ proc traceTree[T,D](root: PNode[T,D]) =
       if el != nil and not isClean(el):
         traceln(space)
         traceX(i)
-        if i >= n.Count: 
+        if i >= n.count: 
           write stdout, "error "
         else:
           traceEl(el)
-          if el.Node != nil: doTrace(el.Node, level +1)
+          if el.node != nil: doTrace(el.node, level +1)
           else : write stdout, " empty "
-      elif i < n.Count :
+      elif i < n.count :
         traceln(space)
         traceX(i)
         write stdout, "clean: "
         when T is string :
-          if el.Key != nil: write stdout, el.Key
-        else : write stdout, el.Key
-        if el.Node != nil: doTrace(el.Node, level +1)
+          if el.key != nil: write stdout, el.key
+        else : write stdout, el.key
+        if el.node != nil: doTrace(el.node, level +1)
         else : write stdout, " empty "
     writeln stdout,""
 
   doTrace(root, 0)
 
-proc InsertItem[T,D](APath: RPath[T,D], ANode:PNode[T,D], AKey: T, AValue: D) =
+proc InsertItem[T,D](APath: RPath[T,D], ANode:PNode[T,D], Akey: T, Avalue: D) =
   var x = - APath.Xi
-  inc(APath.Nd.Count)
-  case APath.Nd.Count 
+  inc(APath.Nd.count)
+  case APath.Nd.count 
   of cLen1: setLen(APath.Nd.slots, cLen2)
   of cLen2: setLen(APath.Nd.slots, cLen3)
   of cLen3: setLen(APath.Nd.slots, cLenCenter)
   of cLenCenter: setLen(APath.Nd.slots, cLen4)
   of cLen4: setLen(APath.Nd.slots, cLenMax)
   else: discard
-  for i in countdown(APath.Nd.Count.int - 1, x + 1): shallowCopy(APath.Nd.slots[i], APath.Nd.slots[i - 1])
-  APath.Nd.slots[x] = setItem(AKey, AValue, ANode)
+  for i in countdown(APath.Nd.count.int - 1, x + 1): shallowCopy(APath.Nd.slots[i], APath.Nd.slots[i - 1])
+  APath.Nd.slots[x] = setItem(Akey, Avalue, ANode)
 
 
-proc SplitPage[T,D](n, left: PNode[T,D], xi: Int, AKey:var T, AValue:var D): PNode[T,D] =
-  var x = -Xi
+proc SplitPage[T,D](n, left: PNode[T,D], xi: int, Akey:var T, Avalue:var D): PNode[T,D] =
+  var x = -xi
   var it1: TItems[T,D]
   it1.newSeq(cLenCenter)
-  new(Result)
-  Result.slots.newSeq(cLenCenter)
-  Result.Count = cCenter
+  new(result)
+  result.slots.newSeq(cLenCenter)
+  result.count = cCenter
   if x == cCenter:
     for i in 0..cCenter -1: shallowCopy(it1[i], left.slots[i])
-    for i in 0..cCenter -1: shallowCopy(Result.slots[i], left.slots[cCenter + i])
-    Result.Left = n
+    for i in 0..cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
+    result.left = n
   else :
     if x < cCenter :
       for i in 0..x-1: shallowCopy(it1[i], left.slots[i])
-      it1[x] = setItem(AKey, AValue, n)
+      it1[x] = setItem(Akey, Avalue, n)
       for i in x+1 .. cCenter -1: shallowCopy(it1[i], left.slots[i-1])
       var w = left.slots[cCenter -1]
-      AKey = w.Key
-      AValue = w.Value
-      Result.Left = w.Node
-      for i in 0..cCenter -1: shallowCopy(Result.slots[i], left.slots[cCenter + i])
+      Akey = w.key
+      Avalue = w.value
+      result.left = w.node
+      for i in 0..cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
     else :
       for i in 0..cCenter -1: shallowCopy(it1[i], left.slots[i])
       x = x - (cCenter + 1)
-      for i in 0..x-1: shallowCopy(Result.slots[i], left.slots[cCenter + i + 1])
-      Result.slots[x] = setItem(AKey, AValue, n)
-      for i in x+1 .. cCenter -1: shallowCopy(Result.slots[i], left.slots[cCenter + i])
+      for i in 0..x-1: shallowCopy(result.slots[i], left.slots[cCenter + i + 1])
+      result.slots[x] = setItem(Akey, Avalue, n)
+      for i in x+1 .. cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
       var w = left.slots[cCenter]
-      AKey = w.Key
-      AValue = w.Value
-      Result.Left = w.Node
-  left.Count = cCenter
+      Akey = w.key
+      Avalue = w.value
+      result.left = w.node
+  left.count = cCenter
   shallowCopy(left.slots, it1)
 
 
-proc InternalPut[T,D](ANode: ref TNode[T,D], AKey: T, AValue: D, OldValue: var D): ref TNode[T,D] =
-  var h: Int
+proc internalPut[T,D](ANode: ref TNode[T,D], Akey: T, Avalue: D, Oldvalue: var D): ref TNode[T,D] =
+  var h: int
   var Path: array[0..30, RPath[T,D]]
   var left: PNode[T,D]
   var n = ANode
 
 
-  Result = ANode
+  result = ANode
   h = 0
   while n != nil:
-    var x = bSearch[T,D](n, AKey)
+    var x = bSearch[T,D](n, Akey)
     if x <= 0 :
       Path[h].Nd = n
       Path[h].Xi = x
       inc(h) 
       if x == 0 :
-        n = n.Left
+        n = n.left
       else :
         x = (-x) -1
-        if x < n.Count :
-          n = n.slots[x].Node
+        if x < n.count :
+          n = n.slots[x].node
         else :
           n = nil
     else :
       var w = n.slots[x - 1]
-      OldValue = w.Value
-      w.Value = AValue
+      Oldvalue = w.value
+      w.value = Avalue
       return
 
   dec(h)
   left = nil
-  var lKey = AKey
-  var lValue = AValue
+  var lkey = Akey
+  var lvalue = Avalue
   while h >= 0 :
-    if Path[h].Nd.Count < cLenMax :
-      InsertItem(Path[h], n, lKey, lValue)
+    if Path[h].Nd.count < cLenMax :
+      InsertItem(Path[h], n, lkey, lvalue)
       return
     else :
       left = Path[h].Nd
-      n = SplitPage(n, left, Path[h].Xi, lKey, lValue)
+      n = SplitPage(n, left, Path[h].Xi, lkey, lvalue)
     dec(h)
 
-  new(Result)
-  Result.slots.newSeq(cLen1)
-  Result.Count = 1
-  Result.Left = left
-  Result.slots[0] = setItem(lKey, lValue, n)
+  new(result)
+  result.slots.newSeq(cLen1)
+  result.count = 1
+  result.left = left
+  result.slots[0] = setItem(lkey, lvalue, n)
 
 
 proc CleanTree[T,D](n: PNode[T,D]): PNode[T,D] =
-  if n.Left != nil :
-    n.Left = CleanTree(n.Left)
-  for i in 0 .. n.Count - 1 :
+  if n.left != nil :
+    n.left = CleanTree(n.left)
+  for i in 0 .. n.count - 1 :
     var w = n.slots[i]
-    if w.Node != nil :
-        w.Node = CleanTree(w.Node)
-    clean(w.Value)
-    clean(w.Key)
+    if w.node != nil :
+        w.node = CleanTree(w.node)
+    clean(w.value)
+    clean(w.key)
   n.slots = nil
   return nil
 
 
 proc VisitAllNodes[T,D](n: PNode[T,D], visit: proc(n: PNode[T,D]): PNode[T,D] {.closure.} ): PNode[T,D] =
   if n != nil :
-    if n.Left != nil :
-      n.Left = VisitAllNodes(n.Left, visit)    
-    for i in 0 .. n.Count - 1 :
+    if n.left != nil :
+      n.left = VisitAllNodes(n.left, visit)    
+    for i in 0 .. n.count - 1 :
       var w = n.slots[i]
-      if w.Node != nil :
-        w.Node = VisitAllNodes(w.Node, visit)    
+      if w.node != nil :
+        w.node = VisitAllNodes(w.node, visit)    
     return visit(n)
   return nil
 
 proc VisitAllNodes[T,D](n: PNode[T,D], visit: proc(n: PNode[T,D]) {.closure.} ) =
   if n != nil:
-    if n.Left != nil :
-      VisitAllNodes(n.Left, visit)    
-    for i in 0 .. n.Count - 1 :
+    if n.left != nil :
+      VisitAllNodes(n.left, visit)    
+    for i in 0 .. n.count - 1 :
       var w = n.slots[i]
-      if w.Node != nil :
-        VisitAllNodes(w.Node, visit)    
+      if w.node != nil :
+        VisitAllNodes(w.node, visit)    
     visit(n)
 
-proc VisitAll[T,D](n: PNode[T,D], visit: proc(AKey: T, AValue: D) {.closure.} ) =
+proc VisitAll[T,D](n: PNode[T,D], visit: proc(Akey: T, Avalue: D) {.closure.} ) =
   if n != nil:
-    if n.Left != nil :
-      VisitAll(n.Left, visit) 
-    for i in 0 .. n.Count - 1 :
+    if n.left != nil :
+      VisitAll(n.left, visit) 
+    for i in 0 .. n.count - 1 :
       var w = n.slots[i]
       if not w.isClean :
-        visit(w.Key, w.Value)   
-      if w.Node != nil :
-        VisitAll(w.Node, visit)    
+        visit(w.key, w.value)   
+      if w.node != nil :
+        VisitAll(w.node, visit)    
 
-proc VisitAll[T,D](n: PNode[T,D], visit: proc(AKey: T, AValue: var D):Bool {.closure.} ): PNode[T,D] =
+proc VisitAll[T,D](n: PNode[T,D], visit: proc(Akey: T, Avalue: var D):bool {.closure.} ): PNode[T,D] =
   if n != nil:
-    var n1 = n.Left
+    var n1 = n.left
     if n1 != nil :
       var n2 = VisitAll(n1, visit) 
       if n1 != n2 :
-        n.Left = n2
+        n.left = n2
     var i = 0
-    while i < n.Count :
+    while i < n.count :
       var w = n.slots[i]
       if not w.isClean :
-        if visit(w.Key, w.Value) :
-          Result = DeleteItem(n, i)
-          if Result == nil : return
+        if visit(w.key, w.value) :
+          result = DeleteItem(n, i)
+          if result == nil : return
           dec(i)
-      n1 = w.Node
+      n1 = w.node
       if n1 != nil :
         var n2 = VisitAll(n1, visit)
         if n1 != n2 :
-          w.Node = n2
+          w.node = n2
       inc(i)
   return n
 
@@ -396,20 +396,20 @@ iterator keys* [T,D] (n: PNode[T,D]): T =
     var nd = n
     var i = -1
     while true : 
-      if i < nd.Count :
+      if i < nd.count :
         Path[level].Nd = nd
         Path[level].Xi = i
         if i < 0 :
-          if nd.Left != nil :
-            nd = nd.Left
+          if nd.left != nil :
+            nd = nd.left
             inc(level)
           else : inc(i)
         else :
           var w = nd.slots[i]
           if not w.isClean() :
-            yield w.Key
-          if w.Node != nil :
-            nd = w.Node
+            yield w.key
+          if w.node != nil :
+            nd = w.node
             i = -1
             inc(level)
           else : inc(i)
@@ -424,22 +424,22 @@ iterator keys* [T,D] (n: PNode[T,D]): T =
 when isMainModule:
 
   proc test() =
-    var oldValue: Int
-    var root = InternalPut[int, int](nil, 312, 312, oldValue)
-    var someOtherRoot = InternalPut[string, int](nil, "312", 312, oldValue)
-    var it1 = InternalFind(root, 312)
-    echo it1.Value
+    var oldvalue: int
+    var root = internalPut[int, int](nil, 312, 312, oldvalue)
+    var someOtherRoot = internalPut[string, int](nil, "312", 312, oldvalue)
+    var it1 = internalFind(root, 312)
+    echo it1.value
 
     for i in 1..1_000_000:
-      root = InternalPut(root, i, i, oldValue)
+      root = internalPut(root, i, i, oldvalue)
 
     var cnt = 0
-    oldValue = -1
+    oldvalue = -1
     when true : # code compiles, when this or the other when is switched to false
       for k in root.keys :
-        if k <= oldValue :
+        if k <= oldvalue :
           echo k
-        oldValue = k
+        oldvalue = k
         inc(cnt)
       echo cnt
     when true :
@@ -450,21 +450,21 @@ when isMainModule:
         root = VisitAll(root, proc(key: int, value: var int): bool =
           return key mod 2 == 0 )
       cnt = 0
-      oldValue = -1
+      oldvalue = -1
       VisitAll(root, proc(key: int, value: int) {.closure.} =
-        if key <= oldValue :
+        if key <= oldvalue :
           echo key
-        oldValue = key
+        oldvalue = key
         inc(cnt) )
       echo cnt
       root = VisitAll(root, proc(key: int, value: var int): bool =
         return key mod 2 != 0 )
       cnt = 0
-      oldValue = -1
+      oldvalue = -1
       VisitAll(root, proc(key: int, value: int) {.closure.} =
-        if key <= oldValue :
+        if key <= oldvalue :
           echo "error ", key
-        oldValue = key
+        oldvalue = key
         inc(cnt) )
       echo cnt
       #traceTree(root)
diff --git a/tests/generics/tgenericprocvar.nim b/tests/generics/tgenericprocvar.nim
index 1eba81fec..dca9c8538 100644
--- a/tests/generics/tgenericprocvar.nim
+++ b/tests/generics/tgenericprocvar.nim
@@ -25,7 +25,7 @@ proc filter[T,D](data: seq[T], env:D, pred: TFilterProc[T,D]): seq[T] =
   for e in data:
     if pred(e, env): result.add(e)
 
-proc predTest(item: int, value: int): Bool =
+proc predTest(item: int, value: int): bool =
   return item <= value
 
 proc test(data: seq[int], value: int): seq[int] =
diff --git a/tests/generics/tgenericvariant.nim b/tests/generics/tgenericvariant.nim
index 51d01355a..0150cda8d 100644
--- a/tests/generics/tgenericvariant.nim
+++ b/tests/generics/tgenericvariant.nim
@@ -1,15 +1,15 @@
 type  
   TMaybe[T] = object
-    case empty: Bool
-    of False: value: T
+    case empty: bool
+    of false: value: T
     else: nil
 
 proc Just*[T](val: T): TMaybe[T] =
-  result.empty = False
+  result.empty = false
   result.value = val
 
 proc Nothing[T](): TMaybe[T] =
-  result.empty = True
+  result.empty = true
 
 proc safeReadLine(): TMaybe[string] =
   var r = stdin.readLine()
diff --git a/tests/generics/tinferredgenericprocs.nim b/tests/generics/tinferredgenericprocs.nim
index ac445fd32..12adfe965 100644
--- a/tests/generics/tinferredgenericprocs.nim
+++ b/tests/generics/tinferredgenericprocs.nim
@@ -5,7 +5,7 @@ discard """
 3'''
 """
 
-# https://github.com/Araq/Nimrod/issues/797
+# https://github.com/Araq/Nim/issues/797
 proc foo[T](s:T):string = $s
 
 type IntStringProc = proc(x: int): string 
diff --git a/tests/generics/tmetafield.nim b/tests/generics/tmetafield.nim
index e1bc43ce3..bbfca7e3c 100644
--- a/tests/generics/tmetafield.nim
+++ b/tests/generics/tmetafield.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod check $options $file"
+  cmd: "nim check $options $file"
   errormsg: "'proc' is not a concrete type"
   errormsg: "'Foo' is not a concrete type."
   errormsg: "invalid type: 'TBaseMed'"
diff --git a/tests/generics/tspecialised_is_equivalent.nim b/tests/generics/tspecialised_is_equivalent.nim
index 60b976e90..ace562862 100644
--- a/tests/generics/tspecialised_is_equivalent.nim
+++ b/tests/generics/tspecialised_is_equivalent.nim
@@ -1,5 +1,5 @@
 ##
-## specialised_is_equivalent Nimrod Module
+## specialised_is_equivalent Nim Module
 ##
 ## Created by Eric Doughty-Papassideris on 2011-02-16.
 ## Copyright (c) 2011 FWA. All rights reserved.
diff --git a/tests/generics/tthread_generic.nim b/tests/generics/tthread_generic.nim
index 7109bba18..5887f7db3 100644
--- a/tests/generics/tthread_generic.nim
+++ b/tests/generics/tthread_generic.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
+  cmd: "nim $target --hints:on --threads:on $options $file"
 """
 
 type
diff --git a/tests/init/tuninit1.nim b/tests/init/tuninit1.nim
index 2a994b187..57443a7d3 100644
--- a/tests/init/tuninit1.nim
+++ b/tests/init/tuninit1.nim
@@ -1,5 +1,5 @@
 discard """
-  errormsg: "'y' might not have been initialized"
+  msg: "Warning: 'y' might not have been initialized [Uninit]"
   line:34
 """
 
diff --git a/tests/iter/titer2.nim b/tests/iter/titer2.nim
index 71c7327a7..5c407ebe4 100644
--- a/tests/iter/titer2.nim
+++ b/tests/iter/titer2.nim
@@ -1,6 +1,6 @@
 discard """
   output: '''true'''
-  cmd: "nimrod $target --gc:none --hints:on --warnings:off $options $file"
+  cmd: "nim $target --gc:none --hints:on --warnings:off $options $file"
 """
 
 import hashes
@@ -44,8 +44,8 @@ block Test1:
   # a non-generic iterator!
 
   var t = initTable[int, string]()
-  for k, v in t.pairs: nil
-  for k, v in t.pairs: nil
+  for k, v in t.pairs: discard
+  for k, v in t.pairs: discard
 
 echo "true"
 
diff --git a/tests/iter/titer6.nim b/tests/iter/titer6.nim
index dceace0e0..2abfa0860 100644
--- a/tests/iter/titer6.nim
+++ b/tests/iter/titer6.nim
@@ -21,13 +21,13 @@ iterator tokenize2(s: string, seps: set[char] = Whitespace): tuple[
         yield (substr(s, i, j-1), false)
     i = j
 
-for word, isSep in tokenize2("ta da", whiteSpace):
+for word, isSep in tokenize2("ta da", WhiteSpace):
   var titer2TestVar = 0 
   stdout.write(titer2TestVar)
 
 proc wordWrap2(s: string, maxLineWidth = 80, 
                splitLongWords = true,
-               seps: set[char] = whitespace,
+               seps: set[char] = Whitespace,
                newLine = "\n"): string  = 
   result = ""
   for word, isSep in tokenize2(s, seps):
diff --git a/tests/iter/titer8.nim b/tests/iter/titer8.nim
index af0e643f1..3bc01122f 100644
--- a/tests/iter/titer8.nim
+++ b/tests/iter/titer8.nim
@@ -47,7 +47,7 @@ iterator count3(): int {.closure.} =
   yield 2
   yield 3
 
-for word, isSep in tokenize2("ta da", whiteSpace):
+for word, isSep in tokenize2("ta da", WhiteSpace):
   if not isSep:
     stdout.write(word)
 echo ""
@@ -56,7 +56,7 @@ proc inProc() =
   for c in count3():
     echo c
   
-  for word, isSep in tokenize2("ta da", whiteSpace):
+  for word, isSep in tokenize2("ta da", WhiteSpace):
     stdout.write(word)
 
   for c in count3():
diff --git a/tests/js.nim b/tests/js.nim
index becc17834..e5e432366 100644
--- a/tests/js.nim
+++ b/tests/js.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod js --hints:on $options $file"
+  cmd: "nim js --hints:on $options $file"
 """
 
 # This file tests the JavaScript generator
diff --git a/tests/let/tlet.nim b/tests/let/tlet.nim
index 3d36432fb..6703ba254 100644
--- a/tests/let/tlet.nim
+++ b/tests/let/tlet.nim
@@ -3,9 +3,9 @@ discard """
   errormsg: "'name' cannot be assigned to"
 """
 
-Echo("What's your name? ")
+echo("What's your name? ")
 let name = readLine(stdin)
 while name == "":
-  Echo("Please tell me your name: ")
+  echo("Please tell me your name: ")
   name = readLine(stdin)
 
diff --git a/tests/lookups/tkoeniglookup.nim b/tests/lookups/tkoeniglookup.nim
index e6f5c0112..6c42798ae 100644
--- a/tests/lookups/tkoeniglookup.nim
+++ b/tests/lookups/tkoeniglookup.nim
@@ -2,7 +2,7 @@ discard """
   output: '''x: 0 y: 0'''
 """
 
-proc ToString*[T](x: T): string = return $x
+proc toString*[T](x: T): string = return $x
 
 
 type
diff --git a/tests/macros/tdebugstmt.nim b/tests/macros/tdebugstmt.nim
index 865dc436a..00c55ccd8 100644
--- a/tests/macros/tdebugstmt.nim
+++ b/tests/macros/tdebugstmt.nim
@@ -7,7 +7,7 @@ x: some string'''
 import macros
 
 macro debug(n: varargs[expr]): stmt =
-  # `n` is a Nimrod AST that contains the whole macro invocation
+  # `n` is a Nim AST that contains the whole macro invocation
   # this macro returns a list of statements:
   result = newNimNode(nnkStmtList, n)
   # iterate over any argument that is passed to this macro:
diff --git a/tests/manyloc/argument_parser/argument_parser.nim b/tests/manyloc/argument_parser/argument_parser.nim
index 6f4fb650e..fec00dbf8 100644
--- a/tests/manyloc/argument_parser/argument_parser.nim
+++ b/tests/manyloc/argument_parser/argument_parser.nim
@@ -1,7 +1,7 @@
 ## Command line parsing module for Nimrod.
 ##
-## `Nimrod <http://nimrod-code.org>`_ provides the `parseopt module
-## <http://nimrod-code.org/parseopt.html>`_ to parse options from the
+## `Nim <http://nim-code.org>`_ provides the `parseopt module
+## <http://nim-code.org/parseopt.html>`_ to parse options from the
 ## commandline. This module tries to provide functionality to prevent you from
 ## writing commandline parsing and let you concentrate on providing the best
 ## possible experience for your users.
@@ -76,14 +76,14 @@ type
     case kind*: Tparam_kind
     of PK_EMPTY: nil
     of PK_INT: int_val*: int
-    of PK_BIGGEST_INT: big_int_val*: biggestInt
+    of PK_BIGGEST_INT: big_int_val*: BiggestInt
     of PK_FLOAT: float_val*: float
-    of PK_BIGGEST_FLOAT: big_float_val*: biggestFloat
+    of PK_BIGGEST_FLOAT: big_float_val*: BiggestFloat
     of PK_STRING: str_val*: string
     of PK_BOOL: bool_val*: bool
     of PK_HELP: nil
 
-  Tcommandline_results* = object of TObject ## \
+  Tcommandline_results* = object of RootObj ## \
     ## Contains the results of the parsing.
     ##
     ## Usually this is the result of the parse() call, but you can inherit from
@@ -97,7 +97,7 @@ type
     ## the first name variant for all options to avoid you repeating the test
     ## with different keys.
     positional_parameters*: seq[Tparsed_parameter]
-    options*: TOrderedTable[string, Tparsed_parameter]
+    options*: OrderedTable[string, Tparsed_parameter]
 
 
 # - Tparam_kind procs
@@ -169,7 +169,7 @@ template new_parsed_parameter*(tkind: Tparam_kind, expr): Tparsed_parameter =
   ## assign the variable to, and thus you reduce code clutter and may use this
   ## to initialise single assignments variables in `let` blocks. Example:
   ##
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##   let
   ##     parsed_param1 = new_parsed_parameter(PK_FLOAT, 3.41)
   ##     parsed_param2 = new_parsed_parameter(PK_BIGGEST_INT, 2358123 * 23123)
@@ -193,7 +193,7 @@ template new_parsed_parameter*(tkind: Tparam_kind, expr): Tparsed_parameter =
 
 proc init*(param: var Tcommandline_results;
     positional_parameters: seq[Tparsed_parameter] = @[];
-    options: TOrderedTable[string, Tparsed_parameter] =
+    options: OrderedTable[string, Tparsed_parameter] =
       initOrderedTable[string, Tparsed_parameter](4)) =
   ## Initialization helper with default parameters.
   param.positional_parameters = positional_parameters
@@ -231,12 +231,12 @@ template run_custom_proc(parsed_parameter: Tparsed_parameter,
   ## Pass in the string of the parameter triggering the call. If the
   if not custom_validator.isNil:
     except:
-      raise_or_quit(EInvalidValue, ("Couldn't run custom proc for " &
+      raise_or_quit(ValueError, ("Couldn't run custom proc for " &
         "parameter $1:\n$2" % [escape(parameter),
         getCurrentExceptionMsg()]))
     let message = custom_validator(parameter, parsed_parameter)
     if not message.isNil and message.len > 0:
-      raise_or_quit(EInvalidValue, ("Failed to validate value for " &
+      raise_or_quit(ValueError, ("Failed to validate value for " &
         "parameter $1:\n$2" % [escape(parameter), message]))
 
 
@@ -246,50 +246,50 @@ proc parse_parameter(quit_on_failure: bool, param, value: string,
   ##
   ## Pass the parameter string which requires a value and the text the user
   ## passed in for it. It will be parsed according to the param_kind. This proc
-  ## will raise (EInvalidValue, EOverflow) if something can't be parsed.
+  ## will raise (ValueError, EOverflow) if something can't be parsed.
   result.kind = param_kind
   case param_kind:
   of PK_INT:
     try: result.int_val = value.parseInt
-    except EOverflow:
-      raise_or_quit(EOverflow, ("parameter $1 requires an " &
+    except OverflowError:
+      raise_or_quit(OverflowError, ("parameter $1 requires an " &
         "integer, but $2 is too large to fit into one") % [param,
         escape(value)])
-    except EInvalidValue:
-      raise_or_quit(EInvalidValue, ("parameter $1 requires an " &
+    except ValueError:
+      raise_or_quit(ValueError, ("parameter $1 requires an " &
         "integer, but $2 can't be parsed into one") % [param, escape(value)])
   of PK_STRING:
     result.str_val = value
   of PK_FLOAT:
     try: result.float_val = value.parseFloat
-    except EInvalidValue:
-      raise_or_quit(EInvalidValue, ("parameter $1 requires a " &
+    except ValueError:
+      raise_or_quit(ValueError, ("parameter $1 requires a " &
         "float, but $2 can't be parsed into one") % [param, escape(value)])
   of PK_BOOL:
     try: result.bool_val = value.parseBool
-    except EInvalidValue:
-      raise_or_quit(EInvalidValue, ("parameter $1 requires a " &
+    except ValueError:
+      raise_or_quit(ValueError, ("parameter $1 requires a " &
         "boolean, but $2 can't be parsed into one. Valid values are: " &
         "y, yes, true, 1, on, n, no, false, 0, off") % [param, escape(value)])
   of PK_BIGGEST_INT:
     try:
       let parsed_len = parseBiggestInt(value, result.big_int_val)
       if value.len != parsed_len or parsed_len < 1:
-        raise_or_quit(EInvalidValue, ("parameter $1 requires an " &
+        raise_or_quit(ValueError, ("parameter $1 requires an " &
           "integer, but $2 can't be parsed completely into one") % [
           param, escape(value)])
-    except EInvalidValue:
-      raise_or_quit(EInvalidValue, ("parameter $1 requires an " &
+    except ValueError:
+      raise_or_quit(ValueError, ("parameter $1 requires an " &
         "integer, but $2 can't be parsed into one") % [param, escape(value)])
   of PK_BIGGEST_FLOAT:
     try:
       let parsed_len = parseBiggestFloat(value, result.big_float_val)
       if value.len != parsed_len or parsed_len < 1:
-        raise_or_quit(EInvalidValue, ("parameter $1 requires a " &
+        raise_or_quit(ValueError, ("parameter $1 requires a " &
           "float, but $2 can't be parsed completely into one") % [
           param, escape(value)])
-    except EInvalidValue:
-      raise_or_quit(EInvalidValue, ("parameter $1 requires a " &
+    except ValueError:
+      raise_or_quit(ValueError, ("parameter $1 requires a " &
         "float, but $2 can't be parsed into one") % [param, escape(value)])
   of PK_EMPTY:
     discard
@@ -298,15 +298,15 @@ proc parse_parameter(quit_on_failure: bool, param, value: string,
 
 
 template build_specification_lookup():
-    TOrderedTable[string, ptr Tparameter_specification] =
+    OrderedTable[string, ptr Tparameter_specification] =
   ## Returns the table used to keep pointers to all of the specifications.
-  var result {.gensym.}: TOrderedTable[string, ptr Tparameter_specification]
+  var result {.gensym.}: OrderedTable[string, ptr Tparameter_specification]
   result = initOrderedTable[string, ptr Tparameter_specification](
     nextPowerOfTwo(expected.len))
   for i in 0..expected.len-1:
     for param_to_detect in expected[i].names:
       if result.hasKey(param_to_detect):
-        raise_or_quit(EInvalidKey,
+        raise_or_quit(KeyError,
           "Parameter $1 repeated in input specification" % param_to_detect)
       else:
         result[param_to_detect] = addr(expected[i])
@@ -344,7 +344,7 @@ proc parse*(expected: seq[Tparameter_specification] = @[],
   ##
   ## If there is any kind of error and quit_on_failure is true, the quit proc
   ## will be called with a user error message. If quit_on_failure is false
-  ## errors will raise exceptions (usually EInvalidValue or EOverflow) instead
+  ## errors will raise exceptions (usually ValueError or EOverflow) instead
   ## for you to catch and handle.
 
   assert type_of_positional_parameters != PK_EMPTY and
@@ -359,7 +359,7 @@ proc parse*(expected: seq[Tparameter_specification] = @[],
   # Prepare the input parameter list, maybe get it from the OS if not available.
   var args = args
   if args == nil:
-    let total_params = ParamCount()
+    let total_params = paramCount()
     #echo "Got no explicit args, retrieving from OS. Count: ", total_params
     newSeq(args, total_params)
     for i in 0..total_params - 1:
@@ -387,7 +387,7 @@ proc parse*(expected: seq[Tparameter_specification] = @[],
           if param.consumes == PK_HELP:
             echo_help(expected, type_of_positional_parameters,
               bad_prefixes, end_of_options)
-            raise_or_quit(EInvalidKey, "")
+            raise_or_quit(KeyError, "")
 
           if param.consumes != PK_EMPTY:
             if i + 1 < args.len:
@@ -396,14 +396,14 @@ proc parse*(expected: seq[Tparameter_specification] = @[],
               run_custom_proc(parsed, param.custom_validator, arg)
               i += 1
             else:
-              raise_or_quit(EInvalidValue, ("parameter $1 requires a " &
+              raise_or_quit(ValueError, ("parameter $1 requires a " &
                 "value, but none was provided") % [arg])
           result.options[param.names[0]] = parsed
           break adding_positional_parameter
         else:
           for bad_prefix in bad_prefixes:
             if arg.startsWith(bad_prefix):
-              raise_or_quit(EInvalidValue, ("Found ambiguos parameter '$1' " &
+              raise_or_quit(ValueError, ("Found ambiguos parameter '$1' " &
                 "starting with '$2', put '$3' as the previous parameter " &
                 "if you want to force it as positional parameter.") % [arg,
                 bad_prefix, end_of_options])
@@ -415,7 +415,7 @@ proc parse*(expected: seq[Tparameter_specification] = @[],
     i += 1
 
 
-proc toString(runes: seq[TRune]): string =
+proc toString(runes: seq[Rune]): string =
   result = ""
   for rune in runes: result.add(rune.toUTF8)
 
@@ -424,7 +424,7 @@ proc ascii_cmp(a, b: string): int =
   ## Comparison ignoring non ascii characters, for better switch sorting.
   let a = filterIt(toSeq(runes(a)), it.isAlpha())
   # Can't use filterIt twice, github bug #351.
-  let b = filter(toSeq(runes(b)), proc(x: TRune): bool = x.isAlpha())
+  let b = filter(toSeq(runes(b)), proc(x: Rune): bool = x.isAlpha())
   return system.cmp(toString(a), toString(b))
 
 
diff --git a/tests/manyloc/argument_parser/ex_wget.nimrod.cfg b/tests/manyloc/argument_parser/ex_wget.nim.cfg
index 4ea571d31..4ea571d31 100644
--- a/tests/manyloc/argument_parser/ex_wget.nimrod.cfg
+++ b/tests/manyloc/argument_parser/ex_wget.nim.cfg
diff --git a/tests/manyloc/keineschweine/dependencies/chipmunk/chipmunk.nim b/tests/manyloc/keineschweine/dependencies/chipmunk/chipmunk.nim
index d9c933939..d079a2e72 100644
--- a/tests/manyloc/keineschweine/dependencies/chipmunk/chipmunk.nim
+++ b/tests/manyloc/keineschweine/dependencies/chipmunk/chipmunk.nim
@@ -21,8 +21,8 @@
 
 const Lib = "libchipmunk.so.6.1.1"
 
-when defined(MoreNimrod):
-  {.hint: "MoreNimrod defined; some Chipmunk functions replaced in Nimrod".}
+when defined(MoreNim):
+  {.hint: "MoreNim defined; some Chipmunk functions replaced in Nim".}
 {.deadCodeElim: on.}
 from math import sqrt, sin, cos, arctan2
 when defined(CpUseFloat):
@@ -729,7 +729,7 @@ proc isRogue*(body: PBody): Bool {.inline.} =
 
 defGetter(PBody, CpFloat, m, Mass)
 #/ Set the mass of a body.
-when defined(MoreNimrod):
+when defined(MoreNim):
   defSetter(PBody, CpFloat, m, Mass)
 else:
   proc setMass*(body: PBody; m: CpFloat){.
@@ -738,7 +738,7 @@ else:
 #/ Get the moment of a body.
 defGetter(PBody, CpFloat, i, Moment)
 #/ Set the moment of a body.
-when defined(MoreNimrod):
+when defined(MoreNim):
   defSetter(PBody, CpFloat, i, Moment)
 else: 
   proc SetMoment*(body: PBody; i: CpFloat) {.
@@ -747,7 +747,7 @@ else:
 #/ Get the position of a body.
 defGetter(PBody, TVector, p, Pos)
 #/ Set the position of a body.
-when defined(MoreNimrod):
+when defined(MoreNim):
   defSetter(PBody, TVector, p, Pos)
 else:
   proc setPos*(body: PBody; pos: TVector) {.
@@ -1088,7 +1088,7 @@ proc getSegmentRadius*(shape: PShape): CpFloat {.
 #var VersionString*{.importc: "cpVersionString", dynlib: Lib.}: cstring
 #/ Calculate the moment of inertia for a circle.
 #/ @c r1 and @c r2 are the inner and outer diameters. A solid circle has an inner diameter of 0.
-when defined(MoreNimrod):
+when defined(MoreNim):
   proc momentForCircle*(m, r1, r2: CpFloat; offset: TVector): CpFloat {.cdecl.} =
     result = m * (0.5 * (r1 * r1 + r2 * r2) + lenSq(offset))
 else:
diff --git a/tests/manyloc/keineschweine/dependencies/nake/nake.nim b/tests/manyloc/keineschweine/dependencies/nake/nake.nim
index eade28c70..5828e400c 100644
--- a/tests/manyloc/keineschweine/dependencies/nake/nake.nim
+++ b/tests/manyloc/keineschweine/dependencies/nake/nake.nim
@@ -58,7 +58,7 @@ when isMainModule:
   for i in 1..paramCount():
     args.add paramStr(i)
     args.add " "
-  quit(shell("nimrod", "c", "-r", "nakefile.nim", args))
+  quit(shell("nim", "c", "-r", "nakefile.nim", args))
 else:
   addQuitProc(proc() {.noconv.} =
     var 
diff --git a/tests/manyloc/keineschweine/dependencies/nake/nakefile.nim b/tests/manyloc/keineschweine/dependencies/nake/nakefile.nim
index 24af63d10..bdf2139c9 100644
--- a/tests/manyloc/keineschweine/dependencies/nake/nakefile.nim
+++ b/tests/manyloc/keineschweine/dependencies/nake/nakefile.nim
@@ -2,7 +2,7 @@ import nake
 nakeImports
 
 task "install", "compile and install nake binary":
-  if shell("nimrod", "c", "nake") == 0:
+  if shell("nim", "c", "nake") == 0:
     let path = getEnv("PATH").split(PathSep)
     for index, dir in pairs(path):
       echo "  ", index, ". ", dir
diff --git a/tests/manyloc/keineschweine/enet_server/nakefile.nim b/tests/manyloc/keineschweine/enet_server/nakefile.nim
index 1ca93a340..3764c6271 100644
--- a/tests/manyloc/keineschweine/enet_server/nakefile.nim
+++ b/tests/manyloc/keineschweine/enet_server/nakefile.nim
@@ -5,9 +5,9 @@ const
   ServerDefines = "-d:NoSFML --forceBuild"
 
 task "server", "build the server":
-  if shell("nimrod", ServerDefines, "-r", "compile", "enet_server") != 0:
+  if shell("nim", ServerDefines, "-r", "compile", "enet_server") != 0:
     quit "Failed to build"
 task "gui", "build the server GUI mode":
-  if shell("nimrod", "--app:gui", ServerDefines, "-r", "compile", "enet_server") != 0:
+  if shell("nim", "--app:gui", ServerDefines, "-r", "compile", "enet_server") != 0:
     quit "Failed to build"
 
diff --git a/tests/manyloc/keineschweine/keineschweine.nimrod.cfg b/tests/manyloc/keineschweine/keineschweine.nim.cfg
index ca6c75f6e..ca6c75f6e 100644
--- a/tests/manyloc/keineschweine/keineschweine.nimrod.cfg
+++ b/tests/manyloc/keineschweine/keineschweine.nim.cfg
diff --git a/tests/manyloc/nake/nake.nim b/tests/manyloc/nake/nake.nim
index 4b1b35662..04b745003 100644
--- a/tests/manyloc/nake/nake.nim
+++ b/tests/manyloc/nake/nake.nim
@@ -58,7 +58,7 @@ when isMainModule:
   for i in 1..paramCount():
     args.add paramStr(i)
     args.add " "
-  quit(shell("nimrod", "c", "-r", "nakefile.nim", args))
+  quit(shell("nim", "c", "-r", "nakefile.nim", args))
 else:
   addQuitProc(proc() {.noconv.} =
     var 
diff --git a/tests/manyloc/nake/nakefile.nim b/tests/manyloc/nake/nakefile.nim
index 700f9ab49..d1d712964 100644
--- a/tests/manyloc/nake/nakefile.nim
+++ b/tests/manyloc/nake/nakefile.nim
@@ -9,16 +9,16 @@ const
   BinLibs = "http://dl.dropbox.com/u/37533467/libs-2012-09-12.zip"
   ExeName = "keineschweine"
   ServerDefines = "-d:NoSFML -d:NoChipmunk"
-  TestBuildDefines = "-d:escapeMenuTest -d:debugWeps -d:showFPS -d:moreNimrod -d:debugKeys -d:foo -d:recordMode --forceBuild"
+  TestBuildDefines = "-d:escapeMenuTest -d:debugWeps -d:showFPS -d:moreNim -d:debugKeys -d:foo -d:recordMode --forceBuild"
   ReleaseDefines = "-d:release --deadCodeElim:on"
   ReleaseTestDefines = "-d:debugWeps -d:debugKeys --forceBuild"
 
 task "testprofile", "..":
-  if shell("nimrod", TestBuildDefines, "--profiler:on", "--stacktrace:on", "compile", ExeName) == 0:
+  if shell("nim", TestBuildDefines, "--profiler:on", "--stacktrace:on", "compile", ExeName) == 0:
     shell "."/ExeName, "offline"
 
 task "test", "Build with test defines":
-  if shell("nimrod", TestBuildDefines, "compile", ExeName) != 0:
+  if shell("nim", TestBuildDefines, "compile", ExeName) != 0:
     quit "The build failed."
 
 task "testrun", "Build with test defines and run":
@@ -26,22 +26,22 @@ task "testrun", "Build with test defines and run":
   shell "."/ExeName
 
 task "test2", "Build release test build test release build":
-  if shell("nimrod", ReleaseDefines, ReleaseTestDefines, "compile", ExeName) == 0:
+  if shell("nim", ReleaseDefines, ReleaseTestDefines, "compile", ExeName) == 0:
     shell "."/ExeName
 
 discard """task "dirserver", "build the directory server":
   withDir "server":
-    if shell("nimrod", ServerDefines, "compile", "dirserver") != 0:
+    if shell("nim", ServerDefines, "compile", "dirserver") != 0:
       echo "Failed to build the dirserver"
       quit 1"""
 
 task "zoneserver", "build the zone server":
   withDir "enet_server":
-    if shell("nimrod", ServerDefines, "compile", "enet_server") != 0:
+    if shell("nim", ServerDefines, "compile", "enet_server") != 0:
       quit "Failed to build the zoneserver"
 task "zoneserver-gui", "build the zone server, with gui!":
   withDir "enet_server":
-    if shell("nimrod", ServerDefines, "--app:gui", "compile", "enet_server") != 0:
+    if shell("nim", ServerDefines, "--app:gui", "compile", "enet_server") != 0:
       quit "Failed to build the zoneserver"
 
 task "servers", "build the server and directory server":
@@ -54,7 +54,7 @@ task "all", "run SERVERS and TEST tasks":
   runTask "test"
 
 task "release", "release build":
-  let res = shell("nimrod", ReleaseDefines, "compile", ExeName)
+  let res = shell("nim", ReleaseDefines, "compile", ExeName)
   if res != 0:
     echo "The build failed."
     quit 1
@@ -84,7 +84,7 @@ task "download", "download game assets":
     skipAssets = false
     path = expandFilename("data")
   path.add DirSep
-  path.add(extractFilename(gameAssets))
+  path.add(extractFilename(GameAssets))
   if existsFile(path):
     echo "The file already exists\n",
       "[R]emove  [M]ove  [Q]uit  [S]kip    Source: ", GameAssets
@@ -92,7 +92,7 @@ task "download", "download game assets":
     of "r":
       removeFile path
     of "m":
-      moveFile path, path/../(extractFilename(gameAssets)&"-old")
+      moveFile path, path/../(extractFilename(GameAssets)&"-old")
     of "s":
       skipAssets = true
     else:
@@ -101,7 +101,7 @@ task "download", "download game assets":
     echo "Downloading from ", GameAssets
   if not skipAssets:
     echo "Downloading to ", path
-    downloadFile gameAssets, path
+    downloadFile GameAssets, path
     echo "Download finished"
   
     let targetDir = parentDir(parentDir(path))
diff --git a/tests/manyloc/nake/nakefile.nimrod.cfg b/tests/manyloc/nake/nakefile.nim.cfg
index 6f3e86fe6..6f3e86fe6 100644
--- a/tests/manyloc/nake/nakefile.nimrod.cfg
+++ b/tests/manyloc/nake/nakefile.nim.cfg
diff --git a/tests/manyloc/named_argument_bug/main.nimrod.cfg b/tests/manyloc/named_argument_bug/main.nim.cfg
index 27cf8e688..27cf8e688 100644
--- a/tests/manyloc/named_argument_bug/main.nimrod.cfg
+++ b/tests/manyloc/named_argument_bug/main.nim.cfg
diff --git a/tests/manyloc/named_argument_bug/tri_engine/math/vec.nim b/tests/manyloc/named_argument_bug/tri_engine/math/vec.nim
index a6b7bac63..3b57acb8e 100644
--- a/tests/manyloc/named_argument_bug/tri_engine/math/vec.nim
+++ b/tests/manyloc/named_argument_bug/tri_engine/math/vec.nim
@@ -3,10 +3,10 @@ import
   tri_engine/config
 
 type
-  TV2*[T:TNumber=TR] = array[0..1, T]
-  TV3*[T:TNumber=TR] = array[0..2, T]
-  TV4*[T:TNumber=TR] = array[0..3, T]
-  TVT*[T:TNumber=TR] = TV2|TV3|TV4
+  TV2*[T:SomeNumber=TR] = array[0..1, T]
+  TV3*[T:SomeNumber=TR] = array[0..2, T]
+  TV4*[T:SomeNumber=TR] = array[0..3, T]
+  TVT*[T:SomeNumber=TR] = TV2|TV3|TV4
   #TV2* = array[0..1, TR]
   #TV3* = array[0..2, TR]
   #TV4* = array[0..3, TR]
diff --git a/tests/manyloc/packages/noconflicts.nimrod.cfg b/tests/manyloc/packages/noconflicts.nim.cfg
index 88974ab8c..88974ab8c 100644
--- a/tests/manyloc/packages/noconflicts.nimrod.cfg
+++ b/tests/manyloc/packages/noconflicts.nim.cfg
diff --git a/tests/manyloc/standalone/barebone.nimrod.cfg b/tests/manyloc/standalone/barebone.nim.cfg
index 52ec64e3f..52ec64e3f 100644
--- a/tests/manyloc/standalone/barebone.nimrod.cfg
+++ b/tests/manyloc/standalone/barebone.nim.cfg
diff --git a/tests/metatype/tcompositetypeclasses.nim b/tests/metatype/tcompositetypeclasses.nim
index a2db73769..5ae93795f 100644
--- a/tests/metatype/tcompositetypeclasses.nim
+++ b/tests/metatype/tcompositetypeclasses.nim
@@ -33,7 +33,7 @@ accept baz(vbaz)
 reject baz(vnotbaz)
 reject bar(vfoo)
 
-# https://github.com/Araq/Nimrod/issues/517
+# https://github.com/Araq/Nim/issues/517
 type
   TVecT*[T] = array[0..1, T]|array[0..2, T]|array[0..3, T]
   TVec2* = array[0..1, float32]
@@ -43,7 +43,7 @@ proc f[T](a: TVecT[T], b: TVecT[T]): T = discard
 var x: float = f([0.0'f32, 0.0'f32], [0.0'f32, 0.0'f32])
 var y = f(TVec2([0.0'f32, 0.0'f32]), TVec2([0.0'f32, 0.0'f32]))
 
-# https://github.com/Araq/Nimrod/issues/602
+# https://github.com/Araq/Nim/issues/602
 type
   TTest = object
   TTest2* = object
diff --git a/tests/metatype/ttypeclasses.nim b/tests/metatype/ttypeclasses.nim
index 677229868..db9db7713 100644
--- a/tests/metatype/ttypeclasses.nim
+++ b/tests/metatype/ttypeclasses.nim
@@ -1,3 +1,18 @@
+discard """
+  output: '''12
+1xxx
+true0
+12
+testtest
+1010
+11string
+testtest1
+seq
+seq
+seq
+foo seq
+foo of numeric'''"""
+
 type
   TFoo[T] = object
     val: T
diff --git a/tests/metatype/typeclassinference.nim b/tests/metatype/typeclassinference.nim
index 72b5aca96..2ac037ac5 100644
--- a/tests/metatype/typeclassinference.nim
+++ b/tests/metatype/typeclassinference.nim
@@ -1,3 +1,8 @@
+discard """
+  errormsg: "type mismatch: got (string) but expected 'ptr'"
+  line: 20
+"""
+
 import typetraits
 
 type
@@ -8,3 +13,9 @@ var x = Vec([1, 2, 3])
 static:
   assert x.type.name == "Vec[static[int](3), int]"
 
+var str1: string = "hello, world!"
+var ptr1: ptr = addr(str1)
+
+var str2: string = "hello, world!"
+var ptr2: ptr = str2
+
diff --git a/tests/misc/t99bott.nim b/tests/misc/t99bott.nim
index d18cb0d5c..b3b30d296 100644
--- a/tests/misc/t99bott.nim
+++ b/tests/misc/t99bott.nim
@@ -6,7 +6,7 @@ discard """
 """
 ## 99 Bottles of Beer
 ## http://www.99-bottles-of-beer.net/
-## Nimrod version
+## Nim version
 
 ## Author: Philippe Lhoste <PhiLho(a)GMX.net> http://Phi.Lho.free.fr
 # 2012-11-25
diff --git a/tests/misc/tdllvar.nim b/tests/misc/tdllvar.nim
index ab767770c..5a31dfbbb 100644
--- a/tests/misc/tdllvar.nim
+++ b/tests/misc/tdllvar.nim
@@ -2,9 +2,9 @@ import os
 
 proc getDllName: string = 
   result = "mylib.dll"
-  if ExistsFile(result): return
+  if fileExists(result): return
   result = "mylib2.dll"
-  if ExistsFile(result): return
+  if fileExists(result): return
   quit("could not load dynamic library")
 
 proc myImport(s: cstring) {.cdecl, importc, dynlib: getDllName().}
diff --git a/tests/misc/temit.nim b/tests/misc/temit.nim
index ff8df0585..e2a9eaff1 100644
--- a/tests/misc/temit.nim
+++ b/tests/misc/temit.nim
@@ -10,8 +10,8 @@ static int cvariable = 420;
 """.}
 
 proc embedsC() = 
-  var nimrodVar = 89
-  {.emit: """printf("%d\n", cvariable + (int)`nimrodVar`);""".}
+  var nimVar = 89
+  {.emit: """printf("%d\n", cvariable + (int)`nimVar`);""".}
 
 embedsC()
 
diff --git a/tests/misc/teventemitter.nim b/tests/misc/teventemitter.nim
index 9ecf72ea2..bfcf95701 100644
--- a/tests/misc/teventemitter.nim
+++ b/tests/misc/teventemitter.nim
@@ -5,29 +5,29 @@ discard """
 import tables, lists
 
 type
-  TEventArgs = object of TObject
-  TEventEmitter = object of TObject
-    events*: TTable[string, TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}]]
+  EventArgs = object of RootObj
+  EventEmitter = object of RootObj
+    events*: Table[string, DoublyLinkedList[proc(e: EventArgs) {.nimcall.}]]
 
-proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) =
+proc emit*(emitter: EventEmitter, event: string, args: EventArgs) =
   for func in nodes(emitter.events[event]):
     func.value(args) #call function with args.
 
-proc on*(emitter: var TEventEmitter, event: string, 
-         func: proc(e: TEventArgs) {.nimcall.}) =
+proc on*(emitter: var EventEmitter, event: string, 
+         func: proc(e: EventArgs) {.nimcall.}) =
   if not hasKey(emitter.events, event):
-    var list: TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}]
+    var list: DoublyLinkedList[proc(e: EventArgs) {.nimcall.}]
     add(emitter.events, event, list) #if not, add it.
   append(emitter.events.mget(event), func)
 
-proc initEmitter(emitter: var TEventEmitter) =
+proc initEmitter(emitter: var EventEmitter) =
   emitter.events = initTable[string, 
-    TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}]]()
+    DoublyLinkedList[proc(e: EventArgs) {.nimcall.}]]()
 
 var 
-  ee: TEventEmitter
-  args: TEventArgs
+  ee: EventEmitter
+  args: EventArgs
 initEmitter(ee)
-ee.on("print", proc(e: TEventArgs) = echo("pie"))
+ee.on("print", proc(e: EventArgs) = echo("pie"))
 ee.emit("print", args)
 
diff --git a/tests/misc/thallo.nim b/tests/misc/thallo.nim
index 7244c27a1..cbeb45b97 100644
--- a/tests/misc/thallo.nim
+++ b/tests/misc/thallo.nim
@@ -37,7 +37,7 @@ macrotest(stdout)
 
 #GC_disable()
 
-echo("This was compiled by Nimrod version " & system.nimrodVersion)
+echo("This was compiled by Nim version " & system.NimVersion)
 writeln(stdout, "Hello", " World", "!")
 
 echo(["a", "b", "c", "d"].len)
diff --git a/tests/misc/tints.nim b/tests/misc/tints.nim
index fb2852af9..3e413026a 100644
--- a/tests/misc/tints.nim
+++ b/tests/misc/tints.nim
@@ -41,5 +41,5 @@ test(`shl`, 0xff'i8, 0x4'i8, 0xf0'i8)
 test(`shl`, 0xffffffff'i64, 0x4'i64, 0xffffffff0'i64)
 test(`shl`, 0xffffffff'i32, 0x4'i32, 0xfffffff0'i32)
 
-Echo("Success") #OUT Success
+echo("Success") #OUT Success
 
diff --git a/tests/misc/tissue710.nim b/tests/misc/tissue710.nim
new file mode 100644
index 000000000..9e8735eb3
--- /dev/null
+++ b/tests/misc/tissue710.nim
@@ -0,0 +1,10 @@
+discard """
+  file: "tissue710.nim"
+  line: 8
+  errorMsg: "expression '||' cannot be called"
+"""
+var sum = 0
+for x in 3..1000:
+  if (x mod 3 == 0) || (x mod 5 == 0):
+    sum += x
+echo(sum)
diff --git a/tests/misc/tlastmod.nim b/tests/misc/tlastmod.nim
index 75b047fc8..92ac922f7 100644
--- a/tests/misc/tlastmod.nim
+++ b/tests/misc/tlastmod.nim
@@ -6,13 +6,13 @@ import
 proc main() =

   var

     a, b: TTime

-  a = getLastModificationTime(ParamStr(1))

-  b = getLastModificationTime(ParamStr(2))

+  a = getLastModificationTime(paramStr(1))

+  b = getLastModificationTime(paramStr(2))

   writeln(stdout, $a)

   writeln(stdout, $b)

   if a < b:

-    Write(stdout, "$2 is newer than $1\n" % [ParamStr(1), ParamStr(2)])

+    write(stdout, "$2 is newer than $1\n" % [paramStr(1), paramStr(2)])

   else:

-    Write(stdout, "$1 is newer than $2\n" % [ParamStr(1), ParamStr(2)])

+    write(stdout, "$1 is newer than $2\n" % [paramStr(1), paramStr(2)])

 

 main()

diff --git a/tests/misc/tloops.nim b/tests/misc/tloops.nim
index f6f939769..1aada0298 100644
--- a/tests/misc/tloops.nim
+++ b/tests/misc/tloops.nim
@@ -31,7 +31,7 @@ proc TestLoops() =
       break
     break
 
-  while True:
+  while true:
     break
 
 
diff --git a/tests/misc/tmandelbrot.nim b/tests/misc/tmandelbrot.nim
index bb1b46d89..4228b0416 100644
--- a/tests/misc/tmandelbrot.nim
+++ b/tests/misc/tmandelbrot.nim
@@ -1,8 +1,8 @@
 discard """
-  cmd: "nimrod $target --hints:on -d:release $options $file"
+  cmd: "nim $target --hints:on -d:release $options $file"
 """
 
-# -*- nimrod -*-
+# -*- nim -*-
 
 import math
 import os
diff --git a/tests/misc/tnot.nim b/tests/misc/tnot.nim
index cd0f538e6..6193e21e1 100644
--- a/tests/misc/tnot.nim
+++ b/tests/misc/tnot.nim
@@ -5,16 +5,16 @@ discard """
 """
 # BUG: following compiles, but should not:
 
-proc nodeOfDegree(x: Int): bool = 
+proc nodeOfDegree(x: int): bool = 
   result = false
 
 proc main = 
   for j in 0..2:
     for i in 0..10:
       if not nodeOfDegree(1) >= 0: #ERROR_MSG type mismatch
-        Echo "Yes"
+        echo "Yes"
       else:
-        Echo "No"
+        echo "No"
 
 main()
 
diff --git a/tests/misc/tpos.nim b/tests/misc/tpos.nim
index 3d72536dd..5560ef050 100644
--- a/tests/misc/tpos.nim
+++ b/tests/misc/tpos.nim
@@ -14,10 +14,10 @@ proc mypos(sub, s: string, start: int = 0): int =
   if i >= N:

     result = -1

   else:

-    while True:

+    while true:

       if s[i] == sub[j]:

-        Inc(i)

-        Inc(j)

+        inc(i)

+        inc(j)

       else:

         i = i - j + 1

         j = 0

diff --git a/tests/misc/tprep.nim b/tests/misc/tprep.nim
index 4ef9e2543..8f40300d6 100644
--- a/tests/misc/tprep.nim
+++ b/tests/misc/tprep.nim
@@ -24,7 +24,7 @@ else:
 
 var
   s: string
-write(stdout, "compiled at " & system.compileDate &
-              " " & compileTime & "\n")
+write(stdout, "compiled at " & system.CompileDate &
+              " " & CompileTime & "\n")
 echo getDateStr()
 echo getClockStr()
diff --git a/tests/misc/tradix.nim b/tests/misc/tradix.nim
index e5998ee12..311aa9ccd 100644
--- a/tests/misc/tradix.nim
+++ b/tests/misc/tradix.nim
@@ -4,7 +4,7 @@
 ## We use a radix tree with node compression. 
 ## There are two node kinds:
 
-const bitsPerUnit = 8*sizeof(int)
+const BitsPerUnit = 8*sizeof(int)
 
 type
   TRadixNodeKind = enum rnLinear, rnFull, rnLeafBits, rnLeafLinear
@@ -42,13 +42,13 @@ proc testBit(w, i: int): bool {.inline.} =
   result = (w and (1 shl (i %% BitsPerUnit))) != 0
 
 proc setBit(w: var int, i: int) {.inline.} = 
-  w = w or (1 shl (i %% bitsPerUnit))
+  w = w or (1 shl (i %% BitsPerUnit))
 
 proc resetBit(w: var int, i: int) {.inline.} = 
-  w = w and not (1 shl (i %% bitsPerUnit))
+  w = w and not (1 shl (i %% BitsPerUnit))
 
 proc testOrSetBit(w: var int, i: int): bool {.inline.} = 
-  var x = (1 shl (i %% bitsPerUnit))
+  var x = (1 shl (i %% BitsPerUnit))
   if (w and x) != 0: return true
   w = w or x
 
@@ -78,7 +78,7 @@ proc exclLeaf(r: PRadixNode, a: int) =
         return
   else: assert(false)
 
-proc contains*(r: PRadixNode, a: TAddress): bool =
+proc contains*(r: PRadixNode, a: ByteAddress): bool =
   if r == nil: return false
   var x = searchInner(r, a shr 24 and 0xff)
   if x == nil: return false
@@ -88,7 +88,7 @@ proc contains*(r: PRadixNode, a: TAddress): bool =
   if x == nil: return false
   return searchLeaf(x, a and 0xff)
 
-proc excl*(r: PRadixNode, a: TAddress): bool =
+proc excl*(r: PRadixNode, a: ByteAddress): bool =
   if r == nil: return false
   var x = searchInner(r, a shr 24 and 0xff)
   if x == nil: return false
@@ -167,10 +167,10 @@ proc addInner(r: var PRadixNode, a: int, d: int): bool =
     return addInner(x.b[k], a, d-8)
   else: assert(false)
 
-proc incl*(r: var PRadixNode, a: TAddress) {.inline.} = 
+proc incl*(r: var PRadixNode, a: ByteAddress) {.inline.} = 
   discard addInner(r, a, 24)
   
-proc testOrIncl*(r: var PRadixNode, a: TAddress): bool {.inline.} = 
+proc testOrIncl*(r: var PRadixNode, a: ByteAddress): bool {.inline.} = 
   return addInner(r, a, 24)
       
 iterator innerElements(r: PRadixNode): tuple[prefix: int, n: PRadixNode] = 
@@ -204,7 +204,7 @@ iterator leafElements(r: PRadixNode): int =
         yield ze(r.keys[i])
     else: assert(false)
     
-iterator elements*(r: PRadixNode): TAddress {.inline.} = 
+iterator elements*(r: PRadixNode): ByteAddress {.inline.} = 
   for p1, n1 in innerElements(r): 
     for p2, n2 in innerElements(n1):
       for p3, n3 in innerElements(n2):
@@ -297,7 +297,7 @@ when false:
         result = ze(r.keys[i.x])
         inc(i.x)
 
-  iterator elements(r: PRadixNode): TAddress {.inline.} = 
+  iterator elements(r: PRadixNode): ByteAddress {.inline.} = 
     var
       a, b, c, d: TRadixIter
     init(a, r)
diff --git a/tests/misc/treadln.nim b/tests/misc/treadln.nim
index 1117ab5f9..1edbea992 100644
--- a/tests/misc/treadln.nim
+++ b/tests/misc/treadln.nim
@@ -2,11 +2,11 @@
 # Macintosh, Unix or Windows text format.
 
 var
-  inp: TFile
+  inp: File
   line: string
 
 if open(inp, "readme.txt"):
-  while not EndOfFile(inp):
+  while not endOfFile(inp):
     line = readLine(inp)
     echo("#" & line & "#")
   close(inp)
diff --git a/tests/misc/tsimplesort.nim b/tests/misc/tsimplesort.nim
index 0167ca78a..c282b3445 100644
--- a/tests/misc/tsimplesort.nim
+++ b/tests/misc/tsimplesort.nim
@@ -4,11 +4,7 @@ discard """
   
 import hashes, math
 
-
-when defined(shallowADT):
-  {.pragma: myShallow, shallow.}
-else:
-  {.pragma: myShallow.}
+{.pragma: myShallow.}
 
 type
   TSlotEnum = enum seEmpty, seFilled, seDeleted
@@ -63,7 +59,7 @@ template rawInsertImpl() =
   data[h].val = val
   data[h].slot = seFilled
 
-proc RawGet[A, B](t: TTable[A, B], key: A): int =
+proc rawGet[A, B](t: TTable[A, B], key: A): int =
   rawGetImpl()
 
 proc `[]`*[A, B](t: TTable[A, B], key: A): B =
@@ -71,31 +67,31 @@ proc `[]`*[A, B](t: TTable[A, B], key: A): B =
   ## default empty value for the type `B` is returned
   ## and no exception is raised. One can check with ``hasKey`` whether the key
   ## exists.
-  var index = RawGet(t, key)
+  var index = rawGet(t, key)
   if index >= 0: result = t.data[index].val
 
 proc hasKey*[A, B](t: TTable[A, B], key: A): bool =
   ## returns true iff `key` is in the table `t`.
   result = rawGet(t, key) >= 0
 
-proc RawInsert[A, B](t: var TTable[A, B], data: var TKeyValuePairSeq[A, B],
+proc rawInsert[A, B](t: var TTable[A, B], data: var TKeyValuePairSeq[A, B],
                      key: A, val: B) =
   rawInsertImpl()
 
-proc Enlarge[A, B](t: var TTable[A, B]) =
+proc enlarge[A, B](t: var TTable[A, B]) =
   var n: TKeyValuePairSeq[A, B]
   newSeq(n, len(t.data) * growthFactor)
   for i in countup(0, high(t.data)):
-    if t.data[i].slot == seFilled: RawInsert(t, n, t.data[i].key, t.data[i].val)
+    if t.data[i].slot == seFilled: rawInsert(t, n, t.data[i].key, t.data[i].val)
   swap(t.data, n)
 
-template PutImpl() =
-  var index = RawGet(t, key)
+template putImpl() =
+  var index = rawGet(t, key)
   if index >= 0:
     t.data[index].val = val
   else:
-    if mustRehash(len(t.data), t.counter): Enlarge(t)
-    RawInsert(t, t.data, key, val)
+    if mustRehash(len(t.data), t.counter): enlarge(t)
+    rawInsert(t, t.data, key, val)
     inc(t.counter)
 
 proc `[]=`*[A, B](t: var TTable[A, B], key: A, val: B) =
@@ -104,7 +100,7 @@ proc `[]=`*[A, B](t: var TTable[A, B], key: A, val: B) =
 
 proc del*[A, B](t: var TTable[A, B], key: A) =
   ## deletes `key` from hash table `t`.
-  var index = RawGet(t, key)
+  var index = rawGet(t, key)
   if index >= 0:
     t.data[index].slot = seDeleted
     dec(t.counter)
@@ -183,24 +179,24 @@ proc hasKey*[A](t: TCountTable[A], key: A): bool =
   ## returns true iff `key` is in the table `t`.
   result = rawGet(t, key) >= 0
 
-proc RawInsert[A](t: TCountTable[A], data: var seq[tuple[key: A, val: int]],
+proc rawInsert[A](t: TCountTable[A], data: var seq[tuple[key: A, val: int]],
                   key: A, val: int) =
   var h: THash = hash(key) and high(data)
   while data[h].val != 0: h = nextTry(h, high(data))
   data[h].key = key
   data[h].val = val
 
-proc Enlarge[A](t: var TCountTable[A]) =
+proc enlarge[A](t: var TCountTable[A]) =
   var n: seq[tuple[key: A, val: int]]
   newSeq(n, len(t.data) * growthFactor)
   for i in countup(0, high(t.data)):
-    if t.data[i].val != 0: RawInsert(t, n, t.data[i].key, t.data[i].val)
+    if t.data[i].val != 0: rawInsert(t, n, t.data[i].key, t.data[i].val)
   swap(t.data, n)
 
 proc `[]=`*[A](t: var TCountTable[A], key: A, val: int) =
   ## puts a (key, value)-pair into `t`. `val` has to be positive.
   assert val > 0
-  PutImpl()
+  putImpl()
 
 proc initCountTable*[A](initialSize=64): TCountTable[A] =
   ## creates a new count table that is empty. `initialSize` needs to be
@@ -224,11 +220,11 @@ proc inc*[A](t: var TCountTable[A], key: A, val = 1) =
   if index >= 0:
     inc(t.data[index].val, val)
   else:
-    if mustRehash(len(t.data), t.counter): Enlarge(t)
-    RawInsert(t, t.data, key, val)
+    if mustRehash(len(t.data), t.counter): enlarge(t)
+    rawInsert(t, t.data, key, val)
     inc(t.counter)
 
-proc Smallest*[A](t: TCountTable[A]): tuple[key: A, val: int] =
+proc smallest*[A](t: TCountTable[A]): tuple[key: A, val: int] =
   ## returns the largest (key,val)-pair. Efficiency: O(n)
   assert t.len > 0
   var minIdx = 0
@@ -237,7 +233,7 @@ proc Smallest*[A](t: TCountTable[A]): tuple[key: A, val: int] =
   result.key = t.data[minIdx].key
   result.val = t.data[minIdx].val
 
-proc Largest*[A](t: TCountTable[A]): tuple[key: A, val: int] =
+proc largest*[A](t: TCountTable[A]): tuple[key: A, val: int] =
   ## returns the (key,val)-pair with the largest `val`. Efficiency: O(n)
   assert t.len > 0
   var maxIdx = 0
diff --git a/tests/misc/tstrange.nim b/tests/misc/tstrange.nim
index 3947755fc..8742011bb 100644
--- a/tests/misc/tstrange.nim
+++ b/tests/misc/tstrange.nim
@@ -1,6 +1,8 @@
 discard """
   file: "tstrange.nim"
-  output: "hallo4"
+  output: '''hallo40
+1
+2'''
 """
 # test for extremely strange bug

 

@@ -19,5 +21,8 @@ gen("hallo")
 write(stdout, ack(5, 4))

 #OUT hallo4

 

-
+# bug #1442
+let h=3
+for x in 0.. <h.int:
+  echo x
 
diff --git a/tests/misc/tunsignedcmp.nim b/tests/misc/tunsignedcmp.nim
new file mode 100644
index 000000000..a66fbaae1
--- /dev/null
+++ b/tests/misc/tunsignedcmp.nim
@@ -0,0 +1,15 @@
+discard """
+  output: '''true
+true
+true'''
+"""
+
+# bug 1420
+import unsigned
+
+var x = 40'u32
+var y = 30'u32
+echo x > y # works
+
+echo((40'i32) > (30'i32))
+echo((40'u32) > (30'u32)) # Error: ordinal type expected
diff --git a/tests/misc/tvarious1.nim b/tests/misc/tvarious1.nim
index 6e4612ae3..1f2da2ae5 100644
--- a/tests/misc/tvarious1.nim
+++ b/tests/misc/tvarious1.nim
@@ -3,7 +3,8 @@ discard """
   output: '''1
 0
 Whopie
-12'''
+12
+1.7'''
 """
 
 echo len([1_000_000]) #OUT 1
@@ -39,3 +40,9 @@ var val12 = TSomeRange(hour: 12)
 
 value = $(if val12.hour > 12: val12.hour - 12 else: val12.hour)
 echo value
+
+# bug #1334
+
+var ys = @[4.1, 5.6, 7.2, 1.7, 9.3, 4.4, 3.2] 
+#var x = int(ys.high / 2) #echo ys[x] # Works 
+echo ys[int(ys.high / 2)] # Doesn't work
diff --git a/tests/misc/tvarnums.nim b/tests/misc/tvarnums.nim
index 4f99df8b9..b880cf006 100644
--- a/tests/misc/tvarnums.nim
+++ b/tests/misc/tvarnums.nim
@@ -74,7 +74,7 @@ proc toNum(b: TBuffer): int32 =
   while (ze(b[i]) and 128) != 0:

     inc(i)

     result = result or ((int32(ze(b[i])) and 127'i32) shl Shift)

-    Shift = shift + 7'i32

+    Shift = Shift + 7'i32

   if (ze(b[0]) and (1 shl 6)) != 0: # sign bit set?

     result = (not result) +% 1'i32

     # this is the same as ``- result``

diff --git a/tests/modules/mexport2a.nim b/tests/modules/mexport2a.nim
new file mode 100644
index 000000000..deaef8fa4
--- /dev/null
+++ b/tests/modules/mexport2a.nim
@@ -0,0 +1,5 @@
+
+import mexport2b
+export mexport2b
+proc printAbc*() = echo "abc"
+
diff --git a/tests/modules/mexport2b.nim b/tests/modules/mexport2b.nim
new file mode 100644
index 000000000..8ea6085de
--- /dev/null
+++ b/tests/modules/mexport2b.nim
@@ -0,0 +1 @@
+proc printXyz*() = echo "xyz"
diff --git a/tests/modules/texport.nim b/tests/modules/texport.nim
index 99228dfce..9515f9060 100644
--- a/tests/modules/texport.nim
+++ b/tests/modules/texport.nim
@@ -4,6 +4,9 @@ discard """
 
 import mexporta
 
+# bug #1029:
+from rawsockets import accept
+
 # B.TMyObject has been imported implicitly here: 
 var x: TMyObject
 echo($x, q(0), q"0")
diff --git a/tests/modules/texport2.nim b/tests/modules/texport2.nim
new file mode 100644
index 000000000..0826eec9d
--- /dev/null
+++ b/tests/modules/texport2.nim
@@ -0,0 +1,10 @@
+# bug #1595
+
+import mexport2a
+
+proc main() =
+  echo "Import Test, two lines should follow. One with abc and one with xyz."
+  printAbc()
+  printXyz()
+
+main()
diff --git a/tests/modules/tmismatchedvisibility.nim b/tests/modules/tmismatchedvisibility.nim
new file mode 100644
index 000000000..6f2f79282
--- /dev/null
+++ b/tests/modules/tmismatchedvisibility.nim
@@ -0,0 +1,9 @@
+discard """
+  line: 8
+  errormsg: "public implementation 'tmismatchedvisibility.foo(a: int): int' has non-public forward declaration in tmismatchedvisibility.nim(6,5)"
+"""
+
+proc foo(a: int): int
+
+proc foo*(a: int): int =
+  result = a + a
\ No newline at end of file
diff --git a/tests/modules/tselfimport.nim b/tests/modules/tselfimport.nim
new file mode 100644
index 000000000..ddb3a5b09
--- /dev/null
+++ b/tests/modules/tselfimport.nim
@@ -0,0 +1,9 @@
+discard """
+  file: "tselfimport.nim"
+  line: 7
+  errormsg: "A module cannot import itself"
+"""
+import strutils as su # guard against regression
+import tselfimport #ERROR
+echo("Hello World")
+
diff --git a/tests/objects/tobjcov.nim b/tests/objects/tobjcov.nim
index fc44edf8e..8391727f2 100644
--- a/tests/objects/tobjcov.nim
+++ b/tests/objects/tobjcov.nim
@@ -9,7 +9,7 @@ type
 proc ap(x: var TA) = x.a = -1
 proc bp(x: var TB) = x.b[high(x.b)] = -1
     
-# in Nimrod proc (x: TB) is compatible to proc (x: TA),
+# in Nim proc (x: TB) is compatible to proc (x: TA),
 # but this is not type safe:
 var f = cast[proc (x: var TA) {.nimcall.}](bp)
 var a: TA
diff --git a/tests/objvariant/tcheckedfield1.nim b/tests/objvariant/tcheckedfield1.nim
index 5ade3a13a..1963ceb8d 100644
--- a/tests/objvariant/tcheckedfield1.nim
+++ b/tests/objvariant/tcheckedfield1.nim
@@ -1,5 +1,5 @@
 discard """
-  errormsg: "cannot prove that field 'x.s' is accessible"
+  msg: "Warning: cannot prove that field 'x.s' is accessible [ProveField]"
   line:51
 """
 
diff --git a/tests/objvariant/tyaoption.nim b/tests/objvariant/tyaoption.nim
index 635e60bb8..7a29b8008 100644
--- a/tests/objvariant/tyaoption.nim
+++ b/tests/objvariant/tyaoption.nim
@@ -7,7 +7,7 @@ some(10)'''
 import strutils
 
 type Option[A] = object
-  case isDefined*: Bool
+  case isDefined*: bool
     of true:
       value*: A
     of false:
@@ -19,7 +19,7 @@ proc some[A](value: A): Option[A] =
 proc none[A](): Option[A] =
   Option[A](isDefined: false)
 
-proc `$`[A](o: Option[A]): String =
+proc `$`[A](o: Option[A]): string =
   if o.isDefined:
     "some($1)" % [$o.value]
   else:
@@ -27,14 +27,14 @@ proc `$`[A](o: Option[A]): String =
 
 let x = some("str")
 let y = some(5)
-let z = none[Int]()
+let z = none[int]()
 
 echo x, ", ", y, ", ", z
 
-proc intOrString[A : Int | String](o: Option[A]): Option[A] =
-  when A is Int:
+proc intOrString[A : int | string](o: Option[A]): Option[A] =
+  when A is int:
     some(o.value + 5)
-  elif A is String:
+  elif A is string:
     some(o.value & "!")
   else:
     o
diff --git a/tests/overflw/toverflw.nim b/tests/overflw/toverflw.nim
index cd7b65acf..fbe0d0a38 100644
--- a/tests/overflw/toverflw.nim
+++ b/tests/overflw/toverflw.nim
@@ -2,7 +2,7 @@ discard """
   file: "toverflw.nim"
   output: "the computation overflowed"
 """
-# Tests nimrod's ability to detect overflows

+# Tests nim's ability to detect overflows

 

 {.push overflowChecks: on.}

 

@@ -12,7 +12,7 @@ a = high(int)
 b = -2

 try:

   writeln(stdout, b - a)

-except EOverflow:

+except OverflowError:

   writeln(stdout, "the computation overflowed")

 

 {.pop.} # overflow check

diff --git a/tests/overflw/toverflw2.nim b/tests/overflw/toverflw2.nim
index f7fe3d574..75bd4cdf5 100644
--- a/tests/overflw/toverflw2.nim
+++ b/tests/overflw/toverflw2.nim
@@ -1,6 +1,6 @@
 discard """
   file: "toverflw2.nim"
-  outputsub: "Error: unhandled exception: over- or underflow [EOverflow]"
+  outputsub: "Error: unhandled exception: over- or underflow [OverflowError]"
   exitcode: "1"
 """
 var a : int32 = 2147483647
diff --git a/tests/overload/toverl4.nim b/tests/overload/toverl4.nim
new file mode 100644
index 000000000..6bb3a53d1
--- /dev/null
+++ b/tests/overload/toverl4.nim
@@ -0,0 +1,77 @@
+discard """
+  output: '''true'''
+"""
+
+#bug #592
+
+type
+  ElementKind = enum inner, leaf
+  TElement[TKey, TData] = object
+    case kind: ElementKind
+    of inner:
+      key: TKey
+      left, right: ref TElement[Tkey, TData]
+    of leaf:
+      data: TData
+  PElement[TKey, TData] = ref TElement[TKey, TData]
+
+proc newElement[Tkey, TData](other: PElement[TKey, TData]): PElement[Tkey, TData] =
+  case other.kind:
+  of inner:
+    PElement[TKey, TData](kind: ElementKind.inner, key: other.key, left: other.left, right: other.right)
+  of leaf:
+    PElement[TKey, TData](kind: ElementKind.leaf, data: other.data)
+
+proc newElement[TKey, TData](key: TKey, left: PElement[TKey, TData] = nil, right: PElement[TKey, TData] = nil) : PElement[TKey, TData] =
+  PElement[TKey, TData](kind: ElementKind.inner, key: key, left: left, right: right)
+
+proc newElement[Tkey, TData](key: Tkey, data: TData) : PElement[Tkey, TData] =
+  PElement[TKey, TData](kind: ElementKind.leaf, data: data)
+
+proc find*[TKey, TData](root: PElement[TKey, TData], key: TKey): TData {.raises: [EInvalidKey].} =
+  if root.left == nil:
+    raise newException(EInvalidKey, "key does not exist: " & key)
+
+  var tmp_element = addr(root)
+
+  while tmp_element.kind == inner and tmp_element.right != nil:
+    tmp_element = if tmp_element.key > key:
+                    addr(tmp_element.left)
+                  else:
+                    addr(tmp_element.right)
+
+  if tmp_element.key == key:
+    return tmp_element.left.data
+  else:
+    raise newException(EInvalidKey, "key does not exist: " & key)
+
+proc add*[TKey, TData](root: var PElement[TKey, TData], key: TKey, data: TData) : bool =
+  if root.left == nil:
+    root.key = key
+    root.left = newElement[TKey, TData](key, data)
+    return true
+
+  var tmp_element = addr(root)
+
+  while tmp_element.kind == ElementKind.inner and tmp_element.right != nil:
+    tmp_element = if tmp_element.key > key:
+                    addr(tmp_element.left)
+                  else:
+                    addr(tmp_element.right)
+
+  if tmp_element.key == key:
+    return false
+
+  var old_element = newElement[TKey, TData](tmp_element[])
+  var new_element = newElement[TKey, TData](key, data)
+
+  tmp_element[] = if tmp_element.key < key:
+                    newElement(key, old_element, new_element)
+                  else:
+                    newElement(tmp_element.key, new_element, old_element)
+
+  return true
+
+var tree = PElement[int, int](kind: ElementKind.inner, key: 0, left: nil, right: nil)
+let result = add(tree, 1, 1)
+echo(result)
\ No newline at end of file
diff --git a/tests/parallel/nimrod.cfg b/tests/parallel/nim.cfg
index b81c89721..b81c89721 100644
--- a/tests/parallel/nimrod.cfg
+++ b/tests/parallel/nim.cfg
diff --git a/tests/parallel/tdeepcopy.nim b/tests/parallel/tdeepcopy.nim
new file mode 100644
index 000000000..84e2edf3f
--- /dev/null
+++ b/tests/parallel/tdeepcopy.nim
@@ -0,0 +1,18 @@
+discard """
+  output: '''13 abc'''
+"""
+
+type
+  PBinaryTree = ref object
+    le, ri: PBinaryTree
+    value: int
+
+
+proc main =
+  var x: PBinaryTree
+  deepCopy(x, PBinaryTree(ri: PBinaryTree(le: PBinaryTree(value: 13))))
+  var y: string
+  deepCopy y, "abc"
+  echo x.ri.le.value, " ", y
+
+main()
diff --git a/tests/parallel/tdeepcopy2.nim b/tests/parallel/tdeepcopy2.nim
new file mode 100644
index 000000000..748ef4d9b
--- /dev/null
+++ b/tests/parallel/tdeepcopy2.nim
@@ -0,0 +1,35 @@
+discard """
+  output: '''called deepCopy for int
+called deepCopy for int
+done999 999
+"""
+
+import threadpool
+
+
+type
+  Bar[T] = object
+    x: T
+
+proc deepCopy[T](b: ref Bar[T]): ref Bar[T] {.override.} =
+  result.new
+  result.x = b.x
+  when T is int:
+    echo "called deepCopy for int"
+  else:
+    echo "called deepCopy for something else"
+
+proc foo(b: ref Bar[int]): int = 999
+
+# test that the disjoint checker deals with 'a = spawn f(); g = spawn f()':
+
+proc main =
+  var dummy: ref Bar[int]
+  new(dummy)
+  dummy.x = 44
+  parallel:
+    let f = spawn foo(dummy)
+    let b = spawn foo(dummy)
+  echo "done", f, " ", b
+
+main()
diff --git a/tests/parallel/tflowvar.nim b/tests/parallel/tflowvar.nim
index 77fab14b5..fd3aa326e 100644
--- a/tests/parallel/tflowvar.nim
+++ b/tests/parallel/tflowvar.nim
@@ -1,11 +1,14 @@
 discard """
-  output: '''foobarfoobarbazbearbazbear'''
-  cmd: "nimrod $target --threads:on $options $file"
+  output: '''foobarfoobar
+bazbearbazbear
+
+1'''
+  cmd: "nim $target --threads:on $options $file"
 """
 
 import threadpool
 
-proc computeSomething(a, b: string): string = a & b & a & b
+proc computeSomething(a, b: string): string = a & b & a & b & "\n"
 
 proc main =
   let fvA = spawn computeSomething("foo", "bar")
@@ -15,3 +18,19 @@ proc main =
 
 main()
 sync()
+
+
+type
+  TIntSeq = seq[int]
+
+proc t(): TIntSeq =
+  result = @[1]
+
+proc p(): int =
+  var a: FlowVar[TIntSeq]
+  parallel:
+    var aa = spawn t()
+    a = aa
+  result = (^a)[0]
+
+echo p()
diff --git a/tests/parallel/tguard1.nim b/tests/parallel/tguard1.nim
new file mode 100644
index 000000000..d96e17589
--- /dev/null
+++ b/tests/parallel/tguard1.nim
@@ -0,0 +1,37 @@
+
+when false:
+  template lock(a, b: ptr TLock; body: stmt) =
+    if cast[ByteAddress](a) < cast[ByteAddress](b):
+      pthread_mutex_lock(a)
+      pthread_mutex_lock(b)
+    else:
+      pthread_mutex_lock(b)
+      pthread_mutex_lock(a)
+    {.locks: [a, b].}:
+      try:
+        body
+      finally:
+        pthread_mutex_unlock(a)
+        pthread_mutex_unlock(b)
+
+type
+  ProtectedCounter[T] = object
+    i {.guard: L.}: T
+    L: int
+
+var
+  c: ProtectedCounter[int]
+
+c.i = 89
+
+template atomicRead(L, x): expr =
+  {.locks: [L].}:
+    x
+
+proc main =
+  {.locks: [c.L].}:
+    inc c.i
+    discard
+  echo(atomicRead(c.L, c.i))
+
+main()
diff --git a/tests/parallel/tguard2.nim b/tests/parallel/tguard2.nim
new file mode 100644
index 000000000..b69ea3371
--- /dev/null
+++ b/tests/parallel/tguard2.nim
@@ -0,0 +1,27 @@
+discard """
+  errormsg: "unguarded access: c.i"
+  line: 25
+"""
+
+type
+  ProtectedCounter[T] = object
+    i {.guard: L.}: T
+    L: int
+
+var
+  c: ProtectedCounter[int]
+
+c.i = 89
+
+template atomicRead(L, x): expr =
+  {.locks: [L].}:
+    x
+
+proc main =
+  {.locks: [c.L].}:
+    inc c.i
+    discard
+  echo(atomicRead(c.L, c.i))
+  echo c.i
+
+main()
diff --git a/tests/parallel/tlet_spawn.nim b/tests/parallel/tlet_spawn.nim
new file mode 100644
index 000000000..463ee1a47
--- /dev/null
+++ b/tests/parallel/tlet_spawn.nim
@@ -0,0 +1,14 @@
+
+import threadpool
+
+proc foo(): int = 999
+
+# test that the disjoint checker deals with 'a = spawn f(); g = spawn f()':
+
+proc main =
+  parallel:
+    let f = spawn foo()
+    let b = spawn foo()
+  echo "done", f, " ", b
+
+main()
diff --git a/tests/parallel/tsysspawn.nim b/tests/parallel/tsysspawn.nim
index fc7921b0e..7244a5ee6 100644
--- a/tests/parallel/tsysspawn.nim
+++ b/tests/parallel/tsysspawn.nim
@@ -1,7 +1,7 @@
 discard """
   output: '''4
 8'''
-  cmd: "nimrod $target --threads:on $options $file"
+  cmd: "nim $target --threads:on $options $file"
 """
 
 import threadpool
diff --git a/tests/parallel/tsysspawnbadarg.nim b/tests/parallel/tsysspawnbadarg.nim
index ad798a7d3..2d3ffd241 100644
--- a/tests/parallel/tsysspawnbadarg.nim
+++ b/tests/parallel/tsysspawnbadarg.nim
@@ -1,7 +1,7 @@
 discard """
   line: 9
   errormsg: "'spawn' takes a call expression"
-  cmd: "nimrod $target --threads:on $options $file"
+  cmd: "nim $target --threads:on $options $file"
 """
 
 import threadpool
diff --git a/tests/procvar/tprocvars.nim b/tests/procvar/tprocvars.nim
index dc7592526..50d5d29f2 100644
--- a/tests/procvar/tprocvars.nim
+++ b/tests/procvar/tprocvars.nim
@@ -1,6 +1,6 @@
-proc doSomething(v: Int, x: proc(v:Int):Int): Int = return x(v)
-proc doSomething(v: Int, x: proc(v:Int)) = x(v)
+proc doSomething(v: int, x: proc(v:int):int): int = return x(v)
+proc doSomething(v: int, x: proc(v:int)) = x(v)
 
 
-echo doSomething(10, proc(v: Int): Int = return v div 2)
+echo doSomething(10, proc(v: int): int = return v div 2)
 
diff --git a/tests/range/tmatrix3.nim b/tests/range/tmatrix3.nim
index 900404524..80d38d63d 100644
--- a/tests/range/tmatrix3.nim
+++ b/tests/range/tmatrix3.nim
@@ -1,6 +1,6 @@
 discard """
-  output: '''0.0000000000000000e+00
-0.0000000000000000e+00
+  output: '''0.0
+0.0
 0
 0
 0
diff --git a/tests/range/tsubrange2.nim b/tests/range/tsubrange2.nim
index d14111bb9..759d16b9c 100644
--- a/tests/range/tsubrange2.nim
+++ b/tests/range/tsubrange2.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tsubrange2.nim"
-  outputsub: "value out of range: 50 [EOutOfRange]"
+  outputsub: "value out of range: 50 [RangeError]"
   exitcode: "1"
 """
 
diff --git a/tests/range/tsubrange3.nim b/tests/range/tsubrange3.nim
index 9afb5018b..600161cfd 100644
--- a/tests/range/tsubrange3.nim
+++ b/tests/range/tsubrange3.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tsubrange.nim"
-  outputsub: "value out of range: 50 [EOutOfRange]"
+  outputsub: "value out of range: 50 [RangeError]"
   exitcode: "1"
 """
 
@@ -16,4 +16,3 @@ var
 r = y
 
 #p y
-  
diff --git a/tests/showoff/thtml2.nim b/tests/showoff/thtml2.nim
index 8a451ebf1..faeb4e50d 100644
--- a/tests/showoff/thtml2.nim
+++ b/tests/showoff/thtml2.nim
@@ -1,5 +1,5 @@
 discard """
-  output: "<html><head><title>now look at this</title></head><body><ul><li>Nimrod is quite capable</li></ul></body></html>"
+  output: "<html><head><title>now look at this</title></head><body><ul><li>Nim is quite capable</li></ul></body></html>"
 """
 
 import strutils
@@ -32,6 +32,6 @@ html mainPage:
     title "now look at this"
   body:
     ul:
-      li "Nimrod is quite capable"
+      li "Nim is quite capable"
 
 echo mainPage()
diff --git a/tests/stdlib/techo.nim b/tests/stdlib/techo.nim
index 0fa4b5fe0..9cef9205f 100644
--- a/tests/stdlib/techo.nim
+++ b/tests/stdlib/techo.nim
@@ -1,3 +1,3 @@
-# Simplest Nimrod program
+# Simplest Nim program
 
 echo "Hello, World!"
diff --git a/tests/stdlib/testequivalence.nim b/tests/stdlib/testequivalence.nim
index 7c5d9e3e9..7acaad340 100644
--- a/tests/stdlib/testequivalence.nim
+++ b/tests/stdlib/testequivalence.nim
@@ -1,7 +1,6 @@
 discard """
   output: ''''''
 """
-import unittest
 import sets
 
 doAssert(toSet(@[1,2,3]) <= toSet(@[1,2,3,4]), "equivalent or subset")
diff --git a/tests/stdlib/tircbot.nim b/tests/stdlib/tircbot.nim
index f0417c7ac..b91300762 100644
--- a/tests/stdlib/tircbot.nim
+++ b/tests/stdlib/tircbot.nim
@@ -191,7 +191,7 @@ type
 
 const
   ircServer = "irc.freenode.net"
-  joinChans = @["#nimrod"]
+  joinChans = @["#nim"]
   botNickname = "NimBot"
 
 proc setSeen(d: TDb, s: TSeen) =
@@ -271,7 +271,7 @@ proc handleWebMessage(state: PState, line: string) =
       message.add("-" & $commit["removed"].len & "]: ")
       message.add(limitCommitMsg(commit["message"].str))
 
-      # Send message to #nimrod.
+      # Send message to #nim.
       state.ircClient.privmsg(joinChans[0], message)
   elif json.hasKey("redisinfo"):
     assert json["redisinfo"].hasKey("port")
@@ -420,7 +420,7 @@ proc handleIrc(irc: PAsyncIRC, event: TIRCEvent, state: PState) =
       seenNick.msg = msg
       state.database.setSeen(seenNick)
     of MNick:
-      createSeen(PSeenNick, event.nick, "#nimrod")
+      createSeen(PSeenNick, event.nick, "#nim")
       seenNick.newNick = event.params[0]
       state.database.setSeen(seenNick)
     else:
diff --git a/tests/stdlib/tpegs.nim b/tests/stdlib/tpegs.nim
index 6e488bab4..e5353e4ff 100644
--- a/tests/stdlib/tpegs.nim
+++ b/tests/stdlib/tpegs.nim
@@ -851,7 +851,7 @@ template `=~`*(s: string, pattern: TPeg): expr =
   ## This calls ``match`` with an implicit declared ``matches`` array that 
   ## can be used in the scope of the ``=~`` call: 
   ## 
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##
   ##   if line =~ peg"\s* {\w+} \s* '=' \s* {\w+}": 
   ##     # matches a key=value pair:
@@ -897,12 +897,12 @@ proc replacef*(s: string, sub: TPeg, by: string): string {.
   ## Replaces `sub` in `s` by the string `by`. Captures can be accessed in `by`
   ## with the notation ``$i`` and ``$#`` (see strutils.`%`). Examples:
   ##
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##   "var1=key; var2=key2".replace(peg"{\ident}'='{\ident}", "$1<-$2$2")
   ##
   ## Results in:
   ##
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##
   ##   "var1<-keykey; val2<-key2key2"
   result = ""
@@ -979,13 +979,13 @@ iterator split*(s: string, sep: TPeg): string =
   ## Substrings are separated by the PEG `sep`.
   ## Examples:
   ##
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##   for word in split("00232this02939is39an22example111", peg"\d+"):
   ##     writeln(stdout, word)
   ##
   ## Results in:
   ##
-  ## .. code-block:: nimrod
+  ## .. code-block:: nim
   ##   "this"
   ##   "is"
   ##   "an"
diff --git a/tests/stdlib/tunidecode.nim b/tests/stdlib/tunidecode.nim
index 647858825..689453c76 100644
--- a/tests/stdlib/tunidecode.nim
+++ b/tests/stdlib/tunidecode.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod $target --hints:on -d:embedUnidecodeTable $options $file"
+  cmd: "nim $target --hints:on -d:embedUnidecodeTable $options $file"
   output: "Ausserst"
 """
 
diff --git a/tests/stdlib/txmlgen.nim b/tests/stdlib/txmlgen.nim
index 917427abc..fa1dffe56 100644
--- a/tests/stdlib/txmlgen.nim
+++ b/tests/stdlib/txmlgen.nim
@@ -1,11 +1,11 @@
 discard """
   file: "txmlgen.nim"
-  output: "<h1><a href=\"http://force7.de/nimrod\">Nimrod</a></h1>"
+  output: "<h1><a href=\"http://force7.de/nim\">Nim</a></h1>"
 """
 import htmlgen
 
-var nim = "Nimrod"
-echo h1(a(href="http://force7.de/nimrod", nim))
+var nim = "Nim"
+echo h1(a(href="http://force7.de/nim", nim))
 
 
 
diff --git a/tests/stdlib/txmltree.nim b/tests/stdlib/txmltree.nim
index 931871f15..bfe2dc94a 100644
--- a/tests/stdlib/txmltree.nim
+++ b/tests/stdlib/txmltree.nim
@@ -5,9 +5,9 @@ discard """
 
 import xmltree, strtabs
 
-var x = <>a(href="nimrod.de", newText("www.nimrod-test.de"))
+var x = <>a(href="nim.de", newText("www.nim-test.de"))
 
-echo($x == "<a href=\"nimrod.de\">www.nimrod-test.de</a>")
+echo($x == "<a href=\"nim.de\">www.nim-test.de</a>")
 
 
 
diff --git a/tests/system/toString.nim b/tests/system/toString.nim
index 17dcb3cb4..52e7a4b92 100644
--- a/tests/system/toString.nim
+++ b/tests/system/toString.nim
@@ -1,11 +1,9 @@
 discard """
   output:'''@[23, 45]
-@[, foo, bar]
-[, foo, bar]
-[23, 45]'''
+@[, foo, bar]'''
 """
 
 echo($(@[23, 45]))
 echo($(@["", "foo", "bar"]))
-echo($(["", "foo", "bar"]))
-echo($([23, 45]))
+#echo($(["", "foo", "bar"]))
+#echo($([23, 45]))
diff --git a/tests/table/ptables.nim b/tests/table/ptables.nim
index ec52d08c3..79a9aab17 100644
--- a/tests/table/ptables.nim
+++ b/tests/table/ptables.nim
@@ -104,6 +104,15 @@ block countTableTest1:
 block SyntaxTest:
   var x = newTable[int, string]({:})
 
+block nilTest:
+  var i, j: PTable[int, int] = nil
+  assert i == j
+  j = newTable[int, int]()
+  assert i != j
+  assert j != i
+  i = newTable[int, int]()
+  assert i == j
+
 proc orderedTableSortTest() =
   var t = newOrderedTable[string, int](2)
   for key, val in items(data): t[key] = val
diff --git a/tests/table/ttables.nim b/tests/table/ttables.nim
index 60446b5a3..de4aaed5e 100644
--- a/tests/table/ttables.nim
+++ b/tests/table/ttables.nim
@@ -84,7 +84,7 @@ block orderedTableTest1:
 block countTableTest1:
   var s = data.toTable
   var t = initCountTable[string]()
-  for k in s.Keys: t.inc(k)
+  for k in s.keys: t.inc(k)
   for k in t.keys: assert t[k] == 1
   t.inc("90", 3)
   t.inc("12", 2)
diff --git a/tests/template/t_otemplates.nim b/tests/template/t_otemplates.nim
index 7de728ab2..1a9075d20 100644
--- a/tests/template/t_otemplates.nim
+++ b/tests/template/t_otemplates.nim
@@ -3,8 +3,8 @@ discard """
 """
 
 # Ref:

-# http://nimrod-lang.org/macros.html

-# http://nimrod-lang.org/parseutils.html

+# http://nim-lang.org/macros.html

+# http://nim-lang.org/parseutils.html

 

 

 # Imports

@@ -313,7 +313,7 @@ proc parse_until_symbol(node: PNimrodNode, value: string, index: var int): bool
 

 proc parse_template(node: PNimrodNode, value: string) =

     ## Parses through entire template, outputing valid

-    ## Nimrod code into the input `node` AST.

+    ## Nim code into the input `node` AST.

     var index = 0

     while index < value.len and

           parse_until_symbol(node, value, index): nil

diff --git a/tests/template/tissue993.nim b/tests/template/tissue993.nim
index d39f43942..dae9df683 100644
--- a/tests/template/tissue993.nim
+++ b/tests/template/tissue993.nim
@@ -1,5 +1,5 @@
 
-type pnode* = ref object of tobject
+type PNode* = ref object of RootObj
 
 template litNode (name, ty): stmt  =
   type name* = ref object of PNode
@@ -8,7 +8,7 @@ litNode PIntNode, int
 
 import json
 
-template withKey*(j: PJsonNode; key: string; varname: expr;
+template withKey*(j: JsonNode; key: string; varname: expr;
                   body:stmt): stmt {.immediate.} =
   if j.hasKey(key):
     let varname{.inject.}= j[key]
diff --git a/tests/testament/backend.nim b/tests/testament/backend.nim
index 5199bb9d6..c7122e1b2 100644
--- a/tests/testament/backend.nim
+++ b/tests/testament/backend.nim
@@ -1,6 +1,6 @@
 #
 #
-#              The Nimrod Tester
+#              The Nim Tester
 #        (c) Copyright 2014 Andreas Rumpf
 #
 #    Look at license.txt for more info.
diff --git a/tests/testament/caasdriver.nim b/tests/testament/caasdriver.nim
index ddfe88273..8f2eec33b 100644
--- a/tests/testament/caasdriver.nim
+++ b/tests/testament/caasdriver.nim
@@ -9,7 +9,7 @@ type
   TRunMode = enum
     ProcRun, CaasRun, SymbolProcRun
 
-  TNimrodSession* = object
+  NimSession* = object
     nim: PProcess # Holds the open process for CaasRun sessions, nil otherwise.
     mode: TRunMode # Stores the type of run mode the session was started with.
     lastOutput: string # Preserves the last output, needed for ProcRun mode.
@@ -26,15 +26,15 @@ const
 
 var
   TesterDir = getAppDir() / ".."
-  NimrodBin = TesterDir / "../bin/nimrod"
+  NimBin = TesterDir / "../bin/nim"
 
-proc replaceVars(session: var TNimrodSession, text: string): string =
+proc replaceVars(session: var NimSession, text: string): string =
   result = text.replace(filenameReplaceVar, session.filename)
   result = result.replace(moduleReplaceVar, session.modname)
   result = result.replace(silentReplaceVar, silentReplaceText)
 
-proc startNimrodSession(project, script: string, mode: TRunMode):
-                        TNimrodSession =
+proc startNimSession(project, script: string, mode: TRunMode):
+                        NimSession =
   let (dir, name, ext) = project.splitFile
   result.mode = mode
   result.lastOutput = ""
@@ -50,10 +50,10 @@ proc startNimrodSession(project, script: string, mode: TRunMode):
     removeDir(nimcacheDir / "nimcache")
 
   if mode == CaasRun:
-    result.nim = startProcess(NimrodBin, workingDir = dir,
+    result.nim = startProcess(NimBin, workingDir = dir,
       args = ["serve", "--server.type:stdin", name])
 
-proc doCaasCommand(session: var TNimrodSession, command: string): string =
+proc doCaasCommand(session: var NimSession, command: string): string =
   assert session.mode == CaasRun
   session.nim.inputStream.write(session.replaceVars(command) & "\n")
   session.nim.inputStream.flush
@@ -69,11 +69,11 @@ proc doCaasCommand(session: var TNimrodSession, command: string): string =
       result = "FAILED TO EXECUTE: " & command & "\n" & result
       break
 
-proc doProcCommand(session: var TNimrodSession, command: string): string =
+proc doProcCommand(session: var NimSession, command: string): string =
   assert session.mode == ProcRun or session.mode == SymbolProcRun
   except: result = "FAILED TO EXECUTE: " & command & "\n" & result
   var
-    process = startProcess(NimrodBin, args = session.replaceVars(command).split)
+    process = startProcess(NimBin, args = session.replaceVars(command).split)
     stream = outputStream(process)
     line = TaintedString("")
 
@@ -84,7 +84,7 @@ proc doProcCommand(session: var TNimrodSession, command: string): string =
 
   process.close()
 
-proc doCommand(session: var TNimrodSession, command: string) =
+proc doCommand(session: var NimSession, command: string) =
   if session.mode == CaasRun:
     if not session.nim.running:
       session.lastOutput = "FAILED TO EXECUTE: " & command & "\n" &
@@ -102,7 +102,7 @@ proc doCommand(session: var TNimrodSession, command: string) =
     session.lastOutput = doProcCommand(session,
                                        command & " " & session.filename)
 
-proc close(session: var TNimrodSession) {.destructor.} =
+proc close(session: var NimSession) {.destructor.} =
   if session.mode == CaasRun:
     session.nim.close
 
@@ -114,7 +114,7 @@ proc doScenario(script: string, output: PStream, mode: TRunMode, verbose: bool):
 
   if f.readLine(project):
     var
-      s = startNimrodSession(script.parentDir / project.string, script, mode)
+      s = startNimSession(script.parentDir / project.string, script, mode)
       tline = TaintedString("")
       ln = 1
 
diff --git a/tests/testament/categories.nim b/tests/testament/categories.nim
index 02f7dc1d7..566a74cab 100644
--- a/tests/testament/categories.nim
+++ b/tests/testament/categories.nim
@@ -1,6 +1,6 @@
 #
 #
-#            Nimrod Tester
+#            Nim Tester
 #        (c) Copyright 2014 Andreas Rumpf
 #
 #    See the file "copying.txt", included in this
@@ -20,7 +20,7 @@ const
 proc delNimCache() =
   try:
     removeDir(nimcacheDir)
-  except EOS:
+  except OSError:
     echo "[Warning] could not delete: ", nimcacheDir
     
 proc runRodFiles(r: var TResults, cat: Category, options: string) =
@@ -71,7 +71,7 @@ proc compileRodFiles(r: var TResults, cat: Category, options: string) =
 proc safeCopyFile(src, dest: string) =
   try:
     copyFile(src, dest)
-  except EOS:
+  except OSError:
     echo "[Warning] could not copy: ", src, " to ", dest
 
 proc runBasicDLLTest(c, r: var TResults, cat: Category, options: string) =
@@ -87,7 +87,7 @@ proc runBasicDLLTest(c, r: var TResults, cat: Category, options: string) =
   else:
     # posix relies on crappy LD_LIBRARY_PATH (ugh!):
     var libpath = getenv"LD_LIBRARY_PATH".string
-    if peg"\i '/nimrod' (!'/')* '/lib'" notin libpath:
+    if peg"\i '/nim' (!'/')* '/lib'" notin libpath:
       echo "[Warning] insufficient LD_LIBRARY_PATH"
     var serverDll = DynlibFormat % "server"
     safeCopyFile("tests/dll" / serverDll, "lib" / serverDll)
@@ -192,9 +192,9 @@ proc jsTests(r: var TResults, cat: Category, options: string) =
 #    testSpec(r, t, options)
 
 proc findMainFile(dir: string): string =
-  # finds the file belonging to ".nimrod.cfg"; if there is no such file
+  # finds the file belonging to ".nim.cfg"; if there is no such file
   # it returns the some ".nim" file if there is only one: 
-  const cfgExt = ".nimrod.cfg"
+  const cfgExt = ".nim.cfg"
   result = ""
   var nimFiles = 0
   for kind, file in os.walkDir(dir):
@@ -236,8 +236,8 @@ let
   packageDir = babelDir / "pkgs"
   packageIndex = babelDir / "packages.json"
 
-proc waitForExitEx(p: PProcess): int =
-  var outp: PStream = outputStream(p)
+proc waitForExitEx(p: Process): int =
+  var outp = outputStream(p)
   var line = newStringOfCap(120).TaintedString
   while true:
     if outp.readLine(line):
@@ -250,7 +250,7 @@ proc waitForExitEx(p: PProcess): int =
 proc getPackageDir(package: string): string =
   ## TODO - Replace this with dom's version comparison magic.
   var commandOutput = execCmdEx("babel path $#" % package)
-  if commandOutput.exitCode != quitSuccess:
+  if commandOutput.exitCode != QuitSuccess:
     return ""
   else:
     result = commandOutput[0].string
@@ -278,7 +278,7 @@ proc testBabelPackages(r: var TResults, cat: Category, filter: PackageFilter) =
     echo("[Warning] - Cannot run babel tests: Babel binary not found.")
     return
 
-  if execCmd("$# update" % babelExe) == quitFailure:
+  if execCmd("$# update" % babelExe) == QuitFailure:
     echo("[Warning] - Cannot run babel tests: Babel update failed.")
     return
 
@@ -291,7 +291,7 @@ proc testBabelPackages(r: var TResults, cat: Category, filter: PackageFilter) =
         installProcess = startProcess(babelExe, "", ["install", "-y", name])
         installStatus = waitForExitEx(installProcess)
       installProcess.close
-      if installStatus != quitSuccess:
+      if installStatus != QuitSuccess:
         r.addResult(test, "", "", reInstallFailed)
         continue
 
@@ -301,11 +301,11 @@ proc testBabelPackages(r: var TResults, cat: Category, filter: PackageFilter) =
         buildProcess = startProcess(babelExe, buildPath, ["build"])
         buildStatus = waitForExitEx(buildProcess)
       buildProcess.close
-      if buildStatus != quitSuccess:
+      if buildStatus != QuitSuccess:
         r.addResult(test, "", "", reBuildFailed)
       r.addResult(test, "", "", reSuccess)
     r.addResult(packageFileTest, "", "", reSuccess)
-  except EJsonParsingError:
+  except JsonParsingError:
     echo("[Warning] - Cannot run babel tests: Invalid package file.")
     r.addResult(packageFileTest, "", "", reBuildFailed)
 
diff --git a/tests/testament/htmlgen.nim b/tests/testament/htmlgen.nim
index b91475aee..b9eda5383 100644
--- a/tests/testament/htmlgen.nim
+++ b/tests/testament/htmlgen.nim
@@ -1,6 +1,6 @@
 #
 #
-#            Nimrod Tester
+#            Nim Tester
 #        (c) Copyright 2014 Andreas Rumpf
 #
 #    See the file "copying.txt", included in this
@@ -107,7 +107,7 @@ div.tabContent.hide { display: none; }
   HtmlEnd = "</body></html>"
 
 proc td(s: string): string =
-  result = "<td>" & s.substr(0, 200).XMLEncode & "</td>"
+  result = "<td>" & s.substr(0, 200).xmlEncode & "</td>"
 
 proc getCommit(db: TDbConn, c: int): string =
   var commit = c
diff --git a/tests/testament/specs.nim b/tests/testament/specs.nim
index 6e72f4b5e..37fe8cfee 100644
--- a/tests/testament/specs.nim
+++ b/tests/testament/specs.nim
@@ -1,6 +1,6 @@
 #
 #
-#            Nimrod Tester
+#            Nim Tester
 #        (c) Copyright 2014 Andreas Rumpf
 #
 #    See the file "copying.txt", included in this
@@ -10,7 +10,7 @@
 import parseutils, strutils, os, osproc, streams, parsecfg
 
 const
-  cmdTemplate* = r"nimrod $target --hints:on $options $file"
+  cmdTemplate* = r"nim $target --hints:on $options $file"
 
 type
   TTestAction* = enum
@@ -18,7 +18,7 @@ type
     actionRun = "run"
     actionReject = "reject"
   TResultEnum* = enum
-    reNimrodcCrash,     # nimrod compiler seems to have crashed
+    reNimcCrash,     # nim compiler seems to have crashed
     reMsgsDiffer,       # error messages differ
     reFilesDiffer,      # expected and given filenames differ
     reLinesDiffer,      # expected and given line numbers differ
@@ -53,13 +53,13 @@ const
   targetToExt*: array[TTarget, string] = ["c", "cpp", "m", "js"]
   targetToCmd*: array[TTarget, string] = ["c", "cpp", "objc", "js"]
 
-when not defined(parseCfgBool):
+when not declared(parseCfgBool):
   # candidate for the stdlib:
   proc parseCfgBool(s: string): bool =
     case normalize(s)
     of "y", "yes", "true", "1", "on": result = true
     of "n", "no", "false", "0", "off": result = false
-    else: raise newException(EInvalidValue, "cannot interpret as a bool: " & s)
+    else: raise newException(ValueError, "cannot interpret as a bool: " & s)
 
 proc extractSpec(filename: string): string =
   const tripleQuote = "\"\"\""
@@ -78,7 +78,7 @@ when not defined(nimhygiene):
 
 template parseSpecAux(fillResult: stmt) {.immediate.} =
   var ss = newStringStream(extractSpec(filename))
-  var p {.inject.}: TCfgParser
+  var p {.inject.}: CfgParser
   open(p, ss, filename, 1)
   while true:
     var e {.inject.} = next(p)
diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim
index fc6b4ff95..b74fa99c8 100644
--- a/tests/testament/tester.nim
+++ b/tests/testament/tester.nim
@@ -1,13 +1,13 @@
 #
 #
-#            Nimrod Tester
+#            Nim Tester
 #        (c) Copyright 2014 Andreas Rumpf
 #
 #    See the file "copying.txt", included in this
 #    distribution, for details about the copyright.
 #
 
-## This program verifies Nimrod against the testcases.
+## This program verifies Nim against the testcases.
 
 import
   parseutils, strutils, pegs, os, osproc, streams, parsecfg, json,
@@ -146,9 +146,9 @@ proc codegenCheck(test: TTest, check: string, given: var TSpec) =
       let contents = readFile(genFile).string
       if contents.find(check.peg) < 0:
         given.err = reCodegenFailure
-    except EInvalidValue:
+    except ValueError:
       given.err = reInvalidPeg
-    except EIO:
+    except IOError:
       given.err = reCodeNotFound
 
 proc makeDeterministic(s: string): string =
@@ -193,7 +193,7 @@ proc testSpec(r: var TResults, test: TTest) =
             return
           var (buf, exitCode) = execCmdEx(
             (if test.target == targetJS: "nodejs " else: "") & exeFile)
-          if exitCode != expected.ExitCode:
+          if exitCode != expected.exitCode:
             r.addResult(test, "exitcode: " & $expected.exitCode,
                               "exitcode: " & $exitCode, reExitCodesDiffer)
           else:
@@ -246,15 +246,15 @@ proc main() =
   if p.kind == cmdLongoption:
     case p.key.string.normalize
     of "print", "verbose": optPrintResults = true
-    else: quit usage
+    else: quit Usage
     p.next()
-  if p.kind != cmdArgument: quit usage
+  if p.kind != cmdArgument: quit Usage
   var action = p.key.string.normalize
   p.next()
   var r = initResults()
   case action
   of "all":
-    let testsDir = "tests" & dirSep
+    let testsDir = "tests" & DirSep
     for kind, dir in walkDir(testsDir):
       assert testsDir.startsWith(testsDir)
       let cat = dir[testsDir.len .. -1]
@@ -272,7 +272,7 @@ proc main() =
     generateHtml(resultsFile, commit)
     generateJson(jsonFile, commit)
   else:
-    quit usage
+    quit Usage
 
   if optPrintResults:
     if action == "html": openDefaultBrowser(resultsFile)
@@ -280,6 +280,6 @@ proc main() =
   backend.close()
 
 if paramCount() == 0:
-  quit usage
+  quit Usage
 main()
 
diff --git a/tests/threads/nimrod.cfg b/tests/threads/nim.cfg
index b81c89721..b81c89721 100644
--- a/tests/threads/nimrod.cfg
+++ b/tests/threads/nim.cfg
diff --git a/tests/threads/tthreadanalysis.nim b/tests/threads/tthreadanalysis.nim
index 383680d81..b222f15a9 100644
--- a/tests/threads/tthreadanalysis.nim
+++ b/tests/threads/tthreadanalysis.nim
@@ -1,8 +1,8 @@
 discard """
   outputsub: "101"
-  msg: "Warning: write to foreign heap"
-  line: 37
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
+  errormsg: "'threadFunc' is not GC-safe"
+  line: 39
+  cmd: "nim $target --hints:on --threads:on $options $file"
 """
 
 import os
diff --git a/tests/threads/tthreadanalysis2.nim b/tests/threads/tthreadanalysis2.nim
index bcc09db98..d5b2cd430 100644
--- a/tests/threads/tthreadanalysis2.nim
+++ b/tests/threads/tthreadanalysis2.nim
@@ -2,7 +2,7 @@ discard """
   file: "tthreadanalysis2.nim"
   line: 37
   errormsg: "'threadFunc' is not GC-safe"
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
+  cmd: "nim $target --hints:on --threads:on $options $file"
 """
 
 import os
diff --git a/tests/threads/tthreadheapviolation1.nim b/tests/threads/tthreadheapviolation1.nim
index f3a36e036..94e1b64db 100644
--- a/tests/threads/tthreadheapviolation1.nim
+++ b/tests/threads/tthreadheapviolation1.nim
@@ -1,7 +1,7 @@
 discard """
-  line: 12
-  errormsg: "write to foreign heap"
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
+  line: 11
+  errormsg: "'horrible' is not GC-safe"
+  cmd: "nim $target --hints:on --threads:on $options $file"
 """
 
 var 
diff --git a/tests/trmacros/targlist.nim b/tests/trmacros/targlist.nim
index e416edf0a..321b3d5d2 100644
--- a/tests/trmacros/targlist.nim
+++ b/tests/trmacros/targlist.nim
@@ -3,7 +3,7 @@ discard """
 """
 
 proc f(x: varargs[string, `$`]) = discard
-template optF{f(X)}(x: varargs[expr]) = 
+template optF{f(x)}(x: varargs[expr]) = 
   writeln(stdout, x)
 
 f 1, 2, false, 3, "ha"
diff --git a/tests/typerel/tnoargopenarray.nim b/tests/typerel/tnoargopenarray.nim
index 872ec86d2..20ebe5ecc 100644
--- a/tests/typerel/tnoargopenarray.nim
+++ b/tests/typerel/tnoargopenarray.nim
@@ -1,7 +1,7 @@
 
 import db_sqlite
 
-var db: TDbConn
-Exec(db, sql"create table blabla()")
+var db: DbConn
+exec(db, sql"create table blabla()")
 
 
diff --git a/tests/typerel/trectuple.nim b/tests/typerel/trectuple.nim
index 7c43ec5ba..ebaaa2ea7 100644
--- a/tests/typerel/trectuple.nim
+++ b/tests/typerel/trectuple.nim
@@ -1,3 +1,7 @@
+discard """
+  errormsg: "illegal recursion in type 'TNode'"
+  line: 8
+"""
 
 type
     PNode = ref TNode
diff --git a/tests/typerel/trectuples.nim b/tests/typerel/trectuples.nim
index c59cfe880..a74e4859c 100644
--- a/tests/typerel/trectuples.nim
+++ b/tests/typerel/trectuples.nim
@@ -1,3 +1,7 @@
+discard """
+  errormsg: "illegal recursion in type 'Node'"
+  line: 6
+"""
 
 type Node = tuple[left: ref Node]
 
diff --git a/tests/types/tforwty2.nim b/tests/types/tforwty2.nim
index 5d15e112a..d103314c5 100644
--- a/tests/types/tforwty2.nim
+++ b/tests/types/tforwty2.nim
@@ -6,7 +6,7 @@
 type

   PSDL_semaphore = ptr TSDL_semaphore

   TSDL_semaphore {.final.} = object

-    sem: Pointer             #PSem_t;

+    sem: pointer             #PSem_t;

     when not defined(USE_NAMED_SEMAPHORES):

       sem_data: int

     when defined(BROKEN_SEMGETVALUE):

@@ -18,5 +18,5 @@ type
   PSDL_Sem = ptr TSDL_Sem

   TSDL_Sem = TSDL_Semaphore

 

-proc SDL_CreateSemaphore(initial_value: Int32): PSDL_Sem {.

+proc SDL_CreateSemaphore(initial_value: int32): PSDL_Sem {.

   importc: "SDL_CreateSemaphore".}

diff --git a/tests/types/tillegaltyperecursion.nim b/tests/types/tillegaltyperecursion.nim
index 114e4d08e..ebdbc1d13 100644
--- a/tests/types/tillegaltyperecursion.nim
+++ b/tests/types/tillegaltyperecursion.nim
@@ -1,5 +1,5 @@
 discard """
-  cmd: "nimrod $target --threads:on $options $file"
+  cmd: "nim $target --threads:on $options $file"
   errormsg: "illegal recursion in type 'TIRC'"
   line: 16
 """
@@ -62,5 +62,5 @@ proc Connect*(irc: var TIRC, nick: string, host: string, port: int = 6667) =
 when isMainModule:
     var irc = initIRC()
     irc.Connect("AmryBot[Nim]","irc.freenode.net",6667)
-    irc.sendRaw("JOIN #nimrod")
+    irc.sendRaw("JOIN #nim")
     os.Sleep(4000)
diff --git a/tests/types/tillrec.nim b/tests/types/tillrec.nim
index 1d1ec0622..18757140a 100644
--- a/tests/types/tillrec.nim
+++ b/tests/types/tillrec.nim
@@ -11,6 +11,6 @@ type
     kids: seq[TLegal]
 
   TIllegal {.final.} = object  #ERROR_MSG illegal recursion in type 'TIllegal'
-    y: Int
+    y: int
     x: array[0..3, TIllegal]
 
diff --git a/tests/usingstmt/tusingstatement.nim b/tests/usingstmt/tusingstatement.nim
index a33aced4c..b58478d74 100644
--- a/tests/usingstmt/tusingstatement.nim
+++ b/tests/usingstmt/tusingstatement.nim
@@ -9,7 +9,7 @@ import
 # This macro mimics the using statement from C#
 #
 # It's kept only as a test for the macro system
-# Nimrod's destructors offer a mechanism for automatic 
+# Nim's destructors offer a mechanism for automatic 
 # disposal of resources.
 #
 macro autoClose(e: expr): stmt {.immediate.} =
diff --git a/tests/varstmt/tlet.nim b/tests/varstmt/tlet.nim
index ba355c5d8..138f34433 100644
--- a/tests/varstmt/tlet.nim
+++ b/tests/varstmt/tlet.nim
@@ -10,7 +10,7 @@ proc main =
   elif name == "name":
     echo("Very funny, your name is name.")
   else:
-    Echo("Hi, ", name, "!")
+    echo("Hi, ", name, "!")
     
   let (x, y) = ("abc", name)
   echo y, x
diff --git a/tests/vm/tasmparser.nim b/tests/vm/tasmparser.nim
new file mode 100644
index 000000000..67313c858
--- /dev/null
+++ b/tests/vm/tasmparser.nim
@@ -0,0 +1,174 @@
+
+# bug #1513
+
+import os, parseutils, strutils, ropes, macros
+
+var
+  code {.compileTime.} = ""
+  start {.compileTime.} = 0
+  line {.compileTime.} = 1
+  cpp {.compileTime.} = ""
+  token {.compileTime.} = ""
+
+proc log (msg: string) {.compileTime.} =
+    echo msg
+
+proc asmx64 () {.compileTime} =
+
+  #log "code = $1" % code
+
+  const asmx64pre = "{.emit: \"\"\"{x64asm& x= *x64asm_ptr(`asm0`); try {"
+  const asmx64post = "} catch (Xbyak::Error e) { printf (\"asmx64 error: %s\\n\", e.what ()); }}\"\"\".} "
+
+  const xp = "x."
+
+  const symbolStart = { '_', 'a'..'z', 'A' .. 'Z' }
+  const symbol = { '0'..'9' } + symbolStart
+  const eolComment = { ';' }
+  const endOfLine = { '\l', '\r' }
+  const leadingWhiteSpace = { ' ' }
+
+  const end_or_comment = endOfLine + eolComment + { '\0' }
+
+  const passthrough_start = { '{', '`' }
+  const passthrough_end = { '}', '`', '\0' }
+
+  const end_or_symbol_or_comment_or_passthrough = symbolStart + end_or_comment + passthrough_start
+
+
+  proc abortAsmParse (err:string) =
+    discard
+
+  let codeLen = code.len
+  #let codeEnd = codeLen-1
+  cpp.add asmx64pre
+
+  #log "{$1}\n" % [code]
+
+  type asmParseState = enum leading, mnemonic, betweenArguments, arguments, endCmd, skipToEndOfLine
+
+  var state:asmParseState = leading
+
+  proc checkEnd (err:string) =
+    let ch = code [start]
+    if int (ch) == 0:
+      abortAsmParse (err)
+
+  proc get_passthrough () =
+    inc start
+    let prev_start = start
+    let prev_token = token
+    start += code.parseUntil (token, passthrough_end, start)
+    checkEnd ("Failed to find passthrough end delimiter from offset $1 for:$2\n$3" % [$prev_start, $(code [prev_start-prev_token.len..prev_start]), token[1..token.len-1]])
+    inc start
+    cpp.add "`"
+    cpp.add token
+    cpp.add "`"
+
+  var inparse = true
+
+  proc checkCmdEnd () =
+    if codeLen == start:
+      state = endCmd
+      inparse = false
+
+  while inparse:
+    checkCmdEnd ()
+
+    log ("state=$1 start=$2" % [$state, $start])
+
+    case state:
+    of leading:
+      
+      echo "b100 ", start
+      start += code.skipWhile (leadingWhiteSpace, start)
+      echo "b200 ", start
+      let ch = code [start]
+      if ch in endOfLine:
+        inc (line)
+        #echo "c100 ", start, ' ', code 
+        start += code.skipWhile (endOfline, start)
+        #echo "c200 ", start, ' ', code 
+        continue
+      elif ch in symbolStart:
+        state = mnemonic
+      elif ch in eolComment:
+        state = skipToEndOfLine
+      elif ch in passthrough_start:
+        get_passthrough ()        
+        echo "d100 ", start
+        start += code.parseUntil (token, end_or_symbol_or_comment_or_passthrough, start)
+        echo "d200 ", start
+        cpp.add token
+        state = mnemonic
+      elif int (ch) == 0:
+        break
+      else:
+        abortAsmParse ("after '$3' illegal character at offset $1: $2" % [$start, $(int (ch)), token])
+
+    of mnemonic:
+      echo "e100 ", start
+      start += code.parseWhile (token, symbol, start)
+      echo "e200 ", start
+      cpp.add xp
+      cpp.add token
+      cpp.add "("
+      state = betweenArguments
+
+    of betweenArguments:
+      let tmp = start
+      let rcode = code
+      start += rcode.parseUntil (token, end_or_symbol_or_comment_or_passthrough, tmp)
+      cpp.add token
+
+      if codeLen <= start:
+        state = endCmd
+        continue
+        
+      let ch = code [start]
+      if ch in passthrough_start:
+        get_passthrough ()
+        continue
+      if (ch in {'x', 'X'}) and ('0' == code [start-1]):
+        token = $(code [start])
+        cpp.add token
+        inc start
+        continue
+      state = arguments
+
+    of arguments:
+      if code [start] in end_or_comment:
+        state = endCmd
+        continue
+      start += code.parseWhile (token, symbol, start)
+      cpp.add xp
+      cpp.add token
+      state = betweenArguments
+
+    of endCmd:
+      cpp.add ");\n"
+      state = skipToEndOfLine
+    
+    of skipToEndOfLine:
+      echo "a100 ", start
+      start += code.skipUntil (endOfLine, start)
+      echo "a200 ", start
+      start += code.skipWhile (endOfline, start)
+      echo "a300 ", start
+      inc line
+      state = leading
+
+  cpp.add asmx64post
+
+  echo ($cpp)
+
+macro asmx64x (code_in:expr) : stmt =
+  code = $code_in
+  echo ("code.len = $1, code = >>>$2<<<" % [$code.len, code])
+  asmx64 ()
+  discard result
+
+asmx64x """
+    mov rax, {m}
+    ret
+"""
diff --git a/tests/vm/tcompiletimetable.nim b/tests/vm/tcompiletimetable.nim
index f1d3ecd4e..df6ead56f 100644
--- a/tests/vm/tcompiletimetable.nim
+++ b/tests/vm/tcompiletimetable.nim
@@ -2,18 +2,19 @@ discard """
   msg: '''2
 3
 4:2
-  '''
+Got Hi
+Got Hey'''
 """
 
 # bug #404
 
-import macros, tables
+import macros, tables, strtabs
 
 var ZOOT{.compileTime.} = initTable[int, int](2)
 var iii {.compiletime.} = 1
 
 macro zoo:stmt=
-  zoot[iii] = iii*2
+  ZOOT[iii] = iii*2
   inc iii
   echo iii
 
@@ -29,9 +30,7 @@ tupleUnpack
 
 # bug #903
 
-import strtabs
-
-var x {.compileTime.}: PStringTable
+var x {.compileTime.}: StringTableRef
 
 macro addStuff(stuff, body: expr): stmt {.immediate.} =
   result = newNimNode(nnkStmtList)
diff --git a/tests/vm/tconsteval.nim b/tests/vm/tconsteval.nim
index 16fd8f4b8..96a1bafe8 100644
--- a/tests/vm/tconsteval.nim
+++ b/tests/vm/tconsteval.nim
@@ -6,7 +6,7 @@ import strutils
 const
   HelpText = """
 +-----------------------------------------------------------------+
-|         Maintenance program for Nimrod                          |
+|         Maintenance program for Nim                             |
 |             Version $1|
 |             (c) 2012 Andreas Rumpf                              |
 +-----------------------------------------------------------------+
@@ -19,13 +19,13 @@ Options:
   --help, -h               shows this help and quits
 Possible Commands:
   boot [options]           bootstraps with given command line options
-  clean                    cleans Nimrod project; removes generated files
+  clean                    cleans Nim project; removes generated files
   web                      generates the website
   csource [options]        builds the C sources for installation
   zip                      builds the installation ZIP package
   inno                     builds the Inno Setup installer
-""" % [NimrodVersion & repeatChar(44-len(NimrodVersion)), 
+""" % [NimVersion & repeatChar(44-len(NimVersion)), 
        CompileDate, CompileTime]
 
-echo helpText
+echo HelpText
 
diff --git a/tests/vm/trgba.nim b/tests/vm/trgba.nim
index b1d94702f..22eec4d6e 100644
--- a/tests/vm/trgba.nim
+++ b/tests/vm/trgba.nim
@@ -6,20 +6,20 @@ discard """
 
 #bug #1009
 type
-  TAggRgba8* = array[4, Byte]
+  TAggRgba8* = array[4, byte]
 
-template R*(self: TAggRgba8): Byte = self[0]   
-template G*(self: TAggRgba8): Byte = self[1]   
-template B*(self: TAggRgba8): Byte = self[2]   
-template A*(self: TAggRgba8): Byte = self[3]   
+template R*(self: TAggRgba8): byte = self[0]   
+template G*(self: TAggRgba8): byte = self[1]   
+template B*(self: TAggRgba8): byte = self[2]   
+template A*(self: TAggRgba8): byte = self[3]   
 
-template `R=`*(self: TAggRgba8, val: Byte) = 
+template `R=`*(self: TAggRgba8, val: byte) = 
   self[0] = val   
-template `G=`*(self: TAggRgba8, val: Byte) =   
+template `G=`*(self: TAggRgba8, val: byte) =   
   self[1] = val   
-template `B=`*(self: TAggRgba8, val: Byte) =   
+template `B=`*(self: TAggRgba8, val: byte) =   
   self[2] = val   
-template `A=`*(self: TAggRgba8, val: Byte) =   
+template `A=`*(self: TAggRgba8, val: byte) =   
   self[3] = val   
 
 proc ABGR* (val: int| int64): TAggRgba8 =
diff --git a/tests/vm/twrongarray.nim b/tests/vm/twrongarray.nim
new file mode 100644
index 000000000..c1514d0e9
--- /dev/null
+++ b/tests/vm/twrongarray.nim
@@ -0,0 +1,17 @@
+discard """
+  errormsg: "cannot evaluate at compile time: size"
+  line: 16
+"""
+
+#bug #1343
+
+when false:
+  proc one(dummy: int, size: int) =
+    var x: array[size, int] # compile error: constant expression expected
+
+  proc three(size: int) =
+    var x: array[size * 1, int] # compile error: cannot evaluate at compile time: size
+
+proc two(dummy: int, size: int) =
+  var x: array[size * 1, int] # compiles, but shouldn't?
+  #assert(x.len == size) # just for fun
diff --git a/tests/vm/twrongconst.nim b/tests/vm/twrongconst.nim
index 5c0c80f9f..68ab2757c 100644
--- a/tests/vm/twrongconst.nim
+++ b/tests/vm/twrongconst.nim
@@ -4,6 +4,6 @@ discard """
 """
 
 var x: array[100, char]
-template Foo : expr = x[42]
+template foo : expr = x[42]
 
 const myConst = foo