new: nim -e:cmd to run a command directly; also fixes #15731 (#15687)

* new: `nim -i cmd`
* rename -i to -e (for eval); consistent with majority of other programing languages
* `nim e -e:cmd` now works; bugfix: `echo cmd | nim e -` now works
* honor --betterRun
* address comments
* --eval alias for -e (replaces undocumented --eval which was a noop)
* --eval now defaults to e (nimscript) instead of r
* address comment: remove -e, only keep --eval
* address comment
* fixup
* Update compiler/nimconf.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
Timothee Cour
2020-11-09 09:07:22 -06:00
committed by GitHub
parent 53eca459f1
commit c1664f93b0
13 changed files with 75 additions and 26 deletions

View File

@@ -199,7 +199,7 @@ proc setupVM*(module: PSym; cache: IdentCache; scriptName: string;
proc runNimScript*(cache: IdentCache; scriptName: AbsoluteFile;
idgen: IdGenerator;
freshDefines=true; conf: ConfigRef) =
freshDefines=true; conf: ConfigRef, stream: PLLStream) =
let oldSymbolFiles = conf.symbolFiles
conf.symbolFiles = disabledSf
@@ -226,7 +226,7 @@ proc runNimScript*(cache: IdentCache; scriptName: AbsoluteFile;
graph.vm = vm
graph.compileSystemModule()
discard graph.processModule(m, vm.idgen, llStreamOpen(scriptName, fmRead))
discard graph.processModule(m, vm.idgen, stream)
# watch out, "newruntime" can be set within NimScript itself and then we need
# to remember this: