pipelines

Source   Edit  

Procs

proc compilePipelineModule(graph: ModuleGraph; fileIdx: FileIndex;
                           flags: TSymFlags; fromModule: PSym = nil): PSym {....raises: [
    OSError, KeyError, Exception, ValueError, IOError, ERecoverableError,
    EOFError, ESuggestDone], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect,
                                    RootEffect, WriteDirEffect, WriteIOEffect,
                                    TimeEffect, ExecIOEffect], forbids: [].}
Source   Edit  
proc compilePipelineProject(graph: ModuleGraph; projectFileIdx = InvalidFileIdx) {....raises: [
    Exception, ValueError, OSError, KeyError, IOError, ERecoverableError,
    EOFError, ESuggestDone], tags: [RootEffect, ReadDirEffect, WriteIOEffect,
                                    ReadIOEffect, ReadEnvEffect, WriteDirEffect,
                                    TimeEffect, ExecIOEffect], forbids: [].}
Source   Edit  
proc compilePipelineSystemModule(graph: ModuleGraph) {....raises: [KeyError,
    ValueError, OSError, Exception, IOError, ERecoverableError, EOFError,
    ESuggestDone], tags: [ReadDirEffect, RootEffect, ReadEnvEffect,
                          ReadIOEffect, WriteDirEffect, WriteIOEffect,
                          TimeEffect, ExecIOEffect], forbids: [].}
Source   Edit  
proc connectPipelineCallbacks(graph: ModuleGraph) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc prePass(c: PContext; n: PNode) {....raises: [Exception, ValueError, OSError,
    KeyError, IOError, ERecoverableError, Exception, OSError], tags: [
    RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
                                      forbids: [].}
Source   Edit  
proc processImplicitImports(graph: ModuleGraph; implicits: seq[string];
                            nodeKind: TNodeKind; m: PSym; ctx: PContext;
                            bModule: PPassContext; idgen: IdGenerator;
                            topLevelStmts: PNode) {....raises: [KeyError, OSError,
    Exception, ValueError, IOError, ERecoverableError, EOFError, ESuggestDone], tags: [
    ReadEnvEffect, ReadIOEffect, ReadDirEffect, RootEffect, WriteIOEffect,
    WriteDirEffect, TimeEffect, ExecIOEffect], forbids: [].}
Source   Edit  
proc processPipelineModule(graph: ModuleGraph; module: PSym; idgen: IdGenerator;
                           stream: PLLStream): bool {....raises: [Exception,
    KeyError, OSError, ValueError, IOError, ERecoverableError, EOFError,
    ESuggestDone], tags: [RootEffect, ReadEnvEffect, ReadIOEffect,
                          ReadDirEffect, WriteIOEffect, WriteDirEffect,
                          TimeEffect, ExecIOEffect], forbids: [].}

tSemModule (doc/parallel_compiler.md ยง1) is a whole module pass: parse, header sem, bodies, codegen. SemBodyms / SemModulems is then the share of a module that the plan proposes to move off the critical path, and Modulems - SemBodyms is what stays sequential.

Outermost-only because this proc is re-entrant: under a classic build an import compiles its module from inside the importer's pass, so the outermost activation is the whole frontend and nested modules are folded into it. Under --ic:on each nim m process compiles one module and the outermost activation is that module โ€” which is the row ยง1.2 tabulates.

Source   Edit  
proc setPipeLinePass(graph: ModuleGraph; pass: PipelinePass) {....raises: [],
    tags: [], forbids: [].}
Source   Edit