# vmgen

Theme:

- Index

Search:
Group by:
Source Edit

This module implements the code generator for the VM.

# Imports

ast, types, msgs, renderer, vmdef, trees, magicsys, options, lowerings, lineinfos, transf, astmsgs, modulegraphs

# Consts

    debugEchoCode = false

  Source Edit

# Procs

    proc echoCode(c: PCtx; start = 0; last = -1) {....deprecated,
        raises: [ValueError, Exception, KeyError],
        tags: [RootEffect, ReadDirEffect], forbids: [].}

  Deprecated
  Source Edit

    proc fitsRegister(t: PType): bool {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc genExpr(c: PCtx; n: PNode; requiresValue = true): int {.
        ...raises: [Exception, ValueError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc genProc(c: PCtx; s: PSym): int {....raises: [KeyError, Exception, ValueError,
        IOError, ERecoverableError, OSError], tags: [ReadDirEffect, RootEffect,
        WriteIOEffect, ReadIOEffect, ReadEnvEffect, TimeEffect], forbids: [].}

  Source Edit

    proc genStmt(c: PCtx; n: PNode): int {....raises: [Exception, ValueError, KeyError,
        IOError, ERecoverableError], tags: [RootEffect, ReadDirEffect,
                                            WriteIOEffect, ReadIOEffect,
                                            ReadEnvEffect], forbids: [].}

  Source Edit

    proc getNullValue(typ: PType; info: TLineInfo; conf: ConfigRef): PNode {.
        ...raises: [Exception, ValueError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc importcCond(c: PCtx; s: PSym): bool {.inline,
        ...raises: [KeyError, Exception], tags: [ReadDirEffect, RootEffect],
        forbids: [].}

  return true to importc `s`, false to execute its body instead (refs #8405) Source Edit

    proc importcCondVar(s: PSym): bool {.inline, ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc sameConstant(a, b: PNode): bool {....raises: [], tags: [], forbids: [].}

  Source Edit