diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2022-11-05 17:58:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-05 10:58:57 +0100 |
commit | d5cc2085eae85ad922dfafc1dca81860d94d1731 (patch) | |
tree | 6afd62439774d55171cf4c5cf2faf18c602d9fb1 /lib/system | |
parent | 51bef9b4a8b0dab065470d9c224c20ac21e72275 (diff) | |
download | Nim-d5cc2085eae85ad922dfafc1dca81860d94d1731.tar.gz |
ref #20694; quit value gets saturated to ranges (#20753)
* quit value gets saturated to ranges * add documentation * minimal changes * refactor * small fix * add documentation * fixes * Update lib/system.nim Co-authored-by: Juan Carlos <juancarlospaco@gmail.com> Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
Diffstat (limited to 'lib/system')
-rw-r--r-- | lib/system/arc.nim | 2 | ||||
-rw-r--r-- | lib/system/dyncalls.nim | 10 | ||||
-rw-r--r-- | lib/system/excpt.nim | 16 | ||||
-rw-r--r-- | lib/system/fatal.nim | 2 | ||||
-rw-r--r-- | lib/system/gc.nim | 4 | ||||
-rw-r--r-- | lib/system/gc2.nim | 2 | ||||
-rw-r--r-- | lib/system/gc_common.nim | 4 | ||||
-rw-r--r-- | lib/system/gc_hooks.nim | 4 | ||||
-rw-r--r-- | lib/system/gc_ms.nim | 2 | ||||
-rw-r--r-- | lib/system/memtracker.nim | 2 | ||||
-rw-r--r-- | lib/system/mmdisp.nim | 2 | ||||
-rw-r--r-- | lib/system/orc.nim | 4 | ||||
-rw-r--r-- | lib/system/osalloc.nim | 2 | ||||
-rw-r--r-- | lib/system/threadlocalstorage.nim | 2 |
14 files changed, 29 insertions, 29 deletions
diff --git a/lib/system/arc.nim b/lib/system/arc.nim index ccf9d44e2..50dec241f 100644 --- a/lib/system/arc.nim +++ b/lib/system/arc.nim @@ -154,7 +154,7 @@ proc nimRawDispose(p: pointer, alignment: int) {.compilerRtl.} = when defined(nimOwnedEnabled): if head(p).rc >= rcIncrement: cstderr.rawWrite "[FATAL] dangling references exist\n" - quit 1 + rawQuit 1 when defined(nimArcDebug): # we do NOT really free the memory here in order to reliably detect use-after-frees if freedCells.data == nil: init(freedCells) diff --git a/lib/system/dyncalls.nim b/lib/system/dyncalls.nim index 36c2c5fe1..d5ebe3c19 100644 --- a/lib/system/dyncalls.nim +++ b/lib/system/dyncalls.nim @@ -47,14 +47,14 @@ proc nimLoadLibraryError(path: string) = copyMem(msg[msgIdx].addr, badExe.cstring, badExe.len) discard MessageBoxA(nil, msg[0].addr, nil, 0) cstderr.rawWrite("\n") - quit(1) + rawQuit(1) proc procAddrError(name: cstring) {.compilerproc, nonReloadable, hcrInline.} = # carefully written to avoid memory allocation: cstderr.rawWrite("could not import: ") cstderr.rawWrite(name) cstderr.rawWrite("\n") - quit(1) + rawQuit(1) # this code was inspired from Lua's source code: # Lua - An Extensible Extension Language @@ -180,19 +180,19 @@ elif defined(nintendoswitch) or defined(freertos) or defined(zephyr): proc nimUnloadLibrary(lib: LibHandle) = cstderr.rawWrite("nimUnLoadLibrary not implemented") cstderr.rawWrite("\n") - quit(1) + rawQuit(1) proc nimLoadLibrary(path: string): LibHandle = cstderr.rawWrite("nimLoadLibrary not implemented") cstderr.rawWrite("\n") - quit(1) + rawQuit(1) proc nimGetProcAddr(lib: LibHandle, name: cstring): ProcAddr = cstderr.rawWrite("nimGetProAddr not implemented") cstderr.rawWrite(name) cstderr.rawWrite("\n") - quit(1) + rawQuit(1) else: {.error: "no implementation for dyncalls".} diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim index a71328c14..c76be554f 100644 --- a/lib/system/excpt.nim +++ b/lib/system/excpt.nim @@ -415,7 +415,7 @@ proc nimLeaveFinally() {.compilerRtl.} = c_longjmp(excHandler.context, 1) else: reportUnhandledError(currException) - quit(1) + rawQuit(1) when gotoBasedExceptions: var nimInErrorMode {.threadvar.}: bool @@ -430,13 +430,13 @@ when gotoBasedExceptions: if nimInErrorMode and currException != nil: reportUnhandledError(currException) currException = nil - quit(1) + rawQuit(1) proc raiseExceptionAux(e: sink(ref Exception)) {.nodestroy.} = when defined(nimPanics): if e of Defect: reportUnhandledError(e) - quit(1) + rawQuit(1) if localRaiseHook != nil: if not localRaiseHook(e): return @@ -458,7 +458,7 @@ proc raiseExceptionAux(e: sink(ref Exception)) {.nodestroy.} = c_longjmp(excHandler.context, 1) else: reportUnhandledError(e) - quit(1) + rawQuit(1) proc raiseExceptionEx(e: sink(ref Exception), ename, procname, filename: cstring, line: int) {.compilerRtl, nodestroy.} = @@ -501,7 +501,7 @@ proc threadTrouble() = if currException != nil: reportUnhandledError(currException) except: discard - quit 1 + rawQuit 1 proc writeStackTrace() = when hasSomeStackTrace: @@ -544,7 +544,7 @@ proc callDepthLimitReached() {.noinline.} = "-d:nimCallDepthLimit=<int> but really try to avoid deep " & "recursions instead.\n" showErrorMessage2(msg) - quit(1) + rawQuit(1) proc nimFrame(s: PFrame) {.compilerRtl, inl, raises: [].} = if framePtr == nil: @@ -597,7 +597,7 @@ when defined(cpp) and appType != "lib" and not gotoBasedExceptions and else: writeToStdErr msg & "\n" - quit 1 + rawQuit 1 when not defined(noSignalHandler) and not defined(useNimRtl): type Sighandler = proc (a: cint) {.noconv, benign.} @@ -651,7 +651,7 @@ when not defined(noSignalHandler) and not defined(useNimRtl): # also return the correct exit code to the shell. discard c_raise(sign) else: - quit(1) + rawQuit(1) var SIG_IGN {.importc: "SIG_IGN", header: "<signal.h>".}: Sighandler diff --git a/lib/system/fatal.nim b/lib/system/fatal.nim index c01787a32..a55af2dc3 100644 --- a/lib/system/fatal.nim +++ b/lib/system/fatal.nim @@ -44,7 +44,7 @@ elif (defined(nimQuirky) or defined(nimPanics)) and not defined(nimscript): add(buf, name exceptn) add(buf, "]\n") cstderr.rawWrite buf - quit 1 + rawQuit 1 func sysFatal(exceptn: typedesc, message: string) {.inline, noreturn.} = sysFatal(exceptn, message, "") diff --git a/lib/system/gc.nim b/lib/system/gc.nim index 4ab76c05e..b36822aad 100644 --- a/lib/system/gc.nim +++ b/lib/system/gc.nim @@ -161,7 +161,7 @@ template gcAssert(cond: bool, msg: string) = writeStackTrace() #var x: ptr int #echo x[] - quit 1 + rawQuit 1 proc addZCT(s: var CellSeq, c: PCell) {.noinline.} = if (c.refcount and ZctFlag) == 0: @@ -626,7 +626,7 @@ when logGC: if cycleCheckA[i] == c: return true if cycleCheckALen == len(cycleCheckA): gcAssert(false, "cycle detection overflow") - quit 1 + rawQuit 1 cycleCheckA[cycleCheckALen] = c inc cycleCheckALen diff --git a/lib/system/gc2.nim b/lib/system/gc2.nim index 45d467051..0593b396e 100644 --- a/lib/system/gc2.nim +++ b/lib/system/gc2.nim @@ -129,7 +129,7 @@ template gcAssert(cond: bool, msg: string) = echo "[GCASSERT] ", msg GC_disable() writeStackTrace() - quit 1 + rawQuit 1 proc cellToUsr(cell: PCell): pointer {.inline.} = # convert object (=pointer to refcount) to pointer to userdata diff --git a/lib/system/gc_common.nim b/lib/system/gc_common.nim index ea8857ece..f5f4f164f 100644 --- a/lib/system/gc_common.nim +++ b/lib/system/gc_common.nim @@ -472,7 +472,7 @@ proc nimRegisterGlobalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} = inc globalMarkersLen else: cstderr.rawWrite("[GC] cannot register global variable; too many global variables") - quit 1 + rawQuit 1 proc nimRegisterThreadLocalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} = if threadLocalMarkersLen <= high(threadLocalMarkers): @@ -480,4 +480,4 @@ proc nimRegisterThreadLocalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} inc threadLocalMarkersLen else: cstderr.rawWrite("[GC] cannot register thread local variable; too many thread local variables") - quit 1 + rawQuit 1 diff --git a/lib/system/gc_hooks.nim b/lib/system/gc_hooks.nim index 70f02e657..ace62eea0 100644 --- a/lib/system/gc_hooks.nim +++ b/lib/system/gc_hooks.nim @@ -24,7 +24,7 @@ proc nimRegisterGlobalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} = inc globalMarkersLen else: cstderr.rawWrite("[GC] cannot register global variable; too many global variables") - quit 1 + rawQuit 1 proc nimRegisterThreadLocalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} = if threadLocalMarkersLen <= high(threadLocalMarkers): @@ -32,7 +32,7 @@ proc nimRegisterThreadLocalMarker(markerProc: GlobalMarkerProc) {.compilerproc.} inc threadLocalMarkersLen else: cstderr.rawWrite("[GC] cannot register thread local variable; too many thread local variables") - quit 1 + rawQuit 1 proc traverseGlobals*() = for i in 0..globalMarkersLen-1: diff --git a/lib/system/gc_ms.nim b/lib/system/gc_ms.nim index 0675b9f2e..f91b37b94 100644 --- a/lib/system/gc_ms.nim +++ b/lib/system/gc_ms.nim @@ -90,7 +90,7 @@ template gcAssert(cond: bool, msg: string) = if not cond: cstderr.rawWrite "[GCASSERT] " cstderr.rawWrite msg - quit 1 + rawQuit 1 proc cellToUsr(cell: PCell): pointer {.inline.} = # convert object (=pointer to refcount) to pointer to userdata diff --git a/lib/system/memtracker.nim b/lib/system/memtracker.nim index 9d2d7caee..289f4e024 100644 --- a/lib/system/memtracker.nim +++ b/lib/system/memtracker.nim @@ -72,7 +72,7 @@ proc addEntry(entry: LogEntry) = cprintf("interesting %s:%ld %s\n", entry.file, entry.line, entry.op) let x = cast[proc() {.nimcall, tags: [], gcsafe, raises: [].}](writeStackTrace) x() - quit 1 + rawQuit 1 #if gLog.count > high(gLog.data): # gLogger(gLog) # gLog.count = 0 diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim index e5038387f..26f2f0bbf 100644 --- a/lib/system/mmdisp.nim +++ b/lib/system/mmdisp.nim @@ -46,7 +46,7 @@ else: proc raiseOutOfMem() {.noinline.} = if outOfMemHook != nil: outOfMemHook() cstderr.rawWrite("out of memory\n") - quit(1) + rawQuit(1) when defined(boehmgc): include system / mm / boehm diff --git a/lib/system/orc.nim b/lib/system/orc.nim index 32c6b9adc..83b983ee1 100644 --- a/lib/system/orc.nim +++ b/lib/system/orc.nim @@ -114,7 +114,7 @@ template orcAssert(cond, msg) = when logOrc: if not cond: cfprintf(cstderr, "[Bug!] %s\n", msg) - quit 1 + rawQuit 1 when logOrc: proc strstr(s, sub: cstring): cstring {.header: "<string.h>", importc.} @@ -143,7 +143,7 @@ proc unregisterCycle(s: Cell) = when false: if idx >= roots.len or idx < 0: cprintf("[Bug!] %ld\n", idx) - quit 1 + rawQuit 1 roots.d[idx] = roots.d[roots.len-1] roots.d[idx][0].rootIdx = idx+1 dec roots.len diff --git a/lib/system/osalloc.nim b/lib/system/osalloc.nim index 39bf65d6c..4817059be 100644 --- a/lib/system/osalloc.nim +++ b/lib/system/osalloc.nim @@ -189,7 +189,7 @@ elif defined(windows) and not defined(StandaloneHeapSize): when reallyOsDealloc: if virtualFree(p, 0, MEM_RELEASE) == 0: cprintf "virtualFree failing!" - quit 1 + rawQuit 1 #VirtualFree(p, size, MEM_DECOMMIT) elif hostOS == "standalone" or defined(StandaloneHeapSize): diff --git a/lib/system/threadlocalstorage.nim b/lib/system/threadlocalstorage.nim index 977f42e72..e6ad9dca5 100644 --- a/lib/system/threadlocalstorage.nim +++ b/lib/system/threadlocalstorage.nim @@ -122,4 +122,4 @@ when not defined(useNimRtl): if nimThreadVarsSize() > sizeof(ThreadLocalStorage): c_fprintf(cstderr, """too large thread local storage size requested, use -d:\"nimTlsSize=X\" to setup even more or stop using unittest.nim""") - quit 1 + rawQuit 1 |