small fixes for windows
This commit is contained in:
parent
af65f91e23
commit
1c8ddca7e0
4 changed files with 276 additions and 272 deletions
|
|
@ -750,7 +750,7 @@ proc collectCycles(gch: var TGcHeap) =
|
||||||
CellSetDeinit(gch.cycleRoots)
|
CellSetDeinit(gch.cycleRoots)
|
||||||
gch.cycleRoots = newRoots
|
gch.cycleRoots = newRoots
|
||||||
|
|
||||||
proc gcMark(p: pointer) {.fastcall.} =
|
proc gcMark(p: pointer) = # {.fastcall.} =
|
||||||
# the addresses are not as objects on the stack, so turn them to objects:
|
# the addresses are not as objects on the stack, so turn them to objects:
|
||||||
var cell = usrToCell(p)
|
var cell = usrToCell(p)
|
||||||
var c = cast[TAddress](cell)
|
var c = cast[TAddress](cell)
|
||||||
|
|
|
||||||
106
lib/macros.nim
106
lib/macros.nim
|
|
@ -30,59 +30,59 @@
|
||||||
# if key[-4:] == "Flag": continue
|
# if key[-4:] == "Flag": continue
|
||||||
# cog.out(toEnum(key, val))
|
# cog.out(toEnum(key, val))
|
||||||
#]]]
|
#]]]
|
||||||
type
|
type
|
||||||
TNimrodNodeKind* = enum
|
TNimrodTypeKind* = enum
|
||||||
nnkNone, nnkEmpty, nnkIdent, nnkSym,
|
ntyNone, ntyBool, ntyChar, ntyEmpty,
|
||||||
nnkType, nnkCharLit, nnkIntLit, nnkInt8Lit,
|
ntyArrayConstr, ntyNil, ntyGeneric, ntyGenericInst,
|
||||||
nnkInt16Lit, nnkInt32Lit, nnkInt64Lit, nnkFloatLit,
|
ntyGenericParam, ntyEnum, ntyAnyEnum, ntyArray,
|
||||||
nnkFloat32Lit, nnkFloat64Lit, nnkStrLit, nnkRStrLit,
|
ntyObject, ntyTuple, ntySet, ntyRange,
|
||||||
nnkTripleStrLit, nnkMetaNode, nnkNilLit, nnkDotCall,
|
ntyPtr, ntyRef, ntyVar, ntySequence,
|
||||||
nnkCommand, nnkCall, nnkGenericCall, nnkExplicitTypeListCall,
|
ntyProc, ntyPointer, ntyOpenArray, ntyString,
|
||||||
nnkExprEqExpr, nnkExprColonExpr, nnkIdentDefs, nnkInfix,
|
ntyCString, ntyForward, ntyInt, ntyInt8,
|
||||||
nnkPrefix, nnkPostfix, nnkPar, nnkCurly,
|
ntyInt16, ntyInt32, ntyInt64, ntyFloat,
|
||||||
nnkBracket, nnkBracketExpr, nnkPragmaExpr, nnkRange,
|
ntyFloat32, ntyFloat64, ntyFloat128
|
||||||
nnkDotExpr, nnkCheckedFieldExpr, nnkDerefExpr, nnkIfExpr,
|
TNimTypeKinds* = set[TNimrodTypeKind]
|
||||||
nnkElifExpr, nnkElseExpr, nnkLambda, nnkAccQuoted,
|
TNimrodSymKind* = enum
|
||||||
nnkHeaderQuoted, nnkTableConstr, nnkQualified, nnkHiddenStdConv,
|
nskUnknownSym, nskConditional, nskDynLib, nskParam,
|
||||||
nnkHiddenSubConv, nnkHiddenCallConv, nnkConv, nnkCast,
|
nskTypeParam, nskTemp, nskType, nskConst,
|
||||||
nnkAddr, nnkHiddenAddr, nnkHiddenDeref, nnkObjDownConv,
|
nskVar, nskProc, nskIterator, nskConverter,
|
||||||
nnkObjUpConv, nnkChckRangeF, nnkChckRange64, nnkChckRange,
|
nskMacro, nskTemplate, nskField, nskEnumField,
|
||||||
nnkStringToCString, nnkCStringToString, nnkPassAsOpenArray, nnkAsgn,
|
nskForVar, nskModule, nskLabel, nskStub
|
||||||
nnkDefaultTypeParam, nnkGenericParams, nnkFormalParams, nnkOfInherit,
|
TNimSymKinds* = set[TNimrodSymKind]
|
||||||
nnkModule, nnkProcDef, nnkConverterDef, nnkMacroDef,
|
TNimrodNodeKind* = enum
|
||||||
nnkTemplateDef, nnkIteratorDef, nnkOfBranch, nnkElifBranch,
|
nnkNone, nnkEmpty, nnkIdent, nnkSym,
|
||||||
nnkExceptBranch, nnkElse, nnkMacroStmt, nnkAsmStmt,
|
nnkType, nnkCharLit, nnkIntLit, nnkInt8Lit,
|
||||||
nnkPragma, nnkIfStmt, nnkWhenStmt, nnkForStmt,
|
nnkInt16Lit, nnkInt32Lit, nnkInt64Lit, nnkFloatLit,
|
||||||
nnkWhileStmt, nnkCaseStmt, nnkVarSection, nnkConstSection,
|
nnkFloat32Lit, nnkFloat64Lit, nnkStrLit, nnkRStrLit,
|
||||||
nnkConstDef, nnkTypeSection, nnkTypeDef, nnkYieldStmt,
|
nnkTripleStrLit, nnkMetaNode, nnkNilLit, nnkDotCall,
|
||||||
nnkTryStmt, nnkFinally, nnkRaiseStmt, nnkReturnStmt,
|
nnkCommand, nnkCall, nnkGenericCall, nnkExplicitTypeListCall,
|
||||||
nnkBreakStmt, nnkContinueStmt, nnkBlockStmt, nnkDiscardStmt,
|
nnkExprEqExpr, nnkExprColonExpr, nnkIdentDefs, nnkInfix,
|
||||||
nnkStmtList, nnkImportStmt, nnkFromStmt, nnkImportAs,
|
nnkPrefix, nnkPostfix, nnkPar, nnkCurly,
|
||||||
nnkIncludeStmt, nnkAccessStmt, nnkCommentStmt, nnkStmtListExpr,
|
nnkBracket, nnkBracketExpr, nnkPragmaExpr, nnkRange,
|
||||||
nnkBlockExpr, nnkStmtListType, nnkBlockType, nnkVm,
|
nnkDotExpr, nnkCheckedFieldExpr, nnkDerefExpr, nnkIfExpr,
|
||||||
nnkTypeOfExpr, nnkObjectTy, nnkTupleTy, nnkRecList,
|
nnkElifExpr, nnkElseExpr, nnkLambda, nnkAccQuoted,
|
||||||
nnkRecCase, nnkRecWhen, nnkRefTy, nnkPtrTy,
|
nnkHeaderQuoted, nnkTableConstr, nnkQualified, nnkHiddenStdConv,
|
||||||
nnkVarTy, nnkProcTy, nnkEnumTy, nnkEnumFieldDef,
|
nnkHiddenSubConv, nnkHiddenCallConv, nnkConv, nnkCast,
|
||||||
nnkReturnToken
|
nnkAddr, nnkHiddenAddr, nnkHiddenDeref, nnkObjDownConv,
|
||||||
TNimNodeKinds* = set[TNimrodNodeKind]
|
nnkObjUpConv, nnkChckRangeF, nnkChckRange64, nnkChckRange,
|
||||||
TNimrodTypeKind* = enum
|
nnkStringToCString, nnkCStringToString, nnkPassAsOpenArray, nnkAsgn,
|
||||||
ntyNone, ntyBool, ntyChar, ntyEmpty,
|
nnkDefaultTypeParam, nnkGenericParams, nnkFormalParams, nnkOfInherit,
|
||||||
ntyArrayConstr, ntyNil, ntyGeneric, ntyGenericInst,
|
nnkModule, nnkProcDef, nnkConverterDef, nnkMacroDef,
|
||||||
ntyGenericParam, ntyEnum, ntyAnyEnum, ntyArray,
|
nnkTemplateDef, nnkIteratorDef, nnkOfBranch, nnkElifBranch,
|
||||||
ntyObject, ntyTuple, ntySet, ntyRange,
|
nnkExceptBranch, nnkElse, nnkMacroStmt, nnkAsmStmt,
|
||||||
ntyPtr, ntyRef, ntyVar, ntySequence,
|
nnkPragma, nnkIfStmt, nnkWhenStmt, nnkForStmt,
|
||||||
ntyProc, ntyPointer, ntyOpenArray, ntyString,
|
nnkWhileStmt, nnkCaseStmt, nnkVarSection, nnkConstSection,
|
||||||
ntyCString, ntyForward, ntyInt, ntyInt8,
|
nnkConstDef, nnkTypeSection, nnkTypeDef, nnkYieldStmt,
|
||||||
ntyInt16, ntyInt32, ntyInt64, ntyFloat,
|
nnkTryStmt, nnkFinally, nnkRaiseStmt, nnkReturnStmt,
|
||||||
ntyFloat32, ntyFloat64, ntyFloat128
|
nnkBreakStmt, nnkContinueStmt, nnkBlockStmt, nnkDiscardStmt,
|
||||||
TNimTypeKinds* = set[TNimrodTypeKind]
|
nnkStmtList, nnkImportStmt, nnkFromStmt, nnkImportAs,
|
||||||
TNimrodSymKind* = enum
|
nnkIncludeStmt, nnkAccessStmt, nnkCommentStmt, nnkStmtListExpr,
|
||||||
nskUnknownSym, nskConditional, nskDynLib, nskParam,
|
nnkBlockExpr, nnkStmtListType, nnkBlockType, nnkVm,
|
||||||
nskTypeParam, nskTemp, nskType, nskConst,
|
nnkTypeOfExpr, nnkObjectTy, nnkTupleTy, nnkRecList,
|
||||||
nskVar, nskProc, nskIterator, nskConverter,
|
nnkRecCase, nnkRecWhen, nnkRefTy, nnkPtrTy,
|
||||||
nskMacro, nskTemplate, nskField, nskEnumField,
|
nnkVarTy, nnkProcTy, nnkEnumTy, nnkEnumFieldDef,
|
||||||
nskForVar, nskModule, nskLabel, nskStub
|
nnkReturnToken
|
||||||
TNimSymKinds* = set[TNimrodSymKind]
|
TNimNodeKinds* = set[TNimrodNodeKind]
|
||||||
#[[[end]]]
|
#[[[end]]]
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
|
||||||
434
nim/ast.pas
434
nim/ast.pas
|
|
@ -65,148 +65,148 @@ for key, val in enums.items():
|
||||||
cog.out(a)
|
cog.out(a)
|
||||||
cog.out(b)
|
cog.out(b)
|
||||||
]]]*)
|
]]]*)
|
||||||
type
|
type
|
||||||
TNodeKind = (
|
TTypeFlag = (
|
||||||
nkNone, nkEmpty, nkIdent, nkSym,
|
tfVarargs, tfFinal, tfAcyclic, tfEnumHasWholes);
|
||||||
nkType, nkCharLit, nkIntLit, nkInt8Lit,
|
TTypeFlags = set of TTypeFlag;
|
||||||
nkInt16Lit, nkInt32Lit, nkInt64Lit, nkFloatLit,
|
const
|
||||||
nkFloat32Lit, nkFloat64Lit, nkStrLit, nkRStrLit,
|
TypeFlagToStr: array [TTypeFlag] of string = (
|
||||||
nkTripleStrLit, nkMetaNode, nkNilLit, nkDotCall,
|
'tfVarargs', 'tfFinal', 'tfAcyclic', 'tfEnumHasWholes');
|
||||||
nkCommand, nkCall, nkGenericCall, nkExplicitTypeListCall,
|
type
|
||||||
nkExprEqExpr, nkExprColonExpr, nkIdentDefs, nkInfix,
|
TTypeKind = (
|
||||||
nkPrefix, nkPostfix, nkPar, nkCurly,
|
tyNone, tyBool, tyChar, tyEmpty,
|
||||||
nkBracket, nkBracketExpr, nkPragmaExpr, nkRange,
|
tyArrayConstr, tyNil, tyGeneric, tyGenericInst,
|
||||||
nkDotExpr, nkCheckedFieldExpr, nkDerefExpr, nkIfExpr,
|
tyGenericParam, tyEnum, tyAnyEnum, tyArray,
|
||||||
nkElifExpr, nkElseExpr, nkLambda, nkAccQuoted,
|
tyObject, tyTuple, tySet, tyRange,
|
||||||
nkHeaderQuoted, nkTableConstr, nkQualified, nkHiddenStdConv,
|
tyPtr, tyRef, tyVar, tySequence,
|
||||||
nkHiddenSubConv, nkHiddenCallConv, nkConv, nkCast,
|
tyProc, tyPointer, tyOpenArray, tyString,
|
||||||
nkAddr, nkHiddenAddr, nkHiddenDeref, nkObjDownConv,
|
tyCString, tyForward, tyInt, tyInt8,
|
||||||
nkObjUpConv, nkChckRangeF, nkChckRange64, nkChckRange,
|
tyInt16, tyInt32, tyInt64, tyFloat,
|
||||||
nkStringToCString, nkCStringToString, nkPassAsOpenArray, nkAsgn,
|
tyFloat32, tyFloat64, tyFloat128);
|
||||||
nkDefaultTypeParam, nkGenericParams, nkFormalParams, nkOfInherit,
|
TTypeKinds = set of TTypeKind;
|
||||||
nkModule, nkProcDef, nkConverterDef, nkMacroDef,
|
const
|
||||||
nkTemplateDef, nkIteratorDef, nkOfBranch, nkElifBranch,
|
TypeKindToStr: array [TTypeKind] of string = (
|
||||||
nkExceptBranch, nkElse, nkMacroStmt, nkAsmStmt,
|
'tyNone', 'tyBool', 'tyChar', 'tyEmpty',
|
||||||
nkPragma, nkIfStmt, nkWhenStmt, nkForStmt,
|
'tyArrayConstr', 'tyNil', 'tyGeneric', 'tyGenericInst',
|
||||||
nkWhileStmt, nkCaseStmt, nkVarSection, nkConstSection,
|
'tyGenericParam', 'tyEnum', 'tyAnyEnum', 'tyArray',
|
||||||
nkConstDef, nkTypeSection, nkTypeDef, nkYieldStmt,
|
'tyObject', 'tyTuple', 'tySet', 'tyRange',
|
||||||
nkTryStmt, nkFinally, nkRaiseStmt, nkReturnStmt,
|
'tyPtr', 'tyRef', 'tyVar', 'tySequence',
|
||||||
nkBreakStmt, nkContinueStmt, nkBlockStmt, nkDiscardStmt,
|
'tyProc', 'tyPointer', 'tyOpenArray', 'tyString',
|
||||||
nkStmtList, nkImportStmt, nkFromStmt, nkImportAs,
|
'tyCString', 'tyForward', 'tyInt', 'tyInt8',
|
||||||
nkIncludeStmt, nkAccessStmt, nkCommentStmt, nkStmtListExpr,
|
'tyInt16', 'tyInt32', 'tyInt64', 'tyFloat',
|
||||||
nkBlockExpr, nkStmtListType, nkBlockType, nkVm,
|
'tyFloat32', 'tyFloat64', 'tyFloat128');
|
||||||
nkTypeOfExpr, nkObjectTy, nkTupleTy, nkRecList,
|
type
|
||||||
nkRecCase, nkRecWhen, nkRefTy, nkPtrTy,
|
TSymFlag = (
|
||||||
nkVarTy, nkProcTy, nkEnumTy, nkEnumFieldDef,
|
sfUsed, sfStar, sfMinus, sfInInterface,
|
||||||
nkReturnToken);
|
sfFromGeneric, sfGlobal, sfForward, sfImportc,
|
||||||
TNodeKinds = set of TNodeKind;
|
sfExportc, sfVolatile, sfRegister, sfPure,
|
||||||
const
|
sfResult, sfNoSideEffect, sfMainModule, sfSystemModule,
|
||||||
NodeKindToStr: array [TNodeKind] of string = (
|
sfNoReturn, sfAddrTaken, sfCompilerProc, sfCppMethod,
|
||||||
'nkNone', 'nkEmpty', 'nkIdent', 'nkSym',
|
sfDiscriminant, sfDeprecated, sfInClosure, sfTypeCheck,
|
||||||
'nkType', 'nkCharLit', 'nkIntLit', 'nkInt8Lit',
|
sfCompileTime, sfThreadVar, sfMerge);
|
||||||
'nkInt16Lit', 'nkInt32Lit', 'nkInt64Lit', 'nkFloatLit',
|
TSymFlags = set of TSymFlag;
|
||||||
'nkFloat32Lit', 'nkFloat64Lit', 'nkStrLit', 'nkRStrLit',
|
const
|
||||||
'nkTripleStrLit', 'nkMetaNode', 'nkNilLit', 'nkDotCall',
|
SymFlagToStr: array [TSymFlag] of string = (
|
||||||
'nkCommand', 'nkCall', 'nkGenericCall', 'nkExplicitTypeListCall',
|
'sfUsed', 'sfStar', 'sfMinus', 'sfInInterface',
|
||||||
'nkExprEqExpr', 'nkExprColonExpr', 'nkIdentDefs', 'nkInfix',
|
'sfFromGeneric', 'sfGlobal', 'sfForward', 'sfImportc',
|
||||||
'nkPrefix', 'nkPostfix', 'nkPar', 'nkCurly',
|
'sfExportc', 'sfVolatile', 'sfRegister', 'sfPure',
|
||||||
'nkBracket', 'nkBracketExpr', 'nkPragmaExpr', 'nkRange',
|
'sfResult', 'sfNoSideEffect', 'sfMainModule', 'sfSystemModule',
|
||||||
'nkDotExpr', 'nkCheckedFieldExpr', 'nkDerefExpr', 'nkIfExpr',
|
'sfNoReturn', 'sfAddrTaken', 'sfCompilerProc', 'sfCppMethod',
|
||||||
'nkElifExpr', 'nkElseExpr', 'nkLambda', 'nkAccQuoted',
|
'sfDiscriminant', 'sfDeprecated', 'sfInClosure', 'sfTypeCheck',
|
||||||
'nkHeaderQuoted', 'nkTableConstr', 'nkQualified', 'nkHiddenStdConv',
|
'sfCompileTime', 'sfThreadVar', 'sfMerge');
|
||||||
'nkHiddenSubConv', 'nkHiddenCallConv', 'nkConv', 'nkCast',
|
type
|
||||||
'nkAddr', 'nkHiddenAddr', 'nkHiddenDeref', 'nkObjDownConv',
|
TNodeFlag = (
|
||||||
'nkObjUpConv', 'nkChckRangeF', 'nkChckRange64', 'nkChckRange',
|
nfNone, nfBase2, nfBase8, nfBase16,
|
||||||
'nkStringToCString', 'nkCStringToString', 'nkPassAsOpenArray', 'nkAsgn',
|
nfAllConst, nfTransf, nfSem);
|
||||||
'nkDefaultTypeParam', 'nkGenericParams', 'nkFormalParams', 'nkOfInherit',
|
TNodeFlags = set of TNodeFlag;
|
||||||
'nkModule', 'nkProcDef', 'nkConverterDef', 'nkMacroDef',
|
const
|
||||||
'nkTemplateDef', 'nkIteratorDef', 'nkOfBranch', 'nkElifBranch',
|
NodeFlagToStr: array [TNodeFlag] of string = (
|
||||||
'nkExceptBranch', 'nkElse', 'nkMacroStmt', 'nkAsmStmt',
|
'nfNone', 'nfBase2', 'nfBase8', 'nfBase16',
|
||||||
'nkPragma', 'nkIfStmt', 'nkWhenStmt', 'nkForStmt',
|
'nfAllConst', 'nfTransf', 'nfSem');
|
||||||
'nkWhileStmt', 'nkCaseStmt', 'nkVarSection', 'nkConstSection',
|
type
|
||||||
'nkConstDef', 'nkTypeSection', 'nkTypeDef', 'nkYieldStmt',
|
TSymKind = (
|
||||||
'nkTryStmt', 'nkFinally', 'nkRaiseStmt', 'nkReturnStmt',
|
skUnknownSym, skConditional, skDynLib, skParam,
|
||||||
'nkBreakStmt', 'nkContinueStmt', 'nkBlockStmt', 'nkDiscardStmt',
|
skTypeParam, skTemp, skType, skConst,
|
||||||
'nkStmtList', 'nkImportStmt', 'nkFromStmt', 'nkImportAs',
|
skVar, skProc, skIterator, skConverter,
|
||||||
'nkIncludeStmt', 'nkAccessStmt', 'nkCommentStmt', 'nkStmtListExpr',
|
skMacro, skTemplate, skField, skEnumField,
|
||||||
'nkBlockExpr', 'nkStmtListType', 'nkBlockType', 'nkVm',
|
skForVar, skModule, skLabel, skStub);
|
||||||
'nkTypeOfExpr', 'nkObjectTy', 'nkTupleTy', 'nkRecList',
|
TSymKinds = set of TSymKind;
|
||||||
'nkRecCase', 'nkRecWhen', 'nkRefTy', 'nkPtrTy',
|
const
|
||||||
'nkVarTy', 'nkProcTy', 'nkEnumTy', 'nkEnumFieldDef',
|
SymKindToStr: array [TSymKind] of string = (
|
||||||
'nkReturnToken');
|
'skUnknownSym', 'skConditional', 'skDynLib', 'skParam',
|
||||||
type
|
'skTypeParam', 'skTemp', 'skType', 'skConst',
|
||||||
TSymFlag = (
|
'skVar', 'skProc', 'skIterator', 'skConverter',
|
||||||
sfUsed, sfStar, sfMinus, sfInInterface,
|
'skMacro', 'skTemplate', 'skField', 'skEnumField',
|
||||||
sfFromGeneric, sfGlobal, sfForward, sfImportc,
|
'skForVar', 'skModule', 'skLabel', 'skStub');
|
||||||
sfExportc, sfVolatile, sfRegister, sfPure,
|
type
|
||||||
sfResult, sfNoSideEffect, sfMainModule, sfSystemModule,
|
TNodeKind = (
|
||||||
sfNoReturn, sfAddrTaken, sfCompilerProc, sfCppMethod,
|
nkNone, nkEmpty, nkIdent, nkSym,
|
||||||
sfDiscriminant, sfDeprecated, sfInClosure, sfTypeCheck,
|
nkType, nkCharLit, nkIntLit, nkInt8Lit,
|
||||||
sfCompileTime, sfThreadVar, sfMerge);
|
nkInt16Lit, nkInt32Lit, nkInt64Lit, nkFloatLit,
|
||||||
TSymFlags = set of TSymFlag;
|
nkFloat32Lit, nkFloat64Lit, nkStrLit, nkRStrLit,
|
||||||
const
|
nkTripleStrLit, nkMetaNode, nkNilLit, nkDotCall,
|
||||||
SymFlagToStr: array [TSymFlag] of string = (
|
nkCommand, nkCall, nkGenericCall, nkExplicitTypeListCall,
|
||||||
'sfUsed', 'sfStar', 'sfMinus', 'sfInInterface',
|
nkExprEqExpr, nkExprColonExpr, nkIdentDefs, nkInfix,
|
||||||
'sfFromGeneric', 'sfGlobal', 'sfForward', 'sfImportc',
|
nkPrefix, nkPostfix, nkPar, nkCurly,
|
||||||
'sfExportc', 'sfVolatile', 'sfRegister', 'sfPure',
|
nkBracket, nkBracketExpr, nkPragmaExpr, nkRange,
|
||||||
'sfResult', 'sfNoSideEffect', 'sfMainModule', 'sfSystemModule',
|
nkDotExpr, nkCheckedFieldExpr, nkDerefExpr, nkIfExpr,
|
||||||
'sfNoReturn', 'sfAddrTaken', 'sfCompilerProc', 'sfCppMethod',
|
nkElifExpr, nkElseExpr, nkLambda, nkAccQuoted,
|
||||||
'sfDiscriminant', 'sfDeprecated', 'sfInClosure', 'sfTypeCheck',
|
nkHeaderQuoted, nkTableConstr, nkQualified, nkHiddenStdConv,
|
||||||
'sfCompileTime', 'sfThreadVar', 'sfMerge');
|
nkHiddenSubConv, nkHiddenCallConv, nkConv, nkCast,
|
||||||
type
|
nkAddr, nkHiddenAddr, nkHiddenDeref, nkObjDownConv,
|
||||||
TTypeKind = (
|
nkObjUpConv, nkChckRangeF, nkChckRange64, nkChckRange,
|
||||||
tyNone, tyBool, tyChar, tyEmpty,
|
nkStringToCString, nkCStringToString, nkPassAsOpenArray, nkAsgn,
|
||||||
tyArrayConstr, tyNil, tyGeneric, tyGenericInst,
|
nkDefaultTypeParam, nkGenericParams, nkFormalParams, nkOfInherit,
|
||||||
tyGenericParam, tyEnum, tyAnyEnum, tyArray,
|
nkModule, nkProcDef, nkConverterDef, nkMacroDef,
|
||||||
tyObject, tyTuple, tySet, tyRange,
|
nkTemplateDef, nkIteratorDef, nkOfBranch, nkElifBranch,
|
||||||
tyPtr, tyRef, tyVar, tySequence,
|
nkExceptBranch, nkElse, nkMacroStmt, nkAsmStmt,
|
||||||
tyProc, tyPointer, tyOpenArray, tyString,
|
nkPragma, nkIfStmt, nkWhenStmt, nkForStmt,
|
||||||
tyCString, tyForward, tyInt, tyInt8,
|
nkWhileStmt, nkCaseStmt, nkVarSection, nkConstSection,
|
||||||
tyInt16, tyInt32, tyInt64, tyFloat,
|
nkConstDef, nkTypeSection, nkTypeDef, nkYieldStmt,
|
||||||
tyFloat32, tyFloat64, tyFloat128);
|
nkTryStmt, nkFinally, nkRaiseStmt, nkReturnStmt,
|
||||||
TTypeKinds = set of TTypeKind;
|
nkBreakStmt, nkContinueStmt, nkBlockStmt, nkDiscardStmt,
|
||||||
const
|
nkStmtList, nkImportStmt, nkFromStmt, nkImportAs,
|
||||||
TypeKindToStr: array [TTypeKind] of string = (
|
nkIncludeStmt, nkAccessStmt, nkCommentStmt, nkStmtListExpr,
|
||||||
'tyNone', 'tyBool', 'tyChar', 'tyEmpty',
|
nkBlockExpr, nkStmtListType, nkBlockType, nkVm,
|
||||||
'tyArrayConstr', 'tyNil', 'tyGeneric', 'tyGenericInst',
|
nkTypeOfExpr, nkObjectTy, nkTupleTy, nkRecList,
|
||||||
'tyGenericParam', 'tyEnum', 'tyAnyEnum', 'tyArray',
|
nkRecCase, nkRecWhen, nkRefTy, nkPtrTy,
|
||||||
'tyObject', 'tyTuple', 'tySet', 'tyRange',
|
nkVarTy, nkProcTy, nkEnumTy, nkEnumFieldDef,
|
||||||
'tyPtr', 'tyRef', 'tyVar', 'tySequence',
|
nkReturnToken);
|
||||||
'tyProc', 'tyPointer', 'tyOpenArray', 'tyString',
|
TNodeKinds = set of TNodeKind;
|
||||||
'tyCString', 'tyForward', 'tyInt', 'tyInt8',
|
const
|
||||||
'tyInt16', 'tyInt32', 'tyInt64', 'tyFloat',
|
NodeKindToStr: array [TNodeKind] of string = (
|
||||||
'tyFloat32', 'tyFloat64', 'tyFloat128');
|
'nkNone', 'nkEmpty', 'nkIdent', 'nkSym',
|
||||||
type
|
'nkType', 'nkCharLit', 'nkIntLit', 'nkInt8Lit',
|
||||||
TNodeFlag = (
|
'nkInt16Lit', 'nkInt32Lit', 'nkInt64Lit', 'nkFloatLit',
|
||||||
nfNone, nfBase2, nfBase8, nfBase16,
|
'nkFloat32Lit', 'nkFloat64Lit', 'nkStrLit', 'nkRStrLit',
|
||||||
nfAllConst, nfTransf, nfSem);
|
'nkTripleStrLit', 'nkMetaNode', 'nkNilLit', 'nkDotCall',
|
||||||
TNodeFlags = set of TNodeFlag;
|
'nkCommand', 'nkCall', 'nkGenericCall', 'nkExplicitTypeListCall',
|
||||||
const
|
'nkExprEqExpr', 'nkExprColonExpr', 'nkIdentDefs', 'nkInfix',
|
||||||
NodeFlagToStr: array [TNodeFlag] of string = (
|
'nkPrefix', 'nkPostfix', 'nkPar', 'nkCurly',
|
||||||
'nfNone', 'nfBase2', 'nfBase8', 'nfBase16',
|
'nkBracket', 'nkBracketExpr', 'nkPragmaExpr', 'nkRange',
|
||||||
'nfAllConst', 'nfTransf', 'nfSem');
|
'nkDotExpr', 'nkCheckedFieldExpr', 'nkDerefExpr', 'nkIfExpr',
|
||||||
type
|
'nkElifExpr', 'nkElseExpr', 'nkLambda', 'nkAccQuoted',
|
||||||
TTypeFlag = (
|
'nkHeaderQuoted', 'nkTableConstr', 'nkQualified', 'nkHiddenStdConv',
|
||||||
tfVarargs, tfFinal, tfAcyclic, tfEnumHasWholes);
|
'nkHiddenSubConv', 'nkHiddenCallConv', 'nkConv', 'nkCast',
|
||||||
TTypeFlags = set of TTypeFlag;
|
'nkAddr', 'nkHiddenAddr', 'nkHiddenDeref', 'nkObjDownConv',
|
||||||
const
|
'nkObjUpConv', 'nkChckRangeF', 'nkChckRange64', 'nkChckRange',
|
||||||
TypeFlagToStr: array [TTypeFlag] of string = (
|
'nkStringToCString', 'nkCStringToString', 'nkPassAsOpenArray', 'nkAsgn',
|
||||||
'tfVarargs', 'tfFinal', 'tfAcyclic', 'tfEnumHasWholes');
|
'nkDefaultTypeParam', 'nkGenericParams', 'nkFormalParams', 'nkOfInherit',
|
||||||
type
|
'nkModule', 'nkProcDef', 'nkConverterDef', 'nkMacroDef',
|
||||||
TSymKind = (
|
'nkTemplateDef', 'nkIteratorDef', 'nkOfBranch', 'nkElifBranch',
|
||||||
skUnknownSym, skConditional, skDynLib, skParam,
|
'nkExceptBranch', 'nkElse', 'nkMacroStmt', 'nkAsmStmt',
|
||||||
skTypeParam, skTemp, skType, skConst,
|
'nkPragma', 'nkIfStmt', 'nkWhenStmt', 'nkForStmt',
|
||||||
skVar, skProc, skIterator, skConverter,
|
'nkWhileStmt', 'nkCaseStmt', 'nkVarSection', 'nkConstSection',
|
||||||
skMacro, skTemplate, skField, skEnumField,
|
'nkConstDef', 'nkTypeSection', 'nkTypeDef', 'nkYieldStmt',
|
||||||
skForVar, skModule, skLabel, skStub);
|
'nkTryStmt', 'nkFinally', 'nkRaiseStmt', 'nkReturnStmt',
|
||||||
TSymKinds = set of TSymKind;
|
'nkBreakStmt', 'nkContinueStmt', 'nkBlockStmt', 'nkDiscardStmt',
|
||||||
const
|
'nkStmtList', 'nkImportStmt', 'nkFromStmt', 'nkImportAs',
|
||||||
SymKindToStr: array [TSymKind] of string = (
|
'nkIncludeStmt', 'nkAccessStmt', 'nkCommentStmt', 'nkStmtListExpr',
|
||||||
'skUnknownSym', 'skConditional', 'skDynLib', 'skParam',
|
'nkBlockExpr', 'nkStmtListType', 'nkBlockType', 'nkVm',
|
||||||
'skTypeParam', 'skTemp', 'skType', 'skConst',
|
'nkTypeOfExpr', 'nkObjectTy', 'nkTupleTy', 'nkRecList',
|
||||||
'skVar', 'skProc', 'skIterator', 'skConverter',
|
'nkRecCase', 'nkRecWhen', 'nkRefTy', 'nkPtrTy',
|
||||||
'skMacro', 'skTemplate', 'skField', 'skEnumField',
|
'nkVarTy', 'nkProcTy', 'nkEnumTy', 'nkEnumFieldDef',
|
||||||
'skForVar', 'skModule', 'skLabel', 'skStub');
|
'nkReturnToken');
|
||||||
{[[[end]]]}
|
{[[[end]]]}
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
@ -219,43 +219,43 @@ type
|
||||||
// if (i+1) % 6 == 0: cog.outl("")
|
// if (i+1) % 6 == 0: cog.outl("")
|
||||||
//cog.outl("m" + magics[-1])
|
//cog.outl("m" + magics[-1])
|
||||||
//]]]
|
//]]]
|
||||||
mNone, mDefined, mLow, mHigh, mSizeOf, mIs,
|
mNone, mDefined, mLow, mHigh, mSizeOf, mIs,
|
||||||
mSucc, mPred, mInc, mDec, mOrd, mNew,
|
mSucc, mPred, mInc, mDec, mOrd, mNew,
|
||||||
mNewFinalize, mNewSeq, mRegisterFinalizer, mLengthOpenArray, mLengthStr, mLengthArray,
|
mNewFinalize, mNewSeq, mRegisterFinalizer, mLengthOpenArray, mLengthStr, mLengthArray,
|
||||||
mLengthSeq, mIncl, mExcl, mCard, mChr, mGCref,
|
mLengthSeq, mIncl, mExcl, mCard, mChr, mGCref,
|
||||||
mGCunref, mAddI, mSubI, mMulI, mDivI, mModI,
|
mGCunref, mAddI, mSubI, mMulI, mDivI, mModI,
|
||||||
mAddI64, mSubI64, mMulI64, mDivI64, mModI64, mShrI,
|
mAddI64, mSubI64, mMulI64, mDivI64, mModI64, mShrI,
|
||||||
mShlI, mBitandI, mBitorI, mBitxorI, mMinI, mMaxI,
|
mShlI, mBitandI, mBitorI, mBitxorI, mMinI, mMaxI,
|
||||||
mShrI64, mShlI64, mBitandI64, mBitorI64, mBitxorI64, mMinI64,
|
mShrI64, mShlI64, mBitandI64, mBitorI64, mBitxorI64, mMinI64,
|
||||||
mMaxI64, mAddF64, mSubF64, mMulF64, mDivF64, mMinF64,
|
mMaxI64, mAddF64, mSubF64, mMulF64, mDivF64, mMinF64,
|
||||||
mMaxF64, mAddU, mSubU, mMulU, mDivU, mModU,
|
mMaxF64, mAddU, mSubU, mMulU, mDivU, mModU,
|
||||||
mAddU64, mSubU64, mMulU64, mDivU64, mModU64, mEqI,
|
mAddU64, mSubU64, mMulU64, mDivU64, mModU64, mEqI,
|
||||||
mLeI, mLtI, mEqI64, mLeI64, mLtI64, mEqF64,
|
mLeI, mLtI, mEqI64, mLeI64, mLtI64, mEqF64,
|
||||||
mLeF64, mLtF64, mLeU, mLtU, mLeU64, mLtU64,
|
mLeF64, mLtF64, mLeU, mLtU, mLeU64, mLtU64,
|
||||||
mEqEnum, mLeEnum, mLtEnum, mEqCh, mLeCh, mLtCh,
|
mEqEnum, mLeEnum, mLtEnum, mEqCh, mLeCh, mLtCh,
|
||||||
mEqB, mLeB, mLtB, mEqRef, mEqProc, mEqUntracedRef,
|
mEqB, mLeB, mLtB, mEqRef, mEqProc, mEqUntracedRef,
|
||||||
mLePtr, mLtPtr, mEqCString, mXor, mUnaryMinusI, mUnaryMinusI64,
|
mLePtr, mLtPtr, mEqCString, mXor, mUnaryMinusI, mUnaryMinusI64,
|
||||||
mAbsI, mAbsI64, mNot, mUnaryPlusI, mBitnotI, mUnaryPlusI64,
|
mAbsI, mAbsI64, mNot, mUnaryPlusI, mBitnotI, mUnaryPlusI64,
|
||||||
mBitnotI64, mUnaryPlusF64, mUnaryMinusF64, mAbsF64, mZe8ToI, mZe8ToI64,
|
mBitnotI64, mUnaryPlusF64, mUnaryMinusF64, mAbsF64, mZe8ToI, mZe8ToI64,
|
||||||
mZe16ToI, mZe16ToI64, mZe32ToI64, mZeIToI64, mToU8, mToU16,
|
mZe16ToI, mZe16ToI64, mZe32ToI64, mZeIToI64, mToU8, mToU16,
|
||||||
mToU32, mToFloat, mToBiggestFloat, mToInt, mToBiggestInt, mCharToStr,
|
mToU32, mToFloat, mToBiggestFloat, mToInt, mToBiggestInt, mCharToStr,
|
||||||
mBoolToStr, mIntToStr, mInt64ToStr, mFloatToStr, mCStrToStr, mStrToStr,
|
mBoolToStr, mIntToStr, mInt64ToStr, mFloatToStr, mCStrToStr, mStrToStr,
|
||||||
mAnd, mOr, mEqStr, mLeStr, mLtStr, mEqSet,
|
mAnd, mOr, mEqStr, mLeStr, mLtStr, mEqSet,
|
||||||
mLeSet, mLtSet, mMulSet, mPlusSet, mMinusSet, mSymDiffSet,
|
mLeSet, mLtSet, mMulSet, mPlusSet, mMinusSet, mSymDiffSet,
|
||||||
mConStrStr, mConArrArr, mConArrT, mConTArr, mConTT, mSlice,
|
mConStrStr, mConArrArr, mConArrT, mConTArr, mConTT, mSlice,
|
||||||
mAppendStrCh, mAppendStrStr, mAppendSeqElem, mAppendSeqSeq, mInRange, mInSet,
|
mAppendStrCh, mAppendStrStr, mAppendSeqElem, mAppendSeqSeq, mInRange, mInSet,
|
||||||
mAsgn, mRepr, mExit, mSetLengthStr, mSetLengthSeq, mAssert,
|
mAsgn, mRepr, mExit, mSetLengthStr, mSetLengthSeq, mAssert,
|
||||||
mSwap, mIsNil, mArrToSeq, mArray, mOpenArray, mRange,
|
mSwap, mIsNil, mArrToSeq, mArray, mOpenArray, mRange,
|
||||||
mSet, mSeq, mInt, mInt8, mInt16, mInt32,
|
mSet, mSeq, mInt, mInt8, mInt16, mInt32,
|
||||||
mInt64, mFloat, mFloat32, mFloat64, mBool, mChar,
|
mInt64, mFloat, mFloat32, mFloat64, mBool, mChar,
|
||||||
mString, mCstring, mPointer, mAnyEnum, mEmptySet, mIntSetBaseType,
|
mString, mCstring, mPointer, mAnyEnum, mEmptySet, mIntSetBaseType,
|
||||||
mNil, mIsMainModule, mCompileDate, mCompileTime, mNimrodVersion, mNimrodMajor,
|
mNil, mIsMainModule, mCompileDate, mCompileTime, mNimrodVersion, mNimrodMajor,
|
||||||
mNimrodMinor, mNimrodPatch, mCpuEndian, mNaN, mInf, mNegInf,
|
mNimrodMinor, mNimrodPatch, mCpuEndian, mNaN, mInf, mNegInf,
|
||||||
mNLen, mNChild, mNSetChild, mNAdd, mNAddMultiple, mNDel,
|
mNLen, mNChild, mNSetChild, mNAdd, mNAddMultiple, mNDel,
|
||||||
mNKind, mNIntVal, mNFloatVal, mNSymbol, mNIdent, mNGetType,
|
mNKind, mNIntVal, mNFloatVal, mNSymbol, mNIdent, mNGetType,
|
||||||
mNStrVal, mNSetIntVal, mNSetFloatVal, mNSetSymbol, mNSetIdent, mNSetType,
|
mNStrVal, mNSetIntVal, mNSetFloatVal, mNSetSymbol, mNSetIdent, mNSetType,
|
||||||
mNSetStrVal, mNNewNimNode, mNCopyNimNode, mNCopyNimTree, mStrToIdent, mIdentToStr,
|
mNSetStrVal, mNNewNimNode, mNCopyNimNode, mNCopyNimTree, mStrToIdent, mIdentToStr,
|
||||||
mEqIdent, mNHint, mNWarning, mNError
|
mEqIdent, mNHint, mNWarning, mNError
|
||||||
//[[[end]]]
|
//[[[end]]]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -321,7 +321,7 @@ type
|
||||||
locExpr, // "location" is really an expression
|
locExpr, // "location" is really an expression
|
||||||
locProc, // location is a proc (an address of a procedure)
|
locProc, // location is a proc (an address of a procedure)
|
||||||
locData, // location is a constant
|
locData, // location is a constant
|
||||||
locCall, // location is a call expression
|
locCall, // location is a call expression
|
||||||
locImmediate, // location is an immediate value
|
locImmediate, // location is an immediate value
|
||||||
locOther // location is something other
|
locOther // location is something other
|
||||||
);
|
);
|
||||||
|
|
@ -477,43 +477,43 @@ const // "MagicToStr" array:
|
||||||
// if (i+1) % 6 == 0: cog.outl("")
|
// if (i+1) % 6 == 0: cog.outl("")
|
||||||
//cog.outl("'%s'" % magics[-1])
|
//cog.outl("'%s'" % magics[-1])
|
||||||
//]]]
|
//]]]
|
||||||
'None', 'Defined', 'Low', 'High', 'SizeOf', 'Is',
|
'None', 'Defined', 'Low', 'High', 'SizeOf', 'Is',
|
||||||
'Succ', 'Pred', 'Inc', 'Dec', 'Ord', 'New',
|
'Succ', 'Pred', 'Inc', 'Dec', 'Ord', 'New',
|
||||||
'NewFinalize', 'NewSeq', 'RegisterFinalizer', 'LengthOpenArray', 'LengthStr', 'LengthArray',
|
'NewFinalize', 'NewSeq', 'RegisterFinalizer', 'LengthOpenArray', 'LengthStr', 'LengthArray',
|
||||||
'LengthSeq', 'Incl', 'Excl', 'Card', 'Chr', 'GCref',
|
'LengthSeq', 'Incl', 'Excl', 'Card', 'Chr', 'GCref',
|
||||||
'GCunref', 'AddI', 'SubI', 'MulI', 'DivI', 'ModI',
|
'GCunref', 'AddI', 'SubI', 'MulI', 'DivI', 'ModI',
|
||||||
'AddI64', 'SubI64', 'MulI64', 'DivI64', 'ModI64', 'ShrI',
|
'AddI64', 'SubI64', 'MulI64', 'DivI64', 'ModI64', 'ShrI',
|
||||||
'ShlI', 'BitandI', 'BitorI', 'BitxorI', 'MinI', 'MaxI',
|
'ShlI', 'BitandI', 'BitorI', 'BitxorI', 'MinI', 'MaxI',
|
||||||
'ShrI64', 'ShlI64', 'BitandI64', 'BitorI64', 'BitxorI64', 'MinI64',
|
'ShrI64', 'ShlI64', 'BitandI64', 'BitorI64', 'BitxorI64', 'MinI64',
|
||||||
'MaxI64', 'AddF64', 'SubF64', 'MulF64', 'DivF64', 'MinF64',
|
'MaxI64', 'AddF64', 'SubF64', 'MulF64', 'DivF64', 'MinF64',
|
||||||
'MaxF64', 'AddU', 'SubU', 'MulU', 'DivU', 'ModU',
|
'MaxF64', 'AddU', 'SubU', 'MulU', 'DivU', 'ModU',
|
||||||
'AddU64', 'SubU64', 'MulU64', 'DivU64', 'ModU64', 'EqI',
|
'AddU64', 'SubU64', 'MulU64', 'DivU64', 'ModU64', 'EqI',
|
||||||
'LeI', 'LtI', 'EqI64', 'LeI64', 'LtI64', 'EqF64',
|
'LeI', 'LtI', 'EqI64', 'LeI64', 'LtI64', 'EqF64',
|
||||||
'LeF64', 'LtF64', 'LeU', 'LtU', 'LeU64', 'LtU64',
|
'LeF64', 'LtF64', 'LeU', 'LtU', 'LeU64', 'LtU64',
|
||||||
'EqEnum', 'LeEnum', 'LtEnum', 'EqCh', 'LeCh', 'LtCh',
|
'EqEnum', 'LeEnum', 'LtEnum', 'EqCh', 'LeCh', 'LtCh',
|
||||||
'EqB', 'LeB', 'LtB', 'EqRef', 'EqProc', 'EqUntracedRef',
|
'EqB', 'LeB', 'LtB', 'EqRef', 'EqProc', 'EqUntracedRef',
|
||||||
'LePtr', 'LtPtr', 'EqCString', 'Xor', 'UnaryMinusI', 'UnaryMinusI64',
|
'LePtr', 'LtPtr', 'EqCString', 'Xor', 'UnaryMinusI', 'UnaryMinusI64',
|
||||||
'AbsI', 'AbsI64', 'Not', 'UnaryPlusI', 'BitnotI', 'UnaryPlusI64',
|
'AbsI', 'AbsI64', 'Not', 'UnaryPlusI', 'BitnotI', 'UnaryPlusI64',
|
||||||
'BitnotI64', 'UnaryPlusF64', 'UnaryMinusF64', 'AbsF64', 'Ze8ToI', 'Ze8ToI64',
|
'BitnotI64', 'UnaryPlusF64', 'UnaryMinusF64', 'AbsF64', 'Ze8ToI', 'Ze8ToI64',
|
||||||
'Ze16ToI', 'Ze16ToI64', 'Ze32ToI64', 'ZeIToI64', 'ToU8', 'ToU16',
|
'Ze16ToI', 'Ze16ToI64', 'Ze32ToI64', 'ZeIToI64', 'ToU8', 'ToU16',
|
||||||
'ToU32', 'ToFloat', 'ToBiggestFloat', 'ToInt', 'ToBiggestInt', 'CharToStr',
|
'ToU32', 'ToFloat', 'ToBiggestFloat', 'ToInt', 'ToBiggestInt', 'CharToStr',
|
||||||
'BoolToStr', 'IntToStr', 'Int64ToStr', 'FloatToStr', 'CStrToStr', 'StrToStr',
|
'BoolToStr', 'IntToStr', 'Int64ToStr', 'FloatToStr', 'CStrToStr', 'StrToStr',
|
||||||
'And', 'Or', 'EqStr', 'LeStr', 'LtStr', 'EqSet',
|
'And', 'Or', 'EqStr', 'LeStr', 'LtStr', 'EqSet',
|
||||||
'LeSet', 'LtSet', 'MulSet', 'PlusSet', 'MinusSet', 'SymDiffSet',
|
'LeSet', 'LtSet', 'MulSet', 'PlusSet', 'MinusSet', 'SymDiffSet',
|
||||||
'ConStrStr', 'ConArrArr', 'ConArrT', 'ConTArr', 'ConTT', 'Slice',
|
'ConStrStr', 'ConArrArr', 'ConArrT', 'ConTArr', 'ConTT', 'Slice',
|
||||||
'AppendStrCh', 'AppendStrStr', 'AppendSeqElem', 'AppendSeqSeq', 'InRange', 'InSet',
|
'AppendStrCh', 'AppendStrStr', 'AppendSeqElem', 'AppendSeqSeq', 'InRange', 'InSet',
|
||||||
'Asgn', 'Repr', 'Exit', 'SetLengthStr', 'SetLengthSeq', 'Assert',
|
'Asgn', 'Repr', 'Exit', 'SetLengthStr', 'SetLengthSeq', 'Assert',
|
||||||
'Swap', 'IsNil', 'ArrToSeq', 'Array', 'OpenArray', 'Range',
|
'Swap', 'IsNil', 'ArrToSeq', 'Array', 'OpenArray', 'Range',
|
||||||
'Set', 'Seq', 'Int', 'Int8', 'Int16', 'Int32',
|
'Set', 'Seq', 'Int', 'Int8', 'Int16', 'Int32',
|
||||||
'Int64', 'Float', 'Float32', 'Float64', 'Bool', 'Char',
|
'Int64', 'Float', 'Float32', 'Float64', 'Bool', 'Char',
|
||||||
'String', 'Cstring', 'Pointer', 'AnyEnum', 'EmptySet', 'IntSetBaseType',
|
'String', 'Cstring', 'Pointer', 'AnyEnum', 'EmptySet', 'IntSetBaseType',
|
||||||
'Nil', 'IsMainModule', 'CompileDate', 'CompileTime', 'NimrodVersion', 'NimrodMajor',
|
'Nil', 'IsMainModule', 'CompileDate', 'CompileTime', 'NimrodVersion', 'NimrodMajor',
|
||||||
'NimrodMinor', 'NimrodPatch', 'CpuEndian', 'NaN', 'Inf', 'NegInf',
|
'NimrodMinor', 'NimrodPatch', 'CpuEndian', 'NaN', 'Inf', 'NegInf',
|
||||||
'NLen', 'NChild', 'NSetChild', 'NAdd', 'NAddMultiple', 'NDel',
|
'NLen', 'NChild', 'NSetChild', 'NAdd', 'NAddMultiple', 'NDel',
|
||||||
'NKind', 'NIntVal', 'NFloatVal', 'NSymbol', 'NIdent', 'NGetType',
|
'NKind', 'NIntVal', 'NFloatVal', 'NSymbol', 'NIdent', 'NGetType',
|
||||||
'NStrVal', 'NSetIntVal', 'NSetFloatVal', 'NSetSymbol', 'NSetIdent', 'NSetType',
|
'NStrVal', 'NSetIntVal', 'NSetFloatVal', 'NSetSymbol', 'NSetIdent', 'NSetType',
|
||||||
'NSetStrVal', 'NNewNimNode', 'NCopyNimNode', 'NCopyNimTree', 'StrToIdent', 'IdentToStr',
|
'NSetStrVal', 'NNewNimNode', 'NCopyNimNode', 'NCopyNimTree', 'StrToIdent', 'IdentToStr',
|
||||||
'EqIdent', 'NHint', 'NWarning', 'NError'
|
'EqIdent', 'NHint', 'NWarning', 'NError'
|
||||||
//[[[end]]]
|
//[[[end]]]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,11 @@
|
||||||
@if llvm_gcc or gcc:
|
@if llvm_gcc or gcc:
|
||||||
# GCC, LLVM and Visual C++ have a problem to optimize some modules.
|
# GCC, LLVM and Visual C++ have a problem to optimize some modules.
|
||||||
# This is really strange.
|
# This is really strange.
|
||||||
cgen.speed = "-O1 -fno-strict-aliasing"
|
@if windows:
|
||||||
|
cgen.speed = "-O0"
|
||||||
|
@else:
|
||||||
|
cgen.speed = "-O1 -fno-strict-aliasing"
|
||||||
|
@end
|
||||||
@elif vcc:
|
@elif vcc:
|
||||||
cgen.speed = ""
|
cgen.speed = ""
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue