nimvm is magic
This commit is contained in:
parent
49869a2b10
commit
790ef23c48
3 changed files with 8 additions and 1 deletions
|
|
@ -605,7 +605,8 @@ type
|
||||||
mNBindSym, mLocals, mNCallSite,
|
mNBindSym, mLocals, mNCallSite,
|
||||||
mEqIdent, mEqNimrodNode, mSameNodeType, mGetImpl,
|
mEqIdent, mEqNimrodNode, mSameNodeType, mGetImpl,
|
||||||
mNHint, mNWarning, mNError,
|
mNHint, mNWarning, mNError,
|
||||||
mInstantiationInfo, mGetTypeInfo, mNGenSym
|
mInstantiationInfo, mGetTypeInfo, mNGenSym,
|
||||||
|
mNimvm
|
||||||
|
|
||||||
# things that we can evaluate safely at compile time, even if not asked for it:
|
# things that we can evaluate safely at compile time, even if not asked for it:
|
||||||
const
|
const
|
||||||
|
|
|
||||||
|
|
@ -640,6 +640,8 @@ proc getConstExpr(m: PSym, n: PNode): PNode =
|
||||||
of mNaN: result = newFloatNodeT(NaN, n)
|
of mNaN: result = newFloatNodeT(NaN, n)
|
||||||
of mInf: result = newFloatNodeT(Inf, n)
|
of mInf: result = newFloatNodeT(Inf, n)
|
||||||
of mNegInf: result = newFloatNodeT(NegInf, n)
|
of mNegInf: result = newFloatNodeT(NegInf, n)
|
||||||
|
of mNimvm:
|
||||||
|
localError(n.info, "illegal context for 'nimvm' magic")
|
||||||
else:
|
else:
|
||||||
if sfFakeConst notin s.flags: result = copyTree(s.ast)
|
if sfFakeConst notin s.flags: result = copyTree(s.ast)
|
||||||
of {skProc, skMethod}:
|
of {skProc, skMethod}:
|
||||||
|
|
|
||||||
|
|
@ -1173,6 +1173,10 @@ const
|
||||||
## "i386", "alpha", "powerpc", "powerpc64", "powerpc64el", "sparc",
|
## "i386", "alpha", "powerpc", "powerpc64", "powerpc64el", "sparc",
|
||||||
## "amd64", "mips", "mipsel", "arm", "arm64".
|
## "amd64", "mips", "mipsel", "arm", "arm64".
|
||||||
|
|
||||||
|
nimvm* {.magic: "Nimvm".}: bool = false
|
||||||
|
## may be used only in "when" expression.
|
||||||
|
## It is true in Nim VM context and false otherwise
|
||||||
|
|
||||||
seqShallowFlag = low(int)
|
seqShallowFlag = low(int)
|
||||||
|
|
||||||
proc compileOption*(option: string): bool {.
|
proc compileOption*(option: string): bool {.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue