mirror of
https://github.com/nim-lang/Nim.git
synced 2026-03-07 00:57:08 +00:00
compiler/vm: Use stdout too in VM time echo
Now VM time echo outputs to stdout too, same as compile time echo, rather using same handle as compiler diagnostics (stderr default).
This commit is contained in:
@@ -751,6 +751,15 @@ proc msgWriteln*(s: string) =
|
||||
when defined(windows):
|
||||
flushFile(stderr)
|
||||
|
||||
proc stdoutWriteln*(s: string) =
|
||||
## Writes to stdout.
|
||||
## Should be used only for VM time equivalents to procs outputting to stdout.
|
||||
if not isNil(writelnHook):
|
||||
writelnHook(s)
|
||||
else:
|
||||
writeLine(stdout, s)
|
||||
flushFile(stdout)
|
||||
|
||||
macro callIgnoringStyle(theProc: typed, first: typed,
|
||||
args: varargs[expr]): stmt =
|
||||
let typForegroundColor = bindSym"ForegroundColor".getType
|
||||
|
||||
@@ -811,13 +811,13 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
||||
of opcEcho:
|
||||
let rb = instr.regB
|
||||
if rb == 1:
|
||||
msgWriteln(regs[ra].node.strVal)
|
||||
stdoutWriteln(regs[ra].node.strVal)
|
||||
else:
|
||||
var outp = ""
|
||||
for i in ra..ra+rb-1:
|
||||
#if regs[i].kind != rkNode: debug regs[i]
|
||||
outp.add(regs[i].node.strVal)
|
||||
msgWriteln(outp)
|
||||
stdoutWriteln(outp)
|
||||
of opcContainsSet:
|
||||
decodeBC(rkInt)
|
||||
regs[ra].intVal = ord(inSet(regs[rb].node, regs[rc].regToNode))
|
||||
|
||||
Reference in New Issue
Block a user