diff options
-rw-r--r-- | compiler/nimeval.nim | 10 | ||||
-rw-r--r-- | lib/system.nim | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/compiler/nimeval.nim b/compiler/nimeval.nim index 882e10fbb..09d1eb1da 100644 --- a/compiler/nimeval.nim +++ b/compiler/nimeval.nim @@ -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) diff --git a/lib/system.nim b/lib/system.nim index 6b24bdcb8..098ad08be 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -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 |