diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/msgs.nim | 9 | ||||
-rw-r--r-- | compiler/vm.nim | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/compiler/msgs.nim b/compiler/msgs.nim index 3fabf6bbf..442d9efc2 100644 --- a/compiler/msgs.nim +++ b/compiler/msgs.nim @@ -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 diff --git a/compiler/vm.nim b/compiler/vm.nim index 7ba4aaeb6..6d0c63f14 100644 --- a/compiler/vm.nim +++ b/compiler/vm.nim @@ -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)) |