mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-08 14:03:23 +00:00
Speed-up symbolFiles:on operations on windows
This commit is contained in:
@@ -15,7 +15,8 @@ import
|
||||
os, lists, condsyms, rodread, rodwrite, ropes, trees,
|
||||
wordrecg, sem, semdata, idents, passes, docgen, extccomp,
|
||||
cgen, ecmasgen,
|
||||
platform, nimconf, importer, passaux, depends, transf, evals, types, idgen
|
||||
platform, nimconf, importer, passaux, depends, transf, evals, types, idgen,
|
||||
tables
|
||||
|
||||
const
|
||||
has_LLVM_Backend = false
|
||||
@@ -27,19 +28,16 @@ proc MainCommand*()
|
||||
|
||||
# ------------------ module handling -----------------------------------------
|
||||
|
||||
type
|
||||
TFileModuleRec = tuple[filename: string, module: PSym]
|
||||
TFileModuleMap = seq[TFileModuleRec]
|
||||
var
|
||||
compMods = initTable[string, PSym]() # all compiled modules
|
||||
|
||||
var compMods: TFileModuleMap = @[] # all compiled modules
|
||||
# This expects a normalized module path
|
||||
proc registerModule(filename: string, module: PSym) =
|
||||
compMods[filename] = module
|
||||
|
||||
proc registerModule(filename: string, module: PSym) =
|
||||
compMods.add((filename, module))
|
||||
|
||||
proc getModule(filename: string): PSym =
|
||||
for i in countup(0, high(compMods)):
|
||||
if sameFile(compMods[i].filename, filename):
|
||||
return compMods[i].module
|
||||
# This expects a normalized module path
|
||||
proc getModule(filename: string): PSym =
|
||||
result = compMods[filename]
|
||||
|
||||
proc newModule(filename: string): PSym =
|
||||
# We cannot call ``newSym`` here, because we have to circumvent the ID
|
||||
|
||||
@@ -788,7 +788,7 @@ proc loadMethods(r: PRodReader) =
|
||||
|
||||
proc getModuleIdx(filename: string): int =
|
||||
for i in countup(0, high(gMods)):
|
||||
if sameFile(gMods[i].filename, filename): return i
|
||||
if gMods[i].filename == filename: return i
|
||||
result = len(gMods)
|
||||
setlen(gMods, result + 1)
|
||||
|
||||
@@ -853,7 +853,7 @@ proc handleSymbolFile(module: PSym, filename: string): PRodReader =
|
||||
|
||||
proc GetCRC*(filename: string): TCrc32 =
|
||||
for i in countup(0, high(gMods)):
|
||||
if sameFile(gMods[i].filename, filename): return gMods[i].crc
|
||||
if gMods[i].filename == filename: return gMods[i].crc
|
||||
|
||||
result = crcFromFile(filename)
|
||||
#var idx = getModuleIdx(filename)
|
||||
|
||||
Reference in New Issue
Block a user