diff options
-rwxr-xr-x | compiler/ccgexprs.nim | 5 | ||||
-rwxr-xr-x | compiler/ccgtypes.nim | 3 | ||||
-rwxr-xr-x | lib/system/excpt.nim | 2 | ||||
-rwxr-xr-x | web/index.txt | 3 |
4 files changed, 7 insertions, 6 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index 33c654982..2b84226d3 100755 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -499,7 +499,10 @@ proc unaryArith(p: BProc, e: PNode, d: var TLoc, op: TMagic) = proc genDeref(p: BProc, e: PNode, d: var TLoc) = var a: TLoc - if mapType(e.sons[0].typ) == ctArray: + if mapType(e.sons[0].typ) == ctArray and + skipTypes(e.sons[0].typ.sons[0], abstractInst).kind != tySet: + # XXX the amount of hacks for C's arrays is incredible, maybe we should + # simply wrap them in a struct? --> Losing auto vectorization then? expr(p, e.sons[0], d) else: initLocExpr(p, e.sons[0], a) diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index c44516304..47828514e 100755 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -182,8 +182,7 @@ proc getParamTypeDesc(m: BModule, t: PType, check: var TIntSet): PRope = if t.Kind in {tyRef, tyPtr, tyVar}: var b = skipTypes(t.sons[0], abstractInst) if b.kind == tySet and mapSetType(b) == ctArray: - return toRope("NU8*") - # getTypeDescAux(m, b, check) + return getTypeDescAux(m, b, check) result = getTypeDescAux(m, t, check) proc genProcParams(m: BModule, t: PType, rettype, params: var PRope, diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim index 6ef4ca376..c309ef17e 100755 --- a/lib/system/excpt.nim +++ b/lib/system/excpt.nim @@ -196,7 +196,6 @@ proc raiseException(e: ref E_Base, ename: CString) {.compilerRtl.} = e.name = ename if raiseHook != nil: if not raiseHook(e): return - GC_disable() # a bad thing is an error in the GC while raising an exception if excHandler != nil: pushCurrentException(e) c_longjmp(excHandler.context, 1) @@ -233,7 +232,6 @@ proc raiseException(e: ref E_Base, ename: CString) {.compilerRtl.} = add(buf, "]\n") writeToStdErr(buf) quitOrDebug() - GC_enable() proc reraiseException() {.compilerRtl.} = if currException == nil: diff --git a/web/index.txt b/web/index.txt index 1add676fd..8f1209f52 100755 --- a/web/index.txt +++ b/web/index.txt @@ -108,7 +108,8 @@ Version 0.8.x Version 0.9.0 * closures and anonymous procs * recursive iterators/coroutines - + * 2-phase type system for better interaction between macros, templates + and overloading Planned features beyond 1.0 =========================== |