mirror of
https://github.com/nim-lang/Nim.git
synced 2026-07-31 20:49:06 +00:00
1894 lines
210 KiB
HTML
1894 lines
210 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<!-- This file is generated by Nim. -->
|
|
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>modulegraphs</title>
|
|
|
|
<!-- Google fonts -->
|
|
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
|
|
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
|
|
|
<!-- Favicon -->
|
|
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
|
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
|
|
|
|
<!-- CSS -->
|
|
<link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
|
|
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="dochack.js?v=2.3.1"></script>
|
|
</head>
|
|
<body>
|
|
<div class="document" id="documentId">
|
|
<input type="checkbox" id="nav-toggle" hidden>
|
|
<label for="nav-toggle" id="nav-burger">☰</label>
|
|
<label for="nav-toggle" id="nav-overlay"></label>
|
|
<div class="container">
|
|
<h1 class="title">modulegraphs</h1>
|
|
<div class="row">
|
|
<div class="three columns">
|
|
<div class="theme-select-wrapper">
|
|
<label for="theme-select">Theme: </label>
|
|
<select id="theme-select" onchange="setTheme(this.value)">
|
|
<option value="auto">🌗 Match OS</option>
|
|
<option value="dark">🌑 Dark</option>
|
|
<option value="light">🌕 Light</option>
|
|
</select>
|
|
</div>
|
|
<div id="global-links">
|
|
<ul class="simple">
|
|
<li><a id="indexLink" href="theindex.html">Index</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="searchInputDiv">
|
|
Search: <input type="search" id="searchInput" oninput="search()"/>
|
|
</div>
|
|
<div>
|
|
Group by:
|
|
<select onchange="groupBy(this.value)">
|
|
<option value="section">Section</option>
|
|
<option value="type">Type</option>
|
|
</select>
|
|
</div>
|
|
<ul class="simple simple-toc" id="toc-list">
|
|
<li>
|
|
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<li><a class="reference" href="#Iface" title="Iface = object
|
|
module*: PSym ## module this "Iface" belongs to
|
|
converters*: seq[PSym]
|
|
patterns*: seq[PSym]
|
|
pureEnums*: seq[PSym]
|
|
uniqueName*: Rope">Iface</a></li>
|
|
<li><a class="reference" href="#ModuleGraph" title="ModuleGraph {.acyclic.} = ref object
|
|
ifaces*: seq[Iface] ## indexed by int32 fileIdx
|
|
typeInstCache*: Table[ItemId, seq[PType]]
|
|
procInstCache*: Table[ItemId, seq[PInstantiation]]
|
|
attachedOps*: array[TTypeAttachedOp, Table[ItemId, PSym]]
|
|
opsLog*: seq[LogEntry]
|
|
methodsPerGenericType*: Table[ItemId, seq[(int, PSym)]]
|
|
memberProcsPerType*: Table[ItemId, seq[PSym]]
|
|
initializersPerType*: Table[ItemId, PNode]
|
|
enumToStringProcs*: Table[ItemId, PSym]
|
|
emittedTypeInfo*: Table[string, FileIndex]
|
|
icCnifFiles*: seq[string]
|
|
pendingMethodReplays*: seq[PSym]
|
|
icImplDeps*: IntSet
|
|
icQualIfaces*: IntSet
|
|
inVMTransform*: int
|
|
packageSyms*: TStrTable
|
|
deps*: IntSet
|
|
importDeps*: Table[FileIndex, seq[FileIndex]]
|
|
suggestMode*: bool
|
|
interactive*: bool
|
|
withinSystem*: bool
|
|
inclToMod*: Table[FileIndex, FileIndex]
|
|
importStack*: seq[FileIndex]
|
|
backend*: RootRef
|
|
config*: ConfigRef
|
|
cache*: IdentCache
|
|
vm*: RootRef
|
|
repl*: RootRef
|
|
doStopCompile*: proc (): bool {.closure.}
|
|
usageSym*: PSym
|
|
owners*: seq[PSym]
|
|
suggestSymbols*: SuggestSymbolDatabase
|
|
suggestErrors*: Table[FileIndex, seq[Suggest]]
|
|
methods*: seq[tuple[methods: seq[PSym], dispatcher: PSym]]
|
|
bucketTable*: CountTable[ItemId]
|
|
objectTree*: Table[ItemId, seq[tuple[depth: int, value: PType]]]
|
|
methodsPerType*: Table[ItemId, seq[PSym]]
|
|
dispatchers*: seq[PSym]
|
|
systemModule*: PSym
|
|
sysTypes*: array[TTypeKind, PType]
|
|
compilerprocs*: TStrTable
|
|
exposed*: TStrTable
|
|
packageTypes*: TStrTable
|
|
emptyNode*: PNode
|
|
canonTypes*: Table[SigHash, PType]
|
|
symBodyHashes*: Table[int, SigHash]
|
|
importModuleCallback*: proc (graph: ModuleGraph; m: PSym; fileIdx: FileIndex): PSym {.
|
|
nimcall.}
|
|
includeFileCallback*: proc (graph: ModuleGraph; m: PSym; fileIdx: FileIndex): PNode {.
|
|
nimcall.}
|
|
cacheSeqs*: Table[string, PNode]
|
|
cacheCounters*: Table[string, BiggestInt]
|
|
cacheTables*: Table[string, BTree[string, PNode]]
|
|
pendingNifInit*: seq[tuple[module: PSym, topLevel: PNode]]
|
|
passes*: seq[TPass]
|
|
pipelinePass*: PipelinePass
|
|
onDefinition*: proc (graph: ModuleGraph; s: PSym; info: TLineInfo) {.nimcall.}
|
|
onDefinitionResolveForward*: proc (graph: ModuleGraph; s: PSym;
|
|
info: TLineInfo) {.nimcall.}
|
|
onUsage*: proc (graph: ModuleGraph; s: PSym; info: TLineInfo) {.nimcall.}
|
|
globalDestructors*: seq[PNode]
|
|
strongSemCheck*: proc (graph: ModuleGraph; owner: PSym; body: PNode) {.nimcall.}
|
|
compatibleProps*: proc (graph: ModuleGraph; formal, actual: PType): bool {.
|
|
nimcall.}
|
|
idgen*: IdGenerator
|
|
vmTransfIdgen*: IdGenerator
|
|
operators*: Operators
|
|
cachedFiles*: StringTableRef
|
|
procGlobals*: seq[PNode]
|
|
nifReplayActions*: Table[int32, seq[PNode]]
|
|
nifExpansions*: Table[int32, seq[(PSym, TLineInfo)]]">ModuleGraph</a></li>
|
|
<li><a class="reference" href="#ModuleIter" title="ModuleIter = object">ModuleIter</a></li>
|
|
<li><a class="reference" href="#Operators" title="Operators = object
|
|
opNot*, opContains*, opLe*, opLt*, opAnd*, opOr*, opIsNil*, opEq*: PSym
|
|
opAdd*, opSub*, opMul*, opDiv*, opLen*: PSym">Operators</a></li>
|
|
<li><a class="reference" href="#PipelinePass" title="PipelinePass = enum
|
|
NonePass, SemPass, JSgenPass, CgenPass, NifgenPass, EvalPass, InterpreterPass,
|
|
GenDependPass, Docgen2TexPass, Docgen2JsonPass, Docgen2Pass">PipelinePass</a></li>
|
|
<li><a class="reference" href="#PPassContext" title="PPassContext = ref TPassContext">PPassContext</a></li>
|
|
<li><a class="reference" href="#SigHash" title="SigHash = distinct MD5Digest">SigHash</a></li>
|
|
<li><a class="reference" href="#TPass" title="TPass = tuple[open: TPassOpen, process: TPassProcess, close: TPassClose,
|
|
isFrontend: bool]">TPass</a></li>
|
|
<li><a class="reference" href="#TPassClose" title="TPassClose = proc (graph: ModuleGraph; p: PPassContext; n: PNode): PNode {.
|
|
nimcall.}">TPassClose</a></li>
|
|
<li><a class="reference" href="#TPassContext" title="TPassContext = object of RootObj
|
|
idgen*: IdGenerator">TPassContext</a></li>
|
|
<li><a class="reference" href="#TPassOpen" title="TPassOpen = proc (graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext {.
|
|
nimcall.}">TPassOpen</a></li>
|
|
<li><a class="reference" href="#TPassProcess" title="TPassProcess = proc (p: PPassContext; topLevelStmt: PNode): PNode {.nimcall.}">TPassProcess</a></li>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<li><a class="reference" href="#HookDisambBit" title="HookDisambBit = 0x20000000'i32">HookDisambBit</a></li>
|
|
<li><a class="reference" href="#InstanceDisambBit" title="InstanceDisambBit = 0x40000000'i32">InstanceDisambBit</a></li>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">$
|
|
<li><a class="reference" href="#%24%2CSigHash" title="`$`(u: SigHash): string">`$`(u: SigHash): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">==
|
|
<li><a class="reference" href="#%3D%3D%2CSigHash%2CSigHash" title="`==`(a, b: SigHash): bool">`==`(a, b: SigHash): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">addDep
|
|
<li><a class="reference" href="#addDep%2CModuleGraph%2CPSym%2CFileIndex" title="addDep(g: ModuleGraph; m: PSym; dep: FileIndex)">addDep(g: ModuleGraph; m: PSym; dep: FileIndex)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">addDispatchers
|
|
<li><a class="reference" href="#addDispatchers%2CModuleGraph%2CPSym" title="addDispatchers(g: ModuleGraph; value: PSym)">addDispatchers(g: ModuleGraph; value: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">addIncludeDep
|
|
<li><a class="reference" href="#addIncludeDep%2CModuleGraph%2CFileIndex%2CFileIndex" title="addIncludeDep(g: ModuleGraph; module, includeFile: FileIndex)">addIncludeDep(g: ModuleGraph; module, includeFile: FileIndex)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">addMethodToGeneric
|
|
<li><a class="reference" href="#addMethodToGeneric%2CModuleGraph%2Cint%2CPType%2Cint%2CPSym" title="addMethodToGeneric(g: ModuleGraph; module: int; t: PType; col: int; m: PSym)">addMethodToGeneric(g: ModuleGraph; module: int; t: PType; col: int; m: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">addNifReplayAction
|
|
<li><a class="reference" href="#addNifReplayAction%2CModuleGraph%2Cint32%2CPNode" title="addNifReplayAction(g: ModuleGraph; module: int32; n: PNode)">addNifReplayAction(g: ModuleGraph; module: int32; n: PNode)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">belongsToStdlib
|
|
<li><a class="reference" href="#belongsToStdlib%2CModuleGraph%2CPSym" title="belongsToStdlib(graph: ModuleGraph; sym: PSym): bool">belongsToStdlib(graph: ModuleGraph; sym: PSym): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">completePartialOp
|
|
<li><a class="reference" href="#completePartialOp%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym" title="completePartialOp(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)">completePartialOp(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">configComplete
|
|
<li><a class="reference" href="#configComplete%2CModuleGraph" title="configComplete(g: ModuleGraph)">configComplete(g: ModuleGraph)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">copyTypeProps
|
|
<li><a class="reference" href="#copyTypeProps%2CModuleGraph%2Cint%2CPType%2CPType" title="copyTypeProps(g: ModuleGraph; module: int; dest, src: PType)">copyTypeProps(g: ModuleGraph; module: int; dest, src: PType)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">createMagic
|
|
<li><a class="reference" href="#createMagic%2CModuleGraph%2CIdGenerator%2Cstring%2CTMagic" title="createMagic(g: ModuleGraph; idgen: IdGenerator; name: string; m: TMagic): PSym">createMagic(g: ModuleGraph; idgen: IdGenerator; name: string; m: TMagic): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">fileSymbols
|
|
<li><a class="reference" href="#fileSymbols%2CModuleGraph%2CFileIndex" title="fileSymbols(graph: ModuleGraph; fileIdx: FileIndex): SuggestFileSymbolDatabase">fileSymbols(graph: ModuleGraph; fileIdx: FileIndex): SuggestFileSymbolDatabase</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">flushMethodReplays
|
|
<li><a class="reference" href="#flushMethodReplays%2CModuleGraph" title="flushMethodReplays(g: ModuleGraph)">flushMethodReplays(g: ModuleGraph)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getAttachedOp
|
|
<li><a class="reference" href="#getAttachedOp%2CModuleGraph%2CPType%2CTTypeAttachedOp" title="getAttachedOp(g: ModuleGraph; t: PType; op: TTypeAttachedOp): PSym">getAttachedOp(g: ModuleGraph; t: PType; op: TTypeAttachedOp): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getBody
|
|
<li><a class="reference" href="#getBody%2CModuleGraph%2CPSym" title="getBody(g: ModuleGraph; s: PSym): PNode">getBody(g: ModuleGraph; s: PSym): PNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getModule
|
|
<li><a class="reference" href="#getModule%2CModuleGraph%2CFileIndex" title="getModule(g: ModuleGraph; fileIdx: FileIndex): PSym">getModule(g: ModuleGraph; fileIdx: FileIndex): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getPackage
|
|
<li><a class="reference" href="#getPackage%2CModuleGraph%2CFileIndex" title="getPackage(graph: ModuleGraph; fileIdx: FileIndex): PSym">getPackage(graph: ModuleGraph; fileIdx: FileIndex): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getToStringProc
|
|
<li><a class="reference" href="#getToStringProc%2CModuleGraph%2CPType" title="getToStringProc(g: ModuleGraph; t: PType): PSym">getToStringProc(g: ModuleGraph; t: PType): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hasDisabledAsgn
|
|
<li><a class="reference" href="#hasDisabledAsgn%2CModuleGraph%2CPType" title="hasDisabledAsgn(g: ModuleGraph; t: PType): bool">hasDisabledAsgn(g: ModuleGraph; t: PType): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hash
|
|
<li><a class="reference" href="#hash%2CSigHash" title="hash(u: SigHash): Hash">hash(u: SigHash): Hash</a></li>
|
|
<li><a class="reference" href="#hash%2CFileIndex" title="hash(x: FileIndex): Hash">hash(x: FileIndex): Hash</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initModuleIter
|
|
<li><a class="reference" href="#initModuleIter%2CModuleIter%2CModuleGraph%2CPSym%2CPIdent" title="initModuleIter(mi: var ModuleIter; g: ModuleGraph; m: PSym; name: PIdent): PSym">initModuleIter(mi: var ModuleIter; g: ModuleGraph; m: PSym; name: PIdent): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initOperators
|
|
<li><a class="reference" href="#initOperators%2CModuleGraph" title="initOperators(g: ModuleGraph): Operators">initOperators(g: ModuleGraph): Operators</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initStrTables
|
|
<li><a class="reference" href="#initStrTables%2CModuleGraph%2CPSym" title="initStrTables(g: ModuleGraph; m: PSym)">initStrTables(g: ModuleGraph; m: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">isCachedModule
|
|
<li><a class="reference" href="#isCachedModule%2CModuleGraph%2CPSym" title="isCachedModule(g: ModuleGraph; m: PSym): bool">isCachedModule(g: ModuleGraph; m: PSym): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">isDirty
|
|
<li><a class="reference" href="#isDirty%2CModuleGraph%2CPSym" title="isDirty(g: ModuleGraph; m: PSym): bool">isDirty(g: ModuleGraph; m: PSym): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">loadCompilerProc
|
|
<li><a class="reference" href="#loadCompilerProc%2CModuleGraph%2Cstring" title="loadCompilerProc(g: ModuleGraph; name: string): PSym">loadCompilerProc(g: ModuleGraph; name: string): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">logGenericInstance
|
|
<li><a class="reference" href="#logGenericInstance%2CModuleGraph%2CPSym" title="logGenericInstance(g: ModuleGraph; inst: PSym)">logGenericInstance(g: ModuleGraph; inst: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">logMethodDef
|
|
<li><a class="reference" href="#logMethodDef%2CModuleGraph%2CPSym" title="logMethodDef(g: ModuleGraph; s: PSym)">logMethodDef(g: ModuleGraph; s: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">markClientsDirty
|
|
<li><a class="reference" href="#markClientsDirty%2CModuleGraph%2CFileIndex" title="markClientsDirty(g: ModuleGraph; fileIdx: FileIndex)">markClientsDirty(g: ModuleGraph; fileIdx: FileIndex)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">markDirty
|
|
<li><a class="reference" href="#markDirty%2CModuleGraph%2CFileIndex" title="markDirty(g: ModuleGraph; fileIdx: FileIndex)">markDirty(g: ModuleGraph; fileIdx: FileIndex)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">moduleFromNifFile
|
|
<li><a class="reference" href="#moduleFromNifFile%2CModuleGraph%2CFileIndex%2Cset%5BLoadFlag%5D" title="moduleFromNifFile(g: ModuleGraph; fileIdx: FileIndex; flags: set[LoadFlag] = {}): PrecompiledModule">moduleFromNifFile(g: ModuleGraph; fileIdx: FileIndex; flags: set[LoadFlag] = {}): PrecompiledModule</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">moduleOpenForCodegen
|
|
<li><a class="reference" href="#moduleOpenForCodegen%2CModuleGraph%2CFileIndex" title="moduleOpenForCodegen(g: ModuleGraph; m: FileIndex): bool">moduleOpenForCodegen(g: ModuleGraph; m: FileIndex): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">needsCompilation
|
|
<li><a class="reference" href="#needsCompilation%2CModuleGraph" title="needsCompilation(g: ModuleGraph): bool">needsCompilation(g: ModuleGraph): bool</a></li>
|
|
<li><a class="reference" href="#needsCompilation%2CModuleGraph%2CFileIndex" title="needsCompilation(g: ModuleGraph; fileIdx: FileIndex): bool">needsCompilation(g: ModuleGraph; fileIdx: FileIndex): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">needsIncludeScan
|
|
<li><a class="reference" href="#needsIncludeScan%2CModuleGraph%2CFileIndex" title="needsIncludeScan(g: ModuleGraph; fileIdx: FileIndex): bool">needsIncludeScan(g: ModuleGraph; fileIdx: FileIndex): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newModuleGraph
|
|
<li><a class="reference" href="#newModuleGraph%2CIdentCache%2CConfigRef" title="newModuleGraph(cache: IdentCache; config: ConfigRef): ModuleGraph">newModuleGraph(cache: IdentCache; config: ConfigRef): ModuleGraph</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">nextModuleIter
|
|
<li><a class="reference" href="#nextModuleIter%2CModuleIter%2CModuleGraph" title="nextModuleIter(mi: var ModuleIter; g: ModuleGraph): PSym">nextModuleIter(mi: var ModuleIter; g: ModuleGraph): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">onProcessing
|
|
<li><a class="reference" href="#onProcessing%2CModuleGraph%2CFileIndex%2Cstring%2CPSym" title="onProcessing(graph: ModuleGraph; fileIdx: FileIndex; moduleStatus: string;
|
|
fromModule: PSym)">onProcessing(graph: ModuleGraph; fileIdx: FileIndex; moduleStatus: string;
|
|
fromModule: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">parentModule
|
|
<li><a class="reference" href="#parentModule%2CModuleGraph%2CFileIndex" title="parentModule(g: ModuleGraph; fileIdx: FileIndex): FileIndex">parentModule(g: ModuleGraph; fileIdx: FileIndex): FileIndex</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">recordIcImplDep
|
|
<li><a class="reference" href="#recordIcImplDep%2CModuleGraph%2CPSym" title="recordIcImplDep(g: ModuleGraph; s: PSym)">recordIcImplDep(g: ModuleGraph; s: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">reexportedModuleSyms
|
|
<li><a class="reference" href="#reexportedModuleSyms%2CModuleGraph%2CPSym" title="reexportedModuleSyms(g: ModuleGraph; m: PSym): seq[(string, string)]">reexportedModuleSyms(g: ModuleGraph; m: PSym): seq[(string, string)]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">registerIncluderFromNif
|
|
<li><a class="reference" href="#registerIncluderFromNif%2CModuleGraph%2CFileIndex" title="registerIncluderFromNif(g: ModuleGraph; fileIdx: FileIndex): bool">registerIncluderFromNif(g: ModuleGraph; fileIdx: FileIndex): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">registerLoadedHooks
|
|
<li><a class="reference" href="#registerLoadedHooks%2CModuleGraph%2Cseq%5BLogEntry%5D" title="registerLoadedHooks(g: ModuleGraph; logOps: seq[LogEntry])">registerLoadedHooks(g: ModuleGraph; logOps: seq[LogEntry])</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">registerLoadedMethod
|
|
<li><a class="reference" href="#registerLoadedMethod%2CModuleGraph%2CPSym" title="registerLoadedMethod(g: ModuleGraph; m: PSym)">registerLoadedMethod(g: ModuleGraph; m: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">registerModule
|
|
<li><a class="reference" href="#registerModule%2CModuleGraph%2CPSym" title="registerModule(g: ModuleGraph; m: PSym)">registerModule(g: ModuleGraph; m: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">registerModuleById
|
|
<li><a class="reference" href="#registerModuleById%2CModuleGraph%2CFileIndex" title="registerModuleById(g: ModuleGraph; m: FileIndex)">registerModuleById(g: ModuleGraph; m: FileIndex)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">resetAllModules
|
|
<li><a class="reference" href="#resetAllModules%2CModuleGraph" title="resetAllModules(g: ModuleGraph)">resetAllModules(g: ModuleGraph)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">resetForBackend
|
|
<li><a class="reference" href="#resetForBackend%2CModuleGraph" title="resetForBackend(g: ModuleGraph)">resetForBackend(g: ModuleGraph)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setAttachedOp
|
|
<li><a class="reference" href="#setAttachedOp%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym" title="setAttachedOp(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)">setAttachedOp(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)</a></li>
|
|
<li><a class="reference" href="#setAttachedOp%2CModuleGraph%2Cint%2CItemId%2CTTypeAttachedOp%2CPSym" title="setAttachedOp(g: ModuleGraph; module: int; typeId: ItemId; op: TTypeAttachedOp;
|
|
value: PSym)">setAttachedOp(g: ModuleGraph; module: int; typeId: ItemId; op: TTypeAttachedOp;
|
|
value: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setAttachedOpPartial
|
|
<li><a class="reference" href="#setAttachedOpPartial%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym" title="setAttachedOpPartial(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)">setAttachedOpPartial(g: ModuleGraph; module: int; t: PType; op: TTypeAttachedOp;
|
|
value: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setHookDisamb
|
|
<li><a class="reference" href="#setHookDisamb%2CModuleGraph%2CPSym%2Cstring%2CPType" title="setHookDisamb(g: ModuleGraph; hook: PSym; opName: string; typ: PType)">setHookDisamb(g: ModuleGraph; hook: PSym; opName: string; typ: PType)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setInstanceDisamb
|
|
<li><a class="reference" href="#setInstanceDisamb%2CModuleGraph%2CPSym%2CPSym%2CopenArray%5BPType%5D" title="setInstanceDisamb(g: ModuleGraph; inst, generic: PSym;
|
|
concreteTypes: openArray[PType])">setInstanceDisamb(g: ModuleGraph; inst, generic: PSym;
|
|
concreteTypes: openArray[PType])</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setMethodsPerType
|
|
<li><a class="reference" href="#setMethodsPerType%2CModuleGraph%2CItemId%2Cseq%5BPSym%5D" title="setMethodsPerType(g: ModuleGraph; id: ItemId; methods: seq[PSym])">setMethodsPerType(g: ModuleGraph; id: ItemId; methods: seq[PSym])</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">setToStringProc
|
|
<li><a class="reference" href="#setToStringProc%2CModuleGraph%2CPType%2CPSym" title="setToStringProc(g: ModuleGraph; t: PType; value: PSym)">setToStringProc(g: ModuleGraph; t: PType; value: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">someSym
|
|
<li><a class="reference" href="#someSym%2CModuleGraph%2CPSym%2CPIdent" title="someSym(g: ModuleGraph; m: PSym; name: PIdent): PSym">someSym(g: ModuleGraph; m: PSym; name: PIdent): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">someSymAmb
|
|
<li><a class="reference" href="#someSymAmb%2CModuleGraph%2CPSym%2CPIdent%2Cbool" title="someSymAmb(g: ModuleGraph; m: PSym; name: PIdent; amb: var bool): PSym">someSymAmb(g: ModuleGraph; m: PSym; name: PIdent; amb: var bool): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">stopCompile
|
|
<li><a class="reference" href="#stopCompile%2CModuleGraph" title="stopCompile(g: ModuleGraph): bool">stopCompile(g: ModuleGraph): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">strTableAdds
|
|
<li><a class="reference" href="#strTableAdds%2CModuleGraph%2CPSym%2CPSym" title="strTableAdds(g: ModuleGraph; m: PSym; s: PSym)">strTableAdds(g: ModuleGraph; m: PSym; s: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">systemModuleSym
|
|
<li><a class="reference" href="#systemModuleSym%2CModuleGraph%2CPIdent" title="systemModuleSym(g: ModuleGraph; name: PIdent): PSym">systemModuleSym(g: ModuleGraph; name: PIdent): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">uniqueModuleName
|
|
<li><a class="reference" href="#uniqueModuleName%2CConfigRef%2CPSym" title="uniqueModuleName(conf: ConfigRef; m: PSym): string">uniqueModuleName(conf: ConfigRef; m: PSym): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">unmarkAllDirty
|
|
<li><a class="reference" href="#unmarkAllDirty%2CModuleGraph" title="unmarkAllDirty(g: ModuleGraph)">unmarkAllDirty(g: ModuleGraph)</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">allSyms
|
|
<li><a class="reference" href="#allSyms.i%2CModuleGraph%2CPSym" title="allSyms(g: ModuleGraph; m: PSym): PSym">allSyms(g: ModuleGraph; m: PSym): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getDispatchers
|
|
<li><a class="reference" href="#getDispatchers.i%2CModuleGraph" title="getDispatchers(g: ModuleGraph): PSym">getDispatchers(g: ModuleGraph): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getMethodsPerType
|
|
<li><a class="reference" href="#getMethodsPerType.i%2CModuleGraph%2CPType" title="getMethodsPerType(g: ModuleGraph; t: PType): PSym">getMethodsPerType(g: ModuleGraph; t: PType): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">methodsForGeneric
|
|
<li><a class="reference" href="#methodsForGeneric.i%2CModuleGraph%2CPType" title="methodsForGeneric(g: ModuleGraph; t: PType): (int, PSym)">methodsForGeneric(g: ModuleGraph; t: PType): (int, PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">procInstCacheItems
|
|
<li><a class="reference" href="#procInstCacheItems.i%2CModuleGraph%2CPSym" title="procInstCacheItems(g: ModuleGraph; s: PSym): PInstantiation">procInstCacheItems(g: ModuleGraph; s: PSym): PInstantiation</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">suggestErrorsIter
|
|
<li><a class="reference" href="#suggestErrorsIter.i%2CModuleGraph" title="suggestErrorsIter(g: ModuleGraph): Suggest">suggestErrorsIter(g: ModuleGraph): Suggest</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">suggestSymbolsIter
|
|
<li><a class="reference" href="#suggestSymbolsIter.i%2CModuleGraph" title="suggestSymbolsIter(g: ModuleGraph): SymInfoPair">suggestSymbolsIter(g: ModuleGraph): SymInfoPair</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">systemModuleSyms
|
|
<li><a class="reference" href="#systemModuleSyms.i%2CModuleGraph%2CPIdent" title="systemModuleSyms(g: ModuleGraph; name: PIdent): PSym">systemModuleSyms(g: ModuleGraph; name: PIdent): PSym</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">typeInstCacheItems
|
|
<li><a class="reference" href="#typeInstCacheItems.i%2CModuleGraph%2CPSym" title="typeInstCacheItems(g: ModuleGraph; s: PSym): PType">typeInstCacheItems(g: ModuleGraph; s: PSym): PType</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">onDef
|
|
<li><a class="reference" href="#onDef.t%2CTLineInfo%2CPSym" title="onDef(info: TLineInfo; s: PSym)">onDef(info: TLineInfo; s: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">onDefResolveForward
|
|
<li><a class="reference" href="#onDefResolveForward.t%2CTLineInfo%2CPSym" title="onDefResolveForward(info: TLineInfo; s: PSym)">onDefResolveForward(info: TLineInfo; s: PSym)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">onUse
|
|
<li><a class="reference" href="#onUse.t%2CTLineInfo%2CPSym" title="onUse(info: TLineInfo; s: PSym; isGenericInstance = false)">onUse(info: TLineInfo; s: PSym; isGenericInstance = false)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">semtabAll
|
|
<li><a class="reference" href="#semtabAll.t%2CModuleGraph%2CPSym" title="semtabAll(g: ModuleGraph; m: PSym): TStrTable">semtabAll(g: ModuleGraph; m: PSym): TStrTable</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
<div class="nine columns" id="content">
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
<div id="tocRoot"></div>
|
|
|
|
<p class="module-desc">This module implements the module graph data structure. The module graph represents a complete Nim project. Single modules can either be kept in RAM or stored in a rod-file.</p>
|
|
<div class="section" id="6">
|
|
<h1><a class="toc-backref" href="#6">Imports</a></h1>
|
|
<dl class="item">
|
|
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="btrees.html">btrees</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="packages.html">packages</a>, <a class="reference external" href="suggestsymdb.html">suggestsymdb</a>, <a class="reference external" href="ast2nif.html">ast2nif</a>, <a class="reference external" href="typekeys.html">typekeys</a>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="7">
|
|
<h1><a class="toc-backref" href="#7">Types</a></h1>
|
|
<dl class="item">
|
|
<div id="Iface">
|
|
<dt><pre><a href="#Iface"><span class="Identifier">Iface</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> <span class="Comment">## module this "Iface" belongs to</span>
|
|
<span class="Identifier">converters</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">patterns</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">pureEnums</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">uniqueName</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a></pre></dt>
|
|
<dd>
|
|
|
|
data we don't want to store directly in the ast.PSym type for s.kind == skModule
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L30" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L30" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="ModuleGraph">
|
|
<dt><pre><a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">ifaces</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#Iface"><span class="Identifier">Iface</span></a><span class="Other">]</span> <span class="Comment">## indexed by int32 fileIdx</span>
|
|
<span class="Identifier">typeInstCache</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">procInstCache</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PInstantiation"><span class="Identifier">PInstantiation</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">attachedOps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TTypeAttachedOp</span><span class="Other">,</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">opsLog</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#LogEntry"><span class="Identifier">LogEntry</span></a><span class="Other">]</span>
|
|
<span class="Identifier">methodsPerGenericType</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">memberProcsPerType</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">initializersPerType</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span>
|
|
<span class="Identifier">enumToStringProcs</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">emittedTypeInfo</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">]</span>
|
|
<span class="Identifier">icCnifFiles</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">]</span>
|
|
<span class="Identifier">pendingMethodReplays</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">icImplDeps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">IntSet</span>
|
|
<span class="Identifier">icQualIfaces</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">IntSet</span>
|
|
<span class="Identifier">inVMTransform</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">packageSyms</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a>
|
|
<span class="Identifier">deps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">IntSet</span>
|
|
<span class="Identifier">importDeps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">suggestMode</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
|
|
<span class="Identifier">interactive</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
|
|
<span class="Identifier">withinSystem</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
|
|
<span class="Identifier">inclToMod</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">,</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">]</span>
|
|
<span class="Identifier">importStack</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">]</span>
|
|
<span class="Identifier">backend</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">RootRef</span>
|
|
<span class="Identifier">config</span><span class="Operator">*</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a>
|
|
<span class="Identifier">cache</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a>
|
|
<span class="Identifier">vm</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">RootRef</span>
|
|
<span class="Identifier">repl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">RootRef</span>
|
|
<span class="Identifier">doStopCompile</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">closure</span>.}
|
|
<span class="Identifier">usageSym</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
|
|
<span class="Identifier">owners</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">suggestSymbols</span><span class="Operator">*</span><span class="Other">:</span> <a href="suggestsymdb.html#SuggestSymbolDatabase"><span class="Identifier">SuggestSymbolDatabase</span></a>
|
|
<span class="Identifier">suggestErrors</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="options.html#Suggest"><span class="Identifier">Suggest</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">methods</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">methods</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">dispatcher</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">bucketTable</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">CountTable</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">]</span>
|
|
<span class="Identifier">objectTree</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">depth</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">,</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">methodsPerType</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">dispatchers</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
|
|
<span class="Identifier">systemModule</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
|
|
<span class="Identifier">sysTypes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TTypeKind</span><span class="Other">,</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span>
|
|
<span class="Identifier">compilerprocs</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a>
|
|
<span class="Identifier">exposed</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a>
|
|
<span class="Identifier">packageTypes</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a>
|
|
<span class="Identifier">emptyNode</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
|
|
<span class="Identifier">canonTypes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">,</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span>
|
|
<span class="Identifier">symBodyHashes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">int</span><span class="Other">,</span> <a href="#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">]</span>
|
|
<span class="Identifier">importModuleCallback</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">includeFileCallback</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.
|
|
<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">cacheSeqs</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span>
|
|
<span class="Identifier">cacheCounters</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">BiggestInt</span><span class="Other">]</span>
|
|
<span class="Identifier">cacheTables</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <a href="btrees.html#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">pendingNifInit</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">,</span> <span class="Identifier">topLevel</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">passes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#TPass"><span class="Identifier">TPass</span></a><span class="Other">]</span>
|
|
<span class="Identifier">pipelinePass</span><span class="Operator">*</span><span class="Other">:</span> <a href="#PipelinePass"><span class="Identifier">PipelinePass</span></a>
|
|
<span class="Identifier">onDefinition</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span> {.<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">onDefinitionResolveForward</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
|
|
<span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span> {.<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">onUsage</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span> {.<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">globalDestructors</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span>
|
|
<span class="Identifier">strongSemCheck</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span> {.<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">compatibleProps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">formal</span><span class="Other">,</span> <span class="Identifier">actual</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span class="Identifier">nimcall</span>.}
|
|
<span class="Identifier">idgen</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a>
|
|
<span class="Identifier">vmTransfIdgen</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a>
|
|
<span class="Identifier">operators</span><span class="Operator">*</span><span class="Other">:</span> <a href="#Operators"><span class="Identifier">Operators</span></a>
|
|
<span class="Identifier">cachedFiles</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">StringTableRef</span>
|
|
<span class="Identifier">procGlobals</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span>
|
|
<span class="Identifier">nifReplayActions</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">int32</span><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">]</span>
|
|
<span class="Identifier">nifExpansions</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">int32</span><span class="Other">,</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Other">(</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">,</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">]</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L57" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L57" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="ModuleIter">
|
|
<dt><pre><a href="#ModuleIter"><span class="Identifier">ModuleIter</span></a> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L276" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L276" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="Operators">
|
|
<dt><pre><a href="#Operators"><span class="Identifier">Operators</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">opNot</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opContains</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opLe</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opLt</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opAnd</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opOr</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opIsNil</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opEq</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
|
|
<span class="Identifier">opAdd</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opSub</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opMul</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opDiv</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">opLen</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L40" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L40" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="PipelinePass">
|
|
<dt><pre><a href="#PipelinePass"><span class="Identifier">PipelinePass</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
|
|
<span class="Identifier">NonePass</span><span class="Other">,</span> <span class="Identifier">SemPass</span><span class="Other">,</span> <span class="Identifier">JSgenPass</span><span class="Other">,</span> <span class="Identifier">CgenPass</span><span class="Other">,</span> <span class="Identifier">NifgenPass</span><span class="Other">,</span> <span class="Identifier">EvalPass</span><span class="Other">,</span> <span class="Identifier">InterpreterPass</span><span class="Other">,</span>
|
|
<span class="Identifier">GenDependPass</span><span class="Other">,</span> <span class="Identifier">Docgen2TexPass</span><span class="Other">,</span> <span class="Identifier">Docgen2JsonPass</span><span class="Other">,</span> <span class="Identifier">Docgen2Pass</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L44" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L44" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="PPassContext">
|
|
<dt><pre><a href="#PPassContext"><span class="Identifier">PPassContext</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="#TPassContext"><span class="Identifier">TPassContext</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L190" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L190" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="SigHash">
|
|
<dt><pre><a href="#SigHash"><span class="Identifier">SigHash</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">MD5Digest</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L28" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L28" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TPass">
|
|
<dt><pre><a href="#TPass"><span class="Identifier">TPass</span></a> <span class="Other">=</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">open</span><span class="Other">:</span> <a href="#TPassOpen"><span class="Identifier">TPassOpen</span></a><span class="Other">,</span> <span class="Identifier">process</span><span class="Other">:</span> <a href="#TPassProcess"><span class="Identifier">TPassProcess</span></a><span class="Other">,</span> <span class="Identifier">close</span><span class="Other">:</span> <a href="#TPassClose"><span class="Identifier">TPassClose</span></a><span class="Other">,</span>
|
|
<span class="Identifier">isFrontend</span><span class="Other">:</span> <span class="Identifier">bool</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L196" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L196" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TPassClose">
|
|
<dt><pre><a href="#TPassClose"><span class="Identifier">TPassClose</span></a> <span class="Other">=</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">p</span><span class="Other">:</span> <a href="#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.
|
|
<span class="Identifier">nimcall</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L193" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L193" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TPassContext">
|
|
<dt><pre><a href="#TPassContext"><span class="Identifier">TPassContext</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">RootObj</span>
|
|
<span class="Identifier">idgen</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L188" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L188" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TPassOpen">
|
|
<dt><pre><a href="#TPassOpen"><span class="Identifier">TPassOpen</span></a> <span class="Other">=</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#PPassContext"><span class="Identifier">PPassContext</span></a> {.
|
|
<span class="Identifier">nimcall</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L192" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L192" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TPassProcess">
|
|
<dt><pre><a href="#TPassProcess"><span class="Identifier">TPassProcess</span></a> <span class="Other">=</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">topLevelStmt</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span class="Identifier">nimcall</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L194" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L194" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="10">
|
|
<h1><a class="toc-backref" href="#10">Consts</a></h1>
|
|
<dl class="item">
|
|
<div id="HookDisambBit">
|
|
<dt><pre><a href="#HookDisambBit"><span class="Identifier">HookDisambBit</span></a> <span class="Other">=</span> <span class="DecNumber">0x20000000'i32</span></pre></dt>
|
|
<dd>
|
|
|
|
Set in the <tt class="docutils literal"><span class="pre"><span class="Identifier">disamb</span></span></tt> of synthesized type-bound operators and <tt class="docutils literal"><span class="pre"><span class="Operator">$</span><span class="Keyword">enum</span></span></tt> procs whose value is content-derived (see <tt class="docutils literal"><span class="pre"><span class="Identifier">setHookDisamb</span></span></tt>); disjoint from both the small counter range and the <tt class="docutils literal"><span class="pre"><span class="Identifier">InstanceDisambBit</span></span></tt> range.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L574" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L574" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="InstanceDisambBit">
|
|
<dt><pre><a href="#InstanceDisambBit"><span class="Identifier">InstanceDisambBit</span></a> <span class="Other">=</span> <span class="DecNumber">0x40000000'i32</span></pre></dt>
|
|
<dd>
|
|
|
|
Set in the <tt class="docutils literal"><span class="pre"><span class="Identifier">disamb</span></span></tt> of routine instances whose value is content-derived (see <tt class="docutils literal"><span class="pre"><span class="Identifier">setInstanceDisamb</span></span></tt>); keeps them disjoint from the small counter range ordinary symbols draw from, so the NIF name <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span><span class="Operator">.</span><span class="Identifier">disamb</span><span class="Operator">.</span><span class="Identifier">module</span></span></tt> stays collision-free within a module.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L530" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L530" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="12">
|
|
<h1><a class="toc-backref" href="#12">Procs</a></h1>
|
|
<dl class="item">
|
|
<div id="$-procs-all">
|
|
<div id="$,SigHash">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CSigHash"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">u</span><span class="Other">:</span> <a href="#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L652" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L652" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="==-procs-all">
|
|
<div id="==,SigHash,SigHash">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CSigHash%2CSigHash"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L655" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L655" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="addDep-procs-all">
|
|
<div id="addDep,ModuleGraph,PSym,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#addDep%2CModuleGraph%2CPSym%2CFileIndex"><span class="Identifier">addDep</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">dep</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L834" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L834" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="addDispatchers-procs-all">
|
|
<div id="addDispatchers,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#addDispatchers%2CModuleGraph%2CPSym"><span class="Identifier">addDispatchers</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L431" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L431" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="addIncludeDep-procs-all">
|
|
<div id="addIncludeDep,ModuleGraph,FileIndex,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#addIncludeDep%2CModuleGraph%2CFileIndex%2CFileIndex"><span class="Identifier">addIncludeDep</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">,</span> <span class="Identifier">includeFile</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L842" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L842" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="addMethodToGeneric-procs-all">
|
|
<div id="addMethodToGeneric,ModuleGraph,int,PType,int,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#addMethodToGeneric%2CModuleGraph%2Cint%2CPType%2Cint%2CPSym"><span class="Identifier">addMethodToGeneric</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">col</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L472" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L472" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="addNifReplayAction-procs-all">
|
|
<div id="addNifReplayAction,ModuleGraph,int32,PNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#addNifReplayAction%2CModuleGraph%2Cint32%2CPNode"><span class="Identifier">addNifReplayAction</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Stores a replay action for NIF-based incremental compilation.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L443" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L443" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="belongsToStdlib-procs-all">
|
|
<div id="belongsToStdlib,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#belongsToStdlib%2CModuleGraph%2CPSym"><span class="Identifier">belongsToStdlib</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Check if symbol belongs to the 'stdlib' package.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1193" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1193" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="completePartialOp-procs-all">
|
|
<div id="completePartialOp,ModuleGraph,int,PType,TTypeAttachedOp,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#completePartialOp%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym"><span class="Identifier">completePartialOp</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span>
|
|
<span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L424" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L424" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="configComplete-procs-all">
|
|
<div id="configComplete,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#configComplete%2CModuleGraph"><span class="Identifier">configComplete</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1168" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1168" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="copyTypeProps-procs-all">
|
|
<div id="copyTypeProps,ModuleGraph,int,PType,PType">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#copyTypeProps%2CModuleGraph%2Cint%2CPType%2CPType"><span class="Identifier">copyTypeProps</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L613" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L613" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="createMagic-procs-all">
|
|
<div id="createMagic,ModuleGraph,IdGenerator,string,TMagic">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#createMagic%2CModuleGraph%2CIdGenerator%2Cstring%2CTMagic"><span class="Identifier">createMagic</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#TMagic"><span class="Identifier">TMagic</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L680" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L680" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="fileSymbols-procs-all">
|
|
<div id="fileSymbols,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#fileSymbols%2CModuleGraph%2CFileIndex"><span class="Identifier">fileSymbols</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="suggestsymdb.html#SuggestFileSymbolDatabase"><span class="Identifier">SuggestFileSymbolDatabase</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1206" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1206" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="flushMethodReplays-procs-all">
|
|
<div id="flushMethodReplays,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#flushMethodReplays%2CModuleGraph"><span class="Identifier">flushMethodReplays</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Builds the dispatch buckets from the method registrations collected during module loading; called once every module of the program is loaded (<tt class="docutils literal"><span class="pre"><span class="Identifier">nifbackend</span><span class="Operator">.</span><span class="Identifier">generateCode</span></span></tt>).
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L513" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L513" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getAttachedOp-procs-all">
|
|
<div id="getAttachedOp,ModuleGraph,PType,TTypeAttachedOp">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getAttachedOp%2CModuleGraph%2CPType%2CTTypeAttachedOp"><span class="Identifier">getAttachedOp</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
returns the requested attached operation for type <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Can return nil if no such operation exists.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L343" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L343" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getBody-procs-all">
|
|
<div id="getBody,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getBody%2CModuleGraph%2CPSym"><span class="Identifier">getBody</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span>
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L912" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L912" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getModule-procs-all">
|
|
<div id="getModule,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getModule%2CModuleGraph%2CFileIndex"><span class="Identifier">getModule</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L814" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L814" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getPackage-procs-all">
|
|
<div id="getPackage,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getPackage%2CModuleGraph%2CFileIndex"><span class="Identifier">getPackage</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadDirEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Returns a package symbol for yet to be defined module for fileIdx. The package symbol is added to the graph if it doesn't exist.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1182" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1182" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getToStringProc-procs-all">
|
|
<div id="getToStringProc,ModuleGraph,PType">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getToStringProc%2CModuleGraph%2CPType"><span class="Identifier">getToStringProc</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L452" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L452" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hasDisabledAsgn-procs-all">
|
|
<div id="hasDisabledAsgn,ModuleGraph,PType">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasDisabledAsgn%2CModuleGraph%2CPType"><span class="Identifier">hasDisabledAsgn</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L609" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L609" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hash-procs-all">
|
|
<div id="hash,SigHash">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CSigHash"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">u</span><span class="Other">:</span> <a href="#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L658" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L658" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hash,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CFileIndex"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</span> {.<span class="Identifier">borrow</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L663" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L663" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initModuleIter-procs-all">
|
|
<div id="initModuleIter,ModuleIter,ModuleGraph,PSym,PIdent">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initModuleIter%2CModuleIter%2CModuleGraph%2CPSym%2CPIdent"><span class="Identifier">initModuleIter</span></a><span class="Other">(</span><span class="Identifier">mi</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#ModuleIter"><span class="Identifier">ModuleIter</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L281" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L281" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initOperators-procs-all">
|
|
<div id="initOperators,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initOperators%2CModuleGraph"><span class="Identifier">initOperators</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#Operators"><span class="Identifier">Operators</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L746" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L746" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initStrTables-procs-all">
|
|
<div id="initStrTables,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initStrTables%2CModuleGraph%2CPSym"><span class="Identifier">initStrTables</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L261" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L261" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="isCachedModule-procs-all">
|
|
<div id="isCachedModule,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#isCachedModule%2CModuleGraph%2CPSym"><span class="Identifier">isCachedModule</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L272" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L272" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="isDirty-procs-all">
|
|
<div id="isDirty,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#isDirty%2CModuleGraph%2CPSym"><span class="Identifier">isDirty</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L876" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L876" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="loadCompilerProc-procs-all">
|
|
<div id="loadCompilerProc,ModuleGraph,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#loadCompilerProc%2CModuleGraph%2Cstring"><span class="Identifier">loadCompilerProc</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L619" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L619" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="logGenericInstance-procs-all">
|
|
<div id="logGenericInstance,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#logGenericInstance%2CModuleGraph%2CPSym"><span class="Identifier">logGenericInstance</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">inst</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Log a generic instance so it gets written to the NIF file. This is needed when generic instances are created during compile-time evaluation and may be referenced from other modules compiled in the same run.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L521" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L521" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="logMethodDef-procs-all">
|
|
<div id="logMethodDef,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#logMethodDef%2CModuleGraph%2CPSym"><span class="Identifier">logMethodDef</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Log a method registration (<tt class="docutils literal"><span class="pre"><span class="Identifier">cgmeth</span><span class="Operator">.</span><span class="Identifier">methodDef</span></span></tt>) so that importers and the backend can rebuild the dispatch buckets (<tt class="docutils literal"><span class="pre"><span class="Identifier">g</span><span class="Operator">.</span><span class="Identifier">methods</span></span></tt>) from the NIF replay log — the serialized method ast carries its dispatcher sym at <tt class="docutils literal"><span class="pre"><span class="Identifier">dispatcherPos</span></span></tt>, so replay reuses the original dispatcher that all call sites reference by name (see <tt class="docutils literal"><span class="pre"><span class="Identifier">registerLoadedMethod</span></span></tt>).
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L478" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L478" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="markClientsDirty-procs-all">
|
|
<div id="markClientsDirty,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#markClientsDirty%2CModuleGraph%2CFileIndex"><span class="Identifier">markClientsDirty</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L879" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L879" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="markDirty-procs-all">
|
|
<div id="markDirty,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#markDirty%2CModuleGraph%2CFileIndex"><span class="Identifier">markDirty</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L863" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L863" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="moduleFromNifFile-procs-all">
|
|
<div id="moduleFromNifFile,ModuleGraph,FileIndex,set[LoadFlag]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#moduleFromNifFile%2CModuleGraph%2CFileIndex%2Cset%5BLoadFlag%5D"><span class="Identifier">moduleFromNifFile</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">;</span>
|
|
<span class="Identifier">flags</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast2nif.html#LoadFlag"><span class="Identifier">LoadFlag</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</span><span class="Other">)</span><span class="Other">:</span> <a href="ast2nif.html#PrecompiledModule"><span class="Identifier">PrecompiledModule</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Returns 'nil' if the module needs to be recompiled. Loads module from NIF file when optCompress is enabled. When loadFullAst is true, loads the complete module AST for code generation.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1039" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1039" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="moduleOpenForCodegen-procs-all">
|
|
<div id="moduleOpenForCodegen,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#moduleOpenForCodegen%2CModuleGraph%2CFileIndex"><span class="Identifier">moduleOpenForCodegen</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L820" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L820" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="needsCompilation-procs-all">
|
|
<div id="needsCompilation,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#needsCompilation%2CModuleGraph"><span class="Identifier">needsCompilation</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L892" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L892" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="needsCompilation,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#needsCompilation%2CModuleGraph%2CFileIndex"><span class="Identifier">needsCompilation</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L901" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L901" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="needsIncludeScan-procs-all">
|
|
<div id="needsIncludeScan,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#needsIncludeScan%2CModuleGraph%2CFileIndex"><span class="Identifier">needsIncludeScan</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
True when <tt class="docutils literal"><span class="pre"><span class="Identifier">fileIdx</span></span></tt> is neither a known module of its own nor an already-known include file — i.e. a cold-opened file whose includer we must still discover via <tt class="docutils literal"><span class="pre"><span class="Identifier">registerIncluderFromNif</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1162" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1162" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newModuleGraph-procs-all">
|
|
<div id="newModuleGraph,IdentCache,ConfigRef">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newModuleGraph%2CIdentCache%2CConfigRef"><span class="Identifier">newModuleGraph</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L794" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L794" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="nextModuleIter-procs-all">
|
|
<div id="nextModuleIter,ModuleIter,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#nextModuleIter%2CModuleIter%2CModuleGraph"><span class="Identifier">nextModuleIter</span></a><span class="Other">(</span><span class="Identifier">mi</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#ModuleIter"><span class="Identifier">ModuleIter</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L287" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L287" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="onProcessing-procs-all">
|
|
<div id="onProcessing,ModuleGraph,FileIndex,string,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#onProcessing%2CModuleGraph%2CFileIndex%2Cstring%2CPSym"><span class="Identifier">onProcessing</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">;</span> <span class="Identifier">moduleStatus</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
|
|
<span class="Identifier">fromModule</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span>
|
|
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span>
|
|
<span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1172" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1172" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="parentModule-procs-all">
|
|
<div id="parentModule,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#parentModule%2CModuleGraph%2CFileIndex"><span class="Identifier">parentModule</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
returns 'fileIdx' if the file belonging to this index is directly used as a module or else the module that first references this include file.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L845" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L845" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="recordIcImplDep-procs-all">
|
|
<div id="recordIcImplDep,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#recordIcImplDep%2CModuleGraph%2CPSym"><span class="Identifier">recordIcImplDep</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
NeedsImpl edge tracking, see <tt class="docutils literal"><span class="pre"><span class="Identifier">icImplDeps</span></span></tt>. Called from the compile-time body consumption sites (vmgen's proc compilation, the getImpl opcodes). Own-module and group-member entries are filtered out when the <tt class="docutils literal"><span class="pre"><span class="Operator">.</span><span class="Identifier">edges</span></span></tt> sidecar is written.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L823" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L823" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="reexportedModuleSyms-procs-all">
|
|
<div id="reexportedModuleSyms,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#reexportedModuleSyms%2CModuleGraph%2CPSym"><span class="Identifier">reexportedModuleSyms</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Other">(</span><span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">]</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
(name, NIF module suffix) of MODULE syms in <tt class="docutils literal"><span class="pre"><span class="Identifier">m</span></span></tt>'s interface — these are re-exports (<tt class="docutils literal"><span class="pre"><span class="Keyword">import</span> <span class="Identifier">x</span><span class="Punctuation">;</span> <span class="Keyword">export</span> <span class="Identifier">x</span></span></tt>, added by <tt class="docutils literal"><span class="pre"><span class="Identifier">reexportSym</span></span></tt>) acting as qualifiers (<tt class="docutils literal"><span class="pre"><span class="Identifier">m</span><span class="Operator">.</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">sym</span></span></tt>). Consumed by the NIF writer; semExport does not put them into the nkExportStmt children, so the AST walk cannot see them.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L296" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L296" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="registerIncluderFromNif-procs-all">
|
|
<div id="registerIncluderFromNif,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#registerIncluderFromNif%2CModuleGraph%2CFileIndex"><span class="Identifier">registerIncluderFromNif</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Targeted cold-include discovery for nimsuggest: scan the nimcache NIFs (<tt class="docutils literal"><span class="pre"><span class="Identifier">scanIncludeGraph</span></span></tt>) for a module whose include-set contains <em>this</em> file and register only that single include->module edge in <tt class="docutils literal"><span class="pre"><span class="Identifier">inclToMod</span></span></tt>, so a query inside the include file resolves its includer via <tt class="docutils literal"><span class="pre"><span class="Identifier">parentModule</span></span></tt>.</p>
|
|
<p>Deliberately targeted: registering <em>every</em> include relationship (i.e. also <tt class="docutils literal"><span class="pre"><span class="Identifier">system</span></span></tt>'s own <tt class="docutils literal"><span class="pre"><span class="Keyword">include</span></span></tt>s) eagerly assigns FileIndexes and pollutes <tt class="docutils literal"><span class="pre"><span class="Identifier">inclToMod</span></span></tt>, which perturbs the NIF line-info decode of unrelated modules (<tt class="docutils literal"><span class="pre"><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">string</span></span></tt> then resolves into <tt class="docutils literal"><span class="pre"><span class="Identifier">excpt</span><span class="Operator">.</span><span class="Identifier">nim</span></span></tt>). Touch nothing but the one edge we need.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1143" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1143" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="registerLoadedHooks-procs-all">
|
|
<div id="registerLoadedHooks,ModuleGraph,seq[LogEntry]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#registerLoadedHooks%2CModuleGraph%2Cseq%5BLogEntry%5D"><span class="Identifier">registerLoadedHooks</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">logOps</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#LogEntry"><span class="Identifier">LogEntry</span></a><span class="Other">]</span><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L921" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L921" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="registerLoadedMethod-procs-all">
|
|
<div id="registerLoadedMethod,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#registerLoadedMethod%2CModuleGraph%2CPSym"><span class="Identifier">registerLoadedMethod</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Rebuild the dispatch buckets from a serialized method registration. Buckets group the methods sharing a dispatcher; the dispatcher's BODY does not exist in serialized form — <tt class="docutils literal"><span class="pre"><span class="Identifier">generateIfMethodDispatchers</span></span></tt> synthesizes it in the backend from the complete bucket.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L488" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L488" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="registerModule-procs-all">
|
|
<div id="registerModule,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#registerModule%2CModuleGraph%2CPSym"><span class="Identifier">registerModule</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L731" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L731" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="registerModuleById-procs-all">
|
|
<div id="registerModuleById,ModuleGraph,FileIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#registerModuleById%2CModuleGraph%2CFileIndex"><span class="Identifier">registerModuleById</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L743" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L743" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="resetAllModules-procs-all">
|
|
<div id="resetAllModules,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#resetAllModules%2CModuleGraph"><span class="Identifier">resetAllModules</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
|
|
<span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L801" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L801" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="resetForBackend-procs-all">
|
|
<div id="resetForBackend,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#resetForBackend%2CModuleGraph"><span class="Identifier">resetForBackend</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L201" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L201" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setAttachedOp-procs-all">
|
|
<div id="setAttachedOp,ModuleGraph,int,PType,TTypeAttachedOp,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setAttachedOp%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym"><span class="Identifier">setAttachedOp</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a><span class="Other">;</span>
|
|
<span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
we also need to record this to the packed module.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L364" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L364" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="setAttachedOp,ModuleGraph,int,ItemId,TTypeAttachedOp,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setAttachedOp%2CModuleGraph%2Cint%2CItemId%2CTTypeAttachedOp%2CPSym"><span class="Identifier">setAttachedOp</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">typeId</span><span class="Other">:</span> <a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">;</span>
|
|
<span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Overload that takes ItemId directly, useful for registering hooks from NIF index.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L416" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L416" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setAttachedOpPartial-procs-all">
|
|
<div id="setAttachedOpPartial,ModuleGraph,int,PType,TTypeAttachedOp,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setAttachedOpPartial%2CModuleGraph%2Cint%2CPType%2CTTypeAttachedOp%2CPSym"><span class="Identifier">setAttachedOpPartial</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span>
|
|
<span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
we also need to record this to the packed module.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L420" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L420" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setHookDisamb-procs-all">
|
|
<div id="setHookDisamb,ModuleGraph,PSym,string,PType">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setHookDisamb%2CModuleGraph%2CPSym%2Cstring%2CPType"><span class="Identifier">setHookDisamb</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">hook</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">opName</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Under IC, replace a synthesized hook's counter-based <tt class="docutils literal"><span class="pre"><span class="Identifier">disamb</span></span></tt> with a content-derived one: a hash of the operation name plus the <tt class="docutils literal"><span class="pre"><span class="Identifier">typeKey</span></span></tt> of the type it is bound to. Counter disambs renumber whenever an <em>earlier</em> hook appears in a re-semmed module, so cached translation units keep calling the old <tt class="docutils literal"><span class="pre"><span class="Identifier">_u</span><span class="Operator"><</span><span class="Identifier">disamb</span><span class="Operator">></span></span></tt> C name while the regenerated producer defines a new one — the hook flavor of the backend def-migration hole. With a content-derived value the hook's NIF name (and hence its C name) is stable as long as the type itself is unchanged.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L579" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L579" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setInstanceDisamb-procs-all">
|
|
<div id="setInstanceDisamb,ModuleGraph,PSym,PSym,openArray[PType]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setInstanceDisamb%2CModuleGraph%2CPSym%2CPSym%2CopenArray%5BPType%5D"><span class="Identifier">setInstanceDisamb</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">inst</span><span class="Other">,</span> <span class="Identifier">generic</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
|
|
<span class="Identifier">concreteTypes</span><span class="Other">:</span> <span class="Identifier">openArray</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Under IC, replace a fresh routine instance's counter-based <tt class="docutils literal"><span class="pre"><span class="Identifier">disamb</span></span></tt> with a content-derived one: a hash of the generic's identity plus the <tt class="docutils literal"><span class="pre"><span class="Identifier">typeKey</span></span></tt> of every concrete type argument — exactly the identity the instantiation cache compares. The instance's NIF name <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span><span class="Operator">.</span><span class="Identifier">disamb</span><span class="Operator">.</span><span class="Identifier">modsuffix</span></span></tt> then differs only in the module suffix when the same instantiation is made by different modules, which is the prerequisite for cross-module generic-instance merging (and gives the dce analysis its <tt class="docutils literal"><span class="pre"><span class="Identifier">offers</span></span></tt> keys). The hash is computed once, here; it is never recomputed — the value travels in the serialized <tt class="docutils literal"><span class="pre"><span class="Identifier">disamb</span></span></tt> field.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L536" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L536" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setMethodsPerType-procs-all">
|
|
<div id="setMethodsPerType,ModuleGraph,ItemId,seq[PSym]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setMethodsPerType%2CModuleGraph%2CItemId%2Cseq%5BPSym%5D"><span class="Identifier">setMethodsPerType</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">id</span><span class="Other">:</span> <a href="itemids.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">;</span> <span class="Identifier">methods</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L439" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L439" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="setToStringProc-procs-all">
|
|
<div id="setToStringProc,ModuleGraph,PType,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#setToStringProc%2CModuleGraph%2CPType%2CPSym"><span class="Identifier">setToStringProc</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L459" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L459" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="someSym-procs-all">
|
|
<div id="someSym,ModuleGraph,PSym,PIdent">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#someSym%2CModuleGraph%2CPSym%2CPIdent"><span class="Identifier">someSym</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L308" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L308" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="someSymAmb-procs-all">
|
|
<div id="someSymAmb,ModuleGraph,PSym,PIdent,bool">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#someSymAmb%2CModuleGraph%2CPSym%2CPIdent%2Cbool"><span class="Identifier">someSymAmb</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">;</span> <span class="Identifier">amb</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">bool</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L312" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L312" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="stopCompile-procs-all">
|
|
<div id="stopCompile,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#stopCompile%2CModuleGraph"><span class="Identifier">stopCompile</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L677" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L677" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="strTableAdds-procs-all">
|
|
<div id="strTableAdds,ModuleGraph,PSym,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#strTableAdds%2CModuleGraph%2CPSym%2CPSym"><span class="Identifier">strTableAdds</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L265" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L265" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="systemModuleSym-procs-all">
|
|
<div id="systemModuleSym,ModuleGraph,PIdent">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#systemModuleSym%2CModuleGraph%2CPIdent"><span class="Identifier">systemModuleSym</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L320" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L320" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="uniqueModuleName-procs-all">
|
|
<div id="uniqueModuleName,ConfigRef,PSym">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#uniqueModuleName%2CConfigRef%2CPSym"><span class="Identifier">uniqueModuleName</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
The unique module name is guaranteed to only contain {'A'..'Z', 'a'..'z', '0'..'9', '_'} so that it is useful as a C identifier snippet.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L688" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L688" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="unmarkAllDirty-procs-all">
|
|
<div id="unmarkAllDirty,ModuleGraph">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#unmarkAllDirty%2CModuleGraph"><span class="Identifier">unmarkAllDirty</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L870" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L870" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="15">
|
|
<h1><a class="toc-backref" href="#15">Iterators</a></h1>
|
|
<dl class="item">
|
|
<div id="allSyms-iterators-all">
|
|
<div id="allSyms.i,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#allSyms.i%2CModuleGraph%2CPSym"><span class="Identifier">allSyms</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L290" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L290" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getDispatchers-iterators-all">
|
|
<div id="getDispatchers.i,ModuleGraph">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#getDispatchers.i%2CModuleGraph"><span class="Identifier">getDispatchers</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L427" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L427" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getMethodsPerType-iterators-all">
|
|
<div id="getMethodsPerType.i,ModuleGraph,PType">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#getMethodsPerType.i%2CModuleGraph%2CPType"><span class="Identifier">getMethodsPerType</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L447" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L447" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="methodsForGeneric-iterators-all">
|
|
<div id="methodsForGeneric.i,ModuleGraph,PType">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#methodsForGeneric.i%2CModuleGraph%2CPType"><span class="Identifier">methodsForGeneric</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L467" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L467" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="procInstCacheItems-iterators-all">
|
|
<div id="procInstCacheItems.i,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#procInstCacheItems.i%2CModuleGraph%2CPSym"><span class="Identifier">procInstCacheItems</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PInstantiation"><span class="Identifier">PInstantiation</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L336" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L336" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="suggestErrorsIter-iterators-all">
|
|
<div id="suggestErrorsIter.i,ModuleGraph">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#suggestErrorsIter.i%2CModuleGraph"><span class="Identifier">suggestErrorsIter</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="options.html#Suggest"><span class="Identifier">Suggest</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1215" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1215" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="suggestSymbolsIter-iterators-all">
|
|
<div id="suggestSymbolsIter.i,ModuleGraph">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#suggestSymbolsIter.i%2CModuleGraph"><span class="Identifier">suggestSymbolsIter</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="suggestsymdb.html#SymInfoPair"><span class="Identifier">SymInfoPair</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L1210" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L1210" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="systemModuleSyms-iterators-all">
|
|
<div id="systemModuleSyms.i,ModuleGraph,PIdent">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#systemModuleSyms.i%2CModuleGraph%2CPIdent"><span class="Identifier">systemModuleSyms</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L323" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L323" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="typeInstCacheItems-iterators-all">
|
|
<div id="typeInstCacheItems.i,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#typeInstCacheItems.i%2CModuleGraph%2CPSym"><span class="Identifier">typeInstCacheItems</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L330" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L330" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="18">
|
|
<h1><a class="toc-backref" href="#18">Templates</a></h1>
|
|
<dl class="item">
|
|
<div id="onDef-templates-all">
|
|
<div id="onDef.t,TLineInfo,PSym">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#onDef.t%2CTLineInfo%2CPSym"><span class="Identifier">onDef</span></a><span class="Other">(</span><span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L674" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L674" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="onDefResolveForward-templates-all">
|
|
<div id="onDefResolveForward.t,TLineInfo,PSym">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#onDefResolveForward.t%2CTLineInfo%2CPSym"><span class="Identifier">onDefResolveForward</span></a><span class="Other">(</span><span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L675" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L675" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="onUse-templates-all">
|
|
<div id="onUse.t,TLineInfo,PSym">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#onUse.t%2CTLineInfo%2CPSym"><span class="Identifier">onUse</span></a><span class="Other">(</span><span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">isGenericInstance</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L673" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L673" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="semtabAll-templates-all">
|
|
<div id="semtabAll.t,ModuleGraph,PSym">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#semtabAll.t%2CModuleGraph%2CPSym"><span class="Identifier">semtabAll</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/modulegraphs.nim#L258" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/modulegraphs.nim#L258" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="twelve-columns footer">
|
|
<span class="nim-sprite"></span>
|
|
<br>
|
|
<small style="color: var(--hint);">Made with Nim. Generated: 2026-07-31 03:44:07 UTC</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
|
|
|
|
</body>
|
|
</html>
|