Improve nimeval, changes some defaults (#14351)

* Improve nimeval, changes some defaults

This improves nimeval to make it easier to use NimScript as an embedded
scripting languages. It does change some of the defaults, so in case
anything used the old version and depended on the old behaviour these
would have to be changed.

* Remove dependency on nimhcr for nimscript
This commit is contained in:
PMunch
2020-05-15 19:32:52 +02:00
committed by GitHub
parent 105079e88a
commit 13cfaf5fd5
2 changed files with 8 additions and 4 deletions

View File

@@ -99,14 +99,16 @@ proc findNimStdLibCompileTime*(): string =
proc createInterpreter*(scriptName: string;
searchPaths: openArray[string];
flags: TSandboxFlags = {}): Interpreter =
flags: TSandboxFlags = {},
defines = @[("nimscript", "true")],
registerOps = true): Interpreter =
var conf = newConfigRef()
var cache = newIdentCache()
var graph = newModuleGraph(cache, conf)
connectCallbacks(graph)
initDefines(conf.symbols)
defineSymbol(conf.symbols, "nimscript")
defineSymbol(conf.symbols, "nimconfig")
for define in defines:
defineSymbol(conf.symbols, define[0], define[1])
registerPass(graph, semPass)
registerPass(graph, evalPass)
@@ -119,6 +121,8 @@ proc createInterpreter*(scriptName: string;
var vm = newCtx(m, cache, graph)
vm.mode = emRepl
vm.features = flags
if registerOps:
vm.registerAdditionalOps() # Required to register parts of stdlib modules
graph.vm = vm
graph.compileSystemModule()
result = Interpreter(mainModule: m, graph: graph, scriptName: scriptName)

View File

@@ -3026,5 +3026,5 @@ export widestrs
import system/io
export io
when not defined(createNimHcr):
when not defined(createNimHcr) and not defined(nimscript):
include nimhcr