summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-12-27 15:48:53 +0100
committerAraq <rumpf_a@web.de>2013-12-27 15:48:53 +0100
commit2df9b442c646e06cc577a723dc2592275bf9b6f5 (patch)
treee02a95912bc6ad25bdfaea1b9127f8ada96e7314 /compiler
parent9e92455a534956bfbb0a7ec5e6f2bdffd7268818 (diff)
downloadNim-2df9b442c646e06cc577a723dc2592275bf9b6f5.tar.gz
case consistency part 1
Diffstat (limited to 'compiler')
-rw-r--r--compiler/astalgo.nim177
-rw-r--r--compiler/bitsets.nim40
-rw-r--r--compiler/ccgexprs.nim4
-rw-r--r--compiler/ccgmerge.nim3
-rw-r--r--compiler/ccgstmts.nim32
-rw-r--r--compiler/ccgthreadvars.nim4
-rw-r--r--compiler/ccgtypes.nim6
-rw-r--r--compiler/ccgutils.nim36
-rw-r--r--compiler/cgen.nim8
-rw-r--r--compiler/cgmeth.nim6
-rw-r--r--compiler/commands.nim82
-rw-r--r--compiler/condsyms.nim64
-rw-r--r--compiler/docgen.nim20
-rw-r--r--compiler/extccomp.nim18
-rw-r--r--compiler/idents.nim2
-rw-r--r--compiler/idgen.nim6
-rw-r--r--compiler/lexer.nim8
-rw-r--r--compiler/lists.nim22
-rw-r--r--compiler/llstream.nim75
-rw-r--r--compiler/lookups.nim86
-rw-r--r--compiler/magicsys.nim17
-rw-r--r--compiler/main.nim32
-rw-r--r--compiler/modules.nim2
-rw-r--r--compiler/msgs.nim52
-rw-r--r--compiler/nimconf.nim2
-rw-r--r--compiler/nimlexbase.nim15
-rw-r--r--compiler/nimrod.nim10
-rw-r--r--compiler/nimsets.nim8
-rw-r--r--compiler/options.nim2
-rw-r--r--compiler/parser.nim32
-rw-r--r--compiler/pbraces.nim2
-rw-r--r--compiler/platform.nim12
-rw-r--r--compiler/pragmas.nim32
-rw-r--r--compiler/pretty.nim166
-rw-r--r--compiler/procfind.nim10
-rw-r--r--compiler/renderer.nim8
-rw-r--r--compiler/rodread.nim34
-rw-r--r--compiler/rodutils.nim4
-rw-r--r--compiler/ropes.nim26
-rw-r--r--compiler/sem.nim2
-rw-r--r--compiler/semcall.nim24
-rw-r--r--compiler/semdata.nim32
-rw-r--r--compiler/semdestruct.nim6
-rw-r--r--compiler/semexprs.nim20
-rw-r--r--compiler/semgnrc.nim2
-rw-r--r--compiler/seminst.nim8
-rw-r--r--compiler/semstmts.nim10
-rw-r--r--compiler/semtempl.nim4
-rw-r--r--compiler/semtypes.nim2
-rw-r--r--compiler/semtypinst.nim21
-rw-r--r--compiler/service.nim2
-rw-r--r--compiler/sigmatch.nim12
-rw-r--r--compiler/suggest.nim4
-rw-r--r--compiler/syntaxes.nim30
-rw-r--r--compiler/transf.nim2
-rw-r--r--compiler/trees.nim36
-rw-r--r--compiler/treetab.nim30
-rw-r--r--compiler/types.nim81
-rw-r--r--compiler/vm.nim2
-rw-r--r--compiler/vmgen.nim2
60 files changed, 808 insertions, 689 deletions
diff --git a/compiler/astalgo.nim b/compiler/astalgo.nim
index 4f869cfca..b04cff598 100644
--- a/compiler/astalgo.nim
+++ b/compiler/astalgo.nim
@@ -24,35 +24,35 @@ proc symToYaml*(n: PSym, indent: int = 0, maxRecDepth: int = - 1): PRope
 proc lineInfoToStr*(info: TLineInfo): PRope
   
 # ----------------------- node sets: ---------------------------------------
-proc ObjectSetContains*(t: TObjectSet, obj: PObject): bool
+proc objectSetContains*(t: TObjectSet, obj: PObject): bool
   # returns true whether n is in t
-proc ObjectSetIncl*(t: var TObjectSet, obj: PObject)
+proc objectSetIncl*(t: var TObjectSet, obj: PObject)
   # include an element n in the table t
-proc ObjectSetContainsOrIncl*(t: var TObjectSet, obj: PObject): bool
+proc objectSetContainsOrIncl*(t: var TObjectSet, obj: PObject): bool
   # more are not needed ...
 
 # ----------------------- (key, val)-Hashtables ----------------------------
-proc TablePut*(t: var TTable, key, val: PObject)
-proc TableGet*(t: TTable, key: PObject): PObject
+proc tablePut*(t: var TTable, key, val: PObject)
+proc tableGet*(t: TTable, key: PObject): PObject
 type 
   TCmpProc* = proc (key, closure: PObject): bool {.nimcall.} # true if found
 
-proc TableSearch*(t: TTable, key, closure: PObject, 
+proc tableSearch*(t: TTable, key, closure: PObject, 
                   comparator: TCmpProc): PObject
   # return val as soon as comparator returns true; if this never happens,
   # nil is returned
 
 # ----------------------- str table -----------------------------------------
-proc StrTableContains*(t: TStrTable, n: PSym): bool
-proc StrTableAdd*(t: var TStrTable, n: PSym)
-proc StrTableGet*(t: TStrTable, name: PIdent): PSym  
+proc strTableContains*(t: TStrTable, n: PSym): bool
+proc strTableAdd*(t: var TStrTable, n: PSym)
+proc strTableGet*(t: TStrTable, name: PIdent): PSym  
   
 type 
   TTabIter*{.final.} = object # consider all fields here private
     h*: THash                 # current hash
   
-proc InitTabIter*(ti: var TTabIter, tab: TStrTable): PSym
-proc NextIter*(ti: var TTabIter, tab: TStrTable): PSym
+proc initTabIter*(ti: var TTabIter, tab: TStrTable): PSym
+proc nextIter*(ti: var TTabIter, tab: TStrTable): PSym
   # usage:
   # var 
   #   i: TTabIter
@@ -69,8 +69,8 @@ type
     name*: PIdent
 
 
-proc InitIdentIter*(ti: var TIdentIter, tab: TStrTable, s: PIdent): PSym
-proc NextIdentIter*(ti: var TIdentIter, tab: TStrTable): PSym
+proc initIdentIter*(ti: var TIdentIter, tab: TStrTable, s: PIdent): PSym
+proc nextIdentIter*(ti: var TIdentIter, tab: TStrTable): PSym
 
 # these are for debugging only: They are not really deprecated, but I want
 # the warning so that release versions do not contain debugging statements:
@@ -79,15 +79,14 @@ proc debug*(n: PType) {.deprecated.}
 proc debug*(n: PNode) {.deprecated.}
 
 # --------------------------- ident tables ----------------------------------
-proc IdTableGet*(t: TIdTable, key: PIdObj): PObject
-proc IdTableGet*(t: TIdTable, key: int): PObject
-proc IdTablePut*(t: var TIdTable, key: PIdObj, val: PObject)
-proc IdTableHasObjectAsKey*(t: TIdTable, key: PIdObj): bool
+proc idTableGet*(t: TIdTable, key: PIdObj): PObject
+proc idTableGet*(t: TIdTable, key: int): PObject
+proc idTablePut*(t: var TIdTable, key: PIdObj, val: PObject)
+proc idTableHasObjectAsKey*(t: TIdTable, key: PIdObj): bool
   # checks if `t` contains the `key` (compared by the pointer value, not only
   # `key`'s id)
-proc IdNodeTableGet*(t: TIdNodeTable, key: PIdObj): PNode
-proc IdNodeTablePut*(t: var TIdNodeTable, key: PIdObj, val: PNode)
-proc writeIdNodeTable*(t: TIdNodeTable)
+proc idNodeTableGet*(t: TIdNodeTable, key: PIdObj): PNode
+proc idNodeTablePut*(t: var TIdNodeTable, key: PIdObj, val: PNode)
 
 # ---------------------------------------------------------------------------
 
@@ -111,9 +110,9 @@ type
     data*: TIIPairSeq
 
 
-proc initIITable*(x: var TIITable)
-proc IITableGet*(t: TIITable, key: int): int
-proc IITablePut*(t: var TIITable, key, val: int)
+proc initIiTable*(x: var TIITable)
+proc iiTableGet*(t: TIITable, key: int): int
+proc iiTablePut*(t: var TIITable, key, val: int)
 
 # implementation
 
@@ -129,7 +128,7 @@ proc skipConvTakeType*(n: PNode): PNode =
   result = n.skipConv
   result.typ = n.typ
 
-proc SameValue*(a, b: PNode): bool = 
+proc sameValue*(a, b: PNode): bool = 
   result = false
   case a.kind
   of nkCharLit..nkInt64Lit: 
@@ -141,7 +140,7 @@ proc SameValue*(a, b: PNode): bool =
   else:
     # don't raise an internal error for 'nimrod check':
     #InternalError(a.info, "SameValue")
-    nil
+    discard
 
 proc leValue*(a, b: PNode): bool = 
   # a <= b?
@@ -156,7 +155,7 @@ proc leValue*(a, b: PNode): bool =
   else: 
     # don't raise an internal error for 'nimrod check':
     #InternalError(a.info, "leValue")
-    nil
+    discard
 
 proc lookupInRecord(n: PNode, field: PIdent): PSym = 
   result = nil
@@ -182,14 +181,14 @@ proc lookupInRecord(n: PNode, field: PIdent): PSym =
 proc getModule(s: PSym): PSym = 
   result = s
   assert((result.kind == skModule) or (result.owner != result))
-  while (result != nil) and (result.kind != skModule): result = result.owner
+  while result != nil and result.kind != skModule: result = result.owner
   
 proc getSymFromList(list: PNode, ident: PIdent, start: int = 0): PSym = 
   for i in countup(start, sonsLen(list) - 1): 
     if list.sons[i].kind == nkSym:
       result = list.sons[i].sym
       if result.name.id == ident.id: return 
-    else: InternalError(list.info, "getSymFromList")
+    else: internalError(list.info, "getSymFromList")
   result = nil
 
 proc hashNode(p: PObject): THash = 
@@ -501,7 +500,7 @@ proc objectSetContainsOrIncl(t: var TObjectSet, obj: PObject): bool =
   inc(t.counter)
   result = false
 
-proc TableRawGet(t: TTable, key: PObject): int = 
+proc tableRawGet(t: TTable, key: PObject): int = 
   var h: THash = hashNode(key) and high(t.data) # start with real hash value
   while t.data[h].key != nil: 
     if t.data[h].key == key: 
@@ -509,7 +508,7 @@ proc TableRawGet(t: TTable, key: PObject): int =
     h = nextTry(h, high(t.data))
   result = -1
 
-proc TableSearch(t: TTable, key, closure: PObject, 
+proc tableSearch(t: TTable, key, closure: PObject, 
                  comparator: TCmpProc): PObject = 
   var h: THash = hashNode(key) and high(t.data) # start with real hash value
   while t.data[h].key != nil: 
@@ -520,13 +519,13 @@ proc TableSearch(t: TTable, key, closure: PObject,
     h = nextTry(h, high(t.data))
   result = nil
 
-proc TableGet(t: TTable, key: PObject): PObject = 
-  var index = TableRawGet(t, key)
+proc tableGet(t: TTable, key: PObject): PObject = 
+  var index = tableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = nil
   
-proc TableRawInsert(data: var TPairSeq, key, val: PObject) = 
-  var h: THash = HashNode(key) and high(data)
+proc tableRawInsert(data: var TPairSeq, key, val: PObject) = 
+  var h: THash = hashNode(key) and high(data)
   while data[h].key != nil: 
     assert(data[h].key != key)
     h = nextTry(h, high(data))
@@ -534,23 +533,23 @@ proc TableRawInsert(data: var TPairSeq, key, val: PObject) =
   data[h].key = key
   data[h].val = val
 
-proc TableEnlarge(t: var TTable) = 
+proc tableEnlarge(t: var TTable) = 
   var n: TPairSeq
   newSeq(n, len(t.data) * growthFactor)
   for i in countup(0, high(t.data)): 
-    if t.data[i].key != nil: TableRawInsert(n, t.data[i].key, t.data[i].val)
+    if t.data[i].key != nil: tableRawInsert(n, t.data[i].key, t.data[i].val)
   swap(t.data, n)
 
-proc TablePut(t: var TTable, key, val: PObject) = 
+proc tablePut(t: var TTable, key, val: PObject) = 
   var index = TableRawGet(t, key)
   if index >= 0: 
     t.data[index].val = val
   else: 
-    if mustRehash(len(t.data), t.counter): TableEnlarge(t)
-    TableRawInsert(t.data, key, val)
+    if mustRehash(len(t.data), t.counter): tableEnlarge(t)
+    tableRawInsert(t.data, key, val)
     inc(t.counter)
 
-proc StrTableContains(t: TStrTable, n: PSym): bool = 
+proc strTableContains(t: TStrTable, n: PSym): bool = 
   var h: THash = n.name.h and high(t.data) # start with real hash value
   while t.data[h] != nil: 
     if (t.data[h] == n): 
@@ -558,7 +557,7 @@ proc StrTableContains(t: TStrTable, n: PSym): bool =
     h = nextTry(h, high(t.data))
   result = false
 
-proc StrTableRawInsert(data: var TSymSeq, n: PSym) = 
+proc strTableRawInsert(data: var TSymSeq, n: PSym) = 
   var h: THash = n.name.h and high(data)
   while data[h] != nil: 
     if data[h] == n:
@@ -569,7 +568,7 @@ proc StrTableRawInsert(data: var TSymSeq, n: PSym) =
   assert(data[h] == nil)
   data[h] = n
 
-proc SymTabReplaceRaw(data: var TSymSeq, prevSym: PSym, newSym: PSym) =
+proc symTabReplaceRaw(data: var TSymSeq, prevSym: PSym, newSym: PSym) =
   assert prevSym.name.h == newSym.name.h
   var h: THash = prevSym.name.h and high(data)
   while data[h] != nil:
@@ -579,22 +578,22 @@ proc SymTabReplaceRaw(data: var TSymSeq, prevSym: PSym, newSym: PSym) =
     h = nextTry(h, high(data))
   assert false
  
-proc SymTabReplace*(t: var TStrTable, prevSym: PSym, newSym: PSym) =
-  SymTabReplaceRaw(t.data, prevSym, newSym)
+proc symTabReplace*(t: var TStrTable, prevSym: PSym, newSym: PSym) =
+  symTabReplaceRaw(t.data, prevSym, newSym)
 
-proc StrTableEnlarge(t: var TStrTable) = 
+proc strTableEnlarge(t: var TStrTable) = 
   var n: TSymSeq
   newSeq(n, len(t.data) * growthFactor)
   for i in countup(0, high(t.data)): 
     if t.data[i] != nil: StrTableRawInsert(n, t.data[i])
   swap(t.data, n)
 
-proc StrTableAdd(t: var TStrTable, n: PSym) = 
+proc strTableAdd(t: var TStrTable, n: PSym) = 
   if mustRehash(len(t.data), t.counter): StrTableEnlarge(t)
   StrTableRawInsert(t.data, n)
   inc(t.counter)
 
-proc StrTableIncl*(t: var TStrTable, n: PSym): bool {.discardable.} =
+proc strTableIncl*(t: var TStrTable, n: PSym): bool {.discardable.} =
   # returns true if n is already in the string table:
   # It is essential that `n` is written nevertheless!
   # This way the newest redefinition is picked by the semantic analyses!
@@ -616,7 +615,7 @@ proc StrTableIncl*(t: var TStrTable, n: PSym): bool {.discardable.} =
   inc(t.counter)
   result = false
 
-proc StrTableGet(t: TStrTable, name: PIdent): PSym = 
+proc strTableGet(t: TStrTable, name: PIdent): PSym = 
   var h: THash = name.h and high(t.data)
   while true: 
     result = t.data[h]
@@ -624,13 +623,13 @@ proc StrTableGet(t: TStrTable, name: PIdent): PSym =
     if result.name.id == name.id: break 
     h = nextTry(h, high(t.data))
 
-proc InitIdentIter(ti: var TIdentIter, tab: TStrTable, s: PIdent): PSym = 
+proc initIdentIter(ti: var TIdentIter, tab: TStrTable, s: PIdent): PSym = 
   ti.h = s.h
   ti.name = s
   if tab.Counter == 0: result = nil
   else: result = NextIdentIter(ti, tab)
   
-proc NextIdentIter(ti: var TIdentIter, tab: TStrTable): PSym = 
+proc nextIdentIter(ti: var TIdentIter, tab: TStrTable): PSym = 
   var h, start: THash
   h = ti.h and high(tab.data)
   start = h
@@ -644,7 +643,7 @@ proc NextIdentIter(ti: var TIdentIter, tab: TStrTable): PSym =
     result = tab.data[h]
   ti.h = nextTry(h, high(tab.data))
   
-proc NextIdentExcluding*(ti: var TIdentIter, tab: TStrTable, 
+proc nextIdentExcluding*(ti: var TIdentIter, tab: TStrTable, 
                          excluding: TIntSet): PSym =
   var h: THash = ti.h and high(tab.data)
   var start = h
@@ -660,33 +659,33 @@ proc NextIdentExcluding*(ti: var TIdentIter, tab: TStrTable,
   ti.h = nextTry(h, high(tab.data))
   if result != nil and Contains(excluding, result.id): result = nil
 
-proc FirstIdentExcluding*(ti: var TIdentIter, tab: TStrTable, s: PIdent,
+proc firstIdentExcluding*(ti: var TIdentIter, tab: TStrTable, s: PIdent,
                           excluding: TIntSet): PSym = 
   ti.h = s.h
   ti.name = s
   if tab.Counter == 0: result = nil
   else: result = NextIdentExcluding(ti, tab, excluding)
 
-proc InitTabIter(ti: var TTabIter, tab: TStrTable): PSym = 
+proc initTabIter(ti: var TTabIter, tab: TStrTable): PSym = 
   ti.h = 0                    # we start by zero ...
   if tab.counter == 0: 
     result = nil              # FIX 1: removed endless loop
   else: 
     result = NextIter(ti, tab)
   
-proc NextIter(ti: var TTabIter, tab: TStrTable): PSym = 
+proc nextIter(ti: var TTabIter, tab: TStrTable): PSym = 
   result = nil
   while (ti.h <= high(tab.data)): 
     result = tab.data[ti.h]
-    Inc(ti.h)                 # ... and increment by one always
+    inc(ti.h)                 # ... and increment by one always
     if result != nil: break 
 
 iterator items*(tab: TStrTable): PSym = 
   var it: TTabIter
-  var s = InitTabIter(it, tab)
+  var s = initTabIter(it, tab)
   while s != nil: 
     yield s
-    s = NextIter(it, tab)
+    s = nextIter(it, tab)
 
 proc hasEmptySlot(data: TIdPairSeq): bool = 
   for h in countup(0, high(data)): 
@@ -694,7 +693,7 @@ proc hasEmptySlot(data: TIdPairSeq): bool =
       return true
   result = false
 
-proc IdTableRawGet(t: TIdTable, key: int): int = 
+proc idTableRawGet(t: TIdTable, key: int): int = 
   var h: THash
   h = key and high(t.data)    # start with real hash value
   while t.data[h].key != nil: 
@@ -703,18 +702,18 @@ proc IdTableRawGet(t: TIdTable, key: int): int =
     h = nextTry(h, high(t.data))
   result = - 1
 
-proc IdTableHasObjectAsKey(t: TIdTable, key: PIdObj): bool = 
-  var index = IdTableRawGet(t, key.id)
+proc idTableHasObjectAsKey(t: TIdTable, key: PIdObj): bool = 
+  var index = idTableRawGet(t, key.id)
   if index >= 0: result = t.data[index].key == key
   else: result = false
   
-proc IdTableGet(t: TIdTable, key: PIdObj): PObject = 
-  var index = IdTableRawGet(t, key.id)
+proc idTableGet(t: TIdTable, key: PIdObj): PObject = 
+  var index = idTableRawGet(t, key.id)
   if index >= 0: result = t.data[index].val
   else: result = nil
   
-proc IdTableGet(t: TIdTable, key: int): PObject = 
-  var index = IdTableRawGet(t, key)
+proc idTableGet(t: TIdTable, key: int): PObject = 
+  var index = idTableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = nil
 
@@ -723,7 +722,7 @@ iterator pairs*(t: TIdTable): tuple[key: int, value: PObject] =
     if t.data[i].key != nil:
       yield (t.data[i].key.id, t.data[i].val)
   
-proc IdTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: PObject) = 
+proc idTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: PObject) = 
   var h: THash
   h = key.id and high(data)
   while data[h].key != nil: 
@@ -733,7 +732,7 @@ proc IdTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: PObject) =
   data[h].key = key
   data[h].val = val
 
-proc IdTablePut(t: var TIdTable, key: PIdObj, val: PObject) = 
+proc idTablePut(t: var TIdTable, key: PIdObj, val: PObject) = 
   var 
     index: int
     n: TIdPairSeq
@@ -752,14 +751,11 @@ proc IdTablePut(t: var TIdTable, key: PIdObj, val: PObject) =
     IdTableRawInsert(t.data, key, val)
     inc(t.counter)
 
-iterator IdTablePairs*(t: TIdTable): tuple[key: PIdObj, val: PObject] =
+iterator idTablePairs*(t: TIdTable): tuple[key: PIdObj, val: PObject] =
   for i in 0 .. high(t.data):
     if not isNil(t.data[i].key): yield (t.data[i].key, t.data[i].val)
 
-proc writeIdNodeTable(t: TIdNodeTable) = 
-  nil
-
-proc IdNodeTableRawGet(t: TIdNodeTable, key: PIdObj): int = 
+proc idNodeTableRawGet(t: TIdNodeTable, key: PIdObj): int = 
   var h: THash
   h = key.id and high(t.data) # start with real hash value
   while t.data[h].key != nil:
@@ -768,17 +764,17 @@ proc IdNodeTableRawGet(t: TIdNodeTable, key: PIdObj): int =
     h = nextTry(h, high(t.data))
   result = - 1
 
-proc IdNodeTableGet(t: TIdNodeTable, key: PIdObj): PNode = 
+proc idNodeTableGet(t: TIdNodeTable, key: PIdObj): PNode = 
   var index: int
-  index = IdNodeTableRawGet(t, key)
+  index = idNodeTableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = nil
 
-proc IdNodeTableGetLazy*(t: TIdNodeTable, key: PIdObj): PNode =
+proc idNodeTableGetLazy*(t: TIdNodeTable, key: PIdObj): PNode =
   if not isNil(t.data):
-    result = IdNodeTableGet(t, key)
+    result = idNodeTableGet(t, key)
   
-proc IdNodeTableRawInsert(data: var TIdNodePairSeq, key: PIdObj, val: PNode) = 
+proc idNodeTableRawInsert(data: var TIdNodePairSeq, key: PIdObj, val: PNode) = 
   var h: THash
   h = key.id and high(data)
   while data[h].key != nil: 
@@ -788,7 +784,7 @@ proc IdNodeTableRawInsert(data: var TIdNodePairSeq, key: PIdObj, val: PNode) =
   data[h].key = key
   data[h].val = val
 
-proc IdNodeTablePut(t: var TIdNodeTable, key: PIdObj, val: PNode) = 
+proc idNodeTablePut(t: var TIdNodeTable, key: PIdObj, val: PNode) = 
   var index = IdNodeTableRawGet(t, key)
   if index >= 0: 
     assert(t.data[index].key != nil)
@@ -799,14 +795,14 @@ proc IdNodeTablePut(t: var TIdNodeTable, key: PIdObj, val: PNode) =
       newSeq(n, len(t.data) * growthFactor)
       for i in countup(0, high(t.data)): 
         if t.data[i].key != nil: 
-          IdNodeTableRawInsert(n, t.data[i].key, t.data[i].val)
+          idNodeTableRawInsert(n, t.data[i].key, t.data[i].val)
       swap(t.data, n)
-    IdNodeTableRawInsert(t.data, key, val)
+    idNodeTableRawInsert(t.data, key, val)
     inc(t.counter)
 
-proc IdNodeTablePutLazy*(t: var TIdNodeTable, key: PIdObj, val: PNode) =
+proc idNodeTablePutLazy*(t: var TIdNodeTable, key: PIdObj, val: PNode) =
   if isNil(t.data): initIdNodeTable(t)
-  IdNodeTablePut(t, key, val)
+  idNodeTablePut(t, key, val)
 
 iterator pairs*(t: TIdNodeTable): tuple[key: PIdObj, val: PNode] =
   for i in 0 .. high(t.data):
@@ -817,21 +813,20 @@ proc initIITable(x: var TIITable) =
   newSeq(x.data, startSize)
   for i in countup(0, startSize - 1): x.data[i].key = InvalidKey
   
-proc IITableRawGet(t: TIITable, key: int): int = 
+proc iiTableRawGet(t: TIITable, key: int): int = 
   var h: THash
   h = key and high(t.data)    # start with real hash value
   while t.data[h].key != InvalidKey: 
-    if (t.data[h].key == key): 
-      return h
+    if t.data[h].key == key: return h
     h = nextTry(h, high(t.data))
-  result = - 1
+  result = -1
 
-proc IITableGet(t: TIITable, key: int): int = 
-  var index = IITableRawGet(t, key)
+proc iiTableGet(t: TIITable, key: int): int = 
+  var index = iiTableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = InvalidKey
   
-proc IITableRawInsert(data: var TIIPairSeq, key, val: int) = 
+proc iiTableRawInsert(data: var TIIPairSeq, key, val: int) = 
   var h: THash
   h = key and high(data)
   while data[h].key != InvalidKey: 
@@ -841,7 +836,7 @@ proc IITableRawInsert(data: var TIIPairSeq, key, val: int) =
   data[h].key = key
   data[h].val = val
 
-proc IITablePut(t: var TIITable, key, val: int) = 
+proc iiTablePut(t: var TIITable, key, val: int) = 
   var index = IITableRawGet(t, key)
   if index >= 0: 
     assert(t.data[index].key != InvalidKey)
@@ -853,7 +848,7 @@ proc IITablePut(t: var TIITable, key, val: int) =
       for i in countup(0, high(n)): n[i].key = InvalidKey
       for i in countup(0, high(t.data)): 
         if t.data[i].key != InvalidKey: 
-          IITableRawInsert(n, t.data[i].key, t.data[i].val)
+          iiTableRawInsert(n, t.data[i].key, t.data[i].val)
       swap(t.data, n)
-    IITableRawInsert(t.data, key, val)
+    iiTableRawInsert(t.data, key, val)
     inc(t.counter)
diff --git a/compiler/bitsets.nim b/compiler/bitsets.nim
index dfb23b06d..740bdd5ef 100644
--- a/compiler/bitsets.nim
+++ b/compiler/bitsets.nim
@@ -18,53 +18,53 @@ type
 const 
   ElemSize* = sizeof(int8) * 8
 
-proc BitSetInit*(b: var TBitSet, length: int)
-proc BitSetUnion*(x: var TBitSet, y: TBitSet)
-proc BitSetDiff*(x: var TBitSet, y: TBitSet)
-proc BitSetSymDiff*(x: var TBitSet, y: TBitSet)
-proc BitSetIntersect*(x: var TBitSet, y: TBitSet)
-proc BitSetIncl*(x: var TBitSet, elem: BiggestInt)
-proc BitSetExcl*(x: var TBitSet, elem: BiggestInt)
-proc BitSetIn*(x: TBitSet, e: BiggestInt): bool
-proc BitSetEquals*(x, y: TBitSet): bool
-proc BitSetContains*(x, y: TBitSet): bool
+proc bitSetInit*(b: var TBitSet, length: int)
+proc bitSetUnion*(x: var TBitSet, y: TBitSet)
+proc bitSetDiff*(x: var TBitSet, y: TBitSet)
+proc bitSetSymDiff*(x: var TBitSet, y: TBitSet)
+proc bitSetIntersect*(x: var TBitSet, y: TBitSet)
+proc bitSetIncl*(x: var TBitSet, elem: BiggestInt)
+proc bitSetExcl*(x: var TBitSet, elem: BiggestInt)
+proc bitSetIn*(x: TBitSet, e: BiggestInt): bool
+proc bitSetEquals*(x, y: TBitSet): bool
+proc bitSetContains*(x, y: TBitSet): bool
 # implementation
 
-proc BitSetIn(x: TBitSet, e: BiggestInt): bool = 
+proc bitSetIn(x: TBitSet, e: BiggestInt): bool = 
   result = (x[int(e div ElemSize)] and toU8(int(1 shl (e mod ElemSize)))) !=
       toU8(0)
 
-proc BitSetIncl(x: var TBitSet, elem: BiggestInt) = 
+proc bitSetIncl(x: var TBitSet, elem: BiggestInt) = 
   assert(elem >= 0)
   x[int(elem div ElemSize)] = x[int(elem div ElemSize)] or
       toU8(int(1 shl (elem mod ElemSize)))
 
-proc BitSetExcl(x: var TBitSet, elem: BiggestInt) = 
+proc bitSetExcl(x: var TBitSet, elem: BiggestInt) = 
   x[int(elem div ElemSize)] = x[int(elem div ElemSize)] and
       not toU8(int(1 shl (elem mod ElemSize)))
 
-proc BitSetInit(b: var TBitSet, length: int) = 
+proc bitSetInit(b: var TBitSet, length: int) = 
   newSeq(b, length)
 
-proc BitSetUnion(x: var TBitSet, y: TBitSet) = 
+proc bitSetUnion(x: var TBitSet, y: TBitSet) = 
   for i in countup(0, high(x)): x[i] = x[i] or y[i]
   
-proc BitSetDiff(x: var TBitSet, y: TBitSet) = 
+proc bitSetDiff(x: var TBitSet, y: TBitSet) = 
   for i in countup(0, high(x)): x[i] = x[i] and not y[i]
   
-proc BitSetSymDiff(x: var TBitSet, y: TBitSet) = 
+proc bitSetSymDiff(x: var TBitSet, y: TBitSet) = 
   for i in countup(0, high(x)): x[i] = x[i] xor y[i]
   
-proc BitSetIntersect(x: var TBitSet, y: TBitSet) = 
+proc bitSetIntersect(x: var TBitSet, y: TBitSet) = 
   for i in countup(0, high(x)): x[i] = x[i] and y[i]
   
-proc BitSetEquals(x, y: TBitSet): bool = 
+proc bitSetEquals(x, y: TBitSet): bool = 
   for i in countup(0, high(x)): 
     if x[i] != y[i]: 
       return false
   result = true
 
-proc BitSetContains(x, y: TBitSet): bool = 
+proc bitSetContains(x, y: TBitSet): bool = 
   for i in countup(0, high(x)): 
     if (x[i] and not y[i]) != int8(0): 
       return false
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index 873c61ed4..a9097a264 100644
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -1669,14 +1669,14 @@ proc genTupleConstr(p: BProc, n: PNode, d: var TLoc) =
                       [rdLoc(d), mangleRecFieldName(t.n.sons[i].sym, t)])
         expr(p, it, rec)
 
-proc IsConstClosure(n: PNode): bool {.inline.} =
+proc isConstClosure(n: PNode): bool {.inline.} =
   result = n.sons[0].kind == nkSym and isRoutine(n.sons[0].sym) and
       n.sons[1].kind == nkNilLit
       
 proc genClosure(p: BProc, n: PNode, d: var TLoc) =
   assert n.kind == nkClosure
   
-  if IsConstClosure(n):
+  if isConstClosure(n):
     inc(p.labels)
     var tmp = con("LOC", toRope(p.labels))
     appf(p.module.s[cfsData], "NIM_CONST $1 $2 = $3;$n",
diff --git a/compiler/ccgmerge.nim b/compiler/ccgmerge.nim
index c6c294b97..de207c532 100644
--- a/compiler/ccgmerge.nim
+++ b/compiler/ccgmerge.nim
@@ -208,7 +208,7 @@ proc readKey(L: var TBaseLexer, result: var string) =
   if buf[pos] != ':': internalError("ccgmerge: ':' expected")
   L.bufpos = pos + 1 # skip ':'
 
-proc NewFakeType(id: int): PType = 
+proc newFakeType(id: int): PType = 
   new(result)
   result.id = id
 
@@ -323,4 +323,3 @@ proc mergeFiles*(cfilename: string, m: BModule) =
     m.s[i] = con(old.f[i], m.s[i])
   for i in low(TCProcSection)..high(TCProcSection):
     m.initProc.s(i) = con(old.p[i], m.initProc.s(i))
-
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim
index d9e6d83d0..9b56556fc 100644
--- a/compiler/ccgstmts.nim
+++ b/compiler/ccgstmts.nim
@@ -232,11 +232,11 @@ proc genIf(p: BProc, n: PNode, d: var TLoc) =
   #  Lend:
   var
     a: TLoc
-    Lelse: TLabel
+    lelse: TLabel
   if not isEmptyType(n.typ) and d.k == locNone:
     getTemp(p, n.typ, d)
   genLineDir(p, n)
-  let Lend = getLabel(p)
+  let lend = getLabel(p)
   for i in countup(0, sonsLen(n) - 1): 
     let it = n.sons[i]
     if it.len == 2: 
@@ -251,14 +251,14 @@ proc genIf(p: BProc, n: PNode, d: var TLoc) =
       expr(p, it.sons[1], d)
       endBlock(p)
       if sonsLen(n) > 1:
-        lineFF(p, cpsStmts, "goto $1;$n", "br label %$1$n", [Lend])
+        lineFF(p, cpsStmts, "goto $1;$n", "br label %$1$n", [lend])
       fixLabel(p, Lelse)
     elif it.len == 1:
       startBlock(p)
       expr(p, it.sons[0], d)
       endBlock(p)
     else: internalError(n.info, "genIf()")
-  if sonsLen(n) > 1: fixLabel(p, Lend)
+  if sonsLen(n) > 1: fixLabel(p, lend)
 
 proc blockLeaveActions(p: BProc, howMany: int) = 
   var L = p.nestedTryStmts.len
@@ -367,7 +367,7 @@ proc genWhileStmt(p: BProc, t: PNode) =
   # significantly worse code
   var 
     a: TLoc
-    Labl: TLabel
+    labl: TLabel
   assert(sonsLen(t) == 2)
   inc(p.withinLoop)
   genLineDir(p, t)
@@ -499,16 +499,16 @@ proc genCaseGenericBranch(p: BProc, b: PNode, e: TLoc,
 
 proc genCaseSecondPass(p: BProc, t: PNode, d: var TLoc, 
                        labId, until: int): TLabel = 
-  var Lend = getLabel(p)
+  var lend = getLabel(p)
   for i in 1..until:
     lineF(p, cpsStmts, "LA$1: ;$n", [toRope(labId + i)])
     if t.sons[i].kind == nkOfBranch:
       var length = sonsLen(t.sons[i])
       exprBlock(p, t.sons[i].sons[length - 1], d)
-      lineF(p, cpsStmts, "goto $1;$n", [Lend])
+      lineF(p, cpsStmts, "goto $1;$n", [lend])
     else:
       exprBlock(p, t.sons[i].sons[0], d)
-  result = Lend
+  result = lend
 
 proc genIfForCaseUntil(p: BProc, t: PNode, d: var TLoc,
                        rangeFormat, eqFormat: TFormatStr,
@@ -535,8 +535,8 @@ proc genCaseGeneric(p: BProc, t: PNode, d: var TLoc,
                     rangeFormat, eqFormat: TFormatStr) = 
   var a: TLoc
   initLocExpr(p, t.sons[0], a)
-  var Lend = genIfForCaseUntil(p, t, d, rangeFormat, eqFormat, sonsLen(t)-1, a)
-  fixLabel(p, Lend)
+  var lend = genIfForCaseUntil(p, t, d, rangeFormat, eqFormat, sonsLen(t)-1, a)
+  fixLabel(p, lend)
 
 proc genCaseStringBranch(p: BProc, b: PNode, e: TLoc, labl: TLabel, 
                          branches: var openArray[PRope]) = 
@@ -580,8 +580,8 @@ proc genStringCase(p: BProc, t: PNode, d: var TLoc) =
     if t.sons[sonsLen(t)-1].kind != nkOfBranch: 
       lineF(p, cpsStmts, "goto LA$1;$n", [toRope(p.labels)]) 
     # third pass: generate statements
-    var Lend = genCaseSecondPass(p, t, d, labId, sonsLen(t)-1)
-    fixLabel(p, Lend)
+    var lend = genCaseSecondPass(p, t, d, labId, sonsLen(t)-1)
+    fixLabel(p, lend)
   else:
     genCaseGeneric(p, t, d, "", "if (#eqStrings($1, $2)) goto $3;$n")
   
@@ -592,7 +592,7 @@ proc branchHasTooBigRange(b: PNode): bool =
         b.sons[i].sons[1].intVal - b.sons[i].sons[0].intVal > RangeExpandLimit: 
       return true
 
-proc IfSwitchSplitPoint(p: BProc, n: PNode): int =
+proc ifSwitchSplitPoint(p: BProc, n: PNode): int =
   for i in 1..n.len-1:
     var branch = n[i]
     var stmtBlock = lastSon(branch)
@@ -625,7 +625,7 @@ proc genOrdinalCase(p: BProc, n: PNode, d: var TLoc) =
   # generate if part (might be empty):
   var a: TLoc
   initLocExpr(p, n.sons[0], a)
-  var Lend = if splitPoint > 0: genIfForCaseUntil(p, n, d,
+  var lend = if splitPoint > 0: genIfForCaseUntil(p, n, d,
                     rangeFormat = "if ($1 >= $2 && $1 <= $3) goto $4;$n",
                     eqFormat = "if ($1 == $2) goto $3;$n", 
                     splitPoint, a) else: nil
@@ -647,7 +647,7 @@ proc genOrdinalCase(p: BProc, n: PNode, d: var TLoc) =
     if (hasAssume in CC[ccompiler].props) and not hasDefault: 
       lineF(p, cpsStmts, "default: __assume(0);$n")
     lineF(p, cpsStmts, "}$n")
-  if Lend != nil: fixLabel(p, Lend)
+  if lend != nil: fixLabel(p, lend)
   
 proc genCase(p: BProc, t: PNode, d: var TLoc) = 
   genLineDir(p, t)
@@ -928,7 +928,7 @@ proc genPragma(p: BProc, n: PNode) =
       p.module.injectStmt = p.s(cpsStmts)
     else: discard
 
-proc FieldDiscriminantCheckNeeded(p: BProc, asgn: PNode): bool = 
+proc fieldDiscriminantCheckNeeded(p: BProc, asgn: PNode): bool = 
   if optFieldCheck in p.options:
     var le = asgn.sons[0]
     if le.kind == nkCheckedFieldExpr:
diff --git a/compiler/ccgthreadvars.nim b/compiler/ccgthreadvars.nim
index d312ea027..ee01972fc 100644
--- a/compiler/ccgthreadvars.nim
+++ b/compiler/ccgthreadvars.nim
@@ -17,7 +17,7 @@ proc emulatedThreadVars(): bool =
 
 proc accessThreadLocalVar(p: BProc, s: PSym) =
   if emulatedThreadVars() and not p.ThreadVarAccessed:
-    p.ThreadVarAccessed = true
+    p.threadVarAccessed = true
     p.module.usesThreadVars = true
     appf(p.procSec(cpsLocals), "\tNimThreadVars* NimTV;$n")
     app(p.procSec(cpsInit),
@@ -55,7 +55,7 @@ proc generateThreadLocalStorage(m: BModule) =
     for t in items(nimtvDeps): discard getTypeDesc(m, t)
     appf(m.s[cfsSeqTypes], "typedef struct {$1} NimThreadVars;$n", [nimtv])
 
-proc GenerateThreadVarsSize(m: BModule) =
+proc generateThreadVarsSize(m: BModule) =
   if nimtv != nil:
     app(m.s[cfsProcs], 
       "NI NimThreadVarsSize(){return (NI)sizeof(NimThreadVars);}" & tnl)
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim
index 4548ac641..66441af5e 100644
--- a/compiler/ccgtypes.nim
+++ b/compiler/ccgtypes.nim
@@ -229,11 +229,11 @@ const
     "stdcall $1", "ccc $1", "safecall $1", "syscall $1", "$1 alwaysinline", 
     "$1 noinline", "fastcc $1", "ccc $1", "$1"]
 
-proc CacheGetType(tab: TIdTable, key: PType): PRope = 
+proc cacheGetType(tab: TIdTable, key: PType): PRope = 
   # returns nil if we need to declare this type
   # since types are now unique via the ``GetUniqueType`` mechanism, this slow
   # linear search is not necessary anymore:
-  result = PRope(IdTableGet(tab, key))
+  result = PRope(idTableGet(tab, key))
 
 proc getTempName(): PRope = 
   result = rfmt(nil, "TMP$1", toRope(backendId()))
@@ -952,4 +952,4 @@ proc genTypeInfo(m: BModule, t: PType): PRope =
   result = con("(&".toRope, result, ")".toRope)
 
 proc genTypeSection(m: BModule, n: PNode) = 
-  nil
+  discard
diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim
index 310f7204a..accb7a261 100644
--- a/compiler/ccgutils.nim
+++ b/compiler/ccgutils.nim
@@ -22,7 +22,7 @@ proc getPragmaStmt*(n: PNode, w: TSpecialWord): PNode =
   of nkPragma:
     for i in 0 .. < n.len: 
       if whichPragma(n[i]) == w: return n[i]
-  else: nil
+  else: discard
 
 proc stmtsContainPragma*(n: PNode, w: TSpecialWord): bool =
   result = getPragmaStmt(n, w) != nil
@@ -70,7 +70,7 @@ when false:
     for i in countup(low(TTypeKind), high(TTypeKind)): 
       echo i, " ", gTypeTable[i].counter
   
-proc GetUniqueType*(key: PType): PType = 
+proc getUniqueType*(key: PType): PType = 
   # this is a hotspot in the compiler!
   if key == nil: return 
   var k = key.kind
@@ -87,11 +87,11 @@ proc GetUniqueType*(key: PType): PType =
       gCanonicalTypes[k] = key
       result = key
   of tyTypeDesc, tyTypeClasses:
-    InternalError("value expected, but got a type")
+    internalError("value expected, but got a type")
   of tyGenericParam:
-    InternalError("GetUniqueType")
+    internalError("GetUniqueType")
   of tyGenericInst, tyDistinct, tyOrdinal, tyMutable, tyConst, tyIter:
-    result = GetUniqueType(lastSon(key))
+    result = getUniqueType(lastSon(key))
   of tyArrayConstr, tyGenericInvokation, tyGenericBody,
      tyOpenArray, tyArray, tySet, tyRange, tyTuple,
      tyPtr, tyRef, tySequence, tyForward, tyVarargs, tyProxy, tyVar:
@@ -102,33 +102,33 @@ proc GetUniqueType*(key: PType): PType =
 
     # we have to do a slow linear search because types may need
     # to be compared by their structure:
-    if IdTableHasObjectAsKey(gTypeTable[k], key): return key 
+    if idTableHasObjectAsKey(gTypeTable[k], key): return key 
     for h in countup(0, high(gTypeTable[k].data)): 
       var t = PType(gTypeTable[k].data[h].key)
       if t != nil and sameBackendType(t, key): 
         return t
-    IdTablePut(gTypeTable[k], key, key)
+    idTablePut(gTypeTable[k], key, key)
     result = key
   of tyObject:
     if tfFromGeneric notin key.flags:
       # fast case; lookup per id suffices:
-      result = PType(IdTableGet(gTypeTable[k], key))
+      result = PType(idTableGet(gTypeTable[k], key))
       if result == nil: 
-        IdTablePut(gTypeTable[k], key, key)
+        idTablePut(gTypeTable[k], key, key)
         result = key
     else:
       # ugly slow case: need to compare by structure
-      if IdTableHasObjectAsKey(gTypeTable[k], key): return key
+      if idTableHasObjectAsKey(gTypeTable[k], key): return key
       for h in countup(0, high(gTypeTable[k].data)): 
         var t = PType(gTypeTable[k].data[h].key)
         if t != nil and sameType(t, key): 
           return t
-      IdTablePut(gTypeTable[k], key, key)
+      idTablePut(gTypeTable[k], key, key)
       result = key
   of tyEnum:
-    result = PType(IdTableGet(gTypeTable[k], key))
+    result = PType(idTableGet(gTypeTable[k], key))
     if result == nil: 
-      IdTablePut(gTypeTable[k], key, key)
+      idTablePut(gTypeTable[k], key, key)
       result = key
   of tyProc:
     # tyVar is not 100% correct, but would speeds things up a little:
@@ -136,17 +136,17 @@ proc GetUniqueType*(key: PType): PType =
       result = key
     else:
       # ugh, we need the canon here:
-      if IdTableHasObjectAsKey(gTypeTable[k], key): return key 
+      if idTableHasObjectAsKey(gTypeTable[k], key): return key 
       for h in countup(0, high(gTypeTable[k].data)): 
         var t = PType(gTypeTable[k].data[h].key)
         if t != nil and sameBackendType(t, key): 
           return t
-      IdTablePut(gTypeTable[k], key, key)
+      idTablePut(gTypeTable[k], key, key)
       result = key
       
-proc TableGetType*(tab: TIdTable, key: PType): PObject = 
+proc tableGetType*(tab: TIdTable, key: PType): PObject = 
   # returns nil if we need to declare this type
-  result = IdTableGet(tab, key)
+  result = idTableGet(tab, key)
   if (result == nil) and (tab.counter > 0): 
     # we have to do a slow linear search because types may need
     # to be compared by their structure:
@@ -178,4 +178,4 @@ proc makeLLVMString*(s: string): PRope =
   add(res, "\\00\"")
   app(result, toRope(res))
 
-InitTypeTables()
+initTypeTables()
diff --git a/compiler/cgen.nim b/compiler/cgen.nim
index 6ccef5fde..ad1dfa89e 100644
--- a/compiler/cgen.nim
+++ b/compiler/cgen.nim
@@ -513,7 +513,7 @@ proc assignLocalVar(p: BProc, s: PSym) =
 
 include ccgthreadvars
 
-proc VarInDynamicLib(m: BModule, sym: PSym)
+proc varInDynamicLib(m: BModule, sym: PSym)
 proc mangleDynLibProc(sym: PSym): PRope
 
 proc assignGlobalVar(p: BProc, s: PSym) = 
@@ -641,7 +641,7 @@ proc mangleDynLibProc(sym: PSym): PRope =
   else:
     result = ropef("Dl_$1", [toRope(sym.id)])
   
-proc SymInDynamicLib(m: BModule, sym: PSym) = 
+proc symInDynamicLib(m: BModule, sym: PSym) = 
   var lib = sym.annex
   let isCall = isGetProcAddr(lib)
   var extname = sym.loc.r
@@ -682,7 +682,7 @@ proc SymInDynamicLib(m: BModule, sym: PSym) =
       "$1 = linkonce global $2 zeroinitializer$n", 
       [sym.loc.r, getTypeDesc(m, sym.loc.t)])
 
-proc VarInDynamicLib(m: BModule, sym: PSym) = 
+proc varInDynamicLib(m: BModule, sym: PSym) = 
   var lib = sym.annex
   var extname = sym.loc.r
   loadDynamicLib(m, lib)
@@ -697,7 +697,7 @@ proc VarInDynamicLib(m: BModule, sym: PSym) =
   appf(m.s[cfsVars], "$2* $1;$n",
       [sym.loc.r, getTypeDesc(m, sym.loc.t)])
 
-proc SymInDynamicLibPartial(m: BModule, sym: PSym) =
+proc symInDynamicLibPartial(m: BModule, sym: PSym) =
   sym.loc.r = mangleDynLibProc(sym)
   sym.typ.sym = nil           # generate a new name
 
diff --git a/compiler/cgmeth.nim b/compiler/cgmeth.nim
index 33bb94b38..3467fea7e 100644
--- a/compiler/cgmeth.nim
+++ b/compiler/cgmeth.nim
@@ -126,14 +126,14 @@ proc cmpSignatures(a, b: PSym, relevantCols: TIntSet): int =
   
 proc sortBucket(a: var TSymSeq, relevantCols: TIntSet) = 
   # we use shellsort here; fast and simple
-  var N = len(a)
+  var n = len(a)
   var h = 1
   while true: 
     h = 3 * h + 1
-    if h > N: break 
+    if h > n: break 
   while true: 
     h = h div 3
-    for i in countup(h, N - 1): 
+    for i in countup(h, n - 1): 
       var v = a[i]
       var j = i
       while cmpSignatures(a[j - h], v, relevantCols) >= 0: 
diff --git a/compiler/commands.nim b/compiler/commands.nim
index a02728dac..e67b0d422 100644
--- a/compiler/commands.nim
+++ b/compiler/commands.nim
@@ -21,7 +21,7 @@ type
     passCmd2,                 # second pass over the command line
     passPP                    # preprocessor called ProcessCommand()
 
-proc ProcessCommand*(switch: string, pass: TCmdLinePass)
+proc processCommand*(switch: string, pass: TCmdLinePass)
 proc processSwitch*(switch, arg: string, pass: TCmdlinePass, info: TLineInfo)
 
 # implementation
@@ -38,21 +38,21 @@ proc getCommandLineDesc(): string =
   result = (HelpMessage % [VersionAsString, platform.os[platform.hostOS].name, 
                            cpu[platform.hostCPU].name]) & Usage
 
-proc HelpOnError(pass: TCmdLinePass) = 
+proc helpOnError(pass: TCmdLinePass) = 
   if pass == passCmd1:
-    MsgWriteln(getCommandLineDesc())
+    msgWriteln(getCommandLineDesc())
     quit(0)
 
 proc writeAdvancedUsage(pass: TCmdLinePass) = 
   if pass == passCmd1:
-    MsgWriteln(`%`(HelpMessage, [VersionAsString, 
+    msgWriteln(`%`(HelpMessage, [VersionAsString, 
                                  platform.os[platform.hostOS].name, 
                                  cpu[platform.hostCPU].name]) & AdvancedUsage)
     quit(0)
 
 proc writeVersionInfo(pass: TCmdLinePass) = 
   if pass == passCmd1:
-    MsgWriteln(`%`(HelpMessage, [VersionAsString, 
+    msgWriteln(`%`(HelpMessage, [VersionAsString, 
                                  platform.os[platform.hostOS].name, 
                                  cpu[platform.hostCPU].name]))
     quit(0)
@@ -62,16 +62,16 @@ var
 
 proc writeCommandLineUsage() = 
   if not helpWritten: 
-    MsgWriteln(getCommandLineDesc())
+    msgWriteln(getCommandLineDesc())
     helpWritten = true
 
 proc addPrefix(switch: string): string =
   if len(switch) == 1: result = "-" & switch
   else: result = "--" & switch
 
-proc InvalidCmdLineOption(pass: TCmdLinePass, switch: string, info: TLineInfo) = 
-  if switch == " ": LocalError(info, errInvalidCmdLineOption, "-")
-  else: LocalError(info, errInvalidCmdLineOption, addPrefix(switch))
+proc invalidCmdLineOption(pass: TCmdLinePass, switch: string, info: TLineInfo) = 
+  if switch == " ": localError(info, errInvalidCmdLineOption, "-")
+  else: localError(info, errInvalidCmdLineOption, addPrefix(switch))
 
 proc splitSwitch(switch: string, cmd, arg: var string, pass: TCmdLinePass, 
                  info: TLineInfo) = 
@@ -86,29 +86,29 @@ proc splitSwitch(switch: string, cmd, arg: var string, pass: TCmdLinePass,
     inc(i)
   if i >= len(switch): arg = ""
   elif switch[i] in {':', '=', '['}: arg = substr(switch, i + 1)
-  else: InvalidCmdLineOption(pass, switch, info)
+  else: invalidCmdLineOption(pass, switch, info)
   
-proc ProcessOnOffSwitch(op: TOptions, arg: string, pass: TCmdlinePass, 
+proc processOnOffSwitch(op: TOptions, arg: string, pass: TCmdlinePass, 
                         info: TLineInfo) = 
   case whichKeyword(arg)
   of wOn: gOptions = gOptions + op
   of wOff: gOptions = gOptions - op
-  else: LocalError(info, errOnOrOffExpectedButXFound, arg)
+  else: localError(info, errOnOrOffExpectedButXFound, arg)
   
-proc ProcessOnOffSwitchG(op: TGlobalOptions, arg: string, pass: TCmdlinePass, 
+proc processOnOffSwitchG(op: TGlobalOptions, arg: string, pass: TCmdlinePass, 
                          info: TLineInfo) = 
   case whichKeyword(arg)
   of wOn: gGlobalOptions = gGlobalOptions + op
   of wOff: gGlobalOptions = gGlobalOptions - op
-  else: LocalError(info, errOnOrOffExpectedButXFound, arg)
+  else: localError(info, errOnOrOffExpectedButXFound, arg)
   
-proc ExpectArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) = 
-  if arg == "": LocalError(info, errCmdLineArgExpected, addPrefix(switch))
+proc expectArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) = 
+  if arg == "": localError(info, errCmdLineArgExpected, addPrefix(switch))
   
-proc ExpectNoArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) = 
-  if arg != "": LocalError(info, errCmdLineNoArgExpected, addPrefix(switch))
+proc expectNoArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) = 
+  if arg != "": localError(info, errCmdLineNoArgExpected, addPrefix(switch))
   
-proc ProcessSpecificNote(arg: string, state: TSpecialWord, pass: TCmdlinePass, 
+proc processSpecificNote(arg: string, state: TSpecialWord, pass: TCmdlinePass, 
                          info: TLineInfo) = 
   var id = ""  # arg = "X]:on|off"
   var i = 0
@@ -117,21 +117,21 @@ proc ProcessSpecificNote(arg: string, state: TSpecialWord, pass: TCmdlinePass,
     add(id, arg[i])
     inc(i)
   if i < len(arg) and (arg[i] == ']'): inc(i)
-  else: InvalidCmdLineOption(pass, arg, info)
+  else: invalidCmdLineOption(pass, arg, info)
   if i < len(arg) and (arg[i] in {':', '='}): inc(i)
-  else: InvalidCmdLineOption(pass, arg, info)
+  else: invalidCmdLineOption(pass, arg, info)
   if state == wHint: 
     var x = findStr(msgs.HintsToStr, id)
     if x >= 0: n = TNoteKind(x + ord(hintMin))
-    else: InvalidCmdLineOption(pass, arg, info)
+    else: invalidCmdLineOption(pass, arg, info)
   else: 
     var x = findStr(msgs.WarningsToStr, id)
     if x >= 0: n = TNoteKind(x + ord(warnMin))
-    else: InvalidCmdLineOption(pass, arg, info)
+    else: invalidCmdLineOption(pass, arg, info)
   case whichKeyword(substr(arg, i))
   of wOn: incl(gNotes, n)
   of wOff: excl(gNotes, n)
-  else: LocalError(info, errOnOrOffExpectedButXFound, arg)
+  else: localError(info, errOnOrOffExpectedButXFound, arg)
 
 proc processCompile(filename: string) = 
   var found = findFile(filename)
@@ -150,14 +150,14 @@ proc testCompileOptionArg*(switch, arg: string, info: TLineInfo): bool =
     of "markandsweep": result = gSelectedGC == gcMarkAndSweep
     of "generational": result = gSelectedGC == gcGenerational
     of "none":         result = gSelectedGC == gcNone
-    else: LocalError(info, errNoneBoehmRefcExpectedButXFound, arg)
+    else: localError(info, errNoneBoehmRefcExpectedButXFound, arg)
   of "opt":
     case arg.normalize
     of "speed": result = contains(gOptions, optOptimizeSpeed)
     of "size": result = contains(gOptions, optOptimizeSize)
     of "none": result = gOptions * {optOptimizeSpeed, optOptimizeSize} == {}
-    else: LocalError(info, errNoneSpeedOrSizeExpectedButXFound, arg)
-  else: InvalidCmdLineOption(passCmd1, switch, info)
+    else: localError(info, errNoneSpeedOrSizeExpectedButXFound, arg)
+  else: invalidCmdLineOption(passCmd1, switch, info)
 
 proc testCompileOption*(switch: string, info: TLineInfo): bool = 
   case switch.normalize
@@ -194,7 +194,7 @@ proc testCompileOption*(switch: string, info: TLineInfo): bool =
   of "tlsemulation": result = contains(gGlobalOptions, optTlsEmulation)
   of "implicitstatic": result = contains(gOptions, optImplicitStatic)
   of "patterns": result = contains(gOptions, optPatterns)
-  else: InvalidCmdLineOption(passCmd1, switch, info)
+  else: invalidCmdLineOption(passCmd1, switch, info)
   
 proc processPath(path: string, notRelativeToProj = false): string =
   let p = if notRelativeToProj or os.isAbsolute(path) or
@@ -202,20 +202,20 @@ proc processPath(path: string, notRelativeToProj = false): string =
             path 
           else:
             options.gProjectPath / path
-  result = UnixToNativePath(p % ["nimrod", getPrefixDir(), "lib", libpath,
+  result = unixToNativePath(p % ["nimrod", getPrefixDir(), "lib", libpath,
     "home", removeTrailingDirSep(os.getHomeDir()),
     "projectname", options.gProjectName,
     "projectpath", options.gProjectPath])
 
 proc trackDirty(arg: string, info: TLineInfo) =
   var a = arg.split(',')
-  if a.len != 4: LocalError(info, errTokenExpected,
+  if a.len != 4: localError(info, errTokenExpected,
                             "DIRTY_BUFFER,ORIGINAL_FILE,LINE,COLUMN")
   var line, column: int
   if parseUtils.parseInt(a[2], line) <= 0:
-    LocalError(info, errInvalidNumber, a[1])
+    localError(info, errInvalidNumber, a[1])
   if parseUtils.parseInt(a[3], column) <= 0:
-    LocalError(info, errInvalidNumber, a[2])
+    localError(info, errInvalidNumber, a[2])
   
   gDirtyBufferIdx = a[0].fileInfoIdx
   gDirtyOriginalIdx = a[1].fileInfoIdx
@@ -225,12 +225,12 @@ proc trackDirty(arg: string, info: TLineInfo) =
 
 proc track(arg: string, info: TLineInfo) = 
   var a = arg.split(',')
-  if a.len != 3: LocalError(info, errTokenExpected, "FILE,LINE,COLUMN")
+  if a.len != 3: localError(info, errTokenExpected, "FILE,LINE,COLUMN")
   var line, column: int
   if parseUtils.parseInt(a[1], line) <= 0:
-    LocalError(info, errInvalidNumber, a[1])
+    localError(info, errInvalidNumber, a[1])
   if parseUtils.parseInt(a[2], column) <= 0:
-    LocalError(info, errInvalidNumber, a[2])
+    localError(info, errInvalidNumber, a[2])
   optTrackPos = newLineInfo(a[0], line, column)
   msgs.addCheckpoint(optTrackPos)
 
@@ -305,7 +305,7 @@ proc processSwitch(switch, arg: string, pass: TCmdlinePass, info: TLineInfo) =
     case arg.normalize
     of "boehm": 
       gSelectedGC = gcBoehm
-      DefineSymbol("boehmgc")
+      defineSymbol("boehmgc")
     of "refc":
       gSelectedGC = gcRefc
     of "v2":
@@ -319,8 +319,8 @@ proc processSwitch(switch, arg: string, pass: TCmdlinePass, info: TLineInfo) =
     of "none":
       gSelectedGC = gcNone
       defineSymbol("nogc")
-    else: LocalError(info, errNoneBoehmRefcExpectedButXFound, arg)
-  of "warnings", "w": ProcessOnOffSwitch({optWarns}, arg, pass, info)
+    else: localError(info, errNoneBoehmRefcExpectedButXFound, arg)
+  of "warnings", "w": processOnOffSwitch({optWarns}, arg, pass, info)
   of "warning": ProcessSpecificNote(arg, wWarning, pass, info)
   of "hint": ProcessSpecificNote(arg, wHint, pass, info)
   of "hints": ProcessOnOffSwitch({optHints}, arg, pass, info)
@@ -517,13 +517,13 @@ proc processSwitch(switch, arg: string, pass: TCmdlinePass, info: TLineInfo) =
     case arg
     of "partial": idents.firstCharIsCS = true
     of "none": idents.firstCharIsCS = false
-    else: LocalError(info, errGenerated,
+    else: localError(info, errGenerated,
       "'partial' or 'none' expected, but found " & arg)
   else:
     if strutils.find(switch, '.') >= 0: options.setConfigVar(switch, arg)
-    else: InvalidCmdLineOption(pass, switch, info)
+    else: invalidCmdLineOption(pass, switch, info)
   
-proc ProcessCommand(switch: string, pass: TCmdLinePass) =
+proc processCommand(switch: string, pass: TCmdLinePass) =
   var cmd, arg: string
   splitSwitch(switch, cmd, arg, pass, gCmdLineInfo)
   processSwitch(cmd, arg, pass, gCmdLineInfo)
diff --git a/compiler/condsyms.nim b/compiler/condsyms.nim
index 21095072b..71dce9529 100644
--- a/compiler/condsyms.nim
+++ b/compiler/condsyms.nim
@@ -16,10 +16,10 @@ import
 # to be style insensitive. Otherwise hell would break lose.
 var gSymbols: PStringTable
 
-proc DefineSymbol*(symbol: string) = 
+proc defineSymbol*(symbol: string) = 
   gSymbols[symbol] = "true"
 
-proc UndefSymbol*(symbol: string) = 
+proc undefSymbol*(symbol: string) = 
   gSymbols[symbol] = "false"
 
 proc isDefined*(symbol: string): bool = 
@@ -37,52 +37,52 @@ proc countDefinedSymbols*(): int =
   for key, val in pairs(gSymbols):
     if val == "true": inc(result)
 
-proc InitDefines*() = 
+proc initDefines*() = 
   gSymbols = newStringTable(modeStyleInsensitive)
-  DefineSymbol("nimrod") # 'nimrod' is always defined
+  defineSymbol("nimrod") # 'nimrod' is always defined
   # for bootstrapping purposes and old code:
-  DefineSymbol("nimhygiene")
-  DefineSymbol("niminheritable")
-  DefineSymbol("nimmixin")
-  DefineSymbol("nimeffects")
-  DefineSymbol("nimbabel")
-  DefineSymbol("nimcomputedgoto")
+  defineSymbol("nimhygiene")
+  defineSymbol("niminheritable")
+  defineSymbol("nimmixin")
+  defineSymbol("nimeffects")
+  defineSymbol("nimbabel")
+  defineSymbol("nimcomputedgoto")
   
   # add platform specific symbols:
   case targetCPU
-  of cpuI386: DefineSymbol("x86")
-  of cpuIa64: DefineSymbol("itanium")
-  of cpuAmd64: DefineSymbol("x8664")
+  of cpuI386: defineSymbol("x86")
+  of cpuIa64: defineSymbol("itanium")
+  of cpuAmd64: defineSymbol("x8664")
   else: discard
   case targetOS
   of osDOS: 
-    DefineSymbol("msdos")
+    defineSymbol("msdos")
   of osWindows: 
-    DefineSymbol("mswindows")
-    DefineSymbol("win32")
+    defineSymbol("mswindows")
+    defineSymbol("win32")
   of osLinux, osMorphOS, osSkyOS, osIrix, osPalmOS, osQNX, osAtari, osAix, 
      osHaiku:
     # these are all 'unix-like'
-    DefineSymbol("unix")
-    DefineSymbol("posix")
+    defineSymbol("unix")
+    defineSymbol("posix")
   of osSolaris: 
-    DefineSymbol("sunos")
-    DefineSymbol("unix")
-    DefineSymbol("posix")
+    defineSymbol("sunos")
+    defineSymbol("unix")
+    defineSymbol("posix")
   of osNetBSD, osFreeBSD, osOpenBSD: 
-    DefineSymbol("unix")
-    DefineSymbol("bsd")
-    DefineSymbol("posix")
+    defineSymbol("unix")
+    defineSymbol("bsd")
+    defineSymbol("posix")
   of osMacOS: 
-    DefineSymbol("macintosh")
+    defineSymbol("macintosh")
   of osMacOSX: 
-    DefineSymbol("macintosh")
-    DefineSymbol("unix")
+    defineSymbol("macintosh")
+    defineSymbol("unix")
     DefineSymbol("posix")
   else: discard
-  DefineSymbol("cpu" & $cpu[targetCPU].bit)
-  DefineSymbol(normalize(endianToStr[cpu[targetCPU].endian]))
-  DefineSymbol(cpu[targetCPU].name)
-  DefineSymbol(platform.os[targetOS].name)
+  defineSymbol("cpu" & $cpu[targetCPU].bit)
+  defineSymbol(normalize(endianToStr[cpu[targetCPU].endian]))
+  defineSymbol(cpu[targetCPU].name)
+  defineSymbol(platform.os[targetOS].name)
   if platform.OS[targetOS].props.contains(ospLacksThreadVars):
-    DefineSymbol("emulatedthreadvars")
+    defineSymbol("emulatedthreadvars")
diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index d44018a2b..018dcd270 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -313,7 +313,7 @@ proc generateDoc*(d: PDoc, n: PNode) =
   of nkImportStmt:
     for i in 0 .. sonsLen(n)-1: traceDeps(d, n.sons[i])
   of nkFromStmt, nkImportExceptStmt: traceDeps(d, n.sons[0])
-  else: nil
+  else: discard
 
 proc generateJson(d: PDoc, n: PNode, jArray: PJsonNode = nil): PJsonNode =
   case n.kind
@@ -355,7 +355,7 @@ proc generateJson(d: PDoc, n: PNode, jArray: PJsonNode = nil): PJsonNode =
     # generate documentation for the first branch only:
     if not checkForFalse(n.sons[0].sons[0]) and jArray != nil:
       discard generateJson(d, lastSon(n.sons[0]), jArray)
-  else: nil
+  else: discard
 
 proc genSection(d: PDoc, kind: TSymKind) =
   const sectionNames: array[skModule..skTemplate, string] = [
@@ -417,7 +417,7 @@ proc writeOutput*(d: PDoc, filename, outExt: string, useWarning = false) =
   else:
     writeRope(content, getOutFile(filename, outExt), useWarning)
 
-proc CommandDoc*() =
+proc commandDoc*() =
   var ast = parseFile(gProjectMainIdx)
   if ast == nil: return
   var d = newDocumentor(gProjectFull, options.gConfigVars)
@@ -426,7 +426,7 @@ proc CommandDoc*() =
   writeOutput(d, gProjectFull, HtmlExt)
   generateIndex(d)
 
-proc CommandRstAux(filename, outExt: string) =
+proc commandRstAux(filename, outExt: string) =
   var filen = addFileExt(filename, "txt")
   var d = newDocumentor(filen, options.gConfigVars)
   var rst = parseRst(readFile(filen), filen, 0, 1, d.hasToc,
@@ -439,14 +439,14 @@ proc CommandRstAux(filename, outExt: string) =
   writeOutput(d, filename, outExt)
   generateIndex(d)
 
-proc CommandRst2Html*() =
-  CommandRstAux(gProjectFull, HtmlExt)
+proc commandRst2Html*() =
+  commandRstAux(gProjectFull, HtmlExt)
 
-proc CommandRst2TeX*() =
+proc commandRst2TeX*() =
   splitter = "\\-"
-  CommandRstAux(gProjectFull, TexExt)
+  commandRstAux(gProjectFull, TexExt)
 
-proc CommandJSON*() =
+proc commandJSON*() =
   var ast = parseFile(gProjectMainIdx)
   if ast == nil: return
   var d = newDocumentor(gProjectFull, options.gConfigVars)
@@ -460,7 +460,7 @@ proc CommandJSON*() =
     echo getOutFile(gProjectFull, JsonExt)
     writeRope(content, getOutFile(gProjectFull, JsonExt), useWarning = false)
 
-proc CommandBuildIndex*() =
+proc commandBuildIndex*() =
   var content = mergeIndexes(gProjectFull).toRope
 
   let code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title",
diff --git a/compiler/extccomp.nim b/compiler/extccomp.nim
index d3b3cee75..629cf95eb 100644
--- a/compiler/extccomp.nim
+++ b/compiler/extccomp.nim
@@ -324,7 +324,7 @@ var
   compileOptions: string = ""
   ccompilerpath: string = ""
 
-proc NameToCC*(name: string): TSystemCC = 
+proc nameToCC*(name: string): TSystemCC = 
   for i in countup(succ(ccNone), high(TSystemCC)): 
     if cmpIgnoreStyle(name, CC[i].name) == 0: 
       return i
@@ -405,7 +405,7 @@ proc execExternalProgram*(cmd: string) =
 
 proc generateScript(projectFile: string, script: PRope) = 
   let (dir, name, ext) = splitFile(projectFile)
-  WriteRope(script, dir / addFileExt("compile_" & name, 
+  writeRope(script, dir / addFileExt("compile_" & name, 
                                      platform.os[targetOS].scriptExt))
 
 proc getOptSpeed(c: TSystemCC): string = 
@@ -439,7 +439,7 @@ var fileCounter: int
 proc add(s: var string, many: openarray[string]) =
   s.add many.join
 
-proc CFileSpecificOptions(cfilename: string): string =
+proc cFileSpecificOptions(cfilename: string): string =
   result = compileOptions
   var trunk = splitFile(cfilename).name
   if optCDebug in gGlobalOptions: 
@@ -541,7 +541,7 @@ proc addExternalFileToCompile*(filename: string) =
   if optForceFullMake in gGlobalOptions or externalFileChanged(filename):
     appendStr(externalToCompile, filename)
 
-proc CompileCFile(list: TLinkedList, script: var PRope, cmds: var TStringSeq, 
+proc compileCFile(list: TLinkedList, script: var PRope, cmds: var TStringSeq, 
                   isExternal: bool) = 
   var it = PStrEntry(list.head)
   while it != nil: 
@@ -554,7 +554,7 @@ proc CompileCFile(list: TLinkedList, script: var PRope, cmds: var TStringSeq,
       app(script, tnl)
     it = PStrEntry(it.next)
 
-proc CallCCompiler*(projectfile: string) =
+proc callCCompiler*(projectfile: string) =
   var 
     linkCmd, buildgui, builddll: string
   if gGlobalOptions * {optCompileOnly, optGenScript} == {optCompileOnly}: 
@@ -564,8 +564,8 @@ proc CallCCompiler*(projectfile: string) =
   var c = ccompiler
   var script: PRope = nil
   var cmds: TStringSeq = @[]
-  CompileCFile(toCompile, script, cmds, false)
-  CompileCFile(externalToCompile, script, cmds, true)
+  compileCFile(toCompile, script, cmds, false)
+  compileCFile(externalToCompile, script, cmds, true)
   if optCompileOnly notin gGlobalOptions: 
     if gNumberOfProcessors == 0: gNumberOfProcessors = countProcessors()
     var res = 0
@@ -640,7 +640,7 @@ proc CallCCompiler*(projectfile: string) =
 proc genMappingFiles(list: TLinkedList): PRope = 
   var it = PStrEntry(list.head)
   while it != nil: 
-    appf(result, "--file:r\"$1\"$N", [toRope(AddFileExt(it.data, cExt))])
+    appf(result, "--file:r\"$1\"$N", [toRope(addFileExt(it.data, cExt))])
     it = PStrEntry(it.next)
 
 proc writeMapping*(gSymbolMapping: PRope) = 
@@ -658,5 +658,5 @@ proc writeMapping*(gSymbolMapping: PRope) =
   app(code, strutils.escape(libpath))
   
   appf(code, "\n[Symbols]$n$1", [gSymbolMapping])
-  WriteRope(code, joinPath(gProjectPath, "mapping.txt"))
+  writeRope(code, joinPath(gProjectPath, "mapping.txt"))
   
diff --git a/compiler/idents.nim b/compiler/idents.nim
index 1e6f9d2fd..ec903826a 100644
--- a/compiler/idents.nim
+++ b/compiler/idents.nim
@@ -102,7 +102,7 @@ proc getIdent*(identifier: string): PIdent =
 proc getIdent*(identifier: string, h: THash): PIdent = 
   result = getIdent(cstring(identifier), len(identifier), h)
 
-proc IdentEq*(id: PIdent, name: string): bool = 
+proc identEq*(id: PIdent, name: string): bool = 
   result = id.id == getIdent(name).id
 
 var idAnon* = getIdent":anonymous"
diff --git a/compiler/idgen.nim b/compiler/idgen.nim
index fbf450c90..f47e2e3b6 100644
--- a/compiler/idgen.nim
+++ b/compiler/idgen.nim
@@ -23,8 +23,8 @@ when debugIds:
 
 proc registerID*(id: PIdObj) = 
   when debugIDs: 
-    if id.id == -1 or ContainsOrIncl(usedIds, id.id): 
-      InternalError("ID already used: " & $id.id)
+    if id.id == -1 or containsOrIncl(usedIds, id.id): 
+      internalError("ID already used: " & $id.id)
 
 proc getID*(): int {.inline.} = 
   result = gFrontEndId
@@ -37,7 +37,7 @@ proc backendId*(): int {.inline.} =
 proc setId*(id: int) {.inline.} = 
   gFrontEndId = max(gFrontEndId, id + 1)
 
-proc IDsynchronizationPoint*(idRange: int) = 
+proc idSynchronizationPoint*(idRange: int) = 
   gFrontEndId = (gFrontEndId div IdRange + 1) * IdRange + 1
 
 proc toGid(f: string): string =
diff --git a/compiler/lexer.nim b/compiler/lexer.nim
index eb9287dfe..7410f7ec5 100644
--- a/compiler/lexer.nim
+++ b/compiler/lexer.nim
@@ -132,7 +132,7 @@ proc getLineInfo*(L: TLexer, tok: TToken): TLineInfo {.inline.} =
   newLineInfo(L.fileIdx, tok.line, tok.col)
 
 proc closeLexer*(lex: var TLexer)
-proc PrintTok*(tok: TToken)
+proc printTok*(tok: TToken)
 proc tokToStr*(tok: TToken): string
 
 proc openLexer*(lex: var TLexer, filename: string, inputstream: PLLStream) =
@@ -172,7 +172,7 @@ proc prettyTok*(tok: TToken): string =
   if IsKeyword(tok.tokType): result = "keyword " & tok.ident.s
   else: result = tokToStr(tok)
   
-proc PrintTok*(tok: TToken) = 
+proc printTok*(tok: TToken) = 
   write(stdout, TokTypeToStr[tok.tokType])
   write(stdout, " ")
   writeln(stdout, tokToStr(tok))
@@ -246,7 +246,7 @@ proc isFloatLiteral(s: string): bool =
       return true
   result = false
 
-proc GetNumber(L: var TLexer): TToken = 
+proc getNumber(L: var TLexer): TToken = 
   var 
     pos, endpos: int
     xi: biggestInt
@@ -499,7 +499,7 @@ proc newString(s: cstring, len: int): string =
   for i in 0 .. <len:
     result[i] = s[i]
 
-proc HandleCRLF(L: var TLexer, pos: int): int =
+proc handleCRLF(L: var TLexer, pos: int): int =
   template registerLine =
     let col = L.getColNumber(pos)
     
diff --git a/compiler/lists.nim b/compiler/lists.nim
index 22b1a183a..70e177ba3 100644
--- a/compiler/lists.nim
+++ b/compiler/lists.nim
@@ -24,12 +24,12 @@ type
 
   TCompareProc* = proc (entry: PListEntry, closure: Pointer): bool {.nimcall.}
 
-proc InitLinkedList*(list: var TLinkedList) = 
+proc initLinkedList*(list: var TLinkedList) = 
   list.Counter = 0
   list.head = nil
   list.tail = nil
 
-proc Append*(list: var TLinkedList, entry: PListEntry) = 
+proc append*(list: var TLinkedList, entry: PListEntry) = 
   Inc(list.counter)
   entry.next = nil
   entry.prev = list.tail
@@ -39,7 +39,7 @@ proc Append*(list: var TLinkedList, entry: PListEntry) =
   list.tail = entry
   if list.head == nil: list.head = entry
   
-proc Contains*(list: TLinkedList, data: string): bool = 
+proc contains*(list: TLinkedList, data: string): bool = 
   var it = list.head
   while it != nil: 
     if PStrEntry(it).data == data: 
@@ -50,14 +50,14 @@ proc newStrEntry(data: string): PStrEntry =
   new(result)
   result.data = data
 
-proc AppendStr*(list: var TLinkedList, data: string) = 
+proc appendStr*(list: var TLinkedList, data: string) = 
   append(list, newStrEntry(data))
 
-proc IncludeStr*(list: var TLinkedList, data: string): bool = 
+proc includeStr*(list: var TLinkedList, data: string): bool = 
   if Contains(list, data): return true
   AppendStr(list, data)       # else: add to list
 
-proc Prepend*(list: var TLinkedList, entry: PListEntry) = 
+proc prepend*(list: var TLinkedList, entry: PListEntry) = 
   Inc(list.counter)
   entry.prev = nil
   entry.next = list.head
@@ -67,10 +67,10 @@ proc Prepend*(list: var TLinkedList, entry: PListEntry) =
   list.head = entry
   if list.tail == nil: list.tail = entry
 
-proc PrependStr*(list: var TLinkedList, data: string) = 
+proc prependStr*(list: var TLinkedList, data: string) = 
   prepend(list, newStrEntry(data))
 
-proc InsertBefore*(list: var TLinkedList, pos, entry: PListEntry) = 
+proc insertBefore*(list: var TLinkedList, pos, entry: PListEntry) = 
   assert(pos != nil)
   if pos == list.head: 
     prepend(list, entry)
@@ -81,7 +81,7 @@ proc InsertBefore*(list: var TLinkedList, pos, entry: PListEntry) =
     if pos.prev != nil: pos.prev.next = entry
     pos.prev = entry
  
-proc Remove*(list: var TLinkedList, entry: PListEntry) = 
+proc remove*(list: var TLinkedList, entry: PListEntry) = 
   Dec(list.counter)
   if entry == list.tail: 
     list.tail = entry.prev
@@ -103,14 +103,14 @@ proc bringToFront*(list: var TLinkedList, entry: PListEntry) =
     entry.next = list.head
     list.head = entry
 
-proc ExcludeStr*(list: var TLinkedList, data: string) =
+proc excludeStr*(list: var TLinkedList, data: string) =
   var it = list.head
   while it != nil:
     let nxt = it.next
     if PStrEntry(it).data == data: remove(list, it)
     it = nxt
 
-proc Find*(list: TLinkedList, fn: TCompareProc, closure: Pointer): PListEntry = 
+proc find*(list: TLinkedList, fn: TCompareProc, closure: Pointer): PListEntry = 
   result = list.head
   while result != nil:
     if fn(result, closure): return 
diff --git a/compiler/llstream.nim b/compiler/llstream.nim
index 8ccf24b99..68ad4d587 100644
--- a/compiler/llstream.nim
+++ b/compiler/llstream.nim
@@ -30,56 +30,56 @@ type
   
   PLLStream* = ref TLLStream
 
-proc LLStreamOpen*(data: string): PLLStream
-proc LLStreamOpen*(f: var tfile): PLLStream
-proc LLStreamOpen*(filename: string, mode: TFileMode): PLLStream
-proc LLStreamOpen*(): PLLStream
-proc LLStreamOpenStdIn*(): PLLStream
-proc LLStreamClose*(s: PLLStream)
-proc LLStreamRead*(s: PLLStream, buf: pointer, bufLen: int): int
-proc LLStreamReadLine*(s: PLLStream, line: var string): bool
-proc LLStreamReadAll*(s: PLLStream): string
-proc LLStreamWrite*(s: PLLStream, data: string)
-proc LLStreamWrite*(s: PLLStream, data: Char)
-proc LLStreamWrite*(s: PLLStream, buf: pointer, buflen: int)
-proc LLStreamWriteln*(s: PLLStream, data: string)
+proc llStreamOpen*(data: string): PLLStream
+proc llStreamOpen*(f: var tfile): PLLStream
+proc llStreamOpen*(filename: string, mode: TFileMode): PLLStream
+proc llStreamOpen*(): PLLStream
+proc llStreamOpenStdIn*(): PLLStream
+proc llStreamClose*(s: PLLStream)
+proc llStreamRead*(s: PLLStream, buf: pointer, bufLen: int): int
+proc llStreamReadLine*(s: PLLStream, line: var string): bool
+proc llStreamReadAll*(s: PLLStream): string
+proc llStreamWrite*(s: PLLStream, data: string)
+proc llStreamWrite*(s: PLLStream, data: Char)
+proc llStreamWrite*(s: PLLStream, buf: pointer, buflen: int)
+proc llStreamWriteln*(s: PLLStream, data: string)
 # implementation
 
-proc LLStreamOpen(data: string): PLLStream = 
+proc llStreamOpen(data: string): PLLStream = 
   new(result)
   result.s = data
   result.kind = llsString
 
-proc LLStreamOpen(f: var tfile): PLLStream = 
+proc llStreamOpen(f: var tfile): PLLStream = 
   new(result)
   result.f = f
   result.kind = llsFile
 
-proc LLStreamOpen(filename: string, mode: TFileMode): PLLStream = 
+proc llStreamOpen(filename: string, mode: TFileMode): PLLStream = 
   new(result)
   result.kind = llsFile
   if not open(result.f, filename, mode): result = nil
   
-proc LLStreamOpen(): PLLStream = 
+proc llStreamOpen(): PLLStream = 
   new(result)
   result.kind = llsNone
 
-proc LLStreamOpenStdIn(): PLLStream = 
+proc llStreamOpenStdIn(): PLLStream = 
   new(result)
   result.kind = llsStdIn
   result.s = ""
   result.lineOffset = -1
 
-proc LLStreamClose(s: PLLStream) = 
+proc llStreamClose(s: PLLStream) = 
   case s.kind
   of llsNone, llsString, llsStdIn: 
-    nil
+    discard
   of llsFile: 
     close(s.f)
 
-when not defined(ReadLineFromStdin): 
+when not defined(readLineFromStdin): 
   # fallback implementation:
-  proc ReadLineFromStdin(prompt: string, line: var string): bool =
+  proc readLineFromStdin(prompt: string, line: var string): bool =
     stdout.write(prompt)
     result = readLine(stdin, line)
 
@@ -111,7 +111,7 @@ proc countTriples(s: string): int =
       inc i, 2
     inc i
 
-proc LLreadFromStdin(s: PLLStream, buf: pointer, bufLen: int): int =
+proc llReadFromStdin(s: PLLStream, buf: pointer, bufLen: int): int =
   s.s = ""
   s.rd = 0
   var line = newStringOfCap(120)
@@ -127,7 +127,7 @@ proc LLreadFromStdin(s: PLLStream, buf: pointer, bufLen: int): int =
     copyMem(buf, addr(s.s[s.rd]), result)
     inc(s.rd, result)
 
-proc LLStreamRead(s: PLLStream, buf: pointer, bufLen: int): int = 
+proc llStreamRead(s: PLLStream, buf: pointer, bufLen: int): int = 
   case s.kind
   of llsNone: 
     result = 0
@@ -141,7 +141,7 @@ proc LLStreamRead(s: PLLStream, buf: pointer, bufLen: int): int =
   of llsStdIn: 
     result = LLreadFromStdin(s, buf, bufLen)
   
-proc LLStreamReadLine(s: PLLStream, line: var string): bool =
+proc llStreamReadLine(s: PLLStream, line: var string): bool =
   setLen(line, 0)
   case s.kind
   of llsNone:
@@ -165,25 +165,25 @@ proc LLStreamReadLine(s: PLLStream, line: var string): bool =
   of llsStdIn:
     result = readLine(stdin, line)
     
-proc LLStreamWrite(s: PLLStream, data: string) = 
+proc llStreamWrite(s: PLLStream, data: string) = 
   case s.kind
   of llsNone, llsStdIn: 
-    nil
+    discard
   of llsString: 
     add(s.s, data)
     inc(s.wr, len(data))
   of llsFile: 
     write(s.f, data)
   
-proc LLStreamWriteln(s: PLLStream, data: string) = 
-  LLStreamWrite(s, data)
-  LLStreamWrite(s, "\n")
+proc llStreamWriteln(s: PLLStream, data: string) = 
+  llStreamWrite(s, data)
+  llStreamWrite(s, "\n")
 
-proc LLStreamWrite(s: PLLStream, data: Char) = 
+proc llStreamWrite(s: PLLStream, data: Char) = 
   var c: char
   case s.kind
   of llsNone, llsStdIn: 
-    nil
+    discard
   of llsString: 
     add(s.s, data)
     inc(s.wr)
@@ -191,10 +191,10 @@ proc LLStreamWrite(s: PLLStream, data: Char) =
     c = data
     discard writeBuffer(s.f, addr(c), sizeof(c))
 
-proc LLStreamWrite(s: PLLStream, buf: pointer, buflen: int) = 
+proc llStreamWrite(s: PLLStream, buf: pointer, buflen: int) = 
   case s.kind
   of llsNone, llsStdIn: 
-    nil
+    discard
   of llsString: 
     if bufLen > 0: 
       setlen(s.s, len(s.s) + bufLen)
@@ -203,10 +203,9 @@ proc LLStreamWrite(s: PLLStream, buf: pointer, buflen: int) =
   of llsFile: 
     discard writeBuffer(s.f, buf, bufLen)
   
-proc LLStreamReadAll(s: PLLStream): string = 
+proc llStreamReadAll(s: PLLStream): string = 
   const 
     bufSize = 2048
-  var bytes, i: int
   case s.kind
   of llsNone, llsStdIn: 
     result = ""
@@ -216,8 +215,8 @@ proc LLStreamReadAll(s: PLLStream): string =
     s.rd = len(s.s)
   of llsFile: 
     result = newString(bufSize)
-    bytes = readBuffer(s.f, addr(result[0]), bufSize)
-    i = bytes
+    var bytes = readBuffer(s.f, addr(result[0]), bufSize)
+    var i = bytes
     while bytes == bufSize: 
       setlen(result, i + bufSize)
       bytes = readBuffer(s.f, addr(result[i + 0]), bufSize)
diff --git a/compiler/lookups.nim b/compiler/lookups.nim
index 642243468..951998d15 100644
--- a/compiler/lookups.nim
+++ b/compiler/lookups.nim
@@ -21,7 +21,7 @@ proc considerAcc*(n: PNode): PIdent =
   of nkSym: result = n.sym.name
   of nkAccQuoted:
     case n.len
-    of 0: GlobalError(n.info, errIdentifierExpected, renderTree(n))
+    of 0: globalError(n.info, errIdentifierExpected, renderTree(n))
     of 1: result = considerAcc(n.sons[0])
     else:
       var id = ""
@@ -30,16 +30,16 @@ proc considerAcc*(n: PNode): PIdent =
         case x.kind
         of nkIdent: id.add(x.ident.s)
         of nkSym: id.add(x.sym.name.s)
-        else: GlobalError(n.info, errIdentifierExpected, renderTree(n))
+        else: globalError(n.info, errIdentifierExpected, renderTree(n))
       result = getIdent(id)
   else:
-    GlobalError(n.info, errIdentifierExpected, renderTree(n))
+    globalError(n.info, errIdentifierExpected, renderTree(n))
  
 template addSym*(scope: PScope, s: PSym) =
-  StrTableAdd(scope.symbols, s)
+  strTableAdd(scope.symbols, s)
 
 proc addUniqueSym*(scope: PScope, s: PSym): TResult =
-  if StrTableIncl(scope.symbols, s):
+  if strTableIncl(scope.symbols, s):
     result = Failure
   else:
     result = Success
@@ -64,17 +64,17 @@ iterator walkScopes*(scope: PScope): PScope =
     current = current.parent
 
 proc localSearchInScope*(c: PContext, s: PIdent): PSym =
-  result = StrTableGet(c.currentScope.symbols, s)
+  result = strTableGet(c.currentScope.symbols, s)
 
 proc searchInScopes*(c: PContext, s: PIdent): PSym =
   for scope in walkScopes(c.currentScope):
-    result = StrTableGet(scope.symbols, s)
+    result = strTableGet(scope.symbols, s)
     if result != nil: return
   result = nil
 
 proc searchInScopes*(c: PContext, s: PIdent, filter: TSymKinds): PSym =
   for scope in walkScopes(c.currentScope):
-    result = StrTableGet(scope.symbols, s)
+    result = strTableGet(scope.symbols, s)
     if result != nil and result.kind in filter: return
   result = nil
 
@@ -114,22 +114,22 @@ proc getSymRepr*(s: PSym): string =
 proc ensureNoMissingOrUnusedSymbols(scope: PScope) =
   # check if all symbols have been used and defined:
   var it: TTabIter
-  var s = InitTabIter(it, scope.symbols)
+  var s = initTabIter(it, scope.symbols)
   var missingImpls = 0
   while s != nil:
     if sfForward in s.flags:
       # too many 'implementation of X' errors are annoying
       # and slow 'suggest' down:
       if missingImpls == 0:
-        LocalError(s.info, errImplOfXexpected, getSymRepr(s))
+        localError(s.info, errImplOfXexpected, getSymRepr(s))
       inc missingImpls
     elif {sfUsed, sfExported} * s.flags == {} and optHints in s.options: 
       # BUGFIX: check options in s!
       if s.kind notin {skForVar, skParam, skMethod, skUnknown, skGenericParam}:
-        Message(s.info, hintXDeclaredButNotUsed, getSymRepr(s))
-    s = NextIter(it, scope.symbols)
+        message(s.info, hintXDeclaredButNotUsed, getSymRepr(s))
+    s = nextIter(it, scope.symbols)
   
-proc WrongRedefinition*(info: TLineInfo, s: string) =
+proc wrongRedefinition*(info: TLineInfo, s: string) =
   if gCmd != cmdInteractive:
     localError(info, errAttemptToRedefine, s)
   
@@ -144,7 +144,7 @@ proc addDeclAt*(scope: PScope, sym: PSym) =
   if scope.addUniqueSym(sym) == Failure:
     WrongRedefinition(sym.info, sym.Name.s)
 
-proc AddInterfaceDeclAux(c: PContext, sym: PSym) = 
+proc addInterfaceDeclAux(c: PContext, sym: PSym) = 
   if sfExported in sym.flags:
     # add to interface:
     if c.module != nil: StrTableAdd(c.module.tab, sym)
@@ -152,27 +152,27 @@ proc AddInterfaceDeclAux(c: PContext, sym: PSym) =
 
 proc addInterfaceDeclAt*(c: PContext, scope: PScope, sym: PSym) =
   addDeclAt(scope, sym)
-  AddInterfaceDeclAux(c, sym)
+  addInterfaceDeclAux(c, sym)
 
 proc addOverloadableSymAt*(scope: PScope, fn: PSym) =
   if fn.kind notin OverloadableSyms: 
-    InternalError(fn.info, "addOverloadableSymAt")
+    internalError(fn.info, "addOverloadableSymAt")
     return
   var check = StrTableGet(scope.symbols, fn.name)
   if check != nil and check.Kind notin OverloadableSyms: 
-    WrongRedefinition(fn.info, fn.Name.s)
+    wrongRedefinition(fn.info, fn.Name.s)
   else:
     scope.addSym(fn)
   
 proc addInterfaceDecl*(c: PContext, sym: PSym) = 
   # it adds the symbol to the interface if appropriate
   addDecl(c, sym)
-  AddInterfaceDeclAux(c, sym)
+  addInterfaceDeclAux(c, sym)
 
 proc addInterfaceOverloadableSymAt*(c: PContext, scope: PScope, sym: PSym) =
   # it adds the symbol to the interface if appropriate
   addOverloadableSymAt(scope, sym)
-  AddInterfaceDeclAux(c, sym)
+  addInterfaceDeclAux(c, sym)
 
 proc lookUp*(c: PContext, n: PNode): PSym = 
   # Looks up a symbol. Generates an error in case of nil.
@@ -180,7 +180,7 @@ proc lookUp*(c: PContext, n: PNode): PSym =
   of nkIdent:
     result = searchInScopes(c, n.ident)
     if result == nil: 
-      LocalError(n.info, errUndeclaredIdentifier, n.ident.s)
+      localError(n.info, errUndeclaredIdentifier, n.ident.s)
       result = errorSym(c, n)
   of nkSym:
     result = n.sym
@@ -188,34 +188,34 @@ proc lookUp*(c: PContext, n: PNode): PSym =
     var ident = considerAcc(n)
     result = searchInScopes(c, ident)
     if result == nil:
-      LocalError(n.info, errUndeclaredIdentifier, ident.s)
+      localError(n.info, errUndeclaredIdentifier, ident.s)
       result = errorSym(c, n)
   else:
-    InternalError(n.info, "lookUp")
+    internalError(n.info, "lookUp")
     return
-  if Contains(c.AmbiguousSymbols, result.id): 
-    LocalError(n.info, errUseQualifier, result.name.s)
+  if contains(c.AmbiguousSymbols, result.id): 
+    localError(n.info, errUseQualifier, result.name.s)
   if result.kind == skStub: loadStub(result)
   
 type 
   TLookupFlag* = enum 
     checkAmbiguity, checkUndeclared
 
-proc QualifiedLookUp*(c: PContext, n: PNode, flags = {checkUndeclared}): PSym = 
+proc qualifiedLookUp*(c: PContext, n: PNode, flags = {checkUndeclared}): PSym = 
   case n.kind
   of nkIdent, nkAccQuoted:
     var ident = considerAcc(n)
     result = searchInScopes(c, ident)
     if result == nil and checkUndeclared in flags: 
-      LocalError(n.info, errUndeclaredIdentifier, ident.s)
+      localError(n.info, errUndeclaredIdentifier, ident.s)
       result = errorSym(c, n)
     elif checkAmbiguity in flags and result != nil and 
-        Contains(c.AmbiguousSymbols, result.id): 
-      LocalError(n.info, errUseQualifier, ident.s)
+        contains(c.AmbiguousSymbols, result.id): 
+      localError(n.info, errUseQualifier, ident.s)
   of nkSym:
     result = n.sym
-    if checkAmbiguity in flags and Contains(c.AmbiguousSymbols, result.id): 
-      LocalError(n.info, errUseQualifier, n.sym.name.s)
+    if checkAmbiguity in flags and contains(c.AmbiguousSymbols, result.id): 
+      localError(n.info, errUseQualifier, n.sym.name.s)
   of nkDotExpr: 
     result = nil
     var m = qualifiedLookUp(c, n.sons[0], flags*{checkUndeclared})
@@ -227,31 +227,31 @@ proc QualifiedLookUp*(c: PContext, n: PNode, flags = {checkUndeclared}): PSym =
         ident = considerAcc(n.sons[1])
       if ident != nil: 
         if m == c.module: 
-          result = StrTableGet(c.topLevelScope.symbols, ident)
+          result = strTableGet(c.topLevelScope.symbols, ident)
         else: 
-          result = StrTableGet(m.tab, ident)
+          result = strTableGet(m.tab, ident)
         if result == nil and checkUndeclared in flags: 
-          LocalError(n.sons[1].info, errUndeclaredIdentifier, ident.s)
+          localError(n.sons[1].info, errUndeclaredIdentifier, ident.s)
           result = errorSym(c, n.sons[1])
       elif n.sons[1].kind == nkSym:
         result = n.sons[1].sym
       elif checkUndeclared in flags and
            n.sons[1].kind notin {nkOpenSymChoice, nkClosedSymChoice}:
-        LocalError(n.sons[1].info, errIdentifierExpected,
+        localError(n.sons[1].info, errIdentifierExpected,
                    renderTree(n.sons[1]))
         result = errorSym(c, n.sons[1])
   else:
     result = nil
   if result != nil and result.kind == skStub: loadStub(result)
   
-proc InitOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
+proc initOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
   case n.kind
   of nkIdent, nkAccQuoted:
     var ident = considerAcc(n)
     o.scope = c.currentScope
     o.mode = oimNoQualifier
     while true:
-      result = InitIdentIter(o.it, o.scope.symbols, ident)
+      result = initIdentIter(o.it, o.scope.symbols, ident)
       if result != nil:
         break
       else:
@@ -272,12 +272,12 @@ proc InitOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
       if ident != nil: 
         if o.m == c.module: 
           # a module may access its private members:
-          result = InitIdentIter(o.it, c.topLevelScope.symbols, ident)
+          result = initIdentIter(o.it, c.topLevelScope.symbols, ident)
           o.mode = oimSelfModule
         else: 
           result = InitIdentIter(o.it, o.m.tab, ident)
       else: 
-        LocalError(n.sons[1].info, errIdentifierExpected, 
+        localError(n.sons[1].info, errIdentifierExpected, 
                    renderTree(n.sons[1]))
         result = errorSym(c, n.sons[1])
   of nkClosedSymChoice, nkOpenSymChoice:
@@ -285,7 +285,7 @@ proc InitOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
     result = n.sons[0].sym
     o.symChoiceIndex = 1
     o.inSymChoice = initIntSet()
-    Incl(o.inSymChoice, result.id)
+    incl(o.inSymChoice, result.id)
   else: nil
   if result != nil and result.kind == skStub: loadStub(result)
 
@@ -306,7 +306,7 @@ proc nextOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
       while result == nil:
         o.scope = o.scope.parent
         if o.scope == nil: break
-        result = InitIdentIter(o.it, o.scope.symbols, o.it.name)
+        result = initIdentIter(o.it, o.scope.symbols, o.it.name)
         # BUGFIX: o.it.name <-> n.ident
     else: 
       result = nil
@@ -323,19 +323,19 @@ proc nextOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
       # try 'local' symbols too for Koenig's lookup:
       o.mode = oimSymChoiceLocalLookup
       o.scope = c.currentScope
-      result = FirstIdentExcluding(o.it, o.scope.symbols,
+      result = firstIdentExcluding(o.it, o.scope.symbols,
                                    n.sons[0].sym.name, o.inSymChoice)
       while result == nil:
         o.scope = o.scope.parent
         if o.scope == nil: break
-        result = FirstIdentExcluding(o.it, o.scope.symbols,
+        result = firstIdentExcluding(o.it, o.scope.symbols,
                                      n.sons[0].sym.name, o.inSymChoice)
   of oimSymChoiceLocalLookup:
     result = nextIdentExcluding(o.it, o.scope.symbols, o.inSymChoice)
     while result == nil:
       o.scope = o.scope.parent
       if o.scope == nil: break
-      result = FirstIdentExcluding(o.it, o.scope.symbols,
+      result = firstIdentExcluding(o.it, o.scope.symbols,
                                    n.sons[0].sym.name, o.inSymChoice)
   
   if result != nil and result.kind == skStub: loadStub(result)
diff --git a/compiler/magicsys.nim b/compiler/magicsys.nim
index 0c0b87222..066ccc6cd 100644
--- a/compiler/magicsys.nim
+++ b/compiler/magicsys.nim
@@ -12,14 +12,14 @@
 import 
   ast, astalgo, hashes, msgs, platform, nversion, times, idents, rodread
 
-var SystemModule*: PSym
+var systemModule*: PSym
 
 proc registerSysType*(t: PType)
   # magic symbols in the system module:
 proc getSysType*(kind: TTypeKind): PType
 proc getCompilerProc*(name: string): PSym
 proc registerCompilerProc*(s: PSym)
-proc FinishSystem*(tab: TStrTable)
+proc finishSystem*(tab: TStrTable)
 proc getSysSym*(name: string): PSym
 # implementation
 
@@ -126,7 +126,7 @@ proc skipIntLit*(t: PType): PType {.inline.} =
       return getSysType(t.kind)
   result = t
 
-proc AddSonSkipIntLit*(father, son: PType) =
+proc addSonSkipIntLit*(father, son: PType) =
   if isNil(father.sons): father.sons = @[]
   let s = son.skipIntLit
   add(father.sons, s)
@@ -158,13 +158,13 @@ proc setIntLitType*(result: PNode) =
       result.typ = getSysType(tyInt32)
     else:
       result.typ = getSysType(tyInt64)
-  else: InternalError(result.info, "invalid int size")
+  else: internalError(result.info, "invalid int size")
 
 proc getCompilerProc(name: string): PSym = 
   var ident = getIdent(name, hashIgnoreStyle(name))
-  result = StrTableGet(compilerprocs, ident)
+  result = strTableGet(compilerprocs, ident)
   if result == nil: 
-    result = StrTableGet(rodCompilerProcs, ident)
+    result = strTableGet(rodCompilerProcs, ident)
     if result != nil: 
       strTableAdd(compilerprocs, result)
       if result.kind == skStub: loadStub(result)
@@ -172,7 +172,6 @@ proc getCompilerProc(name: string): PSym =
 proc registerCompilerProc(s: PSym) = 
   strTableAdd(compilerprocs, s)
 
-proc FinishSystem(tab: TStrTable) = nil
-  
-initStrTable(compilerprocs)
+proc finishSystem(tab: TStrTable) = discard
 
+initStrTable(compilerprocs)
diff --git a/compiler/main.nim b/compiler/main.nim
index b91b596b0..3f8b6aeba 100644
--- a/compiler/main.nim
+++ b/compiler/main.nim
@@ -21,9 +21,9 @@ import
 from magicsys import SystemModule, resetSysTypes
 
 const
-  has_LLVM_Backend = false
+  hasLLVM_Backend = false
 
-when has_LLVM_Backend:
+when hasLLVM_Backend:
   import llvmgen
 
 proc rodPass =
@@ -37,7 +37,7 @@ proc semanticPasses =
   registerPass verbosePass
   registerPass semPass
 
-proc CommandGenDepend =
+proc commandGenDepend =
   semanticPasses()
   registerPass(genDependPass)
   registerPass(cleanupPass)
@@ -46,13 +46,13 @@ proc CommandGenDepend =
   execExternalProgram("dot -Tpng -o" & changeFileExt(gProjectFull, "png") &
       ' ' & changeFileExt(gProjectFull, "dot"))
 
-proc CommandCheck =
+proc commandCheck =
   msgs.gErrorMax = high(int)  # do not stop after first error
   semanticPasses()            # use an empty backend for semantic checking only
   rodPass()
   compileProject()
 
-proc CommandDoc2 =
+proc commandDoc2 =
   msgs.gErrorMax = high(int)  # do not stop after first error
   semanticPasses()
   registerPass(docgen2Pass)
@@ -60,7 +60,7 @@ proc CommandDoc2 =
   compileProject()
   finishDoc2Pass(gProjectName)
 
-proc CommandCompileToC =
+proc commandCompileToC =
   semanticPasses()
   registerPass(cgenPass)
   rodPass()
@@ -111,15 +111,15 @@ proc CommandCompileToC =
     ccgutils.resetCaches()
     GC_fullCollect()
 
-when has_LLVM_Backend:
-  proc CommandCompileToLLVM =
+when hasLLVM_Backend:
+  proc commandCompileToLLVM =
     semanticPasses()
     registerPass(llvmgen.llvmgenPass())
     rodPass()
     #registerPass(cleanupPass())
     compileProject()
 
-proc CommandCompileToJS =
+proc commandCompileToJS =
   #incl(gGlobalOptions, optSafeCode)
   setTarget(osJS, cpuJS)
   #initDefines()
@@ -130,7 +130,7 @@ proc CommandCompileToJS =
   registerPass(jsgenPass)
   compileProject()
 
-proc InteractivePasses =
+proc interactivePasses =
   #incl(gGlobalOptions, optSafeCode)
   #setTarget(osNimrodVM, cpuNimrodVM)
   initDefines()
@@ -140,7 +140,7 @@ proc InteractivePasses =
   registerPass(semPass)
   registerPass(evalPass)
 
-proc CommandInteractive =
+proc commandInteractive =
   msgs.gErrorMax = high(int)  # do not stop after first error
   InteractivePasses()
   compileSystemModule()
@@ -163,20 +163,20 @@ proc commandEval(exp: string) =
   var echoExp = "echo \"eval\\t\", " & "repr(" & exp & ")"
   evalNim(echoExp.parseString, makeStdinModule())
 
-proc CommandPrettyOld =
+proc commandPrettyOld =
   var projectFile = addFileExt(mainCommandArg(), NimExt)
   var module = parseFile(projectFile.fileInfoIdx)
   if module != nil:
     renderModule(module, getOutFile(mainCommandArg(), "pretty." & NimExt))
 
-proc CommandPretty =
+proc commandPretty =
   msgs.gErrorMax = high(int)  # do not stop after first error
   semanticPasses()
   registerPass(prettyPass)
   compileProject()
   pretty.overwriteFiles()
 
-proc CommandScan =
+proc commandScan =
   var f = addFileExt(mainCommandArg(), nimExt)
   var stream = LLStreamOpen(f, fmRead)
   if stream != nil:
@@ -193,7 +193,7 @@ proc CommandScan =
   else:
     rawMessage(errCannotOpenFile, f)
 
-proc CommandSuggest =
+proc commandSuggest =
   if isServing:
     # XXX: hacky work-around ahead
     # Currently, it's possible to issue a idetools command, before
@@ -286,7 +286,7 @@ const
   SimiluateCaasMemReset = false
   PrintRopeCacheStats = false
 
-proc MainCommand* =
+proc mainCommand* =
   when SimiluateCaasMemReset:
     gGlobalOptions.incl(optCaasEnabled)
 
diff --git a/compiler/modules.nim b/compiler/modules.nim
index ef6af3d69..15af40363 100644
--- a/compiler/modules.nim
+++ b/compiler/modules.nim
@@ -184,7 +184,7 @@ proc compileSystemModule* =
     SystemFileIdx = fileInfoIdx(options.libpath/"system.nim")
     discard CompileModule(SystemFileIdx, {sfSystemModule})
 
-proc CompileProject*(projectFile = gProjectMainIdx) =
+proc compileProject*(projectFile = gProjectMainIdx) =
   let systemFileIdx = fileInfoIdx(options.libpath / "system.nim")
   if projectFile == SystemFileIdx:
     discard CompileModule(projectFile, {sfMainModule, sfSystemModule})
diff --git a/compiler/msgs.nim b/compiler/msgs.nim
index 2a7d54d4e..44139b576 100644
--- a/compiler/msgs.nim
+++ b/compiler/msgs.nim
@@ -453,7 +453,7 @@ const
 var
   filenameToIndexTbl = initTable[string, int32]()
   fileInfos*: seq[TFileInfo] = @[]
-  SystemFileIdx*: int32
+  systemFileIdx*: int32
 
 proc toCChar*(c: Char): string = 
   case c
@@ -545,7 +545,7 @@ var
 when useCaas:
   var stdoutSocket*: TSocket
 
-proc UnknownLineInfo*(): TLineInfo =
+proc unknownLineInfo*(): TLineInfo =
   result.line = int16(-1)
   result.col = int16(-1)
   result.fileIndex = -1
@@ -560,7 +560,7 @@ var
 proc clearBufferedMsgs* =
   bufferedMsgs = nil
 
-proc SuggestWriteln*(s: string) =
+proc suggestWriteln*(s: string) =
   if eStdOut in errorOutputs:
     when useCaas:
       if isNil(stdoutSocket): Writeln(stdout, s)
@@ -573,7 +573,7 @@ proc SuggestWriteln*(s: string) =
   if eInMemory in errorOutputs:
     bufferedMsgs.safeAdd(s)
 
-proc SuggestQuit*() =
+proc suggestQuit*() =
   if not isServing:
     quit(0)
   elif isWorkingWithDirtyBuffer:
@@ -656,11 +656,11 @@ proc addCheckpoint*(info: TLineInfo) =
 proc addCheckpoint*(filename: string, line: int) = 
   addCheckpoint(newLineInfo(filename, line, - 1))
 
-proc OutWriteln*(s: string) = 
+proc outWriteln*(s: string) = 
   ## Writes to stdout. Always.
   if eStdOut in errorOutputs: Writeln(stdout, s)
  
-proc MsgWriteln*(s: string) = 
+proc msgWriteln*(s: string) = 
   ## Writes to stdout. If --stdout option is given, writes to stderr instead.
   if gCmd == cmdIdeTools and optCDebug notin gGlobalOptions: return
 
@@ -675,7 +675,7 @@ proc coordToStr(coord: int): string =
   if coord == -1: result = "???"
   else: result = $coord
   
-proc MsgKindToString*(kind: TMsgKind): string = 
+proc msgKindToString*(kind: TMsgKind): string = 
   # later versions may provide translated error messages
   result = msgKindToStr[kind]
 
@@ -724,7 +724,7 @@ proc writeContext(lastinfo: TLineInfo) =
   var info = lastInfo
   for i in countup(0, len(msgContext) - 1): 
     if msgContext[i] != lastInfo and msgContext[i] != info: 
-      MsgWriteln(posContextFormat % [toMsgFilename(msgContext[i]), 
+      msgWriteln(posContextFormat % [toMsgFilename(msgContext[i]), 
                                      coordToStr(msgContext[i].line), 
                                      coordToStr(msgContext[i].col), 
                                      getMessageStr(errInstantiationFrom, "")])
@@ -748,7 +748,7 @@ proc rawMessage*(msg: TMsgKind, args: openarray[string]) =
     frmt = rawHintFormat
     inc(gHintCounter)
   let s = `%`(frmt, `%`(msgKindToString(msg), args))
-  MsgWriteln(s)
+  msgWriteln(s)
   handleError(msg, doAbort, s)
 
 proc rawMessage*(msg: TMsgKind, arg: string) = 
@@ -756,8 +756,8 @@ proc rawMessage*(msg: TMsgKind, arg: string) =
 
 proc writeSurroundingSrc(info: TLineInfo) =
   const indent = "  "
-  MsgWriteln(indent & info.sourceLine.ropeToStr)
-  MsgWriteln(indent & repeatChar(info.col, ' ') & '^')
+  msgWriteln(indent & info.sourceLine.ropeToStr)
+  msgWriteln(indent & repeatChar(info.col, ' ') & '^')
 
 proc liMessage(info: TLineInfo, msg: TMsgKind, arg: string, 
                eh: TErrorHandling) =
@@ -783,45 +783,45 @@ proc liMessage(info: TLineInfo, msg: TMsgKind, arg: string,
   let s = frmt % [toMsgFilename(info), coordToStr(info.line),
                   coordToStr(info.col), getMessageStr(msg, arg)]
   if not ignoreMsg:
-    MsgWriteln(s)
+    msgWriteln(s)
     if optPrintSurroundingSrc and msg in errMin..errMax:
       info.writeSurroundingSrc
   handleError(msg, eh, s)
   
-proc Fatal*(info: TLineInfo, msg: TMsgKind, arg = "") = 
+proc fatal*(info: TLineInfo, msg: TMsgKind, arg = "") = 
   liMessage(info, msg, arg, doAbort)
 
-proc GlobalError*(info: TLineInfo, msg: TMsgKind, arg = "") = 
+proc globalError*(info: TLineInfo, msg: TMsgKind, arg = "") = 
   liMessage(info, msg, arg, doRaise)
 
-proc GlobalError*(info: TLineInfo, arg: string) =
+proc globalError*(info: TLineInfo, arg: string) =
   liMessage(info, errGenerated, arg, doRaise)
 
-proc LocalError*(info: TLineInfo, msg: TMsgKind, arg = "") =
+proc localError*(info: TLineInfo, msg: TMsgKind, arg = "") =
   liMessage(info, msg, arg, doNothing)
 
-proc LocalError*(info: TLineInfo, arg: string) =
+proc localError*(info: TLineInfo, arg: string) =
   liMessage(info, errGenerated, arg, doNothing)
 
-proc Message*(info: TLineInfo, msg: TMsgKind, arg = "") =
+proc message*(info: TLineInfo, msg: TMsgKind, arg = "") =
   liMessage(info, msg, arg, doNothing)
 
-proc InternalError*(info: TLineInfo, errMsg: string) = 
+proc internalError*(info: TLineInfo, errMsg: string) = 
   if gCmd == cmdIdeTools: return
   writeContext(info)
   liMessage(info, errInternal, errMsg, doAbort)
 
-proc InternalError*(errMsg: string) = 
+proc internalError*(errMsg: string) = 
   if gCmd == cmdIdeTools: return
   writeContext(UnknownLineInfo())
   rawMessage(errInternal, errMsg)
 
-template AssertNotNil*(e: expr): expr =
-  if e == nil: InternalError($InstantiationInfo())
+template assertNotNil*(e: expr): expr =
+  if e == nil: internalError($instantiationInfo())
   e
 
-template InternalAssert*(e: bool): stmt =
-  if not e: InternalError($InstantiationInfo())
+template internalAssert*(e: bool): stmt =
+  if not e: internalError($instantiationInfo())
 
 proc addSourceLine*(fileIdx: int32, line: string) =
   fileInfos[fileIdx].lines.add line.toRope
@@ -835,14 +835,14 @@ proc sourceLine*(i: TLineInfo): PRope =
         addSourceLine i.fileIndex, line.string
     except EIO:
       discard
-  InternalAssert i.fileIndex < fileInfos.len
+  internalAssert i.fileIndex < fileInfos.len
   # can happen if the error points to EOF:
   if i.line > fileInfos[i.fileIndex].lines.len: return nil
 
   result = fileInfos[i.fileIndex].lines[i.line-1]
 
 proc quotedFilename*(i: TLineInfo): PRope =
-  InternalAssert i.fileIndex >= 0
+  internalAssert i.fileIndex >= 0
   result = fileInfos[i.fileIndex].quotedName
 
 ropes.ErrorHandler = proc (err: TRopesError, msg: string, useWarning: bool) =
diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
index 7ec566a01..ae6487744 100644
--- a/compiler/nimconf.nim
+++ b/compiler/nimconf.nim
@@ -219,7 +219,7 @@ proc getSystemConfigPath(filename: string): string =
     if not existsFile(result): result = joinPath([p, "etc", filename])
     if not existsFile(result): result = "/etc/" & filename
 
-proc LoadConfigs*(cfg: string) =
+proc loadConfigs*(cfg: string) =
   # set default value (can be overwritten):
   if libpath == "": 
     # choose default libpath:
diff --git a/compiler/nimlexbase.nim b/compiler/nimlexbase.nim
index 6d45a825a..2e4f8dec7 100644
--- a/compiler/nimlexbase.nim
+++ b/compiler/nimlexbase.nim
@@ -54,11 +54,11 @@ proc openBaseLexer*(L: var TBaseLexer, inputstream: PLLStream,
 proc closeBaseLexer*(L: var TBaseLexer)
 proc getCurrentLine*(L: TBaseLexer, marker: bool = true): string
 proc getColNumber*(L: TBaseLexer, pos: int): int
-proc HandleCR*(L: var TBaseLexer, pos: int): int
+proc handleCR*(L: var TBaseLexer, pos: int): int
   # Call this if you scanned over CR in the buffer; it returns the
   # position to continue the scanning from. `pos` must be the position
   # of the CR.
-proc HandleLF*(L: var TBaseLexer, pos: int): int
+proc handleLF*(L: var TBaseLexer, pos: int): int
   # Call this if you scanned over LF in the buffer; it returns the the
   # position to continue the scanning from. `pos` must be the position
   # of the LF.
@@ -71,7 +71,7 @@ proc closeBaseLexer(L: var TBaseLexer) =
   dealloc(L.buf)
   LLStreamClose(L.stream)
 
-proc FillBuffer(L: var TBaseLexer) = 
+proc fillBuffer(L: var TBaseLexer) = 
   var 
     charsRead, toCopy, s: int # all are in characters,
                               # not bytes (in case this
@@ -126,20 +126,20 @@ proc fillBaseLexer(L: var TBaseLexer, pos: int): int =
     result = 0
   L.lineStart = result
 
-proc HandleCR(L: var TBaseLexer, pos: int): int = 
+proc handleCR(L: var TBaseLexer, pos: int): int = 
   assert(L.buf[pos] == CR)
   inc(L.linenumber)
   result = fillBaseLexer(L, pos)
   if L.buf[result] == LF: 
     result = fillBaseLexer(L, result)
 
-proc HandleLF(L: var TBaseLexer, pos: int): int = 
+proc handleLF(L: var TBaseLexer, pos: int): int = 
   assert(L.buf[pos] == LF)
   inc(L.linenumber)
   result = fillBaseLexer(L, pos) #L.lastNL := result-1; // BUGFIX: was: result;
   
-proc skip_UTF_8_BOM(L: var TBaseLexer) = 
-  if (L.buf[0] == '\xEF') and (L.buf[1] == '\xBB') and (L.buf[2] == '\xBF'): 
+proc skipUTF8BOM(L: var TBaseLexer) = 
+  if L.buf[0] == '\xEF' and L.buf[1] == '\xBB' and L.buf[2] == '\xBF':
     inc(L.bufpos, 3)
     inc(L.lineStart, 3)
 
@@ -167,4 +167,3 @@ proc getCurrentLine(L: TBaseLexer, marker: bool = true): string =
   result.add("\n")
   if marker: 
     result.add(RepeatChar(getColNumber(L, L.bufpos)) & '^' & "\n")
-  
diff --git a/compiler/nimrod.nim b/compiler/nimrod.nim
index 2bc94e3f8..33c899647 100644
--- a/compiler/nimrod.nim
+++ b/compiler/nimrod.nim
@@ -31,7 +31,7 @@ proc prependCurDir(f: string): string =
   else:
     result = f
 
-proc HandleCmdLine() =
+proc handleCmdLine() =
   if paramCount() == 0:
     writeCommandLineUsage()
   else:
@@ -47,12 +47,12 @@ proc HandleCmdLine() =
       gProjectName = p.name
     else:
       gProjectPath = getCurrentDir()
-    LoadConfigs(DefaultConfig) # load all config files
+    loadConfigs(DefaultConfig) # load all config files
     # now process command line arguments again, because some options in the
     # command line can overwite the config file's settings
     extccomp.initVars()
-    ProcessCmdLine(passCmd2, "")
-    MainCommand()
+    processCmdLine(passCmd2, "")
+    mainCommand()
     if gVerbosity >= 2: echo(GC_getStatistics())
     #echo(GC_getStatistics())
     if msgs.gErrorCounter == 0:
@@ -84,5 +84,5 @@ when compileOption("gc", "v2") or compileOption("gc", "refc"):
 condsyms.InitDefines()
 
 when not defined(selftest):
-  HandleCmdLine()
+  handleCmdLine()
   quit(int8(msgs.gErrorCounter > 0))
diff --git a/compiler/nimsets.nim b/compiler/nimsets.nim
index 34f79e14b..8c2fc42d3 100644
--- a/compiler/nimsets.nim
+++ b/compiler/nimsets.nim
@@ -18,7 +18,7 @@ proc overlap*(a, b: PNode): bool
 proc inSet*(s: PNode, elem: PNode): bool
 proc someInSet*(s: PNode, a, b: PNode): bool
 proc emptyRange*(a, b: PNode): bool
-proc SetHasRange*(s: PNode): bool
+proc setHasRange*(s: PNode): bool
   # returns true if set contains a range (needed by the code generator)
   # these are used for constant folding:
 proc unionSets*(a, b: PNode): PNode
@@ -87,7 +87,7 @@ proc toBitSet(s: PNode, b: var TBitSet) =
     else: 
       BitSetIncl(b, getOrdValue(s.sons[i]) - first)
   
-proc ToTreeSet(s: TBitSet, settype: PType, info: TLineInfo): PNode = 
+proc toTreeSet(s: TBitSet, settype: PType, info: TLineInfo): PNode = 
   var 
     a, b, e, first: BiggestInt # a, b are interval borders
     elemType: PType
@@ -158,9 +158,9 @@ proc cardSet(s: PNode): BiggestInt =
     else: 
       Inc(result)
   
-proc SetHasRange(s: PNode): bool = 
+proc setHasRange(s: PNode): bool = 
   if s.kind != nkCurly:
-    InternalError(s.info, "SetHasRange")
+    internalError(s.info, "SetHasRange")
     return false
   for i in countup(0, sonsLen(s) - 1): 
     if s.sons[i].kind == nkRange: 
diff --git a/compiler/options.nim b/compiler/options.nim
index d4122c7b2..d792b487e 100644
--- a/compiler/options.nim
+++ b/compiler/options.nim
@@ -277,7 +277,7 @@ proc rawFindFile2(f: string): string =
     it = PStrEntry(it.Next)
   result = ""
 
-proc FindFile*(f: string): string {.procvar.} = 
+proc findFile*(f: string): string {.procvar.} = 
   result = f.rawFindFile
   if result.len == 0:
     result = f.toLower.rawFindFile
diff --git a/compiler/parser.nim b/compiler/parser.nim
index fd51b04ec..652883360 100644
--- a/compiler/parser.nim
+++ b/compiler/parser.nim
@@ -35,7 +35,7 @@ type
     lex*: TLexer              # the lexer that is used for parsing
     tok*: TToken              # the current token
 
-proc ParseAll*(p: var TParser): PNode
+proc parseAll*(p: var TParser): PNode
 proc openParser*(p: var TParser, filename: string, inputstream: PLLStream)
 proc closeParser*(p: var TParser)
 proc parseTopLevelStmt*(p: var TParser): PNode
@@ -59,9 +59,9 @@ proc newFloatNodeP*(kind: TNodeKind, floatVal: BiggestFloat, p: TParser): PNode
 proc newStrNodeP*(kind: TNodeKind, strVal: string, p: TParser): PNode
 proc newIdentNodeP*(ident: PIdent, p: TParser): PNode
 proc expectIdentOrKeyw*(p: TParser)
-proc ExpectIdent*(p: TParser)
+proc expectIdent*(p: TParser)
 proc parLineInfo*(p: TParser): TLineInfo
-proc Eat*(p: var TParser, TokType: TTokType)
+proc eat*(p: var TParser, TokType: TTokType)
 proc skipInd*(p: var TParser)
 proc optPar*(p: var TParser)
 proc optInd*(p: var TParser, n: PNode)
@@ -75,17 +75,17 @@ proc parseCase(p: var TParser): PNode
 proc getTok(p: var TParser) = 
   rawGetTok(p.lex, p.tok)
 
-proc OpenParser*(p: var TParser, fileIdx: int32, inputStream: PLLStream) =
+proc openParser*(p: var TParser, fileIdx: int32, inputStream: PLLStream) =
   initToken(p.tok)
-  OpenLexer(p.lex, fileIdx, inputstream)
+  openLexer(p.lex, fileIdx, inputstream)
   getTok(p)                   # read the first token
   p.firstTok = true
 
-proc OpenParser*(p: var TParser, filename: string, inputStream: PLLStream) =
+proc openParser*(p: var TParser, filename: string, inputStream: PLLStream) =
   openParser(p, filename.fileInfoIdx, inputStream)
 
-proc CloseParser(p: var TParser) = 
-  CloseLexer(p.lex)
+proc closeParser(p: var TParser) = 
+  closeLexer(p.lex)
 
 proc parMessage(p: TParser, msg: TMsgKind, arg: string = "") = 
   lexMessage(p.lex, msg, arg)
@@ -135,11 +135,11 @@ proc expectIdentOrKeyw(p: TParser) =
   if p.tok.tokType != tkSymbol and not isKeyword(p.tok.tokType):
     lexMessage(p.lex, errIdentifierExpected, prettyTok(p.tok))
   
-proc ExpectIdent(p: TParser) =
+proc expectIdent(p: TParser) =
   if p.tok.tokType != tkSymbol:
     lexMessage(p.lex, errIdentifierExpected, prettyTok(p.tok))
   
-proc Eat(p: var TParser, TokType: TTokType) =
+proc eat(p: var TParser, TokType: TTokType) =
   if p.tok.TokType == TokType: getTok(p)
   else: lexMessage(p.lex, errTokenExpected, TokTypeToStr[tokType])
   
@@ -185,10 +185,10 @@ proc relevantOprChar(ident: PIdent): char {.inline.} =
   if result == '\\' and L > 1:
     result = ident.s[1]
 
-proc IsSigilLike(tok: TToken): bool {.inline.} =
+proc isSigilLike(tok: TToken): bool {.inline.} =
   result = tok.tokType == tkOpr and relevantOprChar(tok.ident) == '@'
 
-proc IsLeftAssociative(tok: TToken): bool {.inline.} =
+proc isLeftAssociative(tok: TToken): bool {.inline.} =
   result = tok.tokType != tkOpr or relevantOprChar(tok.ident) != '^'
 
 proc getPrecedence(tok: TToken): int = 
@@ -427,7 +427,7 @@ proc parseCast(p: var TParser): PNode =
 
 proc setBaseFlags(n: PNode, base: TNumericalBase) = 
   case base
-  of base10: nil
+  of base10: discard
   of base2: incl(n.flags, nfBase2)
   of base8: incl(n.flags, nfBase8)
   of base16: incl(n.flags, nfBase16)
@@ -1862,7 +1862,7 @@ proc parseTopLevelStmt(p: var TParser): PNode =
   result = ast.emptyNode
   while true:
     if p.tok.indent != 0: 
-      if p.firstTok and p.tok.indent < 0: nil
+      if p.firstTok and p.tok.indent < 0: discard
       else: parMessage(p, errInvalidIndentation)
     p.firstTok = false
     case p.tok.tokType
@@ -1881,7 +1881,7 @@ proc parseString(s: string, filename: string = "", line: int = 0): PNode =
   stream.lineOffset = line
 
   var parser: TParser
-  OpenParser(parser, filename, stream)
+  openParser(parser, filename, stream)
 
   result = parser.parseAll
-  CloseParser(parser)
+  closeParser(parser)
diff --git a/compiler/pbraces.nim b/compiler/pbraces.nim
index a944fe0ab..ce6e0d9a9 100644
--- a/compiler/pbraces.nim
+++ b/compiler/pbraces.nim
@@ -10,7 +10,7 @@
 import 
   llstream, lexer, parser, idents, strutils, ast, msgs
 
-proc ParseAll*(p: var TParser): PNode = 
+proc parseAll*(p: var TParser): PNode = 
   result = nil
 
 proc parseTopLevelStmt*(p: var TParser): PNode = 
diff --git a/compiler/platform.nim b/compiler/platform.nim
index 59091b690..5245cba6a 100644
--- a/compiler/platform.nim
+++ b/compiler/platform.nim
@@ -185,13 +185,13 @@ var
   targetCPU*, hostCPU*: TSystemCPU
   targetOS*, hostOS*: TSystemOS
 
-proc NameToOS*(name: string): TSystemOS
-proc NameToCPU*(name: string): TSystemCPU
+proc nameToOS*(name: string): TSystemOS
+proc nameToCPU*(name: string): TSystemCPU
 
 var 
-  IntSize*: int
+  intSize*: int
   floatSize*: int
-  PtrSize*: int
+  ptrSize*: int
   tnl*: string                # target newline
 
 proc setTarget*(o: TSystemOS, c: TSystemCPU) = 
@@ -205,13 +205,13 @@ proc setTarget*(o: TSystemOS, c: TSystemCPU) =
   ptrSize = cpu[c].bit div 8
   tnl = os[o].newLine
 
-proc NameToOS(name: string): TSystemOS = 
+proc nameToOS(name: string): TSystemOS = 
   for i in countup(succ(osNone), high(TSystemOS)): 
     if cmpIgnoreStyle(name, OS[i].name) == 0: 
       return i
   result = osNone
 
-proc NameToCPU(name: string): TSystemCPU = 
+proc nameToCPU(name: string): TSystemCPU = 
   for i in countup(succ(cpuNone), high(TSystemCPU)): 
     if cmpIgnoreStyle(name, CPU[i].name) == 0: 
       return i
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index 6f1e7af25..41898caed 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -92,12 +92,12 @@ proc setExternName(s: PSym, extname: string) =
     # note that '{.importc.}' is transformed into '{.importc: "$1".}'
     s.loc.flags.incl(lfFullExternalName)
 
-proc MakeExternImport(s: PSym, extname: string) = 
+proc makeExternImport(s: PSym, extname: string) = 
   setExternName(s, extname)
   incl(s.flags, sfImportc)
   excl(s.flags, sfForward)
 
-proc MakeExternExport(s: PSym, extname: string) = 
+proc makeExternExport(s: PSym, extname: string) = 
   setExternName(s, extname)
   incl(s.flags, sfExportc)
 
@@ -133,7 +133,7 @@ proc getStrLitNode(c: PContext, n: PNode): PNode =
     case n.sons[1].kind
     of nkStrLit, nkRStrLit, nkTripleStrLit: result = n.sons[1]
     else: 
-      LocalError(n.info, errStringLiteralExpected)
+      localError(n.info, errStringLiteralExpected)
       # error correction:
       result = newEmptyStrNode(n)
 
@@ -142,12 +142,12 @@ proc expectStrLit(c: PContext, n: PNode): string =
 
 proc expectIntLit(c: PContext, n: PNode): int = 
   if n.kind != nkExprColonExpr: 
-    LocalError(n.info, errIntLiteralExpected)
+    localError(n.info, errIntLiteralExpected)
   else: 
     n.sons[1] = c.semConstExpr(c, n.sons[1])
     case n.sons[1].kind
     of nkIntLit..nkInt64Lit: result = int(n.sons[1].intVal)
-    else: LocalError(n.info, errIntLiteralExpected)
+    else: localError(n.info, errIntLiteralExpected)
 
 proc getOptionalStr(c: PContext, n: PNode, defaultStr: string): string = 
   if n.kind == nkExprColonExpr: result = expectStrLit(c, n)
@@ -160,7 +160,7 @@ proc processMagic(c: PContext, n: PNode, s: PSym) =
   #if sfSystemModule notin c.module.flags:
   #  liMessage(n.info, errMagicOnlyInSystem)
   if n.kind != nkExprColonExpr: 
-    LocalError(n.info, errStringLiteralExpected)
+    localError(n.info, errStringLiteralExpected)
     return
   var v: string
   if n.sons[1].kind == nkIdent: v = n.sons[1].ident.s
@@ -176,15 +176,15 @@ proc wordToCallConv(sw: TSpecialWord): TCallingConvention =
   # the same
   result = TCallingConvention(ord(ccDefault) + ord(sw) - ord(wNimcall))
 
-proc IsTurnedOn(c: PContext, n: PNode): bool = 
+proc isTurnedOn(c: PContext, n: PNode): bool = 
   if n.kind == nkExprColonExpr:
     let x = c.semConstBoolExpr(c, n.sons[1])
     n.sons[1] = x
     if x.kind == nkIntLit: return x.intVal != 0
-  LocalError(n.info, errOnOrOffExpected)
+  localError(n.info, errOnOrOffExpected)
 
 proc onOff(c: PContext, n: PNode, op: TOptions) = 
-  if IsTurnedOn(c, n): gOptions = gOptions + op
+  if isTurnedOn(c, n): gOptions = gOptions + op
   else: gOptions = gOptions - op
   
 proc pragmaDeadCodeElim(c: PContext, n: PNode) = 
@@ -387,16 +387,16 @@ proc processCommonLink(c: PContext, n: PNode, feature: TLinkFeature) =
     extccomp.addFileToLink(libpath / completeCFilePath(found, false))
   else: internalError(n.info, "processCommonLink")
   
-proc PragmaBreakpoint(c: PContext, n: PNode) = 
+proc pragmaBreakpoint(c: PContext, n: PNode) = 
   discard getOptionalStr(c, n, "")
 
-proc PragmaCheckpoint(c: PContext, n: PNode) = 
+proc pragmaCheckpoint(c: PContext, n: PNode) = 
   # checkpoints can be used to debug the compiler; they are not documented
   var info = n.info
   inc(info.line)              # next line is affected!
   msgs.addCheckpoint(info)
 
-proc PragmaWatchpoint(c: PContext, n: PNode) =
+proc pragmaWatchpoint(c: PContext, n: PNode) =
   if n.kind == nkExprColonExpr:
     n.sons[1] = c.semExpr(c, n.sons[1])
   else:
@@ -431,14 +431,14 @@ proc semAsmOrEmit*(con: PContext, n: PNode, marker: char): PNode =
       a = c + 1
   else: illFormedAst(n)
   
-proc PragmaEmit(c: PContext, n: PNode) = 
+proc pragmaEmit(c: PContext, n: PNode) = 
   discard getStrLitNode(c, n)
   n.sons[1] = semAsmOrEmit(c, n, '`')
 
 proc noVal(n: PNode) = 
   if n.kind == nkExprColonExpr: invalidPragma(n)
 
-proc PragmaUnroll(c: PContext, n: PNode) = 
+proc pragmaUnroll(c: PContext, n: PNode) = 
   if c.p.nestedLoopCounter <= 0: 
     invalidPragma(n)
   elif n.kind == nkExprColonExpr:
@@ -448,7 +448,7 @@ proc PragmaUnroll(c: PContext, n: PNode) =
     else: 
       invalidPragma(n)
 
-proc PragmaLine(c: PContext, n: PNode) =
+proc pragmaLine(c: PContext, n: PNode) =
   if n.kind == nkExprColonExpr:
     n.sons[1] = c.semConstExpr(c, n.sons[1])
     let a = n.sons[1]
@@ -465,7 +465,7 @@ proc PragmaLine(c: PContext, n: PNode) =
         n.info.fileIndex = msgs.fileInfoIdx(x.strVal)
         n.info.line = int16(y.intVal)
     else:
-      LocalError(n.info, errXExpected, "tuple")
+      localError(n.info, errXExpected, "tuple")
   else:
     # sensible default:
     n.info = getInfoContext(-1)
diff --git a/compiler/pretty.nim b/compiler/pretty.nim
index 5036a16a3..2955193d0 100644
--- a/compiler/pretty.nim
+++ b/compiler/pretty.nim
@@ -12,7 +12,7 @@
 
 import 
   strutils, os, options, ast, astalgo, msgs, ropes, idents, passes,
-  intsets, strtabs
+  intsets, strtabs, semdata
   
 const
   removeTP = false # when true, "nimrod pretty" converts TTyp to Typ.
@@ -50,7 +50,7 @@ proc overwriteFiles*() =
     try:
       var f = open(newFile, fmWrite)
       for line in gSourceFiles[i].lines:
-        f.writeln(line)
+        f.writeln(line.strip(leading = false, trailing = true))
       f.close
     except EIO:
       rawMessage(errCannotOpenFile, newFile)
@@ -60,18 +60,25 @@ proc `=~`(s: string, a: openArray[string]): bool =
     if s.startsWith(x): return true
 
 proc beautifyName(s: string, k: TSymKind): string =
+  # minimal set of rules here for transition:
+  # GC_ is allowed
+
+  let allUpper = allCharsInSet(s, {'A'..'Z', '0'..'9', '_'})
+  if allUpper and k in {skConst, skEnumField, skType}: return s
   result = newStringOfCap(s.len)
   var i = 0
   case k
   of skType, skGenericParam:
-    # skip leading 'T'
+    # Types should start with a capital unless builtins like 'int' etc.:
     when removeTP:
       if s[0] == 'T' and s[1] in {'A'..'Z'}:
         i = 1
     if s =~ ["int", "uint", "cint", "cuint", "clong", "cstring", "string",
              "char", "byte", "bool", "openArray", "seq", "array", "void",
              "pointer", "float", "csize", "cdouble", "cchar", "cschar",
-             "cshort", "cu"]:
+             "cshort", "cu", "nil", "expr", "stmt", "typedesc", "auto", "any",
+             "range", "openarray", "varargs", "set", "cfloat"
+             ]:
       result.add s[i]
     else:
       result.add toUpper(s[i])
@@ -81,13 +88,19 @@ proc beautifyName(s: string, k: TSymKind): string =
   else:
     # as a special rule, don't transform 'L' to 'l'
     if s.len == 1 and s[0] == 'L': result.add 'L'
+    elif '_' in s: result.add(s[i])
     else: result.add toLower(s[0])
   inc i
-  let allUpper = allCharsInSet(s, {'A'..'Z', '0'..'9', '_'})
   while i < s.len:
     if s[i] == '_':
-      inc i
-      result.add toUpper(s[i])
+      if i > 0 and s[i-1] in {'A'..'Z'}:
+        # don't skip '_' as it's essential for e.g. 'GC_disable'
+        result.add('_')
+        inc i
+        result.add s[i]
+      else:
+        inc i
+        result.add toUpper(s[i])
     elif allUpper:
       result.add toLower(s[i])
     else:
@@ -97,7 +110,7 @@ proc beautifyName(s: string, k: TSymKind): string =
 proc checkStyle*(info: TLineInfo, s: string, k: TSymKind) =
   let beau = beautifyName(s, k)
   if s != beau:
-    Message(info, errGenerated, 
+    message(info, errGenerated, 
       "name does not adhere to naming convention; should be: " & beau)
 
 const
@@ -119,11 +132,88 @@ proc differ(line: string, a, b: int, x: string): bool =
 
 var cannotRename = initIntSet()
 
-proc processSym(c: PPassContext, n: PNode): PNode = 
-  result = n
-  var g = PGen(c)
-  case n.kind
-  of nkSym:
+proc checkDef(c: PGen; n: PNode) =
+  if n.kind != nkSym: return
+  let s = n.sym
+
+  # operators stay as they are:
+  if s.kind in {skResult, skTemp} or s.name.s[0] notin Letters: return
+  if s.kind in {skType, skGenericParam} and sfAnon in s.flags: return
+
+  checkStyle(n.info, s.name.s, s.kind)
+
+proc checkUse(c: PGen; n: PNode) =
+  if n.info.fileIndex < 0: return
+  let s = n.sym
+  # we simply convert it to what it looks like in the definition
+  # for consistency
+  
+  # operators stay as they are:
+  if s.kind in {skResult, skTemp} or s.name.s[0] notin Letters: return
+  if s.kind in {skType, skGenericParam} and sfAnon in s.flags: return
+  let newName = s.name.s
+  
+  loadFile(n.info)
+  
+  let line = gSourceFiles[n.info.fileIndex].lines[n.info.line-1]
+  var first = min(n.info.col.int, line.len)
+  if first < 0: return
+  #inc first, skipIgnoreCase(line, "proc ", first)
+  while first > 0 and line[first-1] in Letters: dec first
+  if first < 0: return
+  if line[first] == '`': inc first
+  
+  let last = first+identLen(line, first)-1
+  if differ(line, first, last, newName):
+    # last-first+1 != newName.len or 
+    var x = line.subStr(0, first-1) & newName & line.substr(last+1)
+    when removeTP:
+      # the WinAPI module is full of 'TX = X' which after the substitution
+      # becomes 'X = X'. We remove those lines:
+      if x.match(peg"\s* {\ident} \s* '=' \s* y$1 ('#' .*)?"):
+        x = ""
+    
+    system.shallowCopy(gSourceFiles[n.info.fileIndex].lines[n.info.line-1], x)
+    gSourceFiles[n.info.fileIndex].dirty = true
+
+
+when false:
+  proc beautifyName(s: string, k: TSymKind): string =
+    let allUpper = allCharsInSet(s, {'A'..'Z', '0'..'9', '_'})
+    result = newStringOfCap(s.len)
+    var i = 0
+    case k
+    of skType, skGenericParam:
+      # skip leading 'T'
+      when removeTP:
+        if s[0] == 'T' and s[1] in {'A'..'Z'}:
+          i = 1
+      if s =~ ["int", "uint", "cint", "cuint", "clong", "cstring", "string",
+               "char", "byte", "bool", "openArray", "seq", "array", "void",
+               "pointer", "float", "csize", "cdouble", "cchar", "cschar",
+               "cshort", "cu"]:
+        result.add s[i]
+      else:
+        result.add toUpper(s[i])
+    of skConst, skEnumField:
+      # for 'const' we keep how it's spelt; either upper case or lower case:
+      result.add s[0]
+    else:
+      # as a special rule, don't transform 'L' to 'l'
+      if s.len == 1 and s[0] == 'L': result.add 'L'
+      else: result.add toLower(s[0])
+    inc i
+    while i < s.len:
+      if s[i] == '_':
+        inc i
+        result.add toUpper(s[i])
+      elif allUpper:
+        result.add toLower(s[i])
+      else:
+        result.add s[i]
+      inc i
+
+  proc checkUse(c: PGen; n: PNode) =
     if n.info.fileIndex < 0: return
     let s = n.sym
     # operators stay as they are:
@@ -138,10 +228,11 @@ proc processSym(c: PPassContext, n: PNode): PNode =
     loadFile(n.info)
     
     let line = gSourceFiles[n.info.fileIndex].lines[n.info.line-1]
-    var first = n.info.col.int
+    var first = min(n.info.col.int, line.len)
     if first < 0: return
     #inc first, skipIgnoreCase(line, "proc ", first)
     while first > 0 and line[first-1] in Letters: dec first
+    if first < 0: return
     if line[first] == '`': inc first
     
     if {sfImportc, sfExportc} * s.flags != {}:
@@ -149,8 +240,8 @@ proc processSym(c: PPassContext, n: PNode): PNode =
       # name:
       if newName != s.name.s and newName != s.loc.r.ropeToStr and
           lfFullExternalName notin s.loc.flags:
-        Message(n.info, errGenerated, 
-          "cannot rename $# to $# due to external name" % [s.name.s, newName])
+        #Message(n.info, errGenerated, 
+        #  "cannot rename $# to $# due to external name" % [s.name.s, newName])
         cannotRename.incl(s.id)
         return
     let last = first+identLen(line, first)-1
@@ -165,9 +256,48 @@ proc processSym(c: PPassContext, n: PNode): PNode =
       
       system.shallowCopy(gSourceFiles[n.info.fileIndex].lines[n.info.line-1], x)
       gSourceFiles[n.info.fileIndex].dirty = true
+
+proc check(c: PGen, n: PNode) =
+  case n.kind
+  of nkSym: checkUse(c, n)
+  of nkBlockStmt, nkBlockExpr, nkBlockType:
+    if n.sons[0].kind != nkEmpty: checkDef(c, n[0])
+    check(c, n.sons[1])
+  of nkForStmt, nkParForStmt:
+    let L = n.len
+    for i in countup(0, L-3):
+      checkDef(c, n[i])
+    check(c, n[L-2])
+    check(c, n[L-1])
+  of nkProcDef, nkLambdaKinds, nkMethodDef, nkIteratorDef, nkTemplateDef,
+      nkMacroDef, nkConverterDef:
+    checkDef(c, n[namePos])
+    for i in namePos+1 .. <n.len: check(c, n.sons[i])
+  of nkVarSection, nkLetSection: 
+    for i in countup(0, sonsLen(n) - 1):
+      let a = n.sons[i]
+      if a.kind == nkCommentStmt: continue
+      if a.kind != nkIdentDefs and a.kind != nkVarTuple: 
+        globalError(a.info, errGenerated, "invalid ast")
+      checkMinSonsLen(a, 3)
+      let L = len(a)
+      for j in countup(0, L-3): checkDef(c, a.sons[j])
+      check(c, a.sons[L-2])
+      check(c, a.sons[L-1])
+  of nkTypeSection, nkConstSection:
+    for i in countup(0, sonsLen(n) - 1): 
+      let a = n.sons[i]
+      if a.kind == nkCommentStmt: continue 
+      checkSonsLen(a, 3)
+      checkDef(c, a.sons[0])
+      check(c, a.sons[1])
+      check(c, a.sons[2])
   else:
-    for i in 0 .. <n.safeLen:
-      discard processSym(c, n.sons[i])
+    for i in 0 .. <n.safeLen: check(c, n.sons[i])
+
+proc processSym(c: PPassContext, n: PNode): PNode = 
+  result = n
+  check(PGen(c), n)
 
 proc myOpen(module: PSym): PPassContext =
   var g: PGen
diff --git a/compiler/procfind.nim b/compiler/procfind.nim
index aefccd140..1075d5129 100644
--- a/compiler/procfind.nim
+++ b/compiler/procfind.nim
@@ -17,20 +17,20 @@ proc equalGenericParams(procA, procB: PNode): bool =
   if sonsLen(procA) != sonsLen(procB): return
   for i in countup(0, sonsLen(procA) - 1):
     if procA.sons[i].kind != nkSym:
-      InternalError(procA.info, "equalGenericParams")
+      internalError(procA.info, "equalGenericParams")
       return
     if procB.sons[i].kind != nkSym:
-      InternalError(procB.info, "equalGenericParams")
+      internalError(procB.info, "equalGenericParams")
       return
     let a = procA.sons[i].sym
     let b = procB.sons[i].sym
     if a.name.id != b.name.id or
         not sameTypeOrNil(a.typ, b.typ, {TypeDescExactMatch}): return
     if a.ast != nil and b.ast != nil:
-      if not ExprStructuralEquivalent(a.ast, b.ast): return
+      if not exprStructuralEquivalent(a.ast, b.ast): return
   result = true
 
-proc SearchForProc*(c: PContext, scope: PScope, fn: PSym): PSym =
+proc searchForProc*(c: PContext, scope: PScope, fn: PSym): PSym =
   # Searchs for a forward declaration or a "twin" symbol of fn
   # in the symbol table. If the parameter lists are exactly
   # the same the sym in the symbol table is returned, else nil.
@@ -77,7 +77,7 @@ when false:
                           dcEqOrDistinctOf): return
       result = true
 
-  proc SearchForBorrowProc*(c: PContext, startScope: PScope, fn: PSym): PSym =
+  proc searchForBorrowProc*(c: PContext, startScope: PScope, fn: PSym): PSym =
     # Searchs for the fn in the symbol table. If the parameter lists are suitable
     # for borrowing the sym in the symbol table is returned, else nil.
     var it: TIdentIter
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index c8fe70e02..27193c229 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -62,7 +62,7 @@ const
   MaxLineLen = 80
   LineCommentColumn = 30
 
-proc InitSrcGen(g: var TSrcGen, renderFlags: TRenderFlags) = 
+proc initSrcGen(g: var TSrcGen, renderFlags: TRenderFlags) = 
   g.comStack = @[]
   g.tokens = @[]
   g.indent = 0
@@ -108,12 +108,12 @@ proc indentNL(g: var TSrcGen) =
   g.pendingNL = g.indent
   g.lineLen = g.indent
 
-proc Dedent(g: var TSrcGen) = 
+proc dedent(g: var TSrcGen) = 
   dec(g.indent, indentWidth)
   assert(g.indent >= 0)
   if g.pendingNL > indentWidth: 
-    Dec(g.pendingNL, indentWidth)
-    Dec(g.lineLen, indentWidth)
+    dec(g.pendingNL, indentWidth)
+    dec(g.lineLen, indentWidth)
 
 proc put(g: var TSrcGen, kind: TTokType, s: string) = 
   addPendingNL(g)
diff --git a/compiler/rodread.nim b/compiler/rodread.nim
index 6e6b83260..9f69f022a 100644
--- a/compiler/rodread.nim
+++ b/compiler/rodread.nim
@@ -184,7 +184,7 @@ proc skipNode(r: PRodReader) =
       if par == 0: break
       dec par
     of '(': inc par
-    else: nil
+    else: discard
     inc pos
   r.pos = pos+1 # skip ')'
 
@@ -248,7 +248,7 @@ proc decodeNodeLazyBody(r: PRodReader, fInfo: TLineInfo,
     if r.s[r.pos] == ')': inc(r.pos)
     else: internalError(result.info, "decodeNode: ')' missing")
   else:
-    InternalError(fInfo, "decodeNode: '(' missing " & $r.pos)
+    internalError(fInfo, "decodeNode: '(' missing " & $r.pos)
 
 proc decodeNode(r: PRodReader, fInfo: TLineInfo): PNode =
   result = decodeNodeLazyBody(r, fInfo, nil)
@@ -286,7 +286,7 @@ proc decodeLoc(r: PRodReader, loc: var TLoc, info: TLineInfo) =
     else: 
       loc.a = 0
     if r.s[r.pos] == '>': inc(r.pos)
-    else: InternalError(info, "decodeLoc " & r.s[r.pos])
+    else: internalError(info, "decodeLoc " & r.s[r.pos])
   
 proc decodeType(r: PRodReader, info: TLineInfo): PType = 
   result = nil
@@ -303,9 +303,9 @@ proc decodeType(r: PRodReader, info: TLineInfo): PType =
     setId(result.id)
     if debugIds: registerID(result)
   else: 
-    InternalError(info, "decodeType: no id")
+    internalError(info, "decodeType: no id")
   # here this also avoids endless recursion for recursive type
-  IdTablePut(gTypeTable, result, result) 
+  idTablePut(gTypeTable, result, result) 
   if r.s[r.pos] == '(': result.n = decodeNode(r, UnknownLineInfo())
   if r.s[r.pos] == '$': 
     inc(r.pos)
@@ -370,7 +370,7 @@ proc decodeSym(r: PRodReader, info: TLineInfo): PSym =
     id = decodeVInt(r.s, r.pos)
     setId(id)
   else:
-    InternalError(info, "decodeSym: no id")
+    internalError(info, "decodeSym: no id")
   if r.s[r.pos] == '&': 
     inc(r.pos)
     ident = getIdent(decodeStr(r.s, r.pos))
@@ -384,7 +384,7 @@ proc decodeSym(r: PRodReader, info: TLineInfo): PSym =
     IdTablePut(r.syms, result, result)
     if debugIds: registerID(result)
   elif result.id != id:
-    InternalError(info, "decodeSym: wrong id")
+    internalError(info, "decodeSym: wrong id")
   elif result.kind != skStub and not r.inViewMode:
     # we already loaded the symbol
     return
@@ -455,7 +455,7 @@ proc skipSection(r: PRodReader) =
         elif c > 0: 
           dec(c)
       of '\0': break          # end of file
-      else: nil
+      else: discard
       inc(r.pos)
   else: 
     InternalError("skipSection " & $r.line)
@@ -799,7 +799,7 @@ proc loadMethods(r: PRodReader) =
     r.methods.add(rrGetSym(r, d, UnknownLineInfo()))
     if r.s[r.pos] == ' ': inc(r.pos)
 
-proc GetCRC*(fileIdx: int32): TCrc32 =
+proc getCRC*(fileIdx: int32): TCrc32 =
   InternalAssert fileIdx >= 0 and fileIdx < gMods.len
 
   if gMods[fileIdx].crcDone:
@@ -818,14 +818,14 @@ proc checkDep(fileIdx: int32): TReasonForRecompile =
     # reason has already been computed for this module:
     return gMods[fileIdx].reason
   let filename = fileIdx.toFilename
-  var crc = GetCRC(fileIdx)
+  var crc = getCRC(fileIdx)
   gMods[fileIdx].reason = rrNone  # we need to set it here to avoid cycles
   result = rrNone
   var r: PRodReader = nil
   var rodfile = toGeneratedFile(filename.withPackageName, RodExt)
   r = newRodReader(rodfile, crc, fileIdx)
   if r == nil: 
-    result = (if ExistsFile(rodfile): rrRodInvalid else: rrRodDoesNotExist)
+    result = (if existsFile(rodfile): rrRodInvalid else: rrRodDoesNotExist)
   else:
     processRodFile(r, crc)
     result = r.reason
@@ -880,12 +880,12 @@ proc rawLoadStub(s: PSym) =
   if rs != s:
     #echo "rs: ", toHex(cast[int](rs.position), int.sizeof * 2),
     #     "\ns:  ", toHex(cast[int](s.position), int.sizeof * 2)
-    InternalError(rs.info, "loadStub: wrong symbol")
+    internalError(rs.info, "loadStub: wrong symbol")
   elif rs.id != theId: 
-    InternalError(rs.info, "loadStub: wrong ID") 
+    internalError(rs.info, "loadStub: wrong ID") 
   #MessageOut('loaded stub: ' + s.name.s);
   
-proc LoadStub*(s: PSym) =
+proc loadStub*(s: PSym) =
   ## loads the stub symbol `s`.
   
   # deactivate the GC here because we do a deep recursion and generate no
@@ -912,8 +912,8 @@ proc getBody*(s: PSym): PNode =
     s.ast.sons[bodyPos] = result
     s.offset = 0
   
-InitIdTable(gTypeTable)
-InitStrTable(rodCompilerProcs)
+initIdTable(gTypeTable)
+initStrTable(rodCompilerProcs)
 
 # viewer:
 proc writeNode(f: TFile; n: PNode) =
@@ -1166,7 +1166,7 @@ proc viewFile(rodfile: string) =
       if r.s[r.pos] == ')': inc r.pos
       outf.write("<not supported by viewer>)\n")
     else:
-      InternalError("invalid section: '" & section &
+      internalError("invalid section: '" & section &
                     "' at " & $r.line & " in " & r.filename)
       skipSection(r)
     if r.s[r.pos] == '\x0A':
diff --git a/compiler/rodutils.nim b/compiler/rodutils.nim
index 0ee3b1ec4..4527f77da 100644
--- a/compiler/rodutils.nim
+++ b/compiler/rodutils.nim
@@ -12,7 +12,7 @@ import strutils
 
 proc c_sprintf(buf, frmt: cstring) {.importc: "sprintf", nodecl, varargs.}
 
-proc ToStrMaxPrecision*(f: BiggestFloat): string = 
+proc toStrMaxPrecision*(f: BiggestFloat): string = 
   if f != f:
     result = "NAN"
   elif f == 0.0:
@@ -36,7 +36,7 @@ proc hexChar(c: char, xi: var int) =
   of '0'..'9': xi = (xi shl 4) or (ord(c) - ord('0'))
   of 'a'..'f': xi = (xi shl 4) or (ord(c) - ord('a') + 10)
   of 'A'..'F': xi = (xi shl 4) or (ord(c) - ord('A') + 10)
-  else: nil
+  else: discard
 
 proc decodeStr*(s: cstring, pos: var int): string =
   var i = pos
diff --git a/compiler/ropes.nim b/compiler/ropes.nim
index 707c29123..4f8553375 100644
--- a/compiler/ropes.nim
+++ b/compiler/ropes.nim
@@ -91,13 +91,13 @@ proc writeRopeIfNotEqual*(r: PRope, filename: string): bool
 proc ropeToStr*(p: PRope): string
 proc ropef*(frmt: TFormatStr, args: varargs[PRope]): PRope
 proc appf*(c: var PRope, frmt: TFormatStr, args: varargs[PRope])
-proc RopeEqualsFile*(r: PRope, f: string): bool
+proc ropeEqualsFile*(r: PRope, f: string): bool
   # returns true if the rope r is the same as the contents of file f
-proc RopeInvariant*(r: PRope): bool
+proc ropeInvariant*(r: PRope): bool
   # exported for debugging
 # implementation
 
-var ErrorHandler*: proc(err: TRopesError, msg: string, useWarning = false)
+var errorHandler*: proc(err: TRopesError, msg: string, useWarning = false)
   # avoid dependency on msgs.nim
   
 proc ropeLen(a: PRope): int = 
@@ -126,7 +126,7 @@ proc resetRopeCache* =
   for i in low(cache)..high(cache):
     cache[i] = nil
 
-proc RopeInvariant(r: PRope): bool = 
+proc ropeInvariant(r: PRope): bool = 
   if r == nil: 
     result = true
   else: 
@@ -159,7 +159,7 @@ proc toRope(s: string): PRope =
     result = insertInCache(s)
   assert(RopeInvariant(result))
 
-proc RopeSeqInsert(rs: var TRopeSeq, r: PRope, at: Natural) = 
+proc ropeSeqInsert(rs: var TRopeSeq, r: PRope, at: Natural) = 
   var length = len(rs)
   if at > length: 
     setlen(rs, at + 1)
@@ -177,8 +177,8 @@ proc newRecRopeToStr(result: var string, resultLen: var int, r: PRope) =
       add(stack, it.right)
       it = it.left
     assert(it.data != nil)
-    CopyMem(addr(result[resultLen]), addr(it.data[0]), it.length)
-    Inc(resultLen, it.length)
+    copyMem(addr(result[resultLen]), addr(it.data[0]), it.length)
+    inc(resultLen, it.length)
     assert(resultLen <= len(result))
 
 proc ropeToStr(p: PRope): string = 
@@ -227,13 +227,13 @@ proc writeRope*(f: TFile, c: PRope) =
     assert(it.data != nil)
     write(f, it.data)
 
-proc WriteRope*(head: PRope, filename: string, useWarning = false) =
+proc writeRope*(head: PRope, filename: string, useWarning = false) =
   var f: tfile
   if open(f, filename, fmWrite):
     if head != nil: WriteRope(f, head)
     close(f)
   else:
-    ErrorHandler(rCannotOpenFile, filename, useWarning)
+    errorHandler(rCannotOpenFile, filename, useWarning)
 
 var
   rnl* = tnl.newRope
@@ -263,7 +263,7 @@ proc ropef(frmt: TFormatStr, args: varargs[PRope]): PRope =
           if (i > length + 0 - 1) or not (frmt[i] in {'0'..'9'}): break 
         num = j
         if j > high(args) + 1:
-          ErrorHandler(rInvalidFormatStr, $(j))
+          errorHandler(rInvalidFormatStr, $(j))
         else:
           app(result, args[j - 1])
       of 'n':
@@ -273,7 +273,7 @@ proc ropef(frmt: TFormatStr, args: varargs[PRope]): PRope =
         app(result, rnl)
         inc(i)
       else:
-        ErrorHandler(rInvalidFormatStr, $(frmt[i]))
+        errorHandler(rInvalidFormatStr, $(frmt[i]))
     var start = i
     while i < length:
       if frmt[i] != '$': inc(i)
@@ -308,8 +308,8 @@ proc auxRopeEqualsFile(r: PRope, bin: var tfile, buf: Pointer): bool =
     result = auxRopeEqualsFile(r.left, bin, buf)
     if result: result = auxRopeEqualsFile(r.right, bin, buf)
   
-proc RopeEqualsFile(r: PRope, f: string): bool = 
-  var bin: tfile
+proc ropeEqualsFile(r: PRope, f: string): bool = 
+  var bin: TFile
   result = open(bin, f)
   if not result: 
     return                    # not equal if file does not exist
diff --git a/compiler/sem.nim b/compiler/sem.nim
index d0fc5bfe1..ee1019aa8 100644
--- a/compiler/sem.nim
+++ b/compiler/sem.nim
@@ -66,7 +66,7 @@ proc fitNode(c: PContext, formal: PType, arg: PNode): PNode =
       result = copyTree(arg)
       result.typ = formal
 
-var CommonTypeBegin = PType(kind: tyExpr)
+var commonTypeBegin = PType(kind: tyExpr)
 
 proc commonType*(x, y: PType): PType =
   # new type relation that is used for array constructors,
diff --git a/compiler/semcall.nim b/compiler/semcall.nim
index 9e9614796..8fe81c4c6 100644
--- a/compiler/semcall.nim
+++ b/compiler/semcall.nim
@@ -19,7 +19,7 @@ proc sameMethodDispatcher(a, b: PSym): bool =
       if aa.sym == bb.sym: 
         result = true
     else:
-      nil
+      discard
       # generics have no dispatcher yet, so we need to compare the method
       # names; however, the names are equal anyway because otherwise we
       # wouldn't even consider them to be overloaded. But even this does
@@ -74,13 +74,13 @@ proc pickBestCandidate(c: PContext, headSymbol: PNode,
           else: nil
     sym = nextOverloadIter(o, c, headSymbol)
 
-proc NotFoundError*(c: PContext, n: PNode, errors: seq[string]) =
+proc notFoundError*(c: PContext, n: PNode, errors: seq[string]) =
   # Gives a detailed error message; this is separated from semOverloadedCall,
   # as semOverlodedCall is already pretty slow (and we need this information
   # only in case of an error).
-  if c.InCompilesContext > 0: 
+  if c.inCompilesContext > 0: 
     # fail fast:
-    GlobalError(n.info, errTypeMismatch, "")
+    globalError(n.info, errTypeMismatch, "")
   var result = msgKindToString(errTypeMismatch)
   add(result, describeArgs(c, n, 1 + ord(nfDelegate in n.flags)))
   add(result, ')')
@@ -93,7 +93,7 @@ proc NotFoundError*(c: PContext, n: PNode, errors: seq[string]) =
   if candidates != "":
     add(result, "\n" & msgKindToString(errButExpected) & "\n" & candidates)
 
-  LocalError(n.Info, errGenerated, result)
+  localError(n.Info, errGenerated, result)
 
 proc gatherUsedSyms(c: PContext, usedSyms: var seq[PNode]) =
   for scope in walkScopes(c.currentScope):
@@ -164,12 +164,12 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
 
   if alt.state == csMatch and cmpCandidates(result, alt) == 0 and
       not sameMethodDispatcher(result.calleeSym, alt.calleeSym):
-    InternalAssert result.state == csMatch
+    internalAssert result.state == csMatch
     #writeMatches(result)
     #writeMatches(alt)
     if c.inCompilesContext > 0: 
       # quick error message for performance of 'compiles' built-in:
-      GlobalError(n.Info, errGenerated, "ambiguous call")
+      globalError(n.Info, errGenerated, "ambiguous call")
     elif gErrorCounter == 0:
       # don't cascade errors
       var args = "("
@@ -178,7 +178,7 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
         add(args, typeToString(n.sons[i].typ))
       add(args, ")")
 
-      LocalError(n.Info, errGenerated, msgKindToString(errAmbiguousCallXYZ) % [
+      localError(n.Info, errGenerated, msgKindToString(errAmbiguousCallXYZ) % [
         getProcHeader(result.calleeSym), getProcHeader(alt.calleeSym),
         args])
 
@@ -197,14 +197,14 @@ proc instGenericConvertersSons*(c: PContext, n: PNode, x: TCandidate) =
     for i in 1 .. <n.len:
       instGenericConvertersArg(c, n.sons[i], x)
 
-proc IndexTypesMatch(c: PContext, f, a: PType, arg: PNode): PNode = 
+proc indexTypesMatch(c: PContext, f, a: PType, arg: PNode): PNode = 
   var m: TCandidate
   initCandidate(m, f)
   result = paramTypesMatch(c, m, f, a, arg, nil)
   if m.genericConverter and result != nil:
     instGenericConvertersArg(c, result, m)
 
-proc ConvertTo*(c: PContext, f: PType, n: PNode): PNode = 
+proc convertTo*(c: PContext, f: PType, n: PNode): PNode = 
   var m: TCandidate
   initCandidate(m, f)
   result = paramTypesMatch(c, m, f, n.typ, n, nil)
@@ -239,7 +239,7 @@ proc semOverloadedCall(c: PContext, n, nOrig: PNode,
   # else: result = errorNode(c, n)
     
 proc explicitGenericInstError(n: PNode): PNode =
-  LocalError(n.info, errCannotInstantiateX, renderTree(n))
+  localError(n.info, errCannotInstantiateX, renderTree(n))
   result = n
 
 proc explicitGenericSym(c: PContext, n: PNode, s: PSym): PNode =
@@ -283,7 +283,7 @@ proc explicitGenericInstantiation(c: PContext, n: PNode, s: PSym): PNode =
   else:
     result = explicitGenericInstError(n)
 
-proc SearchForBorrowProc(c: PContext, startScope: PScope, fn: PSym): PSym =
+proc searchForBorrowProc(c: PContext, startScope: PScope, fn: PSym): PSym =
   # Searchs for the fn in the symbol table. If the parameter lists are suitable
   # for borrowing the sym in the symbol table is returned, else nil.
   # New approach: generate fn(x, y, z) where x, y, z have the proper types
diff --git a/compiler/semdata.nim b/compiler/semdata.nim
index 650a399f7..1ab38c9ce 100644
--- a/compiler/semdata.nim
+++ b/compiler/semdata.nim
@@ -21,7 +21,7 @@ type
     options*: TOptions
     defaultCC*: TCallingConvention
     dynlib*: PLib
-    Notes*: TNoteKinds
+    notes*: TNoteKinds
     otherPragmas*: PNode      # every pragma can be pushed
 
   POptionEntry* = ref TOptionEntry
@@ -32,7 +32,7 @@ type
     resultSym*: PSym          # the result symbol (if we are in a proc)
     nestedLoopCounter*: int   # whether we are in a loop or not
     nestedBlockCounter*: int  # whether we are in a block or not
-    InTryStmt*: int           # whether we are in a try statement; works also
+    inTryStmt*: int           # whether we are in a try statement; works also
                               # in standalone ``except`` and ``finally``
     next*: PProcCon           # used for stacking procedure contexts
   
@@ -55,16 +55,16 @@ type
     friendModule*: PSym        # current friend module; may access private data;
                                # this is used so that generic instantiations
                                # can access private object fields
-    InstCounter*: int          # to prevent endless instantiations
+    instCounter*: int          # to prevent endless instantiations
    
     threadEntries*: TSymSeq    # list of thread entries to check
-    AmbiguousSymbols*: TIntSet # ids of all ambiguous symbols (cannot
+    ambiguousSymbols*: TIntSet # ids of all ambiguous symbols (cannot
                                # store this info in the syms themselves!)
-    InTypeClass*: int          # > 0 if we are in a user-defined type class
-    InGenericContext*: int     # > 0 if we are in a generic type
-    InUnrolledContext*: int    # > 0 if we are unrolling a loop
-    InCompilesContext*: int    # > 0 if we are in a ``compiles`` magic
-    InGenericInst*: int        # > 0 if we are instantiating a generic
+    inTypeClass*: int          # > 0 if we are in a user-defined type class
+    inGenericContext*: int     # > 0 if we are in a generic type
+    inUnrolledContext*: int    # > 0 if we are unrolling a loop
+    inCompilesContext*: int    # > 0 if we are in a ``compiles`` magic
+    inGenericInst*: int        # > 0 if we are instantiating a generic
     converters*: TSymSeq       # sequence of converters
     patterns*: TSymSeq         # sequence of pattern matchers
     optionStack*: TLinkedList
@@ -83,7 +83,7 @@ type
     includedFiles*: TIntSet    # used to detect recursive include files
     userPragmas*: TStrTable
     evalContext*: PEvalContext
-    UnknownIdents*: TIntSet    # ids of all unknown identifiers to prevent
+    unknownIdents*: TIntSet    # ids of all unknown identifiers to prevent
                                # naming it multiple times
     generics*: seq[TInstantiationPair] # pending list of instantiated generics to compile
     lastGenericIdx*: int      # used for the generics stack
@@ -114,8 +114,8 @@ proc scopeDepth*(c: PContext): int {.inline.} =
 
 # owner handling:
 proc getCurrOwner*(): PSym
-proc PushOwner*(owner: PSym)
-proc PopOwner*()
+proc pushOwner*(owner: PSym)
+proc popOwner*()
 # implementation
 
 var gOwners*: seq[PSym] = @[]
@@ -128,13 +128,13 @@ proc getCurrOwner(): PSym =
   # BUGFIX: global array is needed!
   result = gOwners[high(gOwners)]
 
-proc PushOwner(owner: PSym) = 
+proc pushOwner(owner: PSym) = 
   add(gOwners, owner)
 
-proc PopOwner() = 
+proc popOwner() = 
   var length = len(gOwners)
   if length > 0: setlen(gOwners, length - 1)
-  else: InternalError("popOwner")
+  else: internalError("popOwner")
 
 proc lastOptionEntry(c: PContext): POptionEntry = 
   result = POptionEntry(c.optionStack.tail)
@@ -249,7 +249,7 @@ proc markIndirect*(c: PContext, s: PSym) {.inline.} =
     # XXX add to 'c' for global analysis
 
 proc illFormedAst*(n: PNode) =
-  GlobalError(n.info, errIllFormedAstX, renderTree(n, {renderNoComments}))
+  globalError(n.info, errIllFormedAstX, renderTree(n, {renderNoComments}))
 
 proc checkSonsLen*(n: PNode, length: int) = 
   if sonsLen(n) != length: illFormedAst(n)
diff --git a/compiler/semdestruct.nim b/compiler/semdestruct.nim
index 797d8895e..47d783818 100644
--- a/compiler/semdestruct.nim
+++ b/compiler/semdestruct.nim
@@ -15,9 +15,9 @@
 # generation (needed for recursive types)
 # 2) DestructorIsTrivial: completed the analysis before and determined
 # that the type has a trivial destructor
-var AnalyzingDestructor, DestructorIsTrivial: PSym
-new(AnalyzingDestructor)
-new(DestructorIsTrivial)
+var analyzingDestructor, destructorIsTrivial: PSym
+new(analyzingDestructor)
+new(destructorIsTrivial)
 
 var
   destructorName = getIdent"destroy_"
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index c45b83095..5f41a8dd9 100644
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -1176,7 +1176,7 @@ proc semAsgn(c: PContext, n: PNode): PNode =
     asgnToResultVar(c, n, n.sons[0], n.sons[1])
   result = n
 
-proc SemReturn(c: PContext, n: PNode): PNode =
+proc semReturn(c: PContext, n: PNode): PNode =
   result = n
   checkSonsLen(n, 1)
   if c.p.owner.kind in {skConverter, skMethod, skProc, skMacro} or
@@ -1223,7 +1223,7 @@ proc semProcBody(c: PContext, n: PNode): PNode =
     discardCheck(c, result)
   closeScope(c)
 
-proc SemYieldVarResult(c: PContext, n: PNode, restype: PType) =
+proc semYieldVarResult(c: PContext, n: PNode, restype: PType) =
   var t = skipTypes(restype, {tyGenericInst})
   case t.kind
   of tyVar:
@@ -1242,7 +1242,7 @@ proc SemYieldVarResult(c: PContext, n: PNode, restype: PType) =
           localError(n.sons[0].info, errXExpected, "tuple constructor")
   else: nil
   
-proc SemYield(c: PContext, n: PNode): PNode =
+proc semYield(c: PContext, n: PNode): PNode =
   result = n
   checkSonsLen(n, 1)
   if c.p.owner == nil or c.p.owner.kind != skIterator:
@@ -1267,30 +1267,30 @@ proc lookUpForDefined(c: PContext, i: PIdent, onlyCurrentScope: bool): PSym =
   else: 
     result = searchInScopes(c, i) # no need for stub loading
 
-proc LookUpForDefined(c: PContext, n: PNode, onlyCurrentScope: bool): PSym = 
+proc lookUpForDefined(c: PContext, n: PNode, onlyCurrentScope: bool): PSym = 
   case n.kind
   of nkIdent: 
-    result = LookupForDefined(c, n.ident, onlyCurrentScope)
+    result = lookupForDefined(c, n.ident, onlyCurrentScope)
   of nkDotExpr:
     result = nil
     if onlyCurrentScope: return 
     checkSonsLen(n, 2)
-    var m = LookupForDefined(c, n.sons[0], onlyCurrentScope)
+    var m = lookupForDefined(c, n.sons[0], onlyCurrentScope)
     if (m != nil) and (m.kind == skModule): 
       if (n.sons[1].kind == nkIdent): 
         var ident = n.sons[1].ident
         if m == c.module: 
-          result = StrTableGet(c.topLevelScope.symbols, ident)
+          result = strTableGet(c.topLevelScope.symbols, ident)
         else: 
-          result = StrTableGet(m.tab, ident)
+          result = strTableGet(m.tab, ident)
       else: 
-        LocalError(n.sons[1].info, errIdentifierExpected, "")
+        localError(n.sons[1].info, errIdentifierExpected, "")
   of nkAccQuoted:
     result = lookupForDefined(c, considerAcc(n), onlyCurrentScope)
   of nkSym:
     result = n.sym
   else: 
-    LocalError(n.info, errIdentifierExpected, renderTree(n))
+    localError(n.info, errIdentifierExpected, renderTree(n))
     result = nil
 
 proc semDefined(c: PContext, n: PNode, onlyCurrentScope: bool): PNode = 
diff --git a/compiler/semgnrc.nim b/compiler/semgnrc.nim
index d626d2eb2..760fd303f 100644
--- a/compiler/semgnrc.nim
+++ b/compiler/semgnrc.nim
@@ -73,7 +73,7 @@ proc semGenericStmtSymbol(c: PContext, n: PNode, s: PSym): PNode =
       result = n
   else: result = newSymNode(s, n.info)
 
-proc Lookup(c: PContext, n: PNode, flags: TSemGenericFlags, 
+proc lookup(c: PContext, n: PNode, flags: TSemGenericFlags, 
             ctx: var TIntSet): PNode =
   result = n
   let ident = considerAcc(n)
diff --git a/compiler/seminst.nim b/compiler/seminst.nim
index d7d64fd54..5a4b83240 100644
--- a/compiler/seminst.nim
+++ b/compiler/seminst.nim
@@ -50,7 +50,7 @@ proc sameInstantiation(a, b: TInstantiation): bool =
                           flags = {TypeDescExactMatch}): return
     result = true
 
-proc GenericCacheGet(genericSym: Psym, entry: TInstantiation): PSym =
+proc genericCacheGet(genericSym: Psym, entry: TInstantiation): PSym =
   if genericSym.procInstCache != nil:
     for inst in genericSym.procInstCache:
       if sameInstantiation(entry, inst[]):
@@ -257,7 +257,7 @@ proc fixupProcType(c: PContext, genericType: PType,
       result.sons[i] = fixupProcType(c, result.sons[i], inst)
     result = instGenericContainer(c, getInfoContext(-1), result)
   
-  else: nil
+  else: discard
 
 proc generateInstance(c: PContext, fn: PSym, pt: TIdTable,
                       info: TLineInfo): PSym =
@@ -290,7 +290,7 @@ proc generateInstance(c: PContext, fn: PSym, pt: TIdTable,
   instantiateGenericParamList(c, n.sons[genericParamsPos], pt, entry[])
   result.typ = fixupProcType(c, fn.typ, entry[])
   n.sons[genericParamsPos] = ast.emptyNode
-  var oldPrc = GenericCacheGet(fn, entry[])
+  var oldPrc = genericCacheGet(fn, entry[])
   if oldPrc == nil:
     fn.procInstCache.safeAdd(entry)
     c.generics.add(makeInstPair(fn, entry))
@@ -311,5 +311,3 @@ proc generateInstance(c: PContext, fn: PSym, pt: TIdTable,
   c.friendModule = oldFriend
   dec(c.InstCounter)
   if result.kind == skMethod: finishMethod(c, result)
-
-
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index 6f0cc3c8b..832e4e962 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -10,7 +10,7 @@
 ## this module does the semantic checking of statements
 #  included from sem.nim
 
-var EnforceVoidContext = PType(kind: tyStmt)
+var enforceVoidContext = PType(kind: tyStmt)
 
 proc semCommand(c: PContext, n: PNode): PNode =
   result = semExprNoType(c, n)
@@ -117,7 +117,7 @@ const
     nkElse, nkStmtListExpr, nkTryStmt, nkFinally, nkExceptBranch,
     nkElifBranch, nkElifExpr, nkElseExpr, nkBlockStmt, nkBlockExpr}
 
-proc ImplicitlyDiscardable(n: PNode): bool =
+proc implicitlyDiscardable(n: PNode): bool =
   var n = n
   while n.kind in skipForDiscardable: n = n.lastSon
   result = isCallExpr(n) and n.sons[0].kind == nkSym and 
@@ -197,7 +197,7 @@ proc semCase(c: PContext, n: PNode): PNode =
   of tyInt..tyInt64, tyChar, tyEnum, tyUInt..tyUInt32:
     chckCovered = true
   of tyFloat..tyFloat128, tyString, tyError:
-    nil
+    discard
   else:
     LocalError(n.info, errSelectorMustBeOfCertainTypes)
     return
@@ -501,7 +501,7 @@ proc semForObjectFields(c: TFieldsCtx, typ, forLoop, father: PNode) =
     father.add(SemStmt(c.c, body))
     dec c.c.InUnrolledContext
     closeScope(c.c)
-  of nkNilLit: nil
+  of nkNilLit: discard
   of nkRecCase:
     let L = forLoop.len
     let call = forLoop.sons[L-2]
@@ -793,7 +793,7 @@ proc typeSectionFinalPass(c: PContext, n: PNode) =
       st.sons[0].sym = newSym(skType, getIdent(s.name.s & ":ObjectType"),
                               getCurrOwner(), s.info)
 
-proc SemTypeSection(c: PContext, n: PNode): PNode =
+proc semTypeSection(c: PContext, n: PNode): PNode =
   typeSectionLeftSidePass(c, n)
   typeSectionRightSidePass(c, n)
   typeSectionFinalPass(c, n)
diff --git a/compiler/semtempl.nim b/compiler/semtempl.nim
index 0c7c2eff4..4f94cd1f6 100644
--- a/compiler/semtempl.nim
+++ b/compiler/semtempl.nim
@@ -380,7 +380,7 @@ proc semTemplBodyDirty(c: var TemplCtx, n: PNode): PNode =
   of nkBindStmt:
     result = semBindStmt(c.c, n, c.toBind)
   of nkEmpty, nkSym..nkNilLit:
-    nil
+    discard
   else:
     # dotExpr is ambiguous: note that we explicitely allow 'x.TemplateParam',
     # so we use the generic code for nkDotExpr too
@@ -503,7 +503,7 @@ proc semPatternBody(c: var TemplCtx, n: PNode): PNode =
       elif templToExpand(s):
         result = semPatternBody(c, semTemplateExpr(c.c, n, s, false))
       else:
-        nil
+        discard
         # we keep the ident unbound for matching instantiated symbols and
         # more flexibility
   
diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim
index 6c9c476d9..1f995f5e7 100644
--- a/compiler/semtypes.nim
+++ b/compiler/semtypes.nim
@@ -356,7 +356,7 @@ proc semBranchRange(c: PContext, t, a, b: PNode, covered: var biggestInt): PNode
   if emptyRange(ac, bc): LocalError(b.info, errRangeIsEmpty)
   else: covered = covered + getOrdValue(bc) - getOrdValue(ac) + 1
 
-proc SemCaseBranchRange(c: PContext, t, b: PNode, 
+proc semCaseBranchRange(c: PContext, t, b: PNode, 
                         covered: var biggestInt): PNode = 
   checkSonsLen(b, 3)
   result = semBranchRange(c, t, b.sons[1], b.sons[2], covered)
diff --git a/compiler/semtypinst.nim b/compiler/semtypinst.nim
index 61c31a4fe..c872c39f3 100644
--- a/compiler/semtypinst.nim
+++ b/compiler/semtypinst.nim
@@ -68,9 +68,9 @@ type
     symMap*: TIdTable         # map PSym to PSym
     info*: TLineInfo
 
-proc ReplaceTypeVarsT*(cl: var TReplTypeVars, t: PType): PType
-proc ReplaceTypeVarsS(cl: var TReplTypeVars, s: PSym): PSym
-proc ReplaceTypeVarsN(cl: var TReplTypeVars, n: PNode): PNode
+proc replaceTypeVarsT*(cl: var TReplTypeVars, t: PType): PType
+proc replaceTypeVarsS(cl: var TReplTypeVars, s: PSym): PSym
+proc replaceTypeVarsN(cl: var TReplTypeVars, n: PNode): PNode
 
 proc prepareNode(cl: var TReplTypeVars, n: PNode): PNode =
   result = copyNode(n)
@@ -81,13 +81,13 @@ proc prepareNode(cl: var TReplTypeVars, n: PNode): PNode =
     if i == 0: result.add(n[i])
     else: result.add(prepareNode(cl, n[i]))
 
-proc ReplaceTypeVarsN(cl: var TReplTypeVars, n: PNode): PNode =
+proc replaceTypeVarsN(cl: var TReplTypeVars, n: PNode): PNode =
   if n == nil: return
   result = copyNode(n)
   result.typ = ReplaceTypeVarsT(cl, n.typ)
   case n.kind
   of nkNone..pred(nkSym), succ(nkSym)..nkNilLit:
-    nil
+    discard
   of nkSym:
     result.sym = ReplaceTypeVarsS(cl, n.sym)
   of nkRecWhen:
@@ -118,7 +118,7 @@ proc ReplaceTypeVarsN(cl: var TReplTypeVars, n: PNode): PNode =
       for i in countup(0, length - 1):
         result.sons[i] = ReplaceTypeVarsN(cl, n.sons[i])
   
-proc ReplaceTypeVarsS(cl: var TReplTypeVars, s: PSym): PSym = 
+proc replaceTypeVarsS(cl: var TReplTypeVars, s: PSym): PSym = 
   if s == nil: return nil
   result = PSym(idTableGet(cl.symMap, s))
   if result == nil: 
@@ -192,11 +192,11 @@ proc handleGenericInvokation(cl: var TReplTypeVars, t: PType): PType =
   rawAddSon(result, newbody)
   checkPartialConstructedType(cl.info, newbody)
   
-proc ReplaceTypeVarsT*(cl: var TReplTypeVars, t: PType): PType = 
+proc replaceTypeVarsT*(cl: var TReplTypeVars, t: PType): PType = 
   result = t
   if t == nil: return 
   case t.kind
-  of tyTypeClass: nil
+  of tyTypeClass: discard
   of tyGenericParam:
     result = lookupTypeVar(cl, t)
     if result.kind == tyGenericInvokation:
@@ -235,11 +235,10 @@ proc ReplaceTypeVarsT*(cl: var TReplTypeVars, t: PType): PType =
 proc generateTypeInstance*(p: PContext, pt: TIdTable, arg: PNode, 
                            t: PType): PType = 
   var cl: TReplTypeVars
-  InitIdTable(cl.symMap)
+  initIdTable(cl.symMap)
   copyIdTable(cl.typeMap, pt)
   cl.info = arg.info
   cl.c = p
   pushInfoContext(arg.info)
-  result = ReplaceTypeVarsT(cl, t)
+  result = replaceTypeVarsT(cl, t)
   popInfoContext()
-
diff --git a/compiler/service.nim b/compiler/service.nim
index 1de83af7c..1cae72f2a 100644
--- a/compiler/service.nim
+++ b/compiler/service.nim
@@ -29,7 +29,7 @@ var
     # the arguments to be passed to the program that
     # should be run
 
-proc ProcessCmdLine*(pass: TCmdLinePass, cmd: string) =
+proc processCmdLine*(pass: TCmdLinePass, cmd: string) =
   var p = parseopt.initOptParser(cmd)
   var argsCount = 0
   while true: 
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim
index cacf4782e..7ccb1bdc1 100644
--- a/compiler/sigmatch.nim
+++ b/compiler/sigmatch.nim
@@ -887,7 +887,7 @@ proc matchUserTypeClass*(c: PContext, m: var TCandidate,
   result = arg
   put(m.bindings, f, a)
 
-proc ParamTypesMatchAux(c: PContext, m: var TCandidate, f, argType: PType,
+proc paramTypesMatchAux(c: PContext, m: var TCandidate, f, argType: PType,
                         argSemantized, argOrig: PNode): PNode =
   var
     r: TTypeRelation
@@ -1003,7 +1003,7 @@ proc ParamTypesMatchAux(c: PContext, m: var TCandidate, f, argType: PType,
         else:
           result = userConvMatch(c, m, base(f), a, arg)
 
-proc ParamTypesMatch*(c: PContext, m: var TCandidate, f, a: PType, 
+proc paramTypesMatch*(c: PContext, m: var TCandidate, f, a: PType, 
                       arg, argOrig: PNode): PNode =
   if arg == nil or arg.kind notin nkSymChoices:
     result = ParamTypesMatchAux(c, m, f, a, arg, argOrig)
@@ -1184,14 +1184,14 @@ proc matchesAux(c: PContext, n, nOrig: PNode,
           InternalError(n.sons[a].info, "matches")
           return
         formal = m.callee.n.sons[f].sym
-        if ContainsOrIncl(marker, formal.position): 
+        if containsOrIncl(marker, formal.position): 
           # already in namedParams:
-          LocalError(n.sons[a].info, errCannotBindXTwice, formal.name.s)
+          localError(n.sons[a].info, errCannotBindXTwice, formal.name.s)
           m.state = csNoMatch
           return 
         m.baseTypeMatch = false
         n.sons[a] = prepareOperand(c, formal.typ, n.sons[a])
-        var arg = ParamTypesMatch(c, m, formal.typ, n.sons[a].typ,
+        var arg = paramTypesMatch(c, m, formal.typ, n.sons[a].typ,
                                   n.sons[a], nOrig.sons[a])
         if arg == nil:
           m.state = csNoMatch
@@ -1228,7 +1228,7 @@ proc matches*(c: PContext, n, nOrig: PNode, m: var TCandidate) =
   var f = 1
   while f < sonsLen(m.callee.n):
     var formal = m.callee.n.sons[f].sym
-    if not ContainsOrIncl(marker, formal.position):
+    if not containsOrIncl(marker, formal.position):
       if formal.ast == nil:
         if formal.typ.kind == tyVarargs:
           var container = newNodeIT(nkBracket, n.info, arrayConstr(c, n.info))
diff --git a/compiler/suggest.nim b/compiler/suggest.nim
index 76a6c21d9..4f3172814 100644
--- a/compiler/suggest.nim
+++ b/compiler/suggest.nim
@@ -28,7 +28,7 @@ proc origModuleName(m: PSym): string =
            else:
              m.name.s
 
-proc SymToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string = 
+proc symToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string = 
   result = section
   result.add(sep)
   result.add($s.kind)
@@ -55,7 +55,7 @@ proc SymToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string =
   when not defined(noDocgen):
     result.add(s.extractDocComment.escape)
 
-proc SymToStr(s: PSym, isLocal: bool, section: string): string = 
+proc symToStr(s: PSym, isLocal: bool, section: string): string = 
   result = SymToStr(s, isLocal, section, s.info)
 
 proc filterSym(s: PSym): bool {.inline.} =
diff --git a/compiler/syntaxes.nim b/compiler/syntaxes.nim
index 3965cb3fe..6970f0c44 100644
--- a/compiler/syntaxes.nim
+++ b/compiler/syntaxes.nim
@@ -40,7 +40,7 @@ proc parseTopLevelStmt*(p: var TParsers): PNode
 
 # implementation
 
-proc ParseFile(fileIdx: int32): PNode =
+proc parseFile(fileIdx: int32): PNode =
   var 
     p: TParsers
     f: tfile
@@ -74,7 +74,7 @@ proc parseTopLevelStmt(p: var TParsers): PNode =
     result = ast.emptyNode
     #skinEndX: result := pendx.parseTopLevelStmt(p.parser);
   
-proc UTF8_BOM(s: string): int = 
+proc utf8Bom(s: string): int = 
   if (s[0] == '\xEF') and (s[1] == '\xBB') and (s[2] == '\xBF'): 
     result = 3
   else: 
@@ -92,7 +92,7 @@ proc parsePipe(filename: string, inputStream: PLLStream): PNode =
   if s != nil: 
     var line = newStringOfCap(80)
     discard LLStreamReadLine(s, line)
-    var i = UTF8_Bom(line)
+    var i = utf8Bom(line)
     if containsShebang(line, i):
       discard LLStreamReadLine(s, line)
       i = 0
@@ -100,20 +100,20 @@ proc parsePipe(filename: string, inputStream: PLLStream): PNode =
       inc(i, 2)
       while line[i] in WhiteSpace: inc(i)
       var q: TParser
-      OpenParser(q, filename, LLStreamOpen(substr(line, i)))
+      openParser(q, filename, LLStreamOpen(substr(line, i)))
       result = parser.parseAll(q)
-      CloseParser(q)
+      closeParser(q)
     LLStreamClose(s)
 
 proc getFilter(ident: PIdent): TFilterKind = 
   for i in countup(low(TFilterKind), high(TFilterKind)): 
-    if IdentEq(ident, filterNames[i]): 
+    if identEq(ident, filterNames[i]): 
       return i
   result = filtNone
 
 proc getParser(ident: PIdent): TParserKind = 
   for i in countup(low(TParserKind), high(TParserKind)): 
-    if IdentEq(ident, parserNames[i]): 
+    if identEq(ident, parserNames[i]): 
       return i
   rawMessage(errInvalidDirectiveX, ident.s)
 
@@ -142,23 +142,23 @@ proc applyFilter(p: var TParsers, n: PNode, filename: string,
   if f != filtNone: 
     if gVerbosity >= 2: 
       rawMessage(hintCodeBegin, [])
-      MsgWriteln(result.s)
+      msgWriteln(result.s)
       rawMessage(hintCodeEnd, [])
 
 proc evalPipe(p: var TParsers, n: PNode, filename: string, 
               start: PLLStream): PLLStream = 
   result = start
   if n.kind == nkEmpty: return 
-  if (n.kind == nkInfix) and (n.sons[0].kind == nkIdent) and
-      IdentEq(n.sons[0].ident, "|"): 
-    for i in countup(1, 2): 
-      if n.sons[i].kind == nkInfix: 
+  if n.kind == nkInfix and n.sons[0].kind == nkIdent and
+      identEq(n.sons[0].ident, "|"):
+    for i in countup(1, 2):
+      if n.sons[i].kind == nkInfix:
         result = evalPipe(p, n.sons[i], filename, result)
-      else: 
+      else:
         result = applyFilter(p, n.sons[i], filename, result)
-  elif n.kind == nkStmtList: 
+  elif n.kind == nkStmtList:
     result = evalPipe(p, n.sons[0], filename, result)
-  else: 
+  else:
     result = applyFilter(p, n, filename, result)
   
 proc openParsers(p: var TParsers, fileIdx: int32, inputstream: PLLStream) = 
diff --git a/compiler/transf.nim b/compiler/transf.nim
index 77642a3b8..d6f54eddb 100644
--- a/compiler/transf.nim
+++ b/compiler/transf.nim
@@ -719,7 +719,7 @@ proc processTransf(c: PTransf, n: PNode, owner: PSym): PNode =
   # Note: For interactive mode we cannot call 'passes.skipCodegen' and skip
   # this step! We have to rely that the semantic pass transforms too errornous
   # nodes into an empty node.
-  if passes.skipCodegen(n) or c.fromCache or nfTransf in n.flags: return n
+  if c.fromCache or nfTransf in n.flags: return n
   pushTransCon(c, newTransCon(owner))
   result = PNode(transform(c, n))
   popTransCon(c)
diff --git a/compiler/trees.nim b/compiler/trees.nim
index ab5c97a19..ea2f8fbf1 100644
--- a/compiler/trees.nim
+++ b/compiler/trees.nim
@@ -36,7 +36,7 @@ proc cyclicTree*(n: PNode): bool =
   var s = newNodeI(nkEmpty, n.info)
   result = cyclicTreeAux(n, s)
 
-proc ExprStructuralEquivalent*(a, b: PNode): bool = 
+proc exprStructuralEquivalent*(a, b: PNode): bool = 
   result = false
   if a == b: 
     result = true
@@ -53,17 +53,17 @@ proc ExprStructuralEquivalent*(a, b: PNode): bool =
     else: 
       if sonsLen(a) == sonsLen(b): 
         for i in countup(0, sonsLen(a) - 1): 
-          if not ExprStructuralEquivalent(a.sons[i], b.sons[i]): return 
+          if not exprStructuralEquivalent(a.sons[i], b.sons[i]): return 
         result = true
   
-proc sameTree*(a, b: PNode): bool = 
+proc sameTree*(a, b: PNode): bool =
   result = false
-  if a == b: 
+  if a == b:
     result = true
-  elif (a != nil) and (b != nil) and (a.kind == b.kind): 
-    if a.flags != b.flags: return 
-    if a.info.line != b.info.line: return 
-    if a.info.col != b.info.col: 
+  elif a != nil and b != nil and a.kind == b.kind:
+    if a.flags != b.flags: return
+    if a.info.line != b.info.line: return
+    if a.info.col != b.info.col:
       return                  #if a.info.fileIndex <> b.info.fileIndex then exit;
     case a.kind
     of nkSym: 
@@ -74,7 +74,7 @@ proc sameTree*(a, b: PNode): bool =
     of nkFloatLit..nkFloat64Lit: result = a.floatVal == b.floatVal
     of nkStrLit..nkTripleStrLit: result = a.strVal == b.strVal
     of nkEmpty, nkNilLit, nkType: result = true
-    else: 
+    else:
       if sonsLen(a) == sonsLen(b): 
         for i in countup(0, sonsLen(a) - 1): 
           if not sameTree(a.sons[i], b.sons[i]): return 
@@ -84,13 +84,13 @@ proc getProcSym*(call: PNode): PSym =
   result = call.sons[0].sym
 
 proc getOpSym*(op: PNode): PSym = 
-  if not (op.kind in {nkCall, nkHiddenCallConv, nkCommand, nkCallStrLit}): 
+  if op.kind notin {nkCall, nkHiddenCallConv, nkCommand, nkCallStrLit}:
     result = nil
-  else: 
-    if (sonsLen(op) <= 0): InternalError(op.info, "getOpSym")
+  else:
+    if sonsLen(op) <= 0: internalError(op.info, "getOpSym")
     elif op.sons[0].Kind == nkSym: result = op.sons[0].sym
     else: result = nil
-  
+
 proc getMagic*(op: PNode): TMagic = 
   case op.kind
   of nkCallKinds:
@@ -99,7 +99,7 @@ proc getMagic*(op: PNode): TMagic =
     else: result = mNone
   else: result = mNone
   
-proc TreeToSym*(t: PNode): PSym = 
+proc treeToSym*(t: PNode): PSym = 
   result = t.sym
 
 proc isConstExpr*(n: PNode): bool = 
@@ -118,7 +118,7 @@ proc isDeepConstExpr*(n: PNode): bool =
     for i in 0 .. <n.len:
       if not isDeepConstExpr(n.sons[i]): return false
     result = true
-  else: nil
+  else: discard
 
 proc flattenTreeAux(d, a: PNode, op: TMagic) = 
   if (getMagic(a) == op):     # a is a "leaf", so add it:
@@ -129,17 +129,17 @@ proc flattenTreeAux(d, a: PNode, op: TMagic) =
   
 proc flattenTree*(root: PNode, op: TMagic): PNode = 
   result = copyNode(root)
-  if (getMagic(root) == op): 
+  if getMagic(root) == op:
     # BUGFIX: forget to copy prc
     addSon(result, copyNode(root.sons[0]))
     flattenTreeAux(result, root, op)
 
-proc SwapOperands*(op: PNode) = 
+proc swapOperands*(op: PNode) = 
   var tmp = op.sons[1]
   op.sons[1] = op.sons[2]
   op.sons[2] = tmp
 
-proc IsRange*(n: PNode): bool {.inline.} = 
+proc isRange*(n: PNode): bool {.inline.} = 
   if n.kind == nkInfix:
     if n[0].kind == nkIdent and n[0].ident.id == ord(wDotDot) or
         n[0].kind in {nkClosedSymChoice, nkOpenSymChoice} and 
diff --git a/compiler/treetab.nim b/compiler/treetab.nim
index 75e3fd20a..d28dcd236 100644
--- a/compiler/treetab.nim
+++ b/compiler/treetab.nim
@@ -17,7 +17,7 @@ proc hashTree(n: PNode): THash =
   result = ord(n.kind)
   case n.kind
   of nkEmpty, nkNilLit, nkType: 
-    nil
+    discard
   of nkIdent: 
     result = result !& n.ident.h
   of nkSym:
@@ -34,7 +34,7 @@ proc hashTree(n: PNode): THash =
     for i in countup(0, sonsLen(n) - 1): 
       result = result !& hashTree(n.sons[i])
   
-proc TreesEquivalent(a, b: PNode): bool = 
+proc treesEquivalent(a, b: PNode): bool = 
   if a == b: 
     result = true
   elif (a != nil) and (b != nil) and (a.kind == b.kind): 
@@ -48,24 +48,24 @@ proc TreesEquivalent(a, b: PNode): bool =
     else: 
       if sonsLen(a) == sonsLen(b): 
         for i in countup(0, sonsLen(a) - 1): 
-          if not TreesEquivalent(a.sons[i], b.sons[i]): return 
+          if not treesEquivalent(a.sons[i], b.sons[i]): return 
         result = true
     if result: result = sameTypeOrNil(a.typ, b.typ)
   
-proc NodeTableRawGet(t: TNodeTable, k: THash, key: PNode): int = 
+proc nodeTableRawGet(t: TNodeTable, k: THash, key: PNode): int = 
   var h: THash = k and high(t.data)
   while t.data[h].key != nil: 
-    if (t.data[h].h == k) and TreesEquivalent(t.data[h].key, key): 
+    if (t.data[h].h == k) and treesEquivalent(t.data[h].key, key): 
       return h
     h = nextTry(h, high(t.data))
   result = -1
 
-proc NodeTableGet*(t: TNodeTable, key: PNode): int = 
-  var index = NodeTableRawGet(t, hashTree(key), key)
+proc nodeTableGet*(t: TNodeTable, key: PNode): int = 
+  var index = nodeTableRawGet(t, hashTree(key), key)
   if index >= 0: result = t.data[index].val
   else: result = low(int)
   
-proc NodeTableRawInsert(data: var TNodePairSeq, k: THash, key: PNode, 
+proc nodeTableRawInsert(data: var TNodePairSeq, k: THash, key: PNode, 
                         val: int) = 
   var h: THash = k and high(data)
   while data[h].key != nil: h = nextTry(h, high(data))
@@ -74,7 +74,7 @@ proc NodeTableRawInsert(data: var TNodePairSeq, k: THash, key: PNode,
   data[h].key = key
   data[h].val = val
 
-proc NodeTablePut*(t: var TNodeTable, key: PNode, val: int) = 
+proc nodeTablePut*(t: var TNodeTable, key: PNode, val: int) = 
   var n: TNodePairSeq
   var k: THash = hashTree(key)
   var index = NodeTableRawGet(t, k, key)
@@ -86,15 +86,15 @@ proc NodeTablePut*(t: var TNodeTable, key: PNode, val: int) =
       newSeq(n, len(t.data) * growthFactor)
       for i in countup(0, high(t.data)): 
         if t.data[i].key != nil: 
-          NodeTableRawInsert(n, t.data[i].h, t.data[i].key, t.data[i].val)
+          nodeTableRawInsert(n, t.data[i].h, t.data[i].key, t.data[i].val)
       swap(t.data, n)
-    NodeTableRawInsert(t.data, k, key, val)
+    nodeTableRawInsert(t.data, k, key, val)
     inc(t.counter)
 
-proc NodeTableTestOrSet*(t: var TNodeTable, key: PNode, val: int): int = 
+proc nodeTableTestOrSet*(t: var TNodeTable, key: PNode, val: int): int = 
   var n: TNodePairSeq
   var k: THash = hashTree(key)
-  var index = NodeTableRawGet(t, k, key)
+  var index = nodeTableRawGet(t, k, key)
   if index >= 0: 
     assert(t.data[index].key != nil)
     result = t.data[index].val
@@ -103,8 +103,8 @@ proc NodeTableTestOrSet*(t: var TNodeTable, key: PNode, val: int): int =
       newSeq(n, len(t.data) * growthFactor)
       for i in countup(0, high(t.data)): 
         if t.data[i].key != nil: 
-          NodeTableRawInsert(n, t.data[i].h, t.data[i].key, t.data[i].val)
+          nodeTableRawInsert(n, t.data[i].h, t.data[i].key, t.data[i].val)
       swap(t.data, n)
-    NodeTableRawInsert(t.data, k, key, val)
+    nodeTableRawInsert(t.data, k, key, val)
     result = val
     inc(t.counter)
diff --git a/compiler/types.nim b/compiler/types.nim
index 7e07a0667..be948246c 100644
--- a/compiler/types.nim
+++ b/compiler/types.nim
@@ -19,7 +19,7 @@ type
   TPreferedDesc* = enum 
     preferName, preferDesc, preferExported
 
-proc TypeToString*(typ: PType, prefer: TPreferedDesc = preferName): string
+proc typeToString*(typ: PType, prefer: TPreferedDesc = preferName): string
 proc getProcHeader*(sym: PSym): string
 proc base*(t: PType): PType
   # ------------------- type iterator: ----------------------------------------
@@ -28,7 +28,7 @@ type
   TTypeMutator* = proc (t: PType, closure: PObject): PType {.nimcall.} # copy t and mutate it
   TTypePredicate* = proc (t: PType): bool {.nimcall.}
 
-proc IterOverType*(t: PType, iter: TTypeIter, closure: PObject): bool
+proc iterOverType*(t: PType, iter: TTypeIter, closure: PObject): bool
   # Returns result of `iter`.
 proc mutateType*(t: PType, iter: TTypeMutator, closure: PObject): PType
   # Returns result of `iter`.
@@ -74,7 +74,7 @@ proc getOrdValue*(n: PNode): biggestInt
 proc computeSize*(typ: PType): biggestInt
 proc getSize*(typ: PType): biggestInt
 proc isPureObject*(typ: PType): bool
-proc InvalidGenericInst*(f: PType): bool
+proc invalidGenericInst*(f: PType): bool
   # for debugging
 type 
   TTypeFieldResult* = enum 
@@ -89,8 +89,8 @@ proc analyseObjectWithTypeField*(t: PType): TTypeFieldResult
 proc typeAllowed*(t: PType, kind: TSymKind): bool
 # implementation
 
-proc InvalidGenericInst(f: PType): bool = 
-  result = (f.kind == tyGenericInst) and (lastSon(f) == nil)
+proc invalidGenericInst(f: PType): bool = 
+  result = f.kind == tyGenericInst and lastSon(f) == nil
 
 proc isPureObject(typ: PType): bool = 
   var t = typ
@@ -132,7 +132,7 @@ proc getProcHeader(sym: PSym): string =
       add(result, typeToString(p.sym.typ))
       if i != sonsLen(n)-1: add(result, ", ")
     else:
-      InternalError("getProcHeader")
+      internalError("getProcHeader")
   add(result, ')')
   if n.sons[0].typ != nil: result.add(": " & typeToString(n.sons[0].typ))
   
@@ -194,7 +194,7 @@ proc iterOverTypeAux(marker: var TIntSet, t: PType, iter: TTypeIter,
         if result: return 
       if t.n != nil: result = iterOverNode(marker, t.n, iter, closure)
   
-proc IterOverType(t: PType, iter: TTypeIter, closure: PObject): bool = 
+proc iterOverType(t: PType, iter: TTypeIter, closure: PObject): bool = 
   var marker = InitIntSet()
   result = iterOverTypeAux(marker, t, iter, closure)
 
@@ -242,7 +242,7 @@ proc searchTypeForAux(t: PType, predicate: TTypePredicate,
       result = searchTypeForAux(t.sons[i], predicate, marker)
       if result: return 
   else: 
-    nil
+    discard
 
 proc searchTypeFor(t: PType, predicate: TTypePredicate): bool = 
   var marker = InitIntSet()
@@ -284,7 +284,7 @@ proc analyseObjectWithTypeFieldAux(t: PType,
       if res != frNone: 
         return frEmbedded
   else: 
-    nil
+    discard
 
 proc analyseObjectWithTypeField(t: PType): TTypeFieldResult = 
   var marker = InitIntSet()
@@ -322,7 +322,7 @@ proc canFormAcycleNode(marker: var TIntSet, n: PNode, startId: int): bool =
     if not result: 
       case n.kind
       of nkNone..nkNilLit: 
-        nil
+        discard
       else: 
         for i in countup(0, sonsLen(n) - 1): 
           result = canFormAcycleNode(marker, n.sons[i], startId)
@@ -367,6 +367,7 @@ proc mutateNode(marker: var TIntSet, n: PNode, iter: TTypeMutator,
     case n.kind
     of nkNone..nkNilLit: 
       # a leaf
+      discard
     else: 
       for i in countup(0, sonsLen(n) - 1): 
         addSon(result, mutateNode(marker, n.sons[i], iter, closure))
@@ -422,7 +423,7 @@ proc constraintsToStr(t: PType): string =
     if i > 0: result.add(sep)
     result.add(t.sons[i].consToStr)
 
-proc TypeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
+proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
   var t = typ
   result = ""
   if t == nil: return 
@@ -553,7 +554,7 @@ proc firstOrd(t: PType): biggestInt =
   of tyGenericInst, tyDistinct, tyConst, tyMutable, tyTypeDesc:
     result = firstOrd(lastSon(t))
   else: 
-    InternalError("invalid kind for first(" & $t.kind & ')')
+    internalError("invalid kind for first(" & $t.kind & ')')
     result = 0
 
 proc lastOrd(t: PType): biggestInt = 
@@ -587,7 +588,7 @@ proc lastOrd(t: PType): biggestInt =
     result = lastOrd(lastSon(t))
   of tyProxy: result = 0
   else: 
-    InternalError("invalid kind for last(" & $t.kind & ')')
+    internalError("invalid kind for last(" & $t.kind & ')')
     result = 0
 
 proc lengthOrd(t: PType): biggestInt = 
@@ -621,7 +622,7 @@ type
 
 proc initSameTypeClosure: TSameTypeClosure =
   # we do the initialization lazily for performance (avoids memory allocations)
-  nil
+  discard
   
 proc containsOrIncl(c: var TSameTypeClosure, a, b: PType): bool =
   result = not IsNil(c.s) and c.s.contains((a.id, b.id))
@@ -629,15 +630,15 @@ proc containsOrIncl(c: var TSameTypeClosure, a, b: PType): bool =
     if IsNil(c.s): c.s = @[]
     c.s.add((a.id, b.id))
 
-proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool
-proc SameTypeOrNilAux(a, b: PType, c: var TSameTypeClosure): bool =
+proc sameTypeAux(x, y: PType, c: var TSameTypeClosure): bool
+proc sameTypeOrNilAux(a, b: PType, c: var TSameTypeClosure): bool =
   if a == b:
     result = true
   else:
     if a == nil or b == nil: result = false
     else: result = SameTypeAux(a, b, c)
 
-proc SameTypeOrNil*(a, b: PType, flags: TTypeCmpFlags = {}): bool =
+proc sameTypeOrNil*(a, b: PType, flags: TTypeCmpFlags = {}): bool =
   if a == b:
     result = true
   else: 
@@ -676,7 +677,7 @@ proc equalParams(a, b: PNode): TParamsEquality =
       of paramsNotEqual: 
         return paramsNotEqual
       of paramsEqual: 
-        nil
+        discard
       of paramsIncompatible: 
         result = paramsIncompatible
       if (m.name.id != n.name.id): 
@@ -730,7 +731,7 @@ proc sameTuple(a, b: PType, c: var TSameTypeClosure): bool =
   else:
     result = false
 
-template IfFastObjectTypeCheckFailed(a, b: PType, body: stmt) {.immediate.} =
+template ifFastObjectTypeCheckFailed(a, b: PType, body: stmt) {.immediate.} =
   if tfFromGeneric notin a.flags + b.flags:
     # fast case: id comparison suffices:
     result = a.id == b.id
@@ -751,7 +752,7 @@ template IfFastObjectTypeCheckFailed(a, b: PType, body: stmt) {.immediate.} =
 
 proc sameObjectTypes*(a, b: PType): bool =
   # specialized for efficiency (sigmatch uses it)
-  IfFastObjectTypeCheckFailed(a, b):     
+  ifFastObjectTypeCheckFailed(a, b):     
     var c = initSameTypeClosure()
     result = sameTypeAux(a, b, c)    
 
@@ -761,7 +762,7 @@ proc sameDistinctTypes*(a, b: PType): bool {.inline.} =
 proc sameEnumTypes*(a, b: PType): bool {.inline.} =
   result = a.id == b.id
 
-proc SameObjectTree(a, b: PNode, c: var TSameTypeClosure): bool =
+proc sameObjectTree(a, b: PNode, c: var TSameTypeClosure): bool =
   if a == b:
     result = true
   elif (a != nil) and (b != nil) and (a.kind == b.kind):
@@ -778,26 +779,26 @@ proc SameObjectTree(a, b: PNode, c: var TSameTypeClosure): bool =
       else:
         if sonsLen(a) == sonsLen(b): 
           for i in countup(0, sonsLen(a) - 1): 
-            if not SameObjectTree(a.sons[i], b.sons[i], c): return 
+            if not sameObjectTree(a.sons[i], b.sons[i], c): return 
           result = true
 
 proc sameObjectStructures(a, b: PType, c: var TSameTypeClosure): bool =
   # check base types:
   if sonsLen(a) != sonsLen(b): return
   for i in countup(0, sonsLen(a) - 1):
-    if not SameTypeOrNilAux(a.sons[i], b.sons[i], c): return
-  if not SameObjectTree(a.n, b.n, c): return
+    if not sameTypeOrNilAux(a.sons[i], b.sons[i], c): return
+  if not sameObjectTree(a.n, b.n, c): return
   result = true
 
 proc sameChildrenAux(a, b: PType, c: var TSameTypeClosure): bool =
   if sonsLen(a) != sonsLen(b): return false
   result = true
   for i in countup(0, sonsLen(a) - 1):
-    result = SameTypeOrNilAux(a.sons[i], b.sons[i], c)
+    result = sameTypeOrNilAux(a.sons[i], b.sons[i], c)
     if not result: return 
 
-proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
-  template CycleCheck() =
+proc sameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
+  template cycleCheck() =
     # believe it or not, the direct check for ``containsOrIncl(c, a, b)``
     # increases bootstrapping time from 2.4s to 3.3s on my laptop! So we cheat
     # again: Since the recursion check is only to not get caught in an endless
@@ -831,16 +832,16 @@ proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
      tyInt..tyBigNum, tyStmt:
     result = sameFlags(a, b)
   of tyExpr:
-    result = ExprStructuralEquivalent(a.n, b.n) and sameFlags(a, b)
+    result = exprStructuralEquivalent(a.n, b.n) and sameFlags(a, b)
   of tyObject:
-    IfFastObjectTypeCheckFailed(a, b):
+    ifFastObjectTypeCheckFailed(a, b):
       CycleCheck()
       result = sameObjectStructures(a, b, c) and sameFlags(a, b)
   of tyDistinct:
-    CycleCheck()
+    cycleCheck()
     if c.cmp == dcEq:      
       if sameFlags(a, b):
-        IfFastObjectTypeCheckFailed(a, b):
+        ifFastObjectTypeCheckFailed(a, b):
           result = sameTypeAux(a.sons[0], b.sons[0], c)     
     else: 
       result = sameTypeAux(a.sons[0], b.sons[0], c) and sameFlags(a, b)
@@ -848,14 +849,14 @@ proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
     # XXX generic enums do not make much sense, but require structural checking
     result = a.id == b.id and sameFlags(a, b)
   of tyTuple:
-    CycleCheck()
+    cycleCheck()
     result = sameTuple(a, b, c) and sameFlags(a, b)
   of tyGenericInst:    
     result = sameTypeAux(lastSon(a), lastSon(b), c)
   of tyTypeDesc:
     if c.cmp == dcEqIgnoreDistinct: result = false
     elif TypeDescExactMatch in c.flags:
-      CycleCheck()
+      cycleCheck()
       result = sameChildrenAux(x, y, c) and sameFlags(a, b)
     else:
       result = sameFlags(a, b)
@@ -863,15 +864,15 @@ proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
      tyOpenArray, tySet, tyRef, tyPtr, tyVar, tyArrayConstr,
      tyArray, tyProc, tyConst, tyMutable, tyVarargs, tyIter,
      tyOrdinal, tyTypeClasses:
-    CycleCheck()    
+    cycleCheck()    
     result = sameChildrenAux(a, b, c) and sameFlags(a, b)
-    if result and (a.kind == tyProc):
+    if result and a.kind == tyProc:
       result = a.callConv == b.callConv
   of tyRange:
-    CycleCheck()
-    result = SameTypeOrNilAux(a.sons[0], b.sons[0], c) and
-        SameValue(a.n.sons[0], b.n.sons[0]) and
-        SameValue(a.n.sons[1], b.n.sons[1])
+    cycleCheck()
+    result = sameTypeOrNilAux(a.sons[0], b.sons[0], c) and
+        sameValue(a.n.sons[0], b.n.sons[0]) and
+        sameValue(a.n.sons[1], b.n.sons[1])
   of tyNone: result = false  
 
 proc sameType*(x, y: PType): bool =
@@ -954,7 +955,7 @@ proc typeAllowedNode(marker: var TIntSet, n: PNode, kind: TSymKind,
     if result: 
       case n.kind
       of nkNone..nkNilLit: 
-        nil
+        discard
       else: 
         for i in countup(0, sonsLen(n) - 1): 
           result = typeAllowedNode(marker, n.sons[i], kind, flags)
diff --git a/compiler/vm.nim b/compiler/vm.nim
index 709baf7b2..a89ad74bd 100644
--- a/compiler/vm.nim
+++ b/compiler/vm.nim
@@ -109,7 +109,7 @@ template decodeBx(k: expr) {.immediate, dirty.} =
   let rbx = instr.regBx - wordExcess
   ensureKind(k)
 
-template move(a, b: expr) = system.shallowCopy(a, b)
+template move(a, b: expr) {.immediate, dirty.} = system.shallowCopy(a, b)
 # XXX fix minor 'shallowCopy' overloading bug in compiler
 
 proc moveConst(x, y: PNode) =
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim
index ab120f008..d9cbb1514 100644
--- a/compiler/vmgen.nim
+++ b/compiler/vmgen.nim
@@ -1295,7 +1295,7 @@ proc gen(c: PCtx; n: PNode; dest: var TDest) =
     else:
       dest = tmp0
   of nkEmpty, nkCommentStmt, nkTypeSection, nkConstSection, nkPragma,
-     nkTemplateDef, nkIncludeStmt, nkImportStmt:
+     nkTemplateDef, nkIncludeStmt, nkImportStmt, nkFromStmt:
     unused(n, dest)
   of nkStringToCString, nkCStringToString:
     gen(c, n.sons[0], dest)