# 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, treetab, modulegraphs

# Consts

    debugEchoCode = false

  Source Edit

# Procs

    proc echoCode(c: PCtx; start = 0; last = -1) {....deprecated,
        raises: [ValueError, Exception, KeyError, OSError],
        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, OSError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

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

  Source Edit

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

  Source Edit

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

  Source Edit

    proc importcCond(c: PCtx; s: PSym): bool {.inline,
        ...raises: [KeyError, ValueError, OSError, 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