summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2011-03-10 22:12:39 +0100
committerAraq <rumpf_a@web.de>2011-03-10 22:12:39 +0100
commit0fee9f9924cbbb6b18191d9c731542feac1ac682 (patch)
tree854ddff3dbfe11a5c1e5b30596209b546cac300f
parent6fdb0f034ecd0bffddcc56ccf6fc1e97d073b806 (diff)
downloadNim-0fee9f9924cbbb6b18191d9c731542feac1ac682.tar.gz
always compile with at least O1; bugfix set initialization for interactive mode
-rwxr-xr-xconfig/nimrod.cfg12
-rwxr-xr-xrod/cgen.nim9
-rwxr-xr-xrod/evals.nim2
3 files changed, 18 insertions, 5 deletions
diff --git a/config/nimrod.cfg b/config/nimrod.cfg
index 6ae5049d0..f45be780a 100755
--- a/config/nimrod.cfg
+++ b/config/nimrod.cfg
@@ -74,9 +74,17 @@ icc.options.linker = "-cxxlib"
 @end
 gcc.options.debug = "-g"
 @if macosx:
-  gcc.options.always = "-w -fasm-blocks"
+  @if not release:
+    gcc.options.always = "-w -fasm-blocks -O1"
+  @else:
+    gcc.options.always = "-w -fasm-blocks"
+  @end
 @else:
-  gcc.options.always = "-w"
+  @if not release:
+    gcc.options.always = "-w -O1"
+  @else:
+    gcc.options.always = "-w"
+  @end
 @end
 gcc.options.speed = "-O3 -fno-strict-aliasing"
 gcc.options.size = "-Os"
diff --git a/rod/cgen.nim b/rod/cgen.nim
index 13b96c19b..f13f5991a 100755
--- a/rod/cgen.nim
+++ b/rod/cgen.nim
@@ -11,7 +11,8 @@
 # than the old one. It also generates better code.
 
 import 
-  ast, astalgo, strutils, nhashes, trees, platform, magicsys, extccomp, options, 
+  ast, astalgo, strutils, nhashes, trees, platform, magicsys, extccomp,
+  options, 
   nversion, nimsets, msgs, crc, bitsets, idents, lists, types, ccgutils, os, 
   times, ropes, math, passes, rodread, wordrecg, rnimsyn, treetab, cgmeth,
   rodutils
@@ -42,7 +43,8 @@ type
     cfsTypeInit3,             # section 3 for init of type information
     cfsDebugInit,             # section for init of debug information
     cfsDynLibInit,            # section for init of dynamic library binding
-    cfsDynLibDeinit           # section for deinitialization of dynamic libraries
+    cfsDynLibDeinit           # section for deinitialization of dynamic
+                              # libraries
   TCTypeKind = enum           # describes the type kind of a C type
     ctVoid, ctChar, ctBool, ctUInt, ctUInt8, ctUInt16, ctUInt32, ctUInt64, 
     ctInt, ctInt8, ctInt16, ctInt32, ctInt64, ctFloat, ctFloat32, ctFloat64, 
@@ -225,7 +227,8 @@ proc ropecg(m: BModule, frmt: TFormatStr, args: openarray[PRope]): PRope =
     if i - 1 >= start: 
       app(result, copy(frmt, start, i - 1))
 
-proc appcg(m: BModule, c: var PRope, frmt: TFormatStr, args: openarray[PRope]) = 
+proc appcg(m: BModule, c: var PRope, frmt: TFormatStr, 
+           args: openarray[PRope]) = 
   app(c, ropecg(m, frmt, args))
 
 
diff --git a/rod/evals.nim b/rod/evals.nim
index d5e8cf3d0..37e080d44 100755
--- a/rod/evals.nim
+++ b/rod/evals.nim
@@ -244,6 +244,8 @@ proc getNullValue(typ: PType, info: TLineInfo): PNode =
       addSon(p, newSymNode(field, info))
       addSon(p, getNullValue(t.sons[i], info))
       addSon(result, p)
+  of tySet:
+    result = newNodeIT(nkCurly, info, t)    
   else: InternalError("getNullValue")
   
 proc evalVar(c: PEvalContext, n: PNode): PNode =