W3cubDocs

/Nim

ic/replayer

Source Edit

Module that contains code to replay global VM state changes and pragma state like {.compile: "foo.c".}. For IC (= Incremental compilation) support.

Imports

../ast, ../modulegraphs, ../trees, ../extccomp, ../btrees, ../msgs, ../lineinfos, ../pathutils, ../options, ../cgmeth, packed_ast, ic, bitabs

Procs

proc replayBackendProcs(g: ModuleGraph; module: int) {.
    ...raises: [KeyError, Exception], tags: [ReadDirEffect, RootEffect],
    forbids: [].}
Source Edit
proc replayGenericCacheInformation(g: ModuleGraph; module: int) {....raises: [
    KeyError, Exception, ValueError, OSError, IOError, ERecoverableError], tags: [
    ReadDirEffect, RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
    forbids: [].}
We remember the generic instantiations a module performed in order to to avoid the code bloat that generic code tends to imply. This is cheaper than deduplication of identical generic instantiations. However, deduplication is more powerful and general and I hope to implement it soon too (famous last words). Source Edit
proc replayStateChanges(module: PSym; g: ModuleGraph) {....raises: [Exception,
    ValueError, KeyError, OSError, IOError, ERecoverableError, EOFError], tags: [
    RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect,
    WriteDirEffect], forbids: [].}
Source Edit

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/compiler/ic/replayer.html