Merge pull request #2877 from nanoant/patch/verbosity-map
Note verbosity specified in one place & --warnings/hings:list
This commit is contained in:
commit
9683969243
13 changed files with 103 additions and 40 deletions
|
|
@ -505,8 +505,7 @@ proc loadDynamicLib(m: BModule, lib: PLib) =
|
||||||
if lib.path.kind in {nkStrLit..nkTripleStrLit}:
|
if lib.path.kind in {nkStrLit..nkTripleStrLit}:
|
||||||
var s: TStringSeq = @[]
|
var s: TStringSeq = @[]
|
||||||
libCandidates(lib.path.strVal, s)
|
libCandidates(lib.path.strVal, s)
|
||||||
if gVerbosity >= 2:
|
rawMessage(hintDependency, lib.path.strVal)
|
||||||
msgWriteln("Dependency: " & lib.path.strVal)
|
|
||||||
var loadlib: Rope = nil
|
var loadlib: Rope = nil
|
||||||
for i in countup(0, high(s)):
|
for i in countup(0, high(s)):
|
||||||
inc(m.labels)
|
inc(m.labels)
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,18 @@ proc processOnOffSwitch(op: TOptions, arg: string, pass: TCmdLinePass,
|
||||||
of wOff: gOptions = gOptions - op
|
of wOff: gOptions = gOptions - op
|
||||||
else: localError(info, errOnOrOffExpectedButXFound, arg)
|
else: localError(info, errOnOrOffExpectedButXFound, arg)
|
||||||
|
|
||||||
|
proc processOnOffSwitchOrList(op: TOptions, arg: string, pass: TCmdLinePass,
|
||||||
|
info: TLineInfo): bool =
|
||||||
|
result = false
|
||||||
|
case whichKeyword(arg)
|
||||||
|
of wOn: gOptions = gOptions + op
|
||||||
|
of wOff: gOptions = gOptions - op
|
||||||
|
else:
|
||||||
|
if arg == "list":
|
||||||
|
result = true
|
||||||
|
else:
|
||||||
|
localError(info, errOnOffOrListExpectedButXFound, arg)
|
||||||
|
|
||||||
proc processOnOffSwitchG(op: TGlobalOptions, arg: string, pass: TCmdLinePass,
|
proc processOnOffSwitchG(op: TGlobalOptions, arg: string, pass: TCmdLinePass,
|
||||||
info: TLineInfo) =
|
info: TLineInfo) =
|
||||||
case whichKeyword(arg)
|
case whichKeyword(arg)
|
||||||
|
|
@ -141,6 +153,10 @@ proc expectArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) =
|
||||||
proc expectNoArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) =
|
proc expectNoArg(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) =
|
||||||
if arg != "": localError(info, errCmdLineNoArgExpected, addPrefix(switch))
|
if arg != "": localError(info, errCmdLineNoArgExpected, addPrefix(switch))
|
||||||
|
|
||||||
|
var
|
||||||
|
enableNotes: TNoteKinds
|
||||||
|
disableNotes: TNoteKinds
|
||||||
|
|
||||||
proc processSpecificNote(arg: string, state: TSpecialWord, pass: TCmdLinePass,
|
proc processSpecificNote(arg: string, state: TSpecialWord, pass: TCmdLinePass,
|
||||||
info: TLineInfo; orig: string) =
|
info: TLineInfo; orig: string) =
|
||||||
var id = "" # arg = "X]:on|off"
|
var id = "" # arg = "X]:on|off"
|
||||||
|
|
@ -162,8 +178,12 @@ proc processSpecificNote(arg: string, state: TSpecialWord, pass: TCmdLinePass,
|
||||||
if x >= 0: n = TNoteKind(x + ord(warnMin))
|
if x >= 0: n = TNoteKind(x + ord(warnMin))
|
||||||
else: localError(info, "unknown warning: " & id)
|
else: localError(info, "unknown warning: " & id)
|
||||||
case whichKeyword(substr(arg, i))
|
case whichKeyword(substr(arg, i))
|
||||||
of wOn: incl(gNotes, n)
|
of wOn:
|
||||||
of wOff: excl(gNotes, n)
|
incl(gNotes, n)
|
||||||
|
incl(enableNotes, n)
|
||||||
|
of wOff:
|
||||||
|
excl(gNotes, n)
|
||||||
|
incl(disableNotes, n)
|
||||||
else: localError(info, errOnOrOffExpectedButXFound, arg)
|
else: localError(info, errOnOrOffExpectedButXFound, arg)
|
||||||
|
|
||||||
proc processCompile(filename: string) =
|
proc processCompile(filename: string) =
|
||||||
|
|
@ -374,10 +394,12 @@ proc processSwitch(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) =
|
||||||
gSelectedGC = gcNone
|
gSelectedGC = gcNone
|
||||||
defineSymbol("nogc")
|
defineSymbol("nogc")
|
||||||
else: localError(info, errNoneBoehmRefcExpectedButXFound, arg)
|
else: localError(info, errNoneBoehmRefcExpectedButXFound, arg)
|
||||||
of "warnings", "w": processOnOffSwitch({optWarns}, arg, pass, info)
|
of "warnings", "w":
|
||||||
|
if processOnOffSwitchOrList({optWarns}, arg, pass, info): listWarnings()
|
||||||
of "warning": processSpecificNote(arg, wWarning, pass, info, switch)
|
of "warning": processSpecificNote(arg, wWarning, pass, info, switch)
|
||||||
of "hint": processSpecificNote(arg, wHint, pass, info, switch)
|
of "hint": processSpecificNote(arg, wHint, pass, info, switch)
|
||||||
of "hints": processOnOffSwitch({optHints}, arg, pass, info)
|
of "hints":
|
||||||
|
if processOnOffSwitchOrList({optHints}, arg, pass, info): listHints()
|
||||||
of "threadanalysis": processOnOffSwitchG({optThreadAnalysis}, arg, pass, info)
|
of "threadanalysis": processOnOffSwitchG({optThreadAnalysis}, arg, pass, info)
|
||||||
of "stacktrace": processOnOffSwitch({optStackTrace}, arg, pass, info)
|
of "stacktrace": processOnOffSwitch({optStackTrace}, arg, pass, info)
|
||||||
of "linetrace": processOnOffSwitch({optLineTrace}, arg, pass, info)
|
of "linetrace": processOnOffSwitch({optLineTrace}, arg, pass, info)
|
||||||
|
|
@ -508,6 +530,9 @@ proc processSwitch(switch, arg: string, pass: TCmdLinePass, info: TLineInfo) =
|
||||||
of "verbosity":
|
of "verbosity":
|
||||||
expectArg(switch, arg, pass, info)
|
expectArg(switch, arg, pass, info)
|
||||||
gVerbosity = parseInt(arg)
|
gVerbosity = parseInt(arg)
|
||||||
|
gNotes = NotesVerbosity[gVerbosity]
|
||||||
|
incl(gNotes, enableNotes)
|
||||||
|
excl(gNotes, disableNotes)
|
||||||
of "parallelbuild":
|
of "parallelbuild":
|
||||||
expectArg(switch, arg, pass, info)
|
expectArg(switch, arg, pass, info)
|
||||||
gNumberOfProcessors = parseInt(arg)
|
gNumberOfProcessors = parseInt(arg)
|
||||||
|
|
|
||||||
|
|
@ -438,16 +438,12 @@ proc addFileToLink*(filename: string) =
|
||||||
prependStr(toLink, filename)
|
prependStr(toLink, filename)
|
||||||
# BUGFIX: was ``appendStr``
|
# BUGFIX: was ``appendStr``
|
||||||
|
|
||||||
proc execWithEcho(cmd: string, prettyCmd = ""): int =
|
proc execWithEcho(cmd: string, msg = hintExecuting): int =
|
||||||
if optListCmd in gGlobalOptions or gVerbosity > 0:
|
rawMessage(msg, cmd)
|
||||||
if prettyCmd != "":
|
|
||||||
msgWriteln(prettyCmd)
|
|
||||||
else:
|
|
||||||
msgWriteln(cmd)
|
|
||||||
result = execCmd(cmd)
|
result = execCmd(cmd)
|
||||||
|
|
||||||
proc execExternalProgram*(cmd: string, prettyCmd = "") =
|
proc execExternalProgram*(cmd: string, msg = hintExecuting) =
|
||||||
if execWithEcho(cmd, prettyCmd) != 0:
|
if execWithEcho(cmd, msg) != 0:
|
||||||
rawMessage(errExecutionOfProgramFailed, "")
|
rawMessage(errExecutionOfProgramFailed, "")
|
||||||
|
|
||||||
proc generateScript(projectFile: string, script: Rope) =
|
proc generateScript(projectFile: string, script: Rope) =
|
||||||
|
|
@ -703,10 +699,8 @@ proc callCCompiler*(projectfile: string) =
|
||||||
"nim", quoteShell(getPrefixDir()),
|
"nim", quoteShell(getPrefixDir()),
|
||||||
"lib", quoteShell(libpath)])
|
"lib", quoteShell(libpath)])
|
||||||
if optCompileOnly notin gGlobalOptions:
|
if optCompileOnly notin gGlobalOptions:
|
||||||
if gVerbosity == 1:
|
execExternalProgram(linkCmd,
|
||||||
execExternalProgram(linkCmd, "[Linking]")
|
if gVerbosity > 1: hintExecuting else: hintLinking)
|
||||||
else:
|
|
||||||
execExternalProgram(linkCmd)
|
|
||||||
else:
|
else:
|
||||||
linkCmd = ""
|
linkCmd = ""
|
||||||
if optGenScript in gGlobalOptions:
|
if optGenScript in gGlobalOptions:
|
||||||
|
|
|
||||||
|
|
@ -359,9 +359,8 @@ proc mainCommand* =
|
||||||
else:
|
else:
|
||||||
rawMessage(errInvalidCommandX, command)
|
rawMessage(errInvalidCommandX, command)
|
||||||
|
|
||||||
if (msgs.gErrorCounter == 0 and
|
if msgs.gErrorCounter == 0 and
|
||||||
gCmd notin {cmdInterpret, cmdRun, cmdDump} and
|
gCmd notin {cmdInterpret, cmdRun, cmdDump}:
|
||||||
gVerbosity > 0):
|
|
||||||
rawMessage(hintSuccessX, [$gLinesCompiled,
|
rawMessage(hintSuccessX, [$gLinesCompiled,
|
||||||
formatFloat(epochTime() - gLastCmdTime, ffDecimal, 3),
|
formatFloat(epochTime() - gLastCmdTime, ffDecimal, 3),
|
||||||
formatSize(getTotalMem()),
|
formatSize(getTotalMem()),
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ type
|
||||||
errStmtInvalidAfterReturn, errStmtExpected, errInvalidLabel,
|
errStmtInvalidAfterReturn, errStmtExpected, errInvalidLabel,
|
||||||
errInvalidCmdLineOption, errCmdLineArgExpected, errCmdLineNoArgExpected,
|
errInvalidCmdLineOption, errCmdLineArgExpected, errCmdLineNoArgExpected,
|
||||||
errInvalidVarSubstitution, errUnknownVar, errUnknownCcompiler,
|
errInvalidVarSubstitution, errUnknownVar, errUnknownCcompiler,
|
||||||
errOnOrOffExpectedButXFound, errNoneBoehmRefcExpectedButXFound,
|
errOnOrOffExpectedButXFound, errOnOffOrListExpectedButXFound,
|
||||||
|
errNoneBoehmRefcExpectedButXFound,
|
||||||
errNoneSpeedOrSizeExpectedButXFound, errGuiConsoleOrLibExpectedButXFound,
|
errNoneSpeedOrSizeExpectedButXFound, errGuiConsoleOrLibExpectedButXFound,
|
||||||
errUnknownOS, errUnknownCPU, errGenOutExpectedButXFound,
|
errUnknownOS, errUnknownCPU, errGenOutExpectedButXFound,
|
||||||
errArgsNeedRunOption, errInvalidMultipleAsgn, errColonOrEqualsExpected,
|
errArgsNeedRunOption, errInvalidMultipleAsgn, errColonOrEqualsExpected,
|
||||||
|
|
@ -125,6 +126,8 @@ type
|
||||||
hintConvFromXtoItselfNotNeeded, hintExprAlwaysX, hintQuitCalled,
|
hintConvFromXtoItselfNotNeeded, hintExprAlwaysX, hintQuitCalled,
|
||||||
hintProcessing, hintCodeBegin, hintCodeEnd, hintConf, hintPath,
|
hintProcessing, hintCodeBegin, hintCodeEnd, hintConf, hintPath,
|
||||||
hintConditionAlwaysTrue, hintName, hintPattern,
|
hintConditionAlwaysTrue, hintName, hintPattern,
|
||||||
|
hintExecuting, hintLinking, hintDependency,
|
||||||
|
hintSource, hintStackTrace, hintGCStats,
|
||||||
hintUser
|
hintUser
|
||||||
|
|
||||||
const
|
const
|
||||||
|
|
@ -181,6 +184,7 @@ const
|
||||||
errUnknownVar: "unknown variable: \'$1\'",
|
errUnknownVar: "unknown variable: \'$1\'",
|
||||||
errUnknownCcompiler: "unknown C compiler: \'$1\'",
|
errUnknownCcompiler: "unknown C compiler: \'$1\'",
|
||||||
errOnOrOffExpectedButXFound: "\'on\' or \'off\' expected, but \'$1\' found",
|
errOnOrOffExpectedButXFound: "\'on\' or \'off\' expected, but \'$1\' found",
|
||||||
|
errOnOffOrListExpectedButXFound: "\'on\', \'off\' or \'list\' expected, but \'$1\' found",
|
||||||
errNoneBoehmRefcExpectedButXFound: "'none', 'boehm' or 'refc' expected, but '$1' found",
|
errNoneBoehmRefcExpectedButXFound: "'none', 'boehm' or 'refc' expected, but '$1' found",
|
||||||
errNoneSpeedOrSizeExpectedButXFound: "'none', 'speed' or 'size' expected, but '$1' found",
|
errNoneSpeedOrSizeExpectedButXFound: "'none', 'speed' or 'size' expected, but '$1' found",
|
||||||
errGuiConsoleOrLibExpectedButXFound: "'gui', 'console' or 'lib' expected, but '$1' found",
|
errGuiConsoleOrLibExpectedButXFound: "'gui', 'console' or 'lib' expected, but '$1' found",
|
||||||
|
|
@ -414,6 +418,12 @@ const
|
||||||
hintConditionAlwaysTrue: "condition is always true: '$1'",
|
hintConditionAlwaysTrue: "condition is always true: '$1'",
|
||||||
hintName: "name should be: '$1'",
|
hintName: "name should be: '$1'",
|
||||||
hintPattern: "$1",
|
hintPattern: "$1",
|
||||||
|
hintExecuting: "$1",
|
||||||
|
hintLinking: "",
|
||||||
|
hintDependency: "$1",
|
||||||
|
hintSource: "$1",
|
||||||
|
hintStackTrace: "$1",
|
||||||
|
hintGCStats: "$1",
|
||||||
hintUser: "$1"]
|
hintUser: "$1"]
|
||||||
|
|
||||||
const
|
const
|
||||||
|
|
@ -429,10 +439,11 @@ const
|
||||||
"ProveInit", "ProveField", "ProveIndex", "GcUnsafe", "GcUnsafe2", "Uninit",
|
"ProveInit", "ProveField", "ProveIndex", "GcUnsafe", "GcUnsafe2", "Uninit",
|
||||||
"GcMem", "Destructor", "LockLevel", "ResultShadowed", "User"]
|
"GcMem", "Destructor", "LockLevel", "ResultShadowed", "User"]
|
||||||
|
|
||||||
HintsToStr*: array[0..16, string] = ["Success", "SuccessX", "LineTooLong",
|
HintsToStr*: array[0..22, string] = ["Success", "SuccessX", "LineTooLong",
|
||||||
"XDeclaredButNotUsed", "ConvToBaseNotNeeded", "ConvFromXtoItselfNotNeeded",
|
"XDeclaredButNotUsed", "ConvToBaseNotNeeded", "ConvFromXtoItselfNotNeeded",
|
||||||
"ExprAlwaysX", "QuitCalled", "Processing", "CodeBegin", "CodeEnd", "Conf",
|
"ExprAlwaysX", "QuitCalled", "Processing", "CodeBegin", "CodeEnd", "Conf",
|
||||||
"Path", "CondTrue", "Name", "Pattern",
|
"Path", "CondTrue", "Name", "Pattern", "Exec", "Link", "Dependency",
|
||||||
|
"Source", "StackTrace", "GCStats",
|
||||||
"User"]
|
"User"]
|
||||||
|
|
||||||
const
|
const
|
||||||
|
|
@ -483,6 +494,29 @@ type
|
||||||
ERecoverableError* = object of ValueError
|
ERecoverableError* = object of ValueError
|
||||||
ESuggestDone* = object of Exception
|
ESuggestDone* = object of Exception
|
||||||
|
|
||||||
|
const
|
||||||
|
NotesVerbosity*: array[0..3, TNoteKinds] = [
|
||||||
|
{low(TNoteKind)..high(TNoteKind)} - {warnShadowIdent, warnUninit,
|
||||||
|
warnProveField, warnProveIndex,
|
||||||
|
warnGcUnsafe,
|
||||||
|
hintSuccessX, hintPath, hintConf,
|
||||||
|
hintProcessing,
|
||||||
|
hintDependency,
|
||||||
|
hintExecuting, hintLinking,
|
||||||
|
hintCodeBegin, hintCodeEnd,
|
||||||
|
hintSource, hintStackTrace,
|
||||||
|
hintGCStats},
|
||||||
|
{low(TNoteKind)..high(TNoteKind)} - {warnShadowIdent, warnUninit,
|
||||||
|
warnProveField, warnProveIndex,
|
||||||
|
warnGcUnsafe,
|
||||||
|
hintDependency,
|
||||||
|
hintExecuting,
|
||||||
|
hintCodeBegin, hintCodeEnd,
|
||||||
|
hintSource, hintStackTrace,
|
||||||
|
hintGCStats},
|
||||||
|
{low(TNoteKind)..high(TNoteKind)} - {hintStackTrace},
|
||||||
|
{low(TNoteKind)..high(TNoteKind)}]
|
||||||
|
|
||||||
const
|
const
|
||||||
InvalidFileIDX* = int32(-1)
|
InvalidFileIDX* = int32(-1)
|
||||||
|
|
||||||
|
|
@ -571,9 +605,7 @@ proc raiseRecoverableError*(msg: string) {.noinline, noreturn.} =
|
||||||
proc sourceLine*(i: TLineInfo): Rope
|
proc sourceLine*(i: TLineInfo): Rope
|
||||||
|
|
||||||
var
|
var
|
||||||
gNotes*: TNoteKinds = {low(TNoteKind)..high(TNoteKind)} -
|
gNotes*: TNoteKinds = NotesVerbosity[1] # defaults to verbosity of 1
|
||||||
{warnShadowIdent, warnUninit,
|
|
||||||
warnProveField, warnProveIndex, warnGcUnsafe}
|
|
||||||
gErrorCounter*: int = 0 # counts the number of errors
|
gErrorCounter*: int = 0 # counts the number of errors
|
||||||
gHintCounter*: int = 0
|
gHintCounter*: int = 0
|
||||||
gWarnCounter*: int = 0
|
gWarnCounter*: int = 0
|
||||||
|
|
@ -759,7 +791,7 @@ type
|
||||||
|
|
||||||
proc handleError(msg: TMsgKind, eh: TErrorHandling, s: string) =
|
proc handleError(msg: TMsgKind, eh: TErrorHandling, s: string) =
|
||||||
template quit =
|
template quit =
|
||||||
if defined(debug) or gVerbosity >= 3 or msg == errInternal:
|
if defined(debug) or msg == errInternal or hintStackTrace in gNotes:
|
||||||
if stackTraceAvailable() and isNil(writelnHook):
|
if stackTraceAvailable() and isNil(writelnHook):
|
||||||
writeStackTrace()
|
writeStackTrace()
|
||||||
else:
|
else:
|
||||||
|
|
@ -889,7 +921,7 @@ proc liMessage(info: TLineInfo, msg: TMsgKind, arg: string,
|
||||||
KindColor, `%`(KindFormat, kind))
|
KindColor, `%`(KindFormat, kind))
|
||||||
else:
|
else:
|
||||||
styledMsgWriteln(styleBright, x, resetStyle, color, title, resetStyle, s)
|
styledMsgWriteln(styleBright, x, resetStyle, color, title, resetStyle, s)
|
||||||
if optPrintSurroundingSrc and msg in errMin..errMax:
|
if msg in errMin..errMax and hintSource in gNotes:
|
||||||
info.writeSurroundingSrc
|
info.writeSurroundingSrc
|
||||||
handleError(msg, eh, s)
|
handleError(msg, eh, s)
|
||||||
|
|
||||||
|
|
@ -960,6 +992,22 @@ ropes.errorHandler = proc (err: RopesError, msg: string, useWarning: bool) =
|
||||||
of rCannotOpenFile:
|
of rCannotOpenFile:
|
||||||
rawMessage(if useWarning: warnCannotOpenFile else: errCannotOpenFile, msg)
|
rawMessage(if useWarning: warnCannotOpenFile else: errCannotOpenFile, msg)
|
||||||
|
|
||||||
|
proc listWarnings*() =
|
||||||
|
msgWriteln("Warnings:")
|
||||||
|
for warn in warnMin..warnMax:
|
||||||
|
msgWriteln(" [$1] $2" % [
|
||||||
|
if warn in gNotes: "x" else: " ",
|
||||||
|
msgs.WarningsToStr[ord(warn) - ord(warnMin)]
|
||||||
|
])
|
||||||
|
|
||||||
|
proc listHints*() =
|
||||||
|
msgWriteln("Hints:")
|
||||||
|
for hint in hintMin..hintMax:
|
||||||
|
msgWriteln(" [$1] $2" % [
|
||||||
|
if hint in gNotes: "x" else: " ",
|
||||||
|
msgs.HintsToStr[ord(hint) - ord(hintMin)]
|
||||||
|
])
|
||||||
|
|
||||||
# enable colors by default on terminals
|
# enable colors by default on terminals
|
||||||
if terminal.isatty(stdout):
|
if terminal.isatty(stdout):
|
||||||
incl(gGlobalOptions, optUseColors)
|
incl(gGlobalOptions, optUseColors)
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ proc handleCmdLine() =
|
||||||
extccomp.initVars()
|
extccomp.initVars()
|
||||||
processCmdLine(passCmd2, "")
|
processCmdLine(passCmd2, "")
|
||||||
mainCommand()
|
mainCommand()
|
||||||
if gVerbosity >= 2: echo(GC_getStatistics())
|
if optHints in gOptions and hintGCStats in gNotes: echo(GC_getStatistics())
|
||||||
#echo(GC_getStatistics())
|
#echo(GC_getStatistics())
|
||||||
if msgs.gErrorCounter == 0:
|
if msgs.gErrorCounter == 0:
|
||||||
when hasTinyCBackend:
|
when hasTinyCBackend:
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ iterator chosen(packages: StringTableRef): string =
|
||||||
|
|
||||||
proc addNimblePath(p: string, info: TLineInfo) =
|
proc addNimblePath(p: string, info: TLineInfo) =
|
||||||
if not contains(options.searchPaths, p):
|
if not contains(options.searchPaths, p):
|
||||||
if gVerbosity >= 1: message(info, hintPath, p)
|
message(info, hintPath, p)
|
||||||
lists.prependStr(options.lazyPaths, p)
|
lists.prependStr(options.lazyPaths, p)
|
||||||
|
|
||||||
proc addPathWithNimFiles(p: string, info: TLineInfo) =
|
proc addPathWithNimFiles(p: string, info: TLineInfo) =
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ proc readConfigFile(filename: string) =
|
||||||
while tok.tokType != tkEof: parseAssignment(L, tok)
|
while tok.tokType != tkEof: parseAssignment(L, tok)
|
||||||
if len(condStack) > 0: lexMessage(L, errTokenExpected, "@end")
|
if len(condStack) > 0: lexMessage(L, errTokenExpected, "@end")
|
||||||
closeLexer(L)
|
closeLexer(L)
|
||||||
if gVerbosity >= 1: rawMessage(hintConf, filename)
|
rawMessage(hintConf, filename)
|
||||||
|
|
||||||
proc getUserConfigPath(filename: string): string =
|
proc getUserConfigPath(filename: string): string =
|
||||||
result = joinPath(getConfigDir(), filename)
|
result = joinPath(getConfigDir(), filename)
|
||||||
|
|
|
||||||
|
|
@ -127,9 +127,6 @@ template compilationCachePresent*: expr =
|
||||||
template optPreserveOrigSource*: expr =
|
template optPreserveOrigSource*: expr =
|
||||||
optEmbedOrigSrc in gGlobalOptions
|
optEmbedOrigSrc in gGlobalOptions
|
||||||
|
|
||||||
template optPrintSurroundingSrc*: expr =
|
|
||||||
gVerbosity >= 2
|
|
||||||
|
|
||||||
const
|
const
|
||||||
genSubDir* = "nimcache"
|
genSubDir* = "nimcache"
|
||||||
NimExt* = "nim"
|
NimExt* = "nim"
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import
|
||||||
proc verboseOpen(s: PSym): PPassContext =
|
proc verboseOpen(s: PSym): PPassContext =
|
||||||
#MessageOut('compiling ' + s.name.s);
|
#MessageOut('compiling ' + s.name.s);
|
||||||
result = nil # we don't need a context
|
result = nil # we don't need a context
|
||||||
if gVerbosity > 0: rawMessage(hintProcessing, s.name.s)
|
rawMessage(hintProcessing, s.name.s)
|
||||||
|
|
||||||
proc verboseProcess(context: PPassContext, n: PNode): PNode =
|
proc verboseProcess(context: PPassContext, n: PNode): PNode =
|
||||||
result = n
|
result = n
|
||||||
|
|
|
||||||
|
|
@ -838,7 +838,7 @@ proc checkDep(fileIdx: int32): TReasonForRecompile =
|
||||||
if res != rrNone:
|
if res != rrNone:
|
||||||
result = rrModDeps
|
result = rrModDeps
|
||||||
# we cannot break here, because of side-effects of `checkDep`
|
# we cannot break here, because of side-effects of `checkDep`
|
||||||
if result != rrNone and gVerbosity > 0:
|
if result != rrNone:
|
||||||
rawMessage(hintProcessing, reasonToFrmt[result] % filename)
|
rawMessage(hintProcessing, reasonToFrmt[result] % filename)
|
||||||
if result != rrNone or optForceFullMake in gGlobalOptions:
|
if result != rrNone or optForceFullMake in gGlobalOptions:
|
||||||
# recompilation is necessary:
|
# recompilation is necessary:
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ proc applyFilter(p: var TParsers, n: PNode, filename: string,
|
||||||
of filtReplace:
|
of filtReplace:
|
||||||
result = filterReplace(stdin, filename, n)
|
result = filterReplace(stdin, filename, n)
|
||||||
if f != filtNone:
|
if f != filtNone:
|
||||||
if gVerbosity >= 2:
|
if hintCodeBegin in gNotes:
|
||||||
rawMessage(hintCodeBegin, [])
|
rawMessage(hintCodeBegin, [])
|
||||||
msgWriteln(result.s)
|
msgWriteln(result.s)
|
||||||
rawMessage(hintCodeEnd, [])
|
rawMessage(hintCodeEnd, [])
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,10 @@ Advanced options:
|
||||||
--stdout output to stdout
|
--stdout output to stdout
|
||||||
--colors:on|off turn compiler messages coloring on|off
|
--colors:on|off turn compiler messages coloring on|off
|
||||||
--listFullPaths list full paths in messages
|
--listFullPaths list full paths in messages
|
||||||
-w, --warnings:on|off turn all warnings on|off
|
-w:on|off|list, --warnings:on|off|list
|
||||||
|
turn all warnings on|off or list all available
|
||||||
--warning[X]:on|off turn specific warning X on|off
|
--warning[X]:on|off turn specific warning X on|off
|
||||||
--hints:on|off turn all hints on|off
|
--hints:on|off|list turn all hints on|off or list all available
|
||||||
--hint[X]:on|off turn specific hint X on|off
|
--hint[X]:on|off turn specific hint X on|off
|
||||||
--lib:PATH set the system library path
|
--lib:PATH set the system library path
|
||||||
--import:PATH add an automatically imported module
|
--import:PATH add an automatically imported module
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue