refactoring complete: explicit ident cache
This commit is contained in:
parent
773d17cd14
commit
29db0d8585
16 changed files with 94 additions and 93 deletions
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue