From 13cfaf5fd55796bc671737a73f35643626c98b6e Mon Sep 17 00:00:00 2001 From: PMunch Date: Fri, 15 May 2020 19:32:52 +0200 Subject: [PATCH] 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 --- compiler/nimeval.nim | 10 +++++++--- lib/system.nim | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/nimeval.nim b/compiler/nimeval.nim index 882e10fbba..09d1eb1dac 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 6b24bdcb8b..098ad08be6 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