Merge ../Nim into devel

This commit is contained in:
Charles Blake
2015-02-12 05:18:10 -05:00
4 changed files with 21 additions and 4 deletions

View File

@@ -720,7 +720,10 @@ type
proc handleError(msg: TMsgKind, eh: TErrorHandling, s: string) =
template quit =
if defined(debug) or gVerbosity >= 3 or msg == errInternal:
writeStackTrace()
if stackTraceAvailable():
writeStackTrace()
else:
msgWriteln("No stack traceback available\nTo create a stacktrace, rerun compilation with ./koch temp c <file>")
quit 1
if msg >= fatalMin and msg <= fatalMax:

View File

@@ -16,11 +16,11 @@ type
TDbConn* = PMySQL ## encapsulates a database connection
TRow* = seq[string] ## a row of a dataset. NULL database values will be
## transformed always to the empty string.
EDb* = object of EIO ## exception that is raised if a database error occurs
EDb* = object of IOError ## exception that is raised if a database error occurs
TSqlQuery* = distinct string ## an SQL query string
FDb* = object of FIO ## effect that denotes a database operation
FDb* = object of IOEffect ## effect that denotes a database operation
FReadDb* = object of FDb ## effect that denotes a read operation
FWriteDb* = object of FDb ## effect that denotes a write operation

View File

@@ -175,6 +175,8 @@ proc auxWriteStackTrace(f: PFrame, s: var string) =
add(s, tempFrames[j].procname)
add(s, "\n")
proc stackTraceAvailable*(): bool
when hasSomeStackTrace:
proc rawWriteStackTrace(s: var string) =
when NimStackTrace:
@@ -188,6 +190,18 @@ when hasSomeStackTrace:
auxWriteStackTraceWithBacktrace(s)
else:
add(s, "No stack traceback available\n")
proc stackTraceAvailable(): bool =
when NimStackTrace:
if framePtr == nil:
result = false
else:
result = true
elif defined(nativeStackTrace) and nativeStackTraceSupported:
result = true
else:
result = false
else:
proc stackTraceAvailable*(): bool = result = false
proc quitOrDebug() {.inline.} =
when not defined(endb):

View File

@@ -13,7 +13,7 @@
when defined(Unix):
when defined(macosx):
const
lib = "libmysqlclient.(15|16|17[18).dylib"
lib = "libmysqlclient.(15|16|17|18).dylib"
else:
const
lib = "libmysqlclient.so.(15|16|17|18)"