document how the incremental compilation scheme could work
This commit is contained in:
parent
61fb83ecbb
commit
cae1973856
4 changed files with 110 additions and 51 deletions
|
|
@ -246,10 +246,10 @@ const trackPosInvalidFileIdx* = FileIndex(-2) # special marker so that no sugges
|
|||
# are produced within comments and string literals
|
||||
|
||||
type
|
||||
MsgConfig* = object
|
||||
MsgConfig* = object ## does not need to be stored in the incremental cache
|
||||
trackPos*: TLineInfo
|
||||
trackPosAttached*: bool ## whether the tracking position was attached to some
|
||||
## close token.
|
||||
trackPosAttached*: bool ## whether the tracking position was attached to
|
||||
## some close token.
|
||||
|
||||
errorOutputs*: TErrorOutputs
|
||||
msgContext*: seq[TLineInfo]
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ type
|
|||
doStopCompile*: proc(): bool {.closure.}
|
||||
usageSym*: PSym # for nimsuggest
|
||||
owners*: seq[PSym]
|
||||
methods*: seq[tuple[methods: TSymSeq, dispatcher: PSym]]
|
||||
methods*: seq[tuple[methods: TSymSeq, dispatcher: PSym]] # needs serialization!
|
||||
systemModule*: PSym
|
||||
sysTypes*: array[TTypeKind, PType]
|
||||
compilerprocs*: TStrTable
|
||||
|
|
|
|||
|
|
@ -156,24 +156,27 @@ type
|
|||
version*: int
|
||||
Suggestions* = seq[Suggest]
|
||||
|
||||
ConfigRef* = ref object ## eventually all global configuration should be moved here
|
||||
target*: Target
|
||||
ConfigRef* = ref object ## every global configuration
|
||||
## fields marked with '*' are subject to
|
||||
## the incremental compilation mechanisms
|
||||
## (+) means "part of the dependency"
|
||||
target*: Target # (+)
|
||||
linesCompiled*: int # all lines that have been compiled
|
||||
options*: TOptions
|
||||
globalOptions*: TGlobalOptions
|
||||
options*: TOptions # (+)
|
||||
globalOptions*: TGlobalOptions # (+)
|
||||
m*: MsgConfig
|
||||
evalTemplateCounter*: int
|
||||
evalMacroCounter*: int
|
||||
exitcode*: int8
|
||||
cmd*: TCommands # the command
|
||||
selectedGC*: TGCMode # the selected GC
|
||||
selectedGC*: TGCMode # the selected GC (+)
|
||||
verbosity*: int # how verbose the compiler is
|
||||
numberOfProcessors*: int # number of processors
|
||||
evalExpr*: string # expression for idetools --eval
|
||||
lastCmdTime*: float # when caas is enabled, we measure each command
|
||||
symbolFiles*: SymbolFilesOption
|
||||
|
||||
cppDefines*: HashSet[string]
|
||||
cppDefines*: HashSet[string] # (*)
|
||||
headerFile*: string
|
||||
features*: set[Feature]
|
||||
arguments*: string ## the arguments to be passed to the program that
|
||||
|
|
@ -220,13 +223,13 @@ type
|
|||
cLinkedLibs*: seq[string] # libraries to link
|
||||
|
||||
externalToLink*: seq[string] # files to link in addition to the file
|
||||
# we compiled
|
||||
# we compiled (*)
|
||||
linkOptionsCmd*: string
|
||||
compileOptionsCmd*: seq[string]
|
||||
linkOptions*: string
|
||||
compileOptions*: string
|
||||
linkOptions*: string # (*)
|
||||
compileOptions*: string # (*)
|
||||
ccompilerpath*: string
|
||||
toCompile*: CfileList
|
||||
toCompile*: CfileList # (*)
|
||||
suggestionResultHook*: proc (result: Suggest) {.closure.}
|
||||
suggestVersion*: int
|
||||
suggestMaxResults*: int
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue