refactoring complete: explicit ident cache

This commit is contained in:
Araq 2016-10-31 19:47:20 +01:00
commit 29db0d8585
16 changed files with 94 additions and 93 deletions

View file

@ -11,7 +11,7 @@
## language.
import
ast, modules, passes, passaux, condsyms,
ast, modules, idents, passes, passaux, condsyms,
options, nimconf, lists, sem, semdata, llstream, vm, vmdef, commands, msgs,
os, times, osproc, wordrecg, strtabs
@ -25,9 +25,9 @@ proc listDirs(a: VmArgs, filter: set[PathComponent]) =
if kind in filter: result.add path
setResult(a, result)
proc setupVM*(module: PSym; scriptName: string): PEvalContext =
proc setupVM*(module: PSym; cache: IdentCache; scriptName: string): PEvalContext =
# For Nimble we need to export 'setupVM'.
result = newCtx(module)
result = newCtx(module, cache)
result.mode = emRepl
registerAdditionalOps(result)
@ -134,7 +134,7 @@ proc setupVM*(module: PSym; scriptName: string): PEvalContext =
cbconf selfExe:
setResult(a, os.getAppFilename())
proc runNimScript*(scriptName: string; freshDefines=true) =
proc runNimScript*(cache: IdentCache; scriptName: string; freshDefines=true) =
passes.gIncludeFile = includeModule
passes.gImportModule = importModule
if freshDefines: initDefines()
@ -148,10 +148,10 @@ proc runNimScript*(scriptName: string; freshDefines=true) =
var m = makeModule(scriptName)
incl(m.flags, sfMainModule)
vm.globalCtx = setupVM(m, scriptName)
vm.globalCtx = setupVM(m, cache, scriptName)
compileSystemModule()
discard processModule(m, llStreamOpen(scriptName, fmRead), nil)
compileSystemModule(cache)
discard processModule(m, llStreamOpen(scriptName, fmRead), nil, cache)
# ensure we load 'system.nim' again for the real non-config stuff!
resetAllModulesHard()