Label registry. Mirrors runtime/src/components.rs LabelRegistry.
Types
LabelRegistry = object statics*: Table[(string, int), AssemblyOffset] dynamics*: seq[Option[AssemblyOffset]] localVersions*: Table[string, int]
StaticLabel = object name*: string version*: int ## 0 = global, >=1 = local generation
Procs
proc clear(r: var LabelRegistry) {....raises: [], tags: [], forbids: [].}
proc defineDynamic(r: var LabelRegistry; id: DynamicLabel; off: AssemblyOffset) {. ...raises: [DynasmError], tags: [], forbids: [].}
proc defineGlobal(r: var LabelRegistry; name: string; off: AssemblyOffset) {. ...raises: [DynasmError], tags: [], forbids: [].}
proc defineLocal(r: var LabelRegistry; name: string; off: AssemblyOffset) {. ...raises: [KeyError], tags: [], forbids: [].}
proc firstLocal(name: string): StaticLabel {....raises: [], tags: [], forbids: [].}
proc getName(l: StaticLabel): string {....raises: [], tags: [], forbids: [].}
proc globalLabel(name: string): StaticLabel {....raises: [], tags: [], forbids: [].}
proc initLabelRegistry(): LabelRegistry {....raises: [], tags: [], forbids: [].}
proc isGlobal(l: StaticLabel): bool {....raises: [], tags: [], forbids: [].}
proc isLocal(l: StaticLabel): bool {....raises: [], tags: [], forbids: [].}
proc localLabel(name: string; version: int): StaticLabel {....raises: [], tags: [], forbids: [].}
proc newDynamicLabel(r: var LabelRegistry): DynamicLabel {....raises: [], tags: [], forbids: [].}
proc nextLocal(l: StaticLabel): StaticLabel {....raises: [], tags: [], forbids: [].}
proc placeLocalReference(r: LabelRegistry; name: string): tuple[found: bool, label: StaticLabel] {....raises: [KeyError], tags: [], forbids: [].}
proc resolveDynamic(r: LabelRegistry; id: DynamicLabel): AssemblyOffset {. ...raises: [DynasmError], tags: [], forbids: [].}
proc resolveStatic(r: LabelRegistry; label: StaticLabel): AssemblyOffset {. ...raises: [DynasmError, KeyError], tags: [], forbids: [].}