/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
#include <glob.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyTuple__EU9a9btT9bDanvLpyt3NNw3KA tyTuple__EU9a9btT9bDanvLpyt3NNw3KA;
typedef struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA;
typedef struct tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA;
typedef struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tySequence__mIo9bZUsotCEUUtEGNhYmaA tySequence__mIo9bZUsotCEUUtEGNhYmaA;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ tySequence__8rKxBHaz7QqNR9a4WIZqqqQ;
typedef struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__KLItBKQec3LJzPmfiYYfQA tySequence__KLItBKQec3LJzPmfiYYfQA;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg;
typedef struct tyTuple__oa1dFn55BmC688WoXKTtUg tyTuple__oa1dFn55BmC688WoXKTtUg;
typedef struct tyTuple__cyyQdcuoDUp88Doe6rM7kA tyTuple__cyyQdcuoDUp88Doe6rM7kA;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ;
typedef struct tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct TSafePoint TSafePoint;
typedef struct tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g;
typedef struct tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A;
typedef struct tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg;
typedef struct tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA;
typedef struct tyObject_OSError__THeHlGxHorUQ17FON5jY0g tyObject_OSError__THeHlGxHorUQ17FON5jY0g;
typedef struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ;
typedef struct tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA;
typedef struct tyObject_TimezonecolonObjectType___40S8LCObTslEcgbC9bHcDmA tyObject_TimezonecolonObjectType___40S8LCObTslEcgbC9bHcDmA;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg;
typedef struct tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA flags;
NimStringDesc* customArgs;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
typedef NU8 tySet_tyEnum_TInfoCCProp__9biNtFPzjM9c2i62RuZ9c19biA;
struct tyTuple__EU9a9btT9bDanvLpyt3NNw3KA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NimStringDesc* Field12;
NimStringDesc* Field13;
NimStringDesc* Field14;
NimStringDesc* Field15;
NimStringDesc* Field16;
NimStringDesc* Field17;
NimStringDesc* Field18;
NimStringDesc* Field19;
NimStringDesc* Field20;
tySet_tyEnum_TInfoCCProp__9biNtFPzjM9c2i62RuZ9c19biA Field21;
};
typedef tyTuple__EU9a9btT9bDanvLpyt3NNw3KA tyArray__BZ5uScSUO7j9awRS7LrncpQ[11];
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ;
typedef NU8 tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw;
struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA {
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ targetCPU;
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ hostCPU;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw targetOS;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ errorOutputs;
tySequence__mIo9bZUsotCEUUtEGNhYmaA* msgContext;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastError;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw filenameToIndexTbl;
tySequence__8rKxBHaz7QqNR9a4WIZqqqQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w;
typedef NU8 tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q;
typedef NU8 tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg;
struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g;
typedef NU8 tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU8 tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA[12];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* result, void* ClE_0);
void* ClE_0;
} tyProc__Ox1WDSaSyO73VnvAC2a4UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* msg, tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg severity, void* ClE_0);
void* ClE_0;
} tyProc__2bM7rNPFiQD9bOvwFI49bKLQ;
struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA target;
NI linesCompiled;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* macrosToExpand;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* arcToExpand;
tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA m;
tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA modifiedyNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA cmdlineNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA foreignPackageNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* configVars;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* dllOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* moduleOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__KLItBKQec3LJzPmfiYYfQA* toCompile;
tyProc__Ox1WDSaSyO73VnvAC2a4UA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__2bM7rNPFiQD9bOvwFI49bKLQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg* vmProfileData;
NIM_BOOL expandProgress;
NI expandLevels;
NimStringDesc* expandNodeResult;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw expandPosition;
};
typedef NU8 tyArray__YtcvxHNKV4YiecPE9ap1mcA[20];
typedef NU8 tySet_tyEnum_TInfoOSProp__zwoAJqKVL5t9aBqjgBrDcAA;
struct tyTuple__oa1dFn55BmC688WoXKTtUg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
tySet_tyEnum_TInfoOSProp__zwoAJqKVL5t9aBqjgBrDcAA Field12;
};
typedef tyTuple__oa1dFn55BmC688WoXKTtUg tyArray__zAjcTh151RgaydpulQUcEQ[33];
typedef NU8 tyEnum_Endianness__IxIU7d9c8Q9csHQviYDQM13A;
struct tyTuple__cyyQdcuoDUp88Doe6rM7kA {
NimStringDesc* Field0;
NI Field1;
tyEnum_Endianness__IxIU7d9c8Q9csHQviYDQM13A Field2;
NI Field3;
NI Field4;
};
typedef tyTuple__cyyQdcuoDUp88Doe6rM7kA tyArray__O7sksHvn7BNpHcBD2dBmog[26];
typedef NimStringDesc* tyArray__DLxB9cOndPvLDyky9bY9ccM3g[7];
typedef NU8 tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU8 tyEnum_TInfoOSProp__zwoAJqKVL5t9aBqjgBrDcAA;
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NU8 tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
typedef NimStringDesc* tyArray__rmMMhDIqORJzUU5zqeitSQ[16];
typedef NimStringDesc* tyArray__68WB4OcBspSFyW4LY9cOceA[18];
typedef NU8 tyEnum_FileMode__l9cwNsPPKSvz36rQZGh2S7w;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ {
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw a;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw b;
};
typedef NU8 tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA;
struct tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ {
NimStringDesc* cacheVersion;
NimStringDesc* outputFile;
tySequence__4eQHGndY6XBYpFOH09apV8Q* compile;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* link;
NimStringDesc* linkcmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
NIM_BOOL stdinInput;
NIM_BOOL projectIsCmd;
NimStringDesc* cmdInput;
NimStringDesc* currentDir;
NimStringDesc* cmdline;
tySequence__4eQHGndY6XBYpFOH09apV8Q* depfiles;
NimStringDesc* nimexe;
};
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
struct tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw {
NIM_BOOL allowExtraKeys;
NIM_BOOL allowMissingKeys;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
typedef NU8 tySet_tyEnum_ProcessOption__79cHN5ErNkq9cfbLi9bttt3Xw;
typedef tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* tyArray__ts9cf9blICas1QWmw89bglZ7w[1];
struct tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A {
  RootObj Sup;
NI colonstate_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* prettyCmds1;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
void* ClE_0;
} tyProc__SqRJqa5aOiKB4EuKlKh9asA;
typedef NU8 tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA;
struct tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg {
  RootObj Sup;
NI colonstate_;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf1;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA* p, void* ClE_0);
void* ClE_0;
} tyProc__w6A9cCTGZLLFueLjnmit9a6w;
struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ {
  Exception Sup;
};
struct tyObject_OSError__THeHlGxHorUQ17FON5jY0g {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
NI32 errorCode;
};
typedef NimStringDesc* tyArray__yt5VDPNtUGx9cBkOVakHwdQ[6];
typedef NU8 tyEnum_WeekDay__pAkr5g2DTr5wSHEdlL9aklQ;
struct tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA {
  RootObj Sup;
NI nanosecond;
NI second;
NI minute;
NI hour;
NI monthdayZero;
NI monthZero;
NI year;
tyEnum_WeekDay__pAkr5g2DTr5wSHEdlL9aklQ weekday;
NI yearday;
NIM_BOOL isDst;
tyObject_TimezonecolonObjectType___40S8LCObTslEcgbC9bHcDmA* timezone;
NI utcOffset;
};
typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
typedef struct {
N_NIMCALL_PTR(NimStringDesc*, ClP_0) (NimStringDesc* x, void* ClE_0);
void* ClE_0;
} tyProc__oFHfEKFsiYTMAy9a42cSiKw;
typedef N_CLOSURE_PTR(NimStringDesc*, TM__pZmXgBT0YcBrnAO6VUvpNQ_179) (NimStringDesc* x);
typedef N_CLOSURE_PTR(NimStringDesc*, TM__pZmXgBT0YcBrnAO6VUvpNQ_181) (NimStringDesc* x, void* ClE_0);
typedef NU8 tySet_tyEnum_CopyFlag__FAQfI6ph9a9bh5nGNKhOYumg;
struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
typedef NU8 tyEnum_EnumMode__UPxyMpu2tP81EYqUaP7xtQ;
typedef NU8 tyEnum_JsonNodeMode__QYSP9auMM9bae9bt6SiPtuD6Q;
struct tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg {
tyEnum_EnumMode__UPxyMpu2tP81EYqUaP7xtQ enumMode;
tyEnum_JsonNodeMode__QYSP9auMM9bae9bt6SiPtuD6Q jsonNodeMode;
};
struct tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw {
  RootObj Sup;
NI colonstate_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* prettyCmds1;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf2;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
  TGenericSeq Sup;
  tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
};
struct tySequence__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, splitFile__pathutils_27)(NimStringDesc* x, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile__extccomp_720)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCfilePath__extccomp_715)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeGeneratedFilePath__options_4242)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* f, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1071)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, externalFileChanged__extccomp_1055)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toGeneratedFile__options_4237)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* path, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleModuleName__modulepaths_32)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void, footprint__extccomp_1051)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
N_LIB_PRIVATE N_NIMCALL(void, secureHash__stdZsha49_831)(NIM_CHAR* str, NI strLen_0, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZsha49_870)(tyArray__YtcvxHNKV4YiecPE9ap1mcA self);
N_LIB_PRIVATE N_NIMCALL(void, secureHashFile__stdZsha49_862)(NimStringDesc* filename, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd__extccomp_997)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile, NIM_BOOL isMainFile, NIM_BOOL produceOutput);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, useCpp__extccomp_906)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cfile);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringDesc* s, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cFileSpecificOptions__extccomp_844)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* nimname, NimStringDesc* fullNimFile);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStr)(NimStringDesc* s, NimStringDesc* sub, NI start, NI last);
N_LIB_PRIVATE N_NIMCALL(void, addOpt__extccomp_689)(NimStringDesc** dest, NimStringDesc* src);
static N_INLINE(NIM_CHAR*, X5BX5D___system_7373)(NimStringDesc** s, NI i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, existsConfigVar__options_4050)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__options_4054)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* key, NimStringDesc* default_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDebug__extccomp_825)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__extccomp_629)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSpeed__extccomp_821)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSize__extccomp_829)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOrDefault__pureZstrtabs_173)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* t, NimStringDesc* key, NimStringDesc* default_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompilerExe__extccomp_961)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ compiler, NIM_BOOL isCpp);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getEnv__pureZos_418)(NimStringDesc* key, NimStringDesc* default_0);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
static N_INLINE(NIM_BOOL, needsExeExt__extccomp_891)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__options_582)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
static N_INLINE(NIM_BOOL, noAbsolutePaths__extccomp_833)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head, NimStringDesc* tail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosextractFilename)(NimStringDesc* path);
static N_INLINE(NIM_BOOL, isEmpty__options_4492)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getPrefixDir__options_4096)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, envFlags__extccomp_954)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, nsuAddf)(NimStringDesc** s, NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, vccplatform__extccomp_872)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_391)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__l9cwNsPPKSvz36rQZGh2S7w mode, NI bufSize);
N_LIB_PRIVATE N_NIMCALL(void, parseSecureHash__stdZsha49_903)(NimStringDesc* hash, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__systemZio_273)(FILE* f);
N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_218)(FILE* f);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___stdZsha49_911)(tyArray__YtcvxHNKV4YiecPE9ap1mcA a, tyArray__YtcvxHNKV4YiecPE9ap1mcA b);
static N_INLINE(void, writeLine__msgs_442)(FILE* f, NimStringDesc** x, NI xLen_0);
N_LIB_PRIVATE N_NIMCALL(void, write__systemZio_205)(FILE* f, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nostryRemoveFile)(NimStringDesc* file);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5319)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5281)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5326)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5324)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5275)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, insert__extccomp_759)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NimStringDesc* item, NI i);
static N_INLINE(NIM_BOOL, contains__extccomp_614)(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ s, tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw value);
static N_INLINE(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ, dotdot___extccomp_593)(tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw a, tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ, nameToCC__extccomp_523)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listCCnames__extccomp_554)(void);
N_LIB_PRIVATE N_NIMCALL(void, undefSymbol__condsyms_8)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(void, defineSymbol__condsyms_4)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols, NimStringDesc* symbol, NimStringDesc* value);
N_LIB_PRIVATE N_NIMCALL(void, nstPut)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* t, NimStringDesc* key, NimStringDesc* val);
N_LIB_PRIVATE N_NIMCALL(void, addCompileOption__extccomp_695)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, absOutFile__options_4073)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_1852)(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ* a, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* b, tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw opt);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g*, parseFile__pureZjson_5247)(NimStringDesc* filename);
static N_INLINE(void, popSafePoint)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___extccomp_2554)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__systemZio_503)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___pathutils_90)(NimStringDesc* base, NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getNimcacheDir__options_4185)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1146)(NimStringDesc* command, tySet_tyEnum_ProcessOption__79cHN5ErNkq9cfbLi9bttt3Xw options, tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseInt)(NimStringDesc* s, NI* number, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, rope__ropes_109)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ** a, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, genMappingFiles__extccomp_2641)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tySequence__KLItBKQec3LJzPmfiYYfQA* list);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, percent___extccomp_2649)(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ** a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileOptions__extccomp_869)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkOptions__extccomp_880)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, percent___extccomp_2671)(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* head, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__JVTk4z2mtPJTtv2jA9b8cEw)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1269)(NI idx, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, flushDot__msgs_17)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, displayProgressCC__extccomp_1245)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* path, NimStringDesc* compileCmd);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__options_530)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA note);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, demangleModuleName__modulepaths_54)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void, nossplitFile)(NimStringDesc* path, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___options_4370)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(void, execCmdsInParallel__extccomp_1161)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds, tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb);
static N_NIMCALL(void, Marker_tyRef__ZR39bZITIEGpLUSLWXvP1uQ)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1167)(NI idx, tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA* p, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void);
N_LIB_PRIVATE N_NIMCALL(NI, execWithEcho__extccomp_797)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg);
N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command);
static N_INLINE(Exception*, getCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__79cHN5ErNkq9cfbLi9bttt3Xw options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__w6A9cCTGZLLFueLjnmit9a6w afterRunEvent);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getObjFilePath__extccomp_1234)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, hcrLinkTargetName__extccomp_1238)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* objFile, NIM_BOOL isMain);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkCmd__extccomp_1100)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* output, NimStringDesc* objfiles, NIM_BOOL isDllBuild, NIM_BOOL removeStaticFile);
N_LIB_PRIVATE N_NIMCALL(void, nosremoveFile)(NimStringDesc* file);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkerExe__extccomp_985)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ compiler);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVSCompatible__extccomp_577)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, now__pureZtimes_1467)(tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__extccomp_1127)(tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA* dt);
static N_INLINE(NI, nanosecond__pureZtimes_1065)(tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA* dt);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
static N_INLINE(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, map__extccomp_1380)(NimStringDesc** s, NI sLen_0, tyProc__oFHfEKFsiYTMAy9a42cSiKw op);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, colonanonymous___extccomp_1376)(NimStringDesc* curr);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prepareToWriteOutput__options_4093)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, copyFileWithPermissions__pureZos_1455)(NimStringDesc* source, NimStringDesc* dest, NIM_BOOL ignorePermissionErrors, tySet_tyEnum_CopyFlag__FAQfI6ph9a9bh5nGNKhOYumg options);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, getExtraCmds__extccomp_1152)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* output);
N_LIB_PRIVATE N_NIMCALL(void, linkViaResponseFile__extccomp_1194)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7767)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(void, writeFile__systemZio_476)(NimStringDesc* filename, NimStringDesc* content);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
N_LIB_PRIVATE N_NIMCALL(void, execLinkCmd__extccomp_1156)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* linkCmd);
N_LIB_PRIVATE N_NIMCALL(void, execExternalProgram__extccomp_810)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7755)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(void, generateScript__extccomp_814)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* script);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__extccomp_1558)(NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, quoteShellCommand__pureZos_601)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2292)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, jsonBuildInstructionsFile__extccomp_1488)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, pretty__pureZjson_4480)(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* node, NI indent);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g*, toJson__extccomp_1689)(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ* a, tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg opt);
N_LIB_PRIVATE N_NIMCALL(tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg, initToJsonOptions__stdZjsonutils_33)(void);
static N_NIMCALL(void, Marker_tyRef__JNuzMHJeMcY6vo2WncVH1w)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e);
N_LIB_PRIVATE N_NIMCALL(void, quit__system_7185)(NimStringDesc* errormsg, NI errorcode) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(void, noscreateDir)(NimStringDesc* dir);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_2617)(NI idx, void* ClE_0);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_2, ".", 1);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_3, "gcc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_4, "o", 1);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_5, " -O3 -fno-ident", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_6, " -Os -fno-ident", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_7, "g++", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_8, "-c $options $include -o $objfile $file", 38);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_9, " -mwindows", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_10, " -shared", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_11, "ar rcs $libfile $objfiles", 25);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_12, "$buildgui $builddll -o $exefile $objfiles $options", 50);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_13, " -I", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_14, " -L", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_15, " -l$1", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_16, "-fPIC", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_17, "asm($1);$n", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_18, "$1 $3 $2 ", 9);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_19, "-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel", 47);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_20, "-std=gnu++14 -funsigned-char", 28);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_21, "switch_gcc", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_22, " -O3 ", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_23, " -Os ", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_24, "aarch64-none-elf-gcc", 20);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_25, "aarch64-none-elf-g++", 20);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_26, "-w -MMD -MP -MF $dfile -c $options $include -o $objfile $file", 61);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_27, "aarch64-none-elf-gcc-ar rcs $libfile $objfiles", 46);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_28, "$buildgui $builddll -Wl,-Map,$mapfile -o $exefile $objfiles $options", 68);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_29, "-fPIE", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_30, "llvm_gcc", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_31, "llvm-gcc", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_32, "llvm-g++", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_33, "llvm-ar rcs $libfile $objfiles", 30);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_34, "clang", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_35, "clang++", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_36, "bcc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_37, "obj", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_38, " -O3 -6 ", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_39, " -O1 -6 ", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_40, "bcc32c", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_41, "cpp32c", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_42, "-c $options $include -o$objfile $file", 37);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_43, " -tW", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_44, " -tWD", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_45, "bcc32", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_46, "$options $buildgui $builddll -e$exefile $objfiles", 49);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_47, "__asm{$n$1$n}$n", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_48, "$1 $2", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_49, "vcc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_50, " /Ogityb2 ", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_51, " /O1 ", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_52, "cl", 2);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_53, "/c$vccplatform $options $include /nologo /Fo$objfile $file", 58);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_54, " /SUBSYSTEM:WINDOWS user32.lib ", 31);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_55, " /LD", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_56, "vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles", 64);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_57, "$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options", 70);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_58, " /I", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_59, " /LIBPATH:", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_60, " $1.lib", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_61, " /RTC1 /Z7 ", 11);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_62, "$3$n$1 $2", 9);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_63, "/Fa$asmfile", 11);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_64, "tcc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_65, "-Wl,-subsystem=gui", 18);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_66, "-o $exefile $options $buildgui $builddll $objfiles", 50);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_67, " -g ", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_68, "env", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_69, " -O1 ", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_70, "-c $ccenvflags $options $include -o $objfile $file", 50);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_71, " -shared ", 9);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_72, "-o $exefile $buildgui $builddll $objfiles $options", 50);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_73, "icl", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_74, "icc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_75, "clang_cl", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_76, "clang-cl", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_77, "-fuse-ld=lld $builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options", 83);
N_LIB_PRIVATE NIM_CONST tyArray__BZ5uScSUO7j9awRS7LrncpQ CC__extccomp_510 = {{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_3),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_5),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_6),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_3),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_7),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_8),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_9),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_11),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_12),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_14),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_15),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_16),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_18),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_20),
183}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_21),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_22),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_23),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_24),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_25),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_26),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_9),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_27),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_24),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_28),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_14),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_15),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_29),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_18),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_20),
183}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_30),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_5),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_6),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_31),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_32),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_8),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_9),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_33),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_12),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_14),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_15),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_16),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_18),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_20),
183}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_34),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_5),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_6),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_34),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_35),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_8),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_9),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_33),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_12),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_14),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_15),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_16),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_18),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_20),
183}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_36),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_37),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_38),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_39),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_40),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_41),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_42),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_43),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_44),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_45),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_46),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_47),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_48),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
151}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_49),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_37),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_50),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_51),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_52),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_52),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_53),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_54),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_55),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_56),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_52),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_57),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_58),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_59),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_60),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_61),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_47),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_62),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_63),
((NimStringDesc*) NIM_NIL),
76}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_64),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_64),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_8),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_65),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_64),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_66),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_67),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_48),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) NIM_NIL),
35}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_68),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_22),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_69),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_70),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_71),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_72),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_47),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_48),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
32}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_73),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_37),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_50),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_51),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_73),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_52),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_53),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_54),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_55),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_56),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_73),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_57),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_58),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_59),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_60),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_61),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_47),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_62),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_63),
((NimStringDesc*) NIM_NIL),
76}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_74),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_4),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_5),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_6),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_74),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_7),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_8),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_9),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_10),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_11),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_74),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_12),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_13),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_14),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_15),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_16),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_17),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_18),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_19),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_20),
183}
,
{((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_75),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_37),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_50),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_51),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_76),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_76),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_53),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_54),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_55),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_56),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_76),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_77),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_58),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_59),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_60),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_61),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_47),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_62),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_63),
((NimStringDesc*) NIM_NIL),
76}
}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_78, "sha1", 4);
extern NIM_CONST tyArray__zAjcTh151RgaydpulQUcEQ OS__platform_518;
extern NIM_CONST tyArray__O7sksHvn7BNpHcBD2dBmog CPU__platform_705;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_80, ".C", 2);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_81, ".cc", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_82, ".cpp", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_83, ".CPP", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_84, ".c++", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_85, ".cp", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_86, ".cxx", 4);
static NIM_CONST tyArray__DLxB9cOndPvLDyky9bY9ccM3g TM__pZmXgBT0YcBrnAO6VUvpNQ_79 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_80),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_81),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_82),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_83),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_84),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_85),
((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_86)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_87, " ", 1);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_88, ".debug", 6);
extern TNimType NTItbackend__zoooocqvga73vZuhGAAy6A_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_89, ".options.debug", 14);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_90, ".speed", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_91, ".options.speed", 14);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_92, ".size", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_93, ".options.size", 13);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_94, ".always", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_95, ".exe", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_96, "CXX", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_97, "CC", 2);
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_98, "Compiler \'$1\' doesn\'t support the requested target", 50);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_100, "/home/runner/work/nightlies/nightlies/nim/compiler/extccomp.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_99 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 510),
((NI) 14)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_101, "exe", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_102, ".d", 2);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_103, "dfile", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_104, "file", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_105, "objfile", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_106, "options", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_107, "include", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_108, "nim", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_109, "lib", 3);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_110, "ccenvflags", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_111, "CXXFLAGS", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_112, "CFLAGS", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_113, ".asm", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_114, "asmfile", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_115, "Produced assembler here: ", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_116 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 603),
((NI) 18)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_117, "Couldn\'t produce assembler listing for the selected C compiler: ", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_118 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 606),
((NI) 18)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_119, "vccplatform", 11);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_120, "vccexe.exe", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_121, " --platform:x86", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_122, " --platform:arm", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_123, " --platform:amd64", 17);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_124, "\012", 1);
extern TNimType NTIcfilelist__KLItBKQec3LJzPmfiYYfQA_;
extern TNimType NTIcfile__n9b2nVKiXbLpHsfkan9c3Rkw_;
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_125, "unknown C compiler: \'$1\'. Available options are: $2", 51);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_126, ", ", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_127 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 335),
((NI) 14)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_128, ".options.always", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_129, ".path", 5);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_130, "true", 4);
extern TNimType NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_;
extern TNimType NTIoserror__THeHlGxHorUQ17FON5jY0g_;
extern TNimType NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_132, "Warning: JSON processing failed for: $#\012", 40);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_133, "D20210525T193831", 16);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_134, "json", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_136, " -dumpversion", 13);
static NIM_CONST tyTuple__XOVT24GHXwqiEj5GCsEGCA TM__pZmXgBT0YcBrnAO6VUvpNQ_137 = {((NimStringDesc*) NIM_NIL),
((NI) 1)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_138, "[C_Files]\012", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_139, "\012[C_Compiler]\012Flags=", 20);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_140, "__dummy__", 9);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_141, "\"", 1);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_142, "\012[Linker]\012Flags=", 16);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_143, ".options.linker", 15);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_144, "\012[Environment]\012libpath=", 23);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_145, "mapping.txt", 11);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_146, "could not write to file: ", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_147 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 1067),
((NI) 14)}
;
extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTIobject__bt67vpmqSRgon6DPHLke6A_;
extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_;
N_LIB_PRIVATE TNimType NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_149, "CC: $1", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_150, ": ", 2);
N_LIB_PRIVATE TNimType NTIobject__No4B2P3n9cbIbeyPxQsRdZg_;
N_LIB_PRIVATE TNimType NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_152, "execution of an external compiler program \'", 43);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_153, "\' failed with exit code: ", 25);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_154, "\012\012", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_155 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 780),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_157 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 399),
((NI) 12)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_158, "invocation of external compiler program failed. ", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_159 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 760),
((NI) 16)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_160, "execution of an external program failed: \'$1\'", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_161 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 762),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_162 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 789),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_164 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 797),
((NI) 16)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_165, "libfile", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_166, "objfiles", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_167, ".linkerexe", 10);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_168, ".map", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_169, ".linkTmpl", 9);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_170, "builddll", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_171, "mapfile", 7);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_172, "buildgui", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_173, "exefile", 7);
extern TNimType NTIdatetime__8A9b0ni9bk9cgtdWJfdrY5WiA_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_174, ".pdb", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_175, " /link /PDB:", 12);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_176, " /Zi /FS /Od", 12);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_177, ".*.pdb", 6);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_180, "Link", 4);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_182, "_linkerArgs.txt", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_185 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 404),
((NI) 14)}
;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_186, "invocation of external linker program failed. ", 46);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_187, " @", 2);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_188, "compile_", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_189 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 412),
((NI) 14)}
;
extern TNimType NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_190, "nimBetterRun", 12);
N_LIB_PRIVATE TNimType NTIobject__tydHlQwYr9bAH64Samu8pCw_;
N_LIB_PRIVATE TNimType NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_;
extern TNimType NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_;
extern TNimType NTIjsonkinderror__AoNiOfrNmMaOu0Lc0TiKiQ_;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_193, "nimDebug", 8);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_194, "options.nim(645, 14) `false` ", 29);
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_195, "\012caught exception:\012$#\012stacktrace:\012$#error evaluating JSON file: $#", 66);
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw gCmdLineInfo__msgs_414;
STRING_LITERAL(TM__pZmXgBT0YcBrnAO6VUvpNQ_196, "jsonscript command outputFile \'$1\' must match \'$2\' which was specified during --compileOnly, see \"outputFile\" entry in \'$3\' ", 124);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__pZmXgBT0YcBrnAO6VUvpNQ_197 = {((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_100),
((NI) 1034),
((NI) 15)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5228;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile__extccomp_720)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = rawNewString((filename ? filename->Sup.len : 0) + (CC__extccomp_510[((*conf).cCompiler)- 1].Field1 ? CC__extccomp_510[((*conf).cCompiler)- 1].Field1->Sup.len : 0) + 1);
appendString(T1_, filename);
appendString(T1_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_2));
appendString(T1_, CC__extccomp_510[((*conf).cCompiler)- 1].Field1);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCfilePath__extccomp_715)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cfile, NIM_BOOL createSubDir) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = completeGeneratedFilePath__options_4242(conf, cfile, createSubDir);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, useCpp__extccomp_906)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cfile) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NimStringDesc* ext;
		NI i;
		ext = NIM_NIL;
		i = ((NI) 0);
		{
			while (1) {
				ext = copyString(TM__pZmXgBT0YcBrnAO6VUvpNQ_79[(i)- 0]);
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = nsuEndsWith(cfile, ext);
					if (!T6_) goto LA7_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA7_: ;
				{
					if (!(((NI) 6) <= ((NI) (i)))) goto LA11_;
					goto LA2;
				}
				LA11_: ;
				i += ((NI) 1);
			}
		} LA2: ;
	}
	result = NIM_FALSE;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_CHAR*, X5BX5D___system_7373)(NimStringDesc** s, NI i) {
	NIM_CHAR* result;
	result = (NIM_CHAR*)0;
	result = (&(*s)->data[(NI)(((*s) ? (*s)->Sup.len : 0) - i)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addOpt__extccomp_689)(NimStringDesc** dest, NimStringDesc* src) {
	{
		NIM_BOOL T3_;
		NIM_CHAR* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*dest) ? (*dest)->Sup.len : 0) == ((NI) 0));
		if (T3_) goto LA4_;
		T5_ = (NIM_CHAR*)0;
		T5_ = X5BX5D___system_7373(dest, ((NI) 1));
		T3_ = !(((NU8)((*T5_)) == (NU8)(32)));
		LA4_: ;
		if (!T3_) goto LA6_;
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 1));
appendString((*dest), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
	}
	LA6_: ;
	unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), (src ? src->Sup.len : 0) + 0));
appendString((*dest), src);
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__extccomp_629)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c, NimStringDesc* suffix) {
	NimStringDesc* result;
	NimStringDesc* fullSuffix;
{	result = NIM_NIL;
	fullSuffix = copyString(suffix);
	switch ((*conf).backend) {
	case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 2):
	case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 3):
	case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 4):
	{
		NimStringDesc* T2_;
		T2_ = NIM_NIL;
		T2_ = rawNewString((reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_)) ? reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_))->Sup.len : 0) + (suffix ? suffix->Sup.len : 0) + 1);
appendString(T2_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_2));
appendString(T2_, reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_)));
appendString(T2_, suffix);
		fullSuffix = T2_;
	}
	break;
	case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 1):
	{
	}
	break;
	case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 0):
	{
		result = ((NimStringDesc*) NIM_NIL);
		goto BeforeRet_;
	}
	break;
	}
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NimStringDesc* fullCCname;
		NimStringDesc* T13_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((*conf).target.hostOS == (*conf).target.targetOS));
		if (T8_) goto LA9_;
		T8_ = !(((*conf).target.hostCPU == (*conf).target.targetCPU));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = !((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 4))&63U)))!=0));
		LA10_: ;
		if (!T7_) goto LA11_;
		T13_ = NIM_NIL;
		T13_ = rawNewString((CPU__platform_705[((*conf).target.targetCPU)- 1].Field0 ? CPU__platform_705[((*conf).target.targetCPU)- 1].Field0->Sup.len : 0) + (OS__platform_518[((*conf).target.targetOS)- 1].Field0 ? OS__platform_518[((*conf).target.targetOS)- 1].Field0->Sup.len : 0) + (CC__extccomp_510[(c)- 1].Field0 ? CC__extccomp_510[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 2);
appendString(T13_, CPU__platform_705[((*conf).target.targetCPU)- 1].Field0);
appendChar(T13_, 46);
appendString(T13_, OS__platform_518[((*conf).target.targetOS)- 1].Field0);
appendChar(T13_, 46);
appendString(T13_, CC__extccomp_510[(c)- 1].Field0);
appendString(T13_, fullSuffix);
		fullCCname = T13_;
		result = getConfigVar__options_4054(conf, fullCCname, ((NimStringDesc*) NIM_NIL));
		{
			NimStringDesc* T18_;
			if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA16_;
			T18_ = NIM_NIL;
			T18_ = rawNewString((CC__extccomp_510[(c)- 1].Field0 ? CC__extccomp_510[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 0);
appendString(T18_, CC__extccomp_510[(c)- 1].Field0);
appendString(T18_, fullSuffix);
			result = getConfigVar__options_4054(conf, T18_, ((NimStringDesc*) NIM_NIL));
		}
		LA16_: ;
	}
	goto LA5_;
	LA11_: ;
	{
		NimStringDesc* T20_;
		T20_ = NIM_NIL;
		T20_ = rawNewString((CC__extccomp_510[(c)- 1].Field0 ? CC__extccomp_510[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 0);
appendString(T20_, CC__extccomp_510[(c)- 1].Field0);
appendString(T20_, fullSuffix);
		result = getConfigVar__options_4054(conf, T20_, ((NimStringDesc*) NIM_NIL));
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDebug__extccomp_825)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = getConfigVar__extccomp_629(conf, c, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_89));
	{
		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
		result = copyString(CC__extccomp_510[(c)- 1].Field15);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSpeed__extccomp_821)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = getConfigVar__extccomp_629(conf, c, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_91));
	{
		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
		result = copyString(CC__extccomp_510[(c)- 1].Field2);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSize__extccomp_829)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = getConfigVar__extccomp_629(conf, c, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_93));
	{
		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
		result = copyString(CC__extccomp_510[(c)- 1].Field3);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cFileSpecificOptions__extccomp_844)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* nimname, NimStringDesc* fullNimFile) {
	NimStringDesc* result;
	NimStringDesc* key_4;
	NimStringDesc* T48_;
	NimStringDesc* T55_;
	result = NIM_NIL;
	result = copyString((*conf).compileOptions);
	{
		NimStringDesc** option;
		NI i;
		NI L;
		NI T2_;
		option = (NimStringDesc**)0;
		i = ((NI) 0);
		T2_ = ((*conf).compileOptionsCmd ? (*conf).compileOptionsCmd->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				option = (&(*conf).compileOptionsCmd->data[i]);
				{
					NI T7_;
					T7_ = (NI)0;
					T7_ = nsuFindStr(result, (*option), ((NI) 0), ((NI) 0));
					if (!(T7_ < ((NI) 0))) goto LA8_;
					addOpt__extccomp_689((&result), (*option));
				}
				LA8_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NimStringDesc* key;
		NimStringDesc* T14_;
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 6))&63U)))!=0)) goto LA12_;
		T14_ = NIM_NIL;
		T14_ = rawNewString((nimname ? nimname->Sup.len : 0) + 6);
appendString(T14_, nimname);
appendString(T14_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_88));
		key = T14_;
		{
			NIM_BOOL T17_;
			NimStringDesc* T20_;
			T17_ = (NIM_BOOL)0;
			T17_ = existsConfigVar__options_4050(conf, key);
			if (!T17_) goto LA18_;
			T20_ = NIM_NIL;
			T20_ = getConfigVar__options_4054(conf, key, ((NimStringDesc*) NIM_NIL));
			addOpt__extccomp_689((&result), T20_);
		}
		goto LA15_;
		LA18_: ;
		{
			NimStringDesc* T22_;
			T22_ = NIM_NIL;
			T22_ = getDebug__extccomp_825(conf, (*conf).cCompiler);
			addOpt__extccomp_689((&result), T22_);
		}
		LA15_: ;
	}
	LA12_: ;
	{
		NimStringDesc* key_2;
		NimStringDesc* T27_;
		if (!(((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 15))&31U)))!=0)) goto LA25_;
		T27_ = NIM_NIL;
		T27_ = rawNewString((nimname ? nimname->Sup.len : 0) + 6);
appendString(T27_, nimname);
appendString(T27_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_90));
		key_2 = T27_;
		{
			NIM_BOOL T30_;
			NimStringDesc* T33_;
			T30_ = (NIM_BOOL)0;
			T30_ = existsConfigVar__options_4050(conf, key_2);
			if (!T30_) goto LA31_;
			T33_ = NIM_NIL;
			T33_ = getConfigVar__options_4054(conf, key_2, ((NimStringDesc*) NIM_NIL));
			addOpt__extccomp_689((&result), T33_);
		}
		goto LA28_;
		LA31_: ;
		{
			NimStringDesc* T35_;
			T35_ = NIM_NIL;
			T35_ = getOptSpeed__extccomp_821(conf, (*conf).cCompiler);
			addOpt__extccomp_689((&result), T35_);
		}
		LA28_: ;
	}
	goto LA23_;
	LA25_: ;
	{
		NimStringDesc* key_3;
		NimStringDesc* T39_;
		if (!(((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 16))&31U)))!=0)) goto LA37_;
		T39_ = NIM_NIL;
		T39_ = rawNewString((nimname ? nimname->Sup.len : 0) + 5);
appendString(T39_, nimname);
appendString(T39_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_92));
		key_3 = T39_;
		{
			NIM_BOOL T42_;
			NimStringDesc* T45_;
			T42_ = (NIM_BOOL)0;
			T42_ = existsConfigVar__options_4050(conf, key_3);
			if (!T42_) goto LA43_;
			T45_ = NIM_NIL;
			T45_ = getConfigVar__options_4054(conf, key_3, ((NimStringDesc*) NIM_NIL));
			addOpt__extccomp_689((&result), T45_);
		}
		goto LA40_;
		LA43_: ;
		{
			NimStringDesc* T47_;
			T47_ = NIM_NIL;
			T47_ = getOptSize__extccomp_829(conf, (*conf).cCompiler);
			addOpt__extccomp_689((&result), T47_);
		}
		LA40_: ;
	}
	goto LA23_;
	LA37_: ;
	LA23_: ;
	T48_ = NIM_NIL;
	T48_ = rawNewString((nimname ? nimname->Sup.len : 0) + 7);
appendString(T48_, nimname);
appendString(T48_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_94));
	key_4 = T48_;
	{
		NIM_BOOL T51_;
		NimStringDesc* T54_;
		T51_ = (NIM_BOOL)0;
		T51_ = existsConfigVar__options_4050(conf, key_4);
		if (!T51_) goto LA52_;
		T54_ = NIM_NIL;
		T54_ = getConfigVar__options_4054(conf, key_4, ((NimStringDesc*) NIM_NIL));
		addOpt__extccomp_689((&result), T54_);
	}
	LA52_: ;
	T55_ = NIM_NIL;
	T55_ = getOrDefault__pureZstrtabs_173((*conf).cfileSpecificOptions, fullNimFile, ((NimStringDesc*) NIM_NIL));
	addOpt__extccomp_689((&result), T55_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompilerExe__extccomp_961)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ compiler, NIM_BOOL isCpp) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		if (!(compiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 8))) goto LA3_;
		{
			if (!isCpp) goto LA7_;
			result = getEnv__pureZos_418(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_96), ((NimStringDesc*) NIM_NIL));
		}
		goto LA5_;
		LA7_: ;
		{
			result = getEnv__pureZos_418(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_97), ((NimStringDesc*) NIM_NIL));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!isCpp) goto LA13_;
			result = copyString(CC__extccomp_510[(compiler)- 1].Field5);
		}
		goto LA11_;
		LA13_: ;
		{
			result = copyString(CC__extccomp_510[(compiler)- 1].Field4);
		}
		LA11_: ;
	}
	LA1_: ;
	{
		NimStringDesc* T20_;
		if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_98), CC__extccomp_510[(compiler)- 1].Field0);
		liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_99, NIM_FALSE);
	}
	LA18_: ;
	return result;
}
static N_INLINE(NIM_BOOL, needsExeExt__extccomp_891)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 10))&63U)))!=0);
	if (!(T2_)) goto LA3_;
	T2_ = ((*conf).target.targetOS == ((tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw) 2));
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = ((*conf).target.hostOS == ((tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw) 2));
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, noAbsolutePaths__extccomp_833)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((((*conf).globalOptions & 3072) == 0));
	return result;
}
static N_INLINE(NIM_BOOL, isEmpty__options_4492)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, envFlags__extccomp_954)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		if (!((*conf).backend == ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 2))) goto LA3_;
		result = getEnv__pureZos_418(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_111), ((NimStringDesc*) NIM_NIL));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getEnv__pureZos_418(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_112), ((NimStringDesc*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, vccplatform__extccomp_872)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		NimStringDesc* exe;
		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 6))) goto LA3_;
		exe = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_95));
		{
			NimStringDesc* T7_;
			T7_ = NIM_NIL;
			T7_ = nosextractFilename(exe);
			if (!eqStrings(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_120), T7_)) goto LA8_;
			switch ((*conf).target.targetCPU) {
			case ((tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ) 1):
			{
				result = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_121));
			}
			break;
			case ((tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ) 14):
			{
				result = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_122));
			}
			break;
			case ((tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ) 11):
			{
				result = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_123));
			}
			break;
			default:
			{
				result = ((NimStringDesc*) NIM_NIL);
			}
			break;
			}
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd__extccomp_997)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile, NIM_BOOL isMainFile, NIM_BOOL produceOutput) {
	NimStringDesc* result;
	tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ c;
	NIM_BOOL isCpp;
	NimStringDesc* options;
	NimStringDesc* T1_;
	NimStringDesc* exe;
	NimStringDesc* compilePattern;
	NimStringDesc* includeCmd;
	NimStringDesc* T31_;
	NimStringDesc* T32_;
	tyArray__Re75IspeoxXy2oCZHwcRrA T45_;
	NimStringDesc* T46_;
	NimStringDesc* cf;
	NimStringDesc* objfile;
	NimStringDesc* dfile;
	NimStringDesc* T71_;
	NimStringDesc* cfsh;
	tyArray__rmMMhDIqORJzUU5zqeitSQ T72_;
	NimStringDesc* T73_;
	tyArray__68WB4OcBspSFyW4LY9cOceA T96_;
	NimStringDesc* T97_;
	result = NIM_NIL;
	c = (*conf).cCompiler;
	isCpp = useCpp__extccomp_906(conf, (*cfile).cname);
	T1_ = NIM_NIL;
	T1_ = noschangeFileExt((*cfile).cname, ((NimStringDesc*) NIM_NIL));
	options = cFileSpecificOptions__extccomp_844(conf, (*cfile).nimname, T1_);
	{
		NimStringDesc* T6_;
		if (!isCpp) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = rawNewString((CC__extccomp_510[(c)- 1].Field20 ? CC__extccomp_510[(c)- 1].Field20->Sup.len : 0) + (options ? options->Sup.len : 0) + 1);
appendString(T6_, CC__extccomp_510[(c)- 1].Field20);
appendChar(T6_, 32);
appendString(T6_, options);
		options = T6_;
		(*conf).globalOptions |= ((NU64)1)<<((((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 35)) & 63);
	}
	LA4_: ;
	exe = getConfigVar__extccomp_629(conf, c, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_95));
	{
		if (!((exe ? exe->Sup.len : 0) == ((NI) 0))) goto LA9_;
		exe = getCompilerExe__extccomp_961(conf, c, isCpp);
	}
	LA9_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = needsExeExt__extccomp_891(conf);
		if (!T13_) goto LA14_;
		exe = nosaddFileExt(exe, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_101));
	}
	LA14_: ;
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		NIM_BOOL T21_;
		NimStringDesc* T26_;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 7))&63U)))!=0);
		if (T19_) goto LA20_;
		T21_ = (NIM_BOOL)0;
		T21_ = hcrOn__options_582(conf);
		if (!(T21_)) goto LA22_;
		T21_ = !(isMainFile);
		LA22_: ;
		T19_ = T21_;
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA23_;
		T18_ = ((OS__platform_518[((*conf).target.targetOS)- 1].Field12 &((NU8)1<<((NU)(((tyEnum_TInfoOSProp__zwoAJqKVL5t9aBqjgBrDcAA) 0))&7U)))!=0);
		LA23_: ;
		if (!T18_) goto LA24_;
		T26_ = NIM_NIL;
		T26_ = rawNewString((CC__extccomp_510[(c)- 1].Field16 ? CC__extccomp_510[(c)- 1].Field16->Sup.len : 0) + 1);
appendChar(T26_, 32);
appendString(T26_, CC__extccomp_510[(c)- 1].Field16);
		options = resizeString(options, (T26_ ? T26_->Sup.len : 0) + 0);
appendString(options, T26_);
	}
	LA24_: ;
	{
		if (!!((((*cfile).customArgs ? (*cfile).customArgs->Sup.len : 0) == 0))) goto LA29_;
		options = addChar(options, 32);
		options = resizeString(options, ((*cfile).customArgs ? (*cfile).customArgs->Sup.len : 0) + 0);
appendString(options, (*cfile).customArgs);
	}
	LA29_: ;
	compilePattern = NIM_NIL;
	T31_ = NIM_NIL;
	T32_ = NIM_NIL;
	T32_ = nospquoteShell((*conf).libpath);
	T31_ = rawNewString((CC__extccomp_510[(c)- 1].Field12 ? CC__extccomp_510[(c)- 1].Field12->Sup.len : 0) + (T32_ ? T32_->Sup.len : 0) + 0);
appendString(T31_, CC__extccomp_510[(c)- 1].Field12);
appendString(T31_, T32_);
	includeCmd = T31_;
	{
		NIM_BOOL T35_;
		T35_ = (NIM_BOOL)0;
		T35_ = noAbsolutePaths__extccomp_833(conf);
		if (!!(T35_)) goto LA36_;
		{
			NimStringDesc** includeDir;
			NI i;
			NI L;
			NI T39_;
			includeDir = (NimStringDesc**)0;
			i = ((NI) 0);
			T39_ = ((*conf).cIncludes ? (*conf).cIncludes->Sup.len : 0);
			L = T39_;
			{
				while (1) {
					tyArray__Re75IspeoxXy2oCZHwcRrA T42_;
					NimStringDesc* T43_;
					if (!(i < L)) goto LA41;
					includeDir = (&(*conf).cIncludes->data[i]);
					nimZeroMem((void*)T42_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T42_[0] = copyString(CC__extccomp_510[(c)- 1].Field12);
					T42_[1] = nospquoteShell((*includeDir));
					T43_ = NIM_NIL;
					T43_ = nsuJoinSep(T42_, 2, ((NimStringDesc*) NIM_NIL));
					includeCmd = resizeString(includeCmd, (T43_ ? T43_->Sup.len : 0) + 0);
appendString(includeCmd, T43_);
					i += ((NI) 1);
				} LA41: ;
			}
		}
		compilePattern = nosjoinPath((*conf).cCompilerPath, exe);
	}
	goto LA33_;
	LA36_: ;
	{
		compilePattern = getCompilerExe__extccomp_961(conf, c, isCpp);
	}
	LA33_: ;
	nimZeroMem((void*)T45_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T45_[0] = copyString(CC__extccomp_510[(c)- 1].Field12);
	T45_[1] = nospquoteShell((*conf).projectPath);
	T46_ = NIM_NIL;
	T46_ = nsuJoinSep(T45_, 2, ((NimStringDesc*) NIM_NIL));
	includeCmd = resizeString(includeCmd, (T46_ ? T46_->Sup.len : 0) + 0);
appendString(includeCmd, T46_);
	{
		NIM_BOOL T49_;
		T49_ = (NIM_BOOL)0;
		T49_ = noAbsolutePaths__extccomp_833(conf);
		if (!T49_) goto LA50_;
		cf = nosextractFilename((*cfile).cname);
	}
	goto LA47_;
	LA50_: ;
	{
		cf = (*cfile).cname;
	}
	LA47_: ;
	{
		NIM_BOOL T55_;
		T55_ = (NIM_BOOL)0;
		T55_ = isEmpty__options_4492((*cfile).obj);
		if (!T55_) goto LA56_;
		{
			NIM_BOOL T60_;
			T60_ = (NIM_BOOL)0;
			T60_ = !((((*cfile).flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 1))&7U)))!=0));
			if (T60_) goto LA61_;
			T60_ = noAbsolutePaths__extccomp_833(conf);
			LA61_: ;
			if (!T60_) goto LA62_;
			objfile = toObjFile__extccomp_720(conf, cf);
		}
		goto LA58_;
		LA62_: ;
		{
			NimStringDesc* T65_;
			T65_ = NIM_NIL;
			T65_ = toObjFile__extccomp_720(conf, cf);
			objfile = completeCfilePath__extccomp_715(conf, T65_, NIM_TRUE);
		}
		LA58_: ;
	}
	goto LA53_;
	LA56_: ;
	{
		NIM_BOOL T67_;
		T67_ = (NIM_BOOL)0;
		T67_ = noAbsolutePaths__extccomp_833(conf);
		if (!T67_) goto LA68_;
		objfile = nosextractFilename((*cfile).obj);
	}
	goto LA53_;
	LA68_: ;
	{
		objfile = (*cfile).obj;
	}
	LA53_: ;
	T71_ = NIM_NIL;
	T71_ = noschangeFileExt(objfile, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_102));
	dfile = nospquoteShell(T71_);
	cfsh = nospquoteShell(cf);
	nimZeroMem((void*)T72_, sizeof(tyArray__rmMMhDIqORJzUU5zqeitSQ));
	T72_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_103));
	T72_[1] = copyString(dfile);
	T72_[2] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_104));
	T72_[3] = copyString(cfsh);
	T72_[4] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_105));
	T72_[5] = nospquoteShell(objfile);
	T72_[6] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_106));
	T72_[7] = copyString(options);
	T72_[8] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_107));
	T72_[9] = copyString(includeCmd);
	T72_[10] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_108));
	T72_[11] = getPrefixDir__options_4096(conf);
	T72_[12] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_109));
	T72_[13] = copyString((*conf).libpath);
	T72_[14] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_110));
	T72_[15] = envFlags__extccomp_954(conf);
	T73_ = NIM_NIL;
	T73_ = nsuFormatOpenArray(compilePattern, T72_, 16);
	result = nospquoteShell(T73_);
	{
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 45))&63U)))!=0)) goto LA76_;
		{
			NimStringDesc* asmfile;
			NimStringDesc* T82_;
			tyArray__Re75IspeoxXy2oCZHwcRrA T83_;
			NimStringDesc* T84_;
			if (!(((NI) 0) < (CC__extccomp_510[((*conf).cCompiler)- 1].Field19 ? CC__extccomp_510[((*conf).cCompiler)- 1].Field19->Sup.len : 0))) goto LA80_;
			T82_ = NIM_NIL;
			T82_ = noschangeFileExt(objfile, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_113));
			asmfile = nospquoteShell(T82_);
			nimZeroMem((void*)T83_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T83_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_114));
			T83_[1] = copyString(asmfile);
			T84_ = NIM_NIL;
			T84_ = nsuFormatOpenArray(CC__extccomp_510[((*conf).cCompiler)- 1].Field19, T83_, 2);
			addOpt__extccomp_689((&result), T84_);
			{
				NimStringDesc* T89_;
				if (!produceOutput) goto LA87_;
				T89_ = NIM_NIL;
				T89_ = rawNewString((asmfile ? asmfile->Sup.len : 0) + 25);
appendString(T89_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_115));
appendString(T89_, asmfile);
				liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 103), T89_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_116, NIM_FALSE);
			}
			LA87_: ;
		}
		goto LA78_;
		LA80_: ;
		{
			{
				NimStringDesc* T95_;
				if (!produceOutput) goto LA93_;
				T95_ = NIM_NIL;
				T95_ = rawNewString((CC__extccomp_510[((*conf).cCompiler)- 1].Field0 ? CC__extccomp_510[((*conf).cCompiler)- 1].Field0->Sup.len : 0) + 64);
appendString(T95_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_117));
appendString(T95_, CC__extccomp_510[((*conf).cCompiler)- 1].Field0);
				liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 103), T95_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_118, NIM_FALSE);
			}
			LA93_: ;
		}
		LA78_: ;
	}
	LA76_: ;
	result = addChar(result, 32);
	nimZeroMem((void*)T96_, sizeof(tyArray__68WB4OcBspSFyW4LY9cOceA));
	T96_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_103));
	T96_[1] = copyString(dfile);
	T96_[2] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_104));
	T96_[3] = copyString(cfsh);
	T96_[4] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_105));
	T96_[5] = nospquoteShell(objfile);
	T96_[6] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_106));
	T96_[7] = copyString(options);
	T96_[8] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_107));
	T96_[9] = copyString(includeCmd);
	T96_[10] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_108));
	T97_ = NIM_NIL;
	T97_ = getPrefixDir__options_4096(conf);
	T96_[11] = nospquoteShell(T97_);
	T96_[12] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_109));
	T96_[13] = nospquoteShell((*conf).libpath);
	T96_[14] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_119));
	T96_[15] = vccplatform__extccomp_872(conf);
	T96_[16] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_110));
	T96_[17] = envFlags__extccomp_954(conf);
	nsuAddf((&result), CC__extccomp_510[(c)- 1].Field6, T96_, 18);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, footprint__extccomp_1051)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result) {
	NimStringDesc* T1_;
	tyArray__YtcvxHNKV4YiecPE9ap1mcA T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	T1_ = NIM_NIL;
	nimZeroMem((void*)T2_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
	secureHashFile__stdZsha49_862((*cfile).cname, T2_);
	T3_ = NIM_NIL;
	T3_ = dollar___stdZsha49_870(T2_);
	T4_ = NIM_NIL;
	T4_ = getCompileCFileCmd__extccomp_997(conf, cfile, NIM_FALSE, NIM_FALSE);
	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (OS__platform_518[((*conf).target.targetOS)- 1].Field0 ? OS__platform_518[((*conf).target.targetOS)- 1].Field0->Sup.len : 0) + (CPU__platform_705[((*conf).target.targetCPU)- 1].Field0 ? CPU__platform_705[((*conf).target.targetCPU)- 1].Field0->Sup.len : 0) + (CC__extccomp_510[((*conf).cCompiler)- 1].Field0 ? CC__extccomp_510[((*conf).cCompiler)- 1].Field0->Sup.len : 0) + (T4_ ? T4_->Sup.len : 0) + 0);
appendString(T1_, T3_);
appendString(T1_, OS__platform_518[((*conf).target.targetOS)- 1].Field0);
appendString(T1_, CPU__platform_705[((*conf).target.targetCPU)- 1].Field0);
appendString(T1_, CC__extccomp_510[((*conf).cCompiler)- 1].Field0);
appendString(T1_, T4_);
	secureHash__stdZsha49_831((T1_) ? (T1_->data) : NIM_NIL, (T1_ ? T1_->Sup.len : 0), Result);
}
static N_INLINE(void, writeLine__msgs_442)(FILE* f, NimStringDesc** x, NI xLen_0) {
	{
		NimStringDesc** i;
		NI i_2;
		i = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < xLen_0)) goto LA3;
				i = (&x[i_2]);
				write__systemZio_205(f, (*i));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	write__systemZio_205(f, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_124));
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, externalFileChanged__extccomp_1055)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cfile) {
	NIM_BOOL result;
	NimStringDesc* hashFile;
	NimStringDesc* T5_;
	tyArray__YtcvxHNKV4YiecPE9ap1mcA currentHash;
	FILE* f;
{	result = (NIM_BOOL)0;
	{
		if (!((*conf).backend == ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 3))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = mangleModuleName__modulepaths_32(conf, (*cfile).cname);
	hashFile = toGeneratedFile__options_4237(conf, T5_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_78));
	nimZeroMem((void*)currentHash, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
	footprint__extccomp_1051(conf, cfile, currentHash);
	f = (FILE*)0;
	{
		NIM_BOOL T8_;
		tyArray__YtcvxHNKV4YiecPE9ap1mcA oldHash;
		NimStringDesc* T11_;
		NIM_BOOL T12_;
		T8_ = (NIM_BOOL)0;
		T8_ = open__systemZio_391(&f, hashFile, ((tyEnum_FileMode__l9cwNsPPKSvz36rQZGh2S7w) 0), ((NI) -1));
		if (!T8_) goto LA9_;
		nimZeroMem((void*)oldHash, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
		T11_ = NIM_NIL;
		T11_ = readLine__systemZio_273(f);
		parseSecureHash__stdZsha49_903(T11_, oldHash);
		close__systemZio_218(f);
		T12_ = (NIM_BOOL)0;
		T12_ = eqeq___stdZsha49_911(oldHash, currentHash);
		result = !(T12_);
	}
	goto LA6_;
	LA9_: ;
	{
		result = NIM_TRUE;
	}
	LA6_: ;
	{
		if (!result) goto LA16_;
		{
			NIM_BOOL T20_;
			tyArray__nHXaesL0DJZHyVS07ARPRA T23_;
			T20_ = (NIM_BOOL)0;
			T20_ = open__systemZio_391(&f, hashFile, ((tyEnum_FileMode__l9cwNsPPKSvz36rQZGh2S7w) 1), ((NI) -1));
			if (!T20_) goto LA21_;
			nimZeroMem((void*)T23_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T23_[0] = dollar___stdZsha49_870(currentHash);
			writeLine__msgs_442(f, T23_, 1);
			close__systemZio_218(f);
		}
		LA21_: ;
	}
	LA16_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5319)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5281)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5324)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5275((&gch__system_5228.zct), c);
}
static N_INLINE(void, decRef__system_5326)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5324(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5281(src);
		incRef__system_5319(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5281((*dest));
		decRef__system_5326(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1071)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* c) {
	NIM_BOOL extFileChanged;
	NI T11_;
	extFileChanged = externalFileChanged__extccomp_1055(conf, (&(*c)));
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 1))&63U)))!=0));
		if (!(T4_)) goto LA5_;
		T4_ = nosfileExists((*c).obj);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !(extFileChanged);
		LA6_: ;
		if (!T3_) goto LA7_;
		(*c).flags |= ((NU8)1)<<((((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 0)) & 7);
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = nostryRemoveFile((*c).obj);
		(void)(T10_);
	}
	LA1_: ;
	asgnRef((void**) (&(*conf).toCompile), (tySequence__KLItBKQec3LJzPmfiYYfQA*) incrSeqV3((TGenericSeq*)((*conf).toCompile), (&NTIcfilelist__KLItBKQec3LJzPmfiYYfQA_)));
	T11_ = (*conf).toCompile->Sup.len++;
	genericAssign((void*)(&(*conf).toCompile->data[T11_]), (void*)(&(*c)), (&NTIcfile__n9b2nVKiXbLpHsfkan9c3Rkw_));
}
N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1087)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename) {
	tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw c;
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
	NimStringDesc* T2_;
	nimZeroMem((void*)(&c), sizeof(tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw));
	nimZeroMem((void*)(&c), sizeof(tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw));
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile__pathutils_27(filename, (&T1_));
	c.nimname = copyString(T1_.Field1);
	c.cname = copyString(filename);
	T2_ = NIM_NIL;
	T2_ = completeCfilePath__extccomp_715(conf, filename, NIM_FALSE);
	c.obj = toObjFile__extccomp_720(conf, T2_);
	c.flags = 2;
	addExternalFileToCompile__extccomp_1071(conf, (&c));
}
N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToLink__extccomp_756)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename) {
	insert__extccomp_759((&(*conf).externalToLink), filename, ((NI) 0));
}
static N_INLINE(NIM_BOOL, contains__extccomp_614)(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ s, tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ, dotdot___extccomp_593)(tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw a, tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw b) {
	tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVSCompatible__extccomp_577)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T5_;
	tyObject_HSlice__dMRr9aOUU4MqIdJyvxqISpQ T7_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 6));
	if (T2_) goto LA3_;
	T2_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 11));
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 9));
	if (!(T5_)) goto LA6_;
	T7_ = dotdot___extccomp_593(((tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw) 1), ((tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw) 2));
	T5_ = contains__extccomp_614(T7_, (*conf).target.hostOS);
	LA6_: ;
	T1_ = T5_;
	LA4_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5281(p);
	decRef__system_5326(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, addCompileOptionCmd__extccomp_701)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option) {
	NI T1_;
	NimStringDesc* T2_;
	asgnRef((void**) (&(*conf).compileOptionsCmd), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*conf).compileOptionsCmd), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
	T1_ = (*conf).compileOptionsCmd->Sup.len++;
	T2_ = NIM_NIL;
	T2_ = (*conf).compileOptionsCmd->data[T1_]; (*conf).compileOptionsCmd->data[T1_] = copyStringRC1(option);
	if (T2_) nimGCunrefNoCycle(T2_);
}
N_LIB_PRIVATE N_NIMCALL(void, addLinkOptionCmd__extccomp_698)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option) {
	addOpt__extccomp_689((&(*conf).linkOptionsCmd), option);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ, nameToCC__extccomp_523)(NimStringDesc* name) {
	tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ result;
{	result = (tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ)0;
	{
		tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ i;
		NI res;
		i = (tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= ((NI) 11))) goto LA3;
				i = ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) (res));
				{
					NI T6_;
					T6_ = (NI)0;
					T6_ = nsuCmpIgnoreStyle(name, CC__extccomp_510[(i)- 1].Field0);
					if (!(T6_ == ((NI) 0))) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 0);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listCCnames__extccomp_554)(void) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = ((NimStringDesc*) NIM_NIL);
	{
		tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ i;
		NI res;
		i = (tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= ((NI) 11))) goto LA3;
				i = ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) (res));
				{
					if (!(((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 1) < i)) goto LA6_;
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_126));
				}
				LA6_: ;
				result = resizeString(result, (CC__extccomp_510[(i)- 1].Field0 ? CC__extccomp_510[(i)- 1].Field0->Sup.len : 0) + 0);
appendString(result, CC__extccomp_510[(i)- 1].Field0);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setCC__extccomp_651)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* ccname, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	(*conf).cCompiler = nameToCC__extccomp_523(ccname);
	{
		tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
		NimStringDesc* T6_;
		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 0))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T5_[0] = copyString(ccname);
		T5_[1] = listCCnames__extccomp_554();
		T6_ = NIM_NIL;
		T6_ = nsuFormatOpenArray(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_125), T5_, 2);
		liMessage__msgs_1128(conf, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__pZmXgBT0YcBrnAO6VUvpNQ_127, NIM_FALSE);
	}
	LA3_: ;
	asgnRef((void**) (&(*conf).compileOptions), getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_128)));
	asgnRef((void**) (&(*conf).linkOptions), ((NimStringDesc*) NIM_NIL));
	asgnRef((void**) (&(*conf).cCompilerPath), getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_129)));
	{
		tyTuple__EU9a9btT9bDanvLpyt3NNw3KA c;
		tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA i;
		nimZeroMem((void*)(&c), sizeof(tyTuple__EU9a9btT9bDanvLpyt3NNw3KA));
		i = ((tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA) 1);
		{
			while (1) {
				nimCopyMem((void*)(&c), (NIM_CONST void*)(&CC__extccomp_510[(i)- 1]), sizeof(c));
				undefSymbol__condsyms_8((*conf).symbols, c.Field0);
				{
					if (!(((tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA) 11) <= i)) goto LA12_;
					goto LA8;
				}
				LA12_: ;
				i += ((NI) 1);
			}
		} LA8: ;
	}
	defineSymbol__condsyms_4((*conf).symbols, CC__extccomp_510[((*conf).cCompiler)- 1].Field0, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_130));
}
N_LIB_PRIVATE N_NIMCALL(void, addLinkOption__extccomp_692)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option) {
	addOpt__extccomp_689((&(*conf).linkOptions), option);
}
N_LIB_PRIVATE N_NIMCALL(void, addCompileOption__extccomp_695)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = nsuFindStr((*conf).compileOptions, option, ((NI) 0), ((NI) 0));
		if (!(T3_ < ((NI) 0))) goto LA4_;
		addOpt__extccomp_689((&(*conf).compileOptions), option);
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addLocalCompileOption__extccomp_740)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* option, NimStringDesc* nimfile) {
	NimStringDesc* key;
	NimStringDesc* T1_;
	NimStringDesc* value;
	T1_ = NIM_NIL;
	T1_ = mangleModuleName__modulepaths_32(conf, nimfile);
	key = completeCfilePath__extccomp_715(conf, T1_, NIM_TRUE);
	value = getOrDefault__pureZstrtabs_173((*conf).cfileSpecificOptions, key, ((NimStringDesc*) NIM_NIL));
	{
		NI T4_;
		T4_ = (NI)0;
		T4_ = nsuFindStr(value, option, ((NI) 0), ((NI) 0));
		if (!(T4_ < ((NI) 0))) goto LA5_;
		addOpt__extccomp_689((&value), option);
		nstPut((*conf).cfileSpecificOptions, key, value);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initVars__extccomp_708)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* T8_;
	{
		tyTuple__EU9a9btT9bDanvLpyt3NNw3KA c;
		tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA i;
		nimZeroMem((void*)(&c), sizeof(tyTuple__EU9a9btT9bDanvLpyt3NNw3KA));
		i = ((tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA) 1);
		{
			while (1) {
				nimCopyMem((void*)(&c), (NIM_CONST void*)(&CC__extccomp_510[(i)- 1]), sizeof(c));
				undefSymbol__condsyms_8((*conf).symbols, c.Field0);
				{
					if (!(((tyEnum_TSystemCC__pJWcz8upPsJgHEoMrlE9cFA) 11) <= i)) goto LA6_;
					goto LA2;
				}
				LA6_: ;
				i += ((NI) 1);
			}
		} LA2: ;
	}
	defineSymbol__condsyms_4((*conf).symbols, CC__extccomp_510[((*conf).cCompiler)- 1].Field0, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_130));
	T8_ = NIM_NIL;
	T8_ = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_128));
	addCompileOption__extccomp_695(conf, T8_);
	{
		if (!(((*conf).cCompilerPath ? (*conf).cCompilerPath->Sup.len : 0) == ((NI) 0))) goto LA11_;
		asgnRef((void**) (&(*conf).cCompilerPath), getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_129)));
	}
	LA11_: ;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__system_2565;
	excHandler__system_2565 = s;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__system_2565 = (*excHandler__system_2565).prev;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = NIM_NIL;
	result = currException__system_2566;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, changeDetectedViaJsonBuildInstructions__extccomp_1847)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* jsonFile) {
	NIM_BOOL result;
	tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ bcache;
	TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_131;
	tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* T10_;
	tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw T11_;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NimStringDesc* T6_;
		NIM_BOOL T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = nosfileExists(jsonFile);
		T3_ = !(T4_);
		if (T3_) goto LA5_;
		T6_ = NIM_NIL;
		T6_ = absOutFile__options_4073(conf);
		T7_ = (NIM_BOOL)0;
		T7_ = nosfileExists(T6_);
		T3_ = !(T7_);
		LA5_: ;
		if (!T3_) goto LA8_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA8_: ;
	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ));
	pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_131);
	TM__pZmXgBT0YcBrnAO6VUvpNQ_131.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_131.context);
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_131.status == 0) {
	T10_ = NIM_NIL;
	T10_ = parseFile__pureZjson_5247(jsonFile);
	nimZeroMem((void*)(&T11_), sizeof(tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw));
	fromJson__extccomp_1852((&bcache), T10_, T11_);
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__THeHlGxHorUQ17FON5jY0g_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))) {
			NimStringDesc* T14_;
			TM__pZmXgBT0YcBrnAO6VUvpNQ_131.status = 0;
			T14_ = NIM_NIL;
			T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_132), jsonFile);
			write__systemZio_205(stderr, T14_);
			result = NIM_TRUE;
			popCurrentException();
			goto BeforeRet_;
			popCurrentException();
		}
	}
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_131.status != 0) reraiseException();
	{
		NIM_BOOL T17_;
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		NIM_BOOL T21_;
		NIM_BOOL T22_;
		NIM_BOOL T23_;
		NimStringDesc* T24_;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T26_;
		NIM_BOOL T34_;
		NimStringDesc* T37_;
		NimStringDesc* T40_;
		tyArray__YtcvxHNKV4YiecPE9ap1mcA T41_;
		NimStringDesc* T42_;
		T17_ = (NIM_BOOL)0;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T21_ = (NIM_BOOL)0;
		T22_ = (NIM_BOOL)0;
		T23_ = (NIM_BOOL)0;
		T24_ = NIM_NIL;
		T24_ = nosgetCurrentDir();
		T23_ = !(eqStrings(bcache.currentDir, T24_));
		if (T23_) goto LA25_;
		T26_ = NIM_NIL;
		{
			tySequence__sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
			NI iX60gensym156_;
			tySequence__sM4lkSb7zS6F7OVMvW9cffQ* resultX60gensym156_;
			NI T28_;
			colontmp_ = (*conf).configFiles;
			iX60gensym156_ = ((NI) 0);
			T28_ = (colontmp_ ? colontmp_->Sup.len : 0);
			resultX60gensym156_ = newSeq__systemZio_503(((NI) (T28_)));
			{
				NimStringDesc** it;
				NI i;
				NI L;
				NI T30_;
				it = (NimStringDesc**)0;
				i = ((NI) 0);
				T30_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T30_;
				{
					while (1) {
						NimStringDesc* T33_;
						if (!(i < L)) goto LA32;
						it = (&colontmp_->data[i]);
						T33_ = NIM_NIL;
						T33_ = resultX60gensym156_->data[iX60gensym156_]; resultX60gensym156_->data[iX60gensym156_] = copyStringRC1((*it));
						if (T33_) nimGCunrefNoCycle(T33_);
						iX60gensym156_ += ((NI) 1);
						i += ((NI) 1);
					} LA32: ;
				}
			}
			genericSeqAssign((&T26_), resultX60gensym156_, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
		}
		T34_ = (NIM_BOOL)0;
		T34_ = eqeq___extccomp_2554(bcache.configFiles, T26_);
		T23_ = !(T34_);
		LA25_: ;
		T22_ = T23_;
		if (T22_) goto LA35_;
		T22_ = !(eqStrings(bcache.cacheVersion, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_133)));
		LA35_: ;
		T21_ = T22_;
		if (T21_) goto LA36_;
		T37_ = NIM_NIL;
		T37_ = absOutFile__options_4073(conf);
		T21_ = !(eqStrings(bcache.outputFile, T37_));
		LA36_: ;
		T20_ = T21_;
		if (T20_) goto LA38_;
		T20_ = !(eqStrings(bcache.cmdline, (*conf).commandLine));
		LA38_: ;
		T19_ = T20_;
		if (T19_) goto LA39_;
		T40_ = NIM_NIL;
		T40_ = nosgetAppFilename();
		nimZeroMem((void*)T41_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
		secureHashFile__stdZsha49_862(T40_, T41_);
		T42_ = NIM_NIL;
		T42_ = dollar___stdZsha49_870(T41_);
		T19_ = !(eqStrings(bcache.nimexe, T42_));
		LA39_: ;
		T18_ = T19_;
		if (T18_) goto LA43_;
		T18_ = !((bcache.projectIsCmd == (*conf).projectIsCmd));
		LA43_: ;
		T17_ = T18_;
		if (T17_) goto LA44_;
		T17_ = !(eqStrings((*conf).cmdInput, bcache.cmdInput));
		LA44_: ;
		if (!T17_) goto LA45_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA45_: ;
	{
		NIM_BOOL T49_;
		T49_ = (NIM_BOOL)0;
		T49_ = bcache.stdinInput;
		if (T49_) goto LA50_;
		T49_ = (*conf).projectIsStdin;
		LA50_: ;
		if (!T49_) goto LA51_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA51_: ;
	{
		NimStringDesc** file;
		NimStringDesc** hash;
		NI i_2;
		NI L_2;
		NI T54_;
		file = (NimStringDesc**)0;
		hash = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		T54_ = (bcache.depfiles ? bcache.depfiles->Sup.len : 0);
		L_2 = T54_;
		{
			while (1) {
				if (!(i_2 < L_2)) goto LA56;
				file = (&bcache.depfiles->data[i_2].Field0);
				hash = (&bcache.depfiles->data[i_2].Field1);
				{
					tyArray__YtcvxHNKV4YiecPE9ap1mcA T59_;
					NimStringDesc* T60_;
					nimZeroMem((void*)T59_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
					secureHashFile__stdZsha49_862((*file), T59_);
					T60_ = NIM_NIL;
					T60_ = dollar___stdZsha49_870(T59_);
					if (!!(eqStrings(T60_, (*hash)))) goto LA61_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA61_: ;
				i_2 += ((NI) 1);
			} LA56: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, jsonBuildInstructionsFile__extccomp_1488)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getNimcacheDir__options_4185(conf);
	T2_ = NIM_NIL;
	T2_ = noschangeFileExt((*conf).outFile, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_134));
	result = slash___pathutils_90(T1_, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccHasSaneOverflow__extccomp_970)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NimStringDesc* exe;
		tyTuple__XOVT24GHXwqiEj5GCsEGCA T9_;
		TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_135;
		NimStringDesc* T10_;
		NimStringDesc* s;
		NI exitCode;
		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 1))) goto LA3_;
		result = NIM_FALSE;
		exe = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_95));
		{
			if (!((exe ? exe->Sup.len : 0) == ((NI) 0))) goto LA7_;
			exe = copyString(CC__extccomp_510[((*conf).cCompiler)- 1].Field4);
		}
		LA7_: ;
		nimZeroMem((void*)(&T9_), sizeof(tyTuple__XOVT24GHXwqiEj5GCsEGCA));
		pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_135);
		TM__pZmXgBT0YcBrnAO6VUvpNQ_135.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_135.context);
		if (TM__pZmXgBT0YcBrnAO6VUvpNQ_135.status == 0) {
		T10_ = NIM_NIL;
		T10_ = rawNewString((exe ? exe->Sup.len : 0) + 13);
appendString(T10_, exe);
appendString(T10_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_136));
		execCmdEx__pureZosproc_1146(T10_, 10, ((tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA*) NIM_NIL), ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) NIM_NIL), (&T9_));
		popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__THeHlGxHorUQ17FON5jY0g_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))) {
				TM__pZmXgBT0YcBrnAO6VUvpNQ_135.status = 0;
				T9_.Field0 = copyString(TM__pZmXgBT0YcBrnAO6VUvpNQ_137.Field0);
				T9_.Field1 = TM__pZmXgBT0YcBrnAO6VUvpNQ_137.Field1;
				popCurrentException();
			}
		}
		if (TM__pZmXgBT0YcBrnAO6VUvpNQ_135.status != 0) reraiseException();
		s = NIM_NIL;
		s = copyString(T9_.Field0);
		exitCode = (NI)0;
		exitCode = T9_.Field1;
		{
			NI major;
			NI T17_;
			if (!(exitCode == ((NI) 0))) goto LA15_;
			major = (NI)0;
			T17_ = (NI)0;
			T17_ = npuParseInt(s, (&major), ((NI) 0));
			(void)(T17_);
			result = (((NI) 5) <= major);
		}
		LA15_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 4));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addFileToCompile__extccomp_724)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* cf) {
	NI T1_;
	asgnRef((void**) (&(*conf).toCompile), (tySequence__KLItBKQec3LJzPmfiYYfQA*) incrSeqV3((TGenericSeq*)((*conf).toCompile), (&NTIcfilelist__KLItBKQec3LJzPmfiYYfQA_)));
	T1_ = (*conf).toCompile->Sup.len++;
	genericAssign((void*)(&(*conf).toCompile->data[T1_]), (void*)cf, (&NTIcfile__n9b2nVKiXbLpHsfkan9c3Rkw_));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, genMappingFiles__extccomp_2641)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tySequence__KLItBKQec3LJzPmfiYYfQA* list) {
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* result;
	result = NIM_NIL;
	{
		tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* it;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw*)0;
		i = ((NI) 0);
		T2_ = (list ? list->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyArray__ts9cf9blICas1QWmw89bglZ7w T5_;
				tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* T6_;
				if (!(i < L)) goto LA4;
				it = (&list->data[i]);
				nimZeroMem((void*)T5_, sizeof(tyArray__ts9cf9blICas1QWmw89bglZ7w));
				T5_[0] = rope__ropes_109((*it).cname);
				T6_ = NIM_NIL;
				T6_ = percent___extccomp_2649(T5_, 1);
				add__ropes_159(&result, T6_);
				i += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileOptions__extccomp_869)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = cFileSpecificOptions__extccomp_844(conf, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_140), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_140));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkOptions__extccomp_880)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = rawNewString(((*conf).linkOptions ? (*conf).linkOptions->Sup.len : 0) + ((*conf).linkOptionsCmd ? (*conf).linkOptionsCmd->Sup.len : 0) + 2);
appendString(T1_, (*conf).linkOptions);
appendString(T1_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T1_, (*conf).linkOptionsCmd);
appendString(T1_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
	result = T1_;
	{
		NimStringDesc** linkedLib;
		NI i;
		NI L;
		NI T3_;
		linkedLib = (NimStringDesc**)0;
		i = ((NI) 0);
		T3_ = ((*conf).cLinkedLibs ? (*conf).cLinkedLibs->Sup.len : 0);
		L = T3_;
		{
			while (1) {
				NimStringDesc* T6_;
				NimStringDesc* T7_;
				if (!(i < L)) goto LA5;
				linkedLib = (&(*conf).cLinkedLibs->data[i]);
				T6_ = NIM_NIL;
				T6_ = nospquoteShell((*linkedLib));
				T7_ = NIM_NIL;
				T7_ = nsuFormatSingleElem(CC__extccomp_510[((*conf).cCompiler)- 1].Field14, T6_);
				result = resizeString(result, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(result, T7_);
				i += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NimStringDesc** libDir;
		NI i_2;
		NI L_2;
		NI T9_;
		libDir = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		T9_ = ((*conf).cLibs ? (*conf).cLibs->Sup.len : 0);
		L_2 = T9_;
		{
			while (1) {
				tyArray__Re75IspeoxXy2oCZHwcRrA T12_;
				NimStringDesc* T13_;
				if (!(i_2 < L_2)) goto LA11;
				libDir = (&(*conf).cLibs->data[i_2]);
				nimZeroMem((void*)T12_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T12_[0] = copyString(CC__extccomp_510[((*conf).cCompiler)- 1].Field13);
				T12_[1] = nospquoteShell((*libDir));
				T13_ = NIM_NIL;
				T13_ = nsuJoinSep(T12_, 2, ((NimStringDesc*) NIM_NIL));
				result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(result, T13_);
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, writeMapping__extccomp_2663)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* symbolMapping) {
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* code;
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* T5_;
	NimStringDesc* T6_;
	NimStringDesc* T7_;
	NimStringDesc* T8_;
	NimStringDesc* T9_;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	NimStringDesc* T12_;
	tyArray__ts9cf9blICas1QWmw89bglZ7w T13_;
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* T14_;
	NimStringDesc* filename;
{	{
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 11))&63U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	code = rope__ropes_109(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_138));
	T5_ = NIM_NIL;
	T5_ = genMappingFiles__extccomp_2641(conf, (*conf).toCompile);
	add__ropes_159(&code, T5_);
	add__ropes_162(&code, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_139));
	T6_ = NIM_NIL;
	T6_ = getCompileOptions__extccomp_869(conf);
	T7_ = NIM_NIL;
	T7_ = nsuEscape(T6_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141));
	add__ropes_162(&code, T7_);
	add__ropes_162(&code, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_142));
	T8_ = NIM_NIL;
	T9_ = NIM_NIL;
	T9_ = getLinkOptions__extccomp_880(conf);
	T10_ = NIM_NIL;
	T10_ = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_143));
	T8_ = rawNewString((T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + 1);
appendString(T8_, T9_);
appendString(T8_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T8_, T10_);
	T11_ = NIM_NIL;
	T11_ = nsuEscape(T8_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141));
	add__ropes_162(&code, T11_);
	add__ropes_162(&code, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_144));
	T12_ = NIM_NIL;
	T12_ = nsuEscape((*conf).libpath, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_141));
	add__ropes_162(&code, T12_);
	nimZeroMem((void*)T13_, sizeof(tyArray__ts9cf9blICas1QWmw89bglZ7w));
	T13_[0] = symbolMapping;
	T14_ = NIM_NIL;
	T14_ = percent___extccomp_2671(T13_, 1);
	add__ropes_159(&code, T14_);
	filename = slash___pathutils_90((*conf).projectPath, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_145));
	{
		NIM_BOOL T17_;
		NimStringDesc* T20_;
		T17_ = (NIM_BOOL)0;
		T17_ = writeRope__ropes_241(code, filename);
		if (!!(T17_)) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = rawNewString((filename ? filename->Sup.len : 0) + 25);
appendString(T20_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_146));
appendString(T20_, filename);
		liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_147, NIM_FALSE);
	}
	LA18_: ;
	}BeforeRet_: ;
}
static N_NIMCALL(void, Marker_tyRef__JVTk4z2mtPJTtv2jA9b8cEw)(void* p, NI op) {
	tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A* a;
	a = (tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A*)p;
	nimGCvisit((void*)(*a).prettyCmds1, op);
	nimGCvisit((void*)(*a).conf2, op);
}
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1269)(NI idx, void* ClE_0) {
	tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A* colonenvP_;
	colonenvP_ = (tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A*) ClE_0;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T5_;
		if (!(((NI) 0) < ((*colonenvP_).prettyCmds1->data[idx] ? (*colonenvP_).prettyCmds1->data[idx]->Sup.len : 0))) goto LA3_;
		flushDot__msgs_17((*colonenvP_).conf2);
		nimZeroMem((void*)T5_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T5_[0] = copyString((*colonenvP_).prettyCmds1->data[idx]);
		writeLine__msgs_442(stderr, T5_, 1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, displayProgressCC__extccomp_1245)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* path, NimStringDesc* compileCmd) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasHint__options_530(conf, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 74));
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T13_;
			NimStringDesc* T14_;
			T8_ = (NIM_BOOL)0;
			T8_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 3))&63U)))!=0);
			if (T8_) goto LA9_;
			T8_ = (((NI) 1) < (*conf).verbosity);
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = NIM_NIL;
			nimZeroMem((void*)(&T13_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
			nossplitFile(path, (&T13_));
			T14_ = NIM_NIL;
			T14_ = demangleModuleName__modulepaths_54(T13_.Field1);
			T12_ = rawNewString((T14_ ? T14_->Sup.len : 0) + (compileCmd ? compileCmd->Sup.len : 0) + 2);
appendString(T12_, T14_);
appendString(T12_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_150));
appendString(T12_, compileCmd);
			result = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_149), T12_);
		}
		goto LA6_;
		LA10_: ;
		{
			tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T16_;
			NimStringDesc* T17_;
			nimZeroMem((void*)(&T16_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
			nossplitFile(path, (&T16_));
			T17_ = NIM_NIL;
			T17_ = demangleModuleName__modulepaths_54(T16_.Field1);
			result = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_149), T17_);
		}
		LA6_: ;
	}
	LA4_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__ZR39bZITIEGpLUSLWXvP1uQ)(void* p, NI op) {
	tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg* a;
	a = (tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg*)p;
	nimGCvisit((void*)(*a).conf1, op);
	nimGCvisit((void*)(*a).cmds2, op);
}
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1167)(NI idx, tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA* p, void* ClE_0) {
	tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg* colonenvP_;
	NI exitCode;
	colonenvP_ = (tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg*) ClE_0;
	exitCode = nosppeekExitCode(p);
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!((exitCode == ((NI) 0)))) goto LA3_;
		T5_ = NIM_NIL;
		T6_ = NIM_NIL;
		T6_ = dollar___systemZdollars_3(exitCode);
		T5_ = rawNewString(((*colonenvP_).cmds2->data[idx] ? (*colonenvP_).cmds2->data[idx]->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + 70);
appendString(T5_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_152));
appendString(T5_, (*colonenvP_).cmds2->data[idx]);
appendString(T5_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_153));
appendString(T5_, T6_);
appendString(T5_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_154));
		liMessage__msgs_1128((*colonenvP_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T5_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_155, NIM_FALSE);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, execWithEcho__extccomp_797)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg) {
	NI result;
	NimStringDesc* T1_;
	result = (NI)0;
	T1_ = NIM_NIL;
	{
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = (msg == ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 94));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 3))&63U)))!=0);
		if (T6_) goto LA7_;
		T6_ = (((NI) 1) < (*conf).verbosity);
		LA7_: ;
		T4_ = !(T6_);
		LA5_: ;
		if (!T4_) goto LA8_;
		T1_ = ((NimStringDesc*) NIM_NIL);
	}
	goto LA2_;
	LA8_: ;
	{
		T1_ = copyString(cmd);
	}
	LA2_: ;
	liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, msg, T1_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_157, NIM_FALSE);
	result = nospexecCmd(cmd);
	return result;
}
static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = NIM_NIL;
	result = currException__system_2566;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, execCmdsInParallel__extccomp_1161)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds, tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb) {
	tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg* colonenv_;
	tyProc__w6A9cCTGZLLFueLjnmit9a6w runCb;
	tyProc__w6A9cCTGZLLFueLjnmit9a6w T1_;
	NI volatile res;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg*) newObj((&NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_), sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg));
	(*colonenv_).Sup.m_type = (&NTIobject__No4B2P3n9cbIbeyPxQsRdZg_);
	asgnRef((void**) (&(*colonenv_).conf1), conf);
	genericSeqAssign((&(*colonenv_).cmds2), cmds, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
	nimZeroMem((void*)(&runCb), sizeof(tyProc__w6A9cCTGZLLFueLjnmit9a6w));
	nimZeroMem((void*)(&T1_), sizeof(tyProc__w6A9cCTGZLLFueLjnmit9a6w));
	T1_.ClP_0 = colonanonymous___extccomp_1167; T1_.ClE_0 = colonenv_;
	runCb.ClE_0 = T1_.ClE_0;
	runCb.ClP_0 = T1_.ClP_0;
	{
		if (!((*(*colonenv_).conf1).numberOfProcessors == ((NI) 0))) goto LA4_;
		(*(*colonenv_).conf1).numberOfProcessors = nospcountProcessors();
	}
	LA4_: ;
	res = ((NI) 0);
	{
		if (!((*(*colonenv_).conf1).numberOfProcessors <= ((NI) 1))) goto LA8_;
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0)-1);
			colontmp_ = T11_;
			res_2 = ((NI) 0);
			{
				while (1) {
					TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_156;
					if (!(res_2 <= colontmp_)) goto LA13;
					i = res_2;
					pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_156);
					TM__pZmXgBT0YcBrnAO6VUvpNQ_156.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_156.context);
					if (TM__pZmXgBT0YcBrnAO6VUvpNQ_156.status == 0) {
					res = execWithEcho__extccomp_797((*colonenv_).conf1, (*colonenv_).cmds2->data[i], ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 93));
					popSafePoint();
					}
					else {
						popSafePoint();
						if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__THeHlGxHorUQ17FON5jY0g_))) {
							tyObject_OSError__THeHlGxHorUQ17FON5jY0g* oseX60gensym65_;
							Exception* T16_;
							TM__pZmXgBT0YcBrnAO6VUvpNQ_156.status = 0;
							T16_ = NIM_NIL;
							T16_ = getCurrentException();
							oseX60gensym65_ = ((tyObject_OSError__THeHlGxHorUQ17FON5jY0g*) (T16_));
							{
								NimStringDesc* T21_;
								NimStringDesc* T22_;
								if (!NIM_TRUE) goto LA19_;
								T21_ = NIM_NIL;
								T22_ = NIM_NIL;
								T22_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym65_).errorCode)));
								T21_ = rawNewString(((*oseX60gensym65_).Sup.Sup.message ? (*oseX60gensym65_).Sup.Sup.message->Sup.len : 0) + (T22_ ? T22_->Sup.len : 0) + 49);
appendString(T21_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_158));
appendString(T21_, (*oseX60gensym65_).Sup.Sup.message);
appendString(T21_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T21_, T22_);
								liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_159, NIM_FALSE);
							}
							goto LA17_;
							LA19_: ;
							{
								NimStringDesc* T24_;
								NimStringDesc* T25_;
								NimStringDesc* T26_;
								T24_ = NIM_NIL;
								T25_ = NIM_NIL;
								T25_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym65_).errorCode)));
								T24_ = rawNewString(((*oseX60gensym65_).Sup.Sup.message ? (*oseX60gensym65_).Sup.Sup.message->Sup.len : 0) + (T25_ ? T25_->Sup.len : 0) + 1);
appendString(T24_, (*oseX60gensym65_).Sup.Sup.message);
appendString(T24_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T24_, T25_);
								T26_ = NIM_NIL;
								T26_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), T24_);
								liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_161, NIM_FALSE);
							}
							LA17_: ;
							reraiseException();
							popCurrentException();
						}
					}
					if (TM__pZmXgBT0YcBrnAO6VUvpNQ_156.status != 0) reraiseException();
					{
						NimStringDesc* T31_;
						if (!!((res == ((NI) 0)))) goto LA29_;
						T31_ = NIM_NIL;
						T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), (*colonenv_).cmds2->data[i]);
						liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T31_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_162, NIM_FALSE);
					}
					LA29_: ;
					res_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	goto LA6_;
	LA8_: ;
	{
		TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_163;
		pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_163);
		TM__pZmXgBT0YcBrnAO6VUvpNQ_163.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_163.context);
		if (TM__pZmXgBT0YcBrnAO6VUvpNQ_163.status == 0) {
		res = nospexecProcesses(((*colonenv_).cmds2) ? ((*colonenv_).cmds2->data) : NIM_NIL, ((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0), 26, (*(*colonenv_).conf1).numberOfProcessors, prettyCb, runCb);
		popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__THeHlGxHorUQ17FON5jY0g_))) {
				tyObject_OSError__THeHlGxHorUQ17FON5jY0g* oseX60gensym74_;
				Exception* T35_;
				TM__pZmXgBT0YcBrnAO6VUvpNQ_163.status = 0;
				T35_ = NIM_NIL;
				T35_ = getCurrentException();
				oseX60gensym74_ = ((tyObject_OSError__THeHlGxHorUQ17FON5jY0g*) (T35_));
				{
					NimStringDesc* T40_;
					NimStringDesc* T41_;
					if (!NIM_TRUE) goto LA38_;
					T40_ = NIM_NIL;
					T41_ = NIM_NIL;
					T41_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym74_).errorCode)));
					T40_ = rawNewString(((*oseX60gensym74_).Sup.Sup.message ? (*oseX60gensym74_).Sup.Sup.message->Sup.len : 0) + (T41_ ? T41_->Sup.len : 0) + 49);
appendString(T40_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_158));
appendString(T40_, (*oseX60gensym74_).Sup.Sup.message);
appendString(T40_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T40_, T41_);
					liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T40_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_159, NIM_FALSE);
				}
				goto LA36_;
				LA38_: ;
				{
					NimStringDesc* T43_;
					NimStringDesc* T44_;
					NimStringDesc* T45_;
					T43_ = NIM_NIL;
					T44_ = NIM_NIL;
					T44_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym74_).errorCode)));
					T43_ = rawNewString(((*oseX60gensym74_).Sup.Sup.message ? (*oseX60gensym74_).Sup.Sup.message->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 1);
appendString(T43_, (*oseX60gensym74_).Sup.Sup.message);
appendString(T43_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T43_, T44_);
					T45_ = NIM_NIL;
					T45_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), T43_);
					liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T45_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_161, NIM_FALSE);
				}
				LA36_: ;
				reraiseException();
				popCurrentException();
			}
		}
		if (TM__pZmXgBT0YcBrnAO6VUvpNQ_163.status != 0) reraiseException();
	}
	LA6_: ;
	{
		if (!!((res == ((NI) 0)))) goto LA48_;
		{
			NimStringDesc* T54_;
			NimStringDesc* T55_;
			if (!((*(*colonenv_).conf1).numberOfProcessors <= ((NI) 1))) goto LA52_;
			T54_ = NIM_NIL;
			T54_ = nsuJoinSep(((*colonenv_).cmds2) ? ((*colonenv_).cmds2->data) : NIM_NIL, ((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0), ((NimStringDesc*) NIM_NIL));
			T55_ = NIM_NIL;
			T55_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), T54_);
			liMessage__msgs_1128((*colonenv_).conf1, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T55_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_164, NIM_FALSE);
		}
		LA52_: ;
	}
	LA48_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getObjFilePath__extccomp_1234)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* f) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = noAbsolutePaths__extccomp_833(conf);
		if (!T3_) goto LA4_;
		result = nosextractFilename((*f).obj);
	}
	goto LA1_;
	LA4_: ;
	{
		result = copyString((*f).obj);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, hcrLinkTargetName__extccomp_1238)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* objFile, NIM_BOOL isMain) {
	NimStringDesc* result;
	NimStringDesc* basename;
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
	NimStringDesc* targetName;
	NimStringDesc* T8_;
	result = NIM_NIL;
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	nossplitFile(objFile, (&T1_));
	basename = T1_.Field1;
	{
		NimStringDesc* T6_;
		if (!isMain) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = rawNewString((basename ? basename->Sup.len : 0) + 4);
appendString(T6_, basename);
appendString(T6_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_95));
		targetName = T6_;
	}
	goto LA2_;
	LA4_: ;
	{
		targetName = nsuFormatSingleElem(OS__platform_518[((*conf).target.targetOS)- 1].Field2, basename);
	}
	LA2_: ;
	T8_ = NIM_NIL;
	T8_ = getNimcacheDir__options_4185(conf);
	result = slash___pathutils_90(T8_, targetName);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkerExe__extccomp_985)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ compiler) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		if (!(((NI) 0) < (CC__extccomp_510[(compiler)- 1].Field10 ? CC__extccomp_510[(compiler)- 1].Field10->Sup.len : 0))) goto LA3_;
		result = copyString(CC__extccomp_510[(compiler)- 1].Field10);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		T6_ = (NIM_BOOL)0;
		T6_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 35))&63U)))!=0);
		if (T6_) goto LA7_;
		T6_ = ((*conf).backend == ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 2));
		LA7_: ;
		result = getCompilerExe__extccomp_961(conf, compiler, T6_);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, nanosecond__pureZtimes_1065)(tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA* dt) {
	NI result;
	result = (NI)0;
	result = (*dt).nanosecond;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkCmd__extccomp_1100)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* output, NimStringDesc* objfiles, NIM_BOOL isDllBuild, NIM_BOOL removeStaticFile) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		tyArray__yt5VDPNtUGx9cBkOVakHwdQ T9_;
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 8))&63U)))!=0)) goto LA3_;
		{
			if (!removeStaticFile) goto LA7_;
			nosremoveFile(output);
		}
		LA7_: ;
		nimZeroMem((void*)T9_, sizeof(tyArray__yt5VDPNtUGx9cBkOVakHwdQ));
		T9_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_165));
		T9_[1] = nospquoteShell(output);
		T9_[2] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_166));
		T9_[3] = copyString(objfiles);
		T9_[4] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_119));
		T9_[5] = vccplatform__extccomp_872(conf);
		result = nsuFormatOpenArray(CC__extccomp_510[((*conf).cCompiler)- 1].Field9, T9_, 6);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* linkerExe;
		NimStringDesc* buildgui;
		NimStringDesc* builddll;
		NimStringDesc* exefile;
		NimStringDesc* mapfile;
		NimStringDesc* T38_;
		NimStringDesc* T39_;
		tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T40_;
		NimStringDesc* T41_;
		NimStringDesc* linkOptions;
		NimStringDesc* T42_;
		NimStringDesc* T43_;
		NimStringDesc* T44_;
		NimStringDesc* linkTmpl;
		tyArray__rmMMhDIqORJzUU5zqeitSQ T49_;
		NimStringDesc* T50_;
		tyArray__68WB4OcBspSFyW4LY9cOceA T51_;
		NimStringDesc* T52_;
		linkerExe = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_167));
		{
			if (!((linkerExe ? linkerExe->Sup.len : 0) == ((NI) 0))) goto LA13_;
			linkerExe = getLinkerExe__extccomp_985(conf, (*conf).cCompiler);
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = needsExeExt__extccomp_891(conf);
			if (!T17_) goto LA18_;
			linkerExe = nosaddFileExt(linkerExe, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_101));
		}
		LA18_: ;
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			T22_ = noAbsolutePaths__extccomp_833(conf);
			if (!T22_) goto LA23_;
			result = copyString(linkerExe);
		}
		goto LA20_;
		LA23_: ;
		{
			result = nosjoinPath((*conf).cCompilerPath, linkerExe);
		}
		LA20_: ;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 9))&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = ((*conf).target.targetOS == ((tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw) 2));
			LA29_: ;
			if (!T28_) goto LA30_;
			buildgui = copyString(CC__extccomp_510[((*conf).cCompiler)- 1].Field7);
		}
		goto LA26_;
		LA30_: ;
		{
			buildgui = ((NimStringDesc*) NIM_NIL);
		}
		LA26_: ;
		{
			if (!isDllBuild) goto LA35_;
			builddll = copyString(CC__extccomp_510[((*conf).cCompiler)- 1].Field8);
		}
		goto LA33_;
		LA35_: ;
		{
			builddll = ((NimStringDesc*) NIM_NIL);
		}
		LA33_: ;
		exefile = nospquoteShell(output);
		T38_ = NIM_NIL;
		T38_ = getNimcacheDir__options_4185(conf);
		T39_ = NIM_NIL;
		nimZeroMem((void*)(&T40_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
		splitFile__pathutils_27(output, (&T40_));
		T39_ = rawNewString((T40_.Field1 ? T40_.Field1->Sup.len : 0) + 4);
appendString(T39_, T40_.Field1);
appendString(T39_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_168));
		T41_ = NIM_NIL;
		T41_ = slash___pathutils_90(T38_, T39_);
		mapfile = nospquoteShell(T41_);
		T42_ = NIM_NIL;
		T43_ = NIM_NIL;
		T43_ = getLinkOptions__extccomp_880(conf);
		T44_ = NIM_NIL;
		T44_ = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_143));
		T42_ = rawNewString((T43_ ? T43_->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 1);
appendString(T42_, T43_);
appendString(T42_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T42_, T44_);
		linkOptions = T42_;
		linkTmpl = getConfigVar__extccomp_629(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_169));
		{
			if (!((linkTmpl ? linkTmpl->Sup.len : 0) == ((NI) 0))) goto LA47_;
			linkTmpl = copyString(CC__extccomp_510[((*conf).cCompiler)- 1].Field11);
		}
		LA47_: ;
		nimZeroMem((void*)T49_, sizeof(tyArray__rmMMhDIqORJzUU5zqeitSQ));
		T49_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_170));
		T49_[1] = copyString(builddll);
		T49_[2] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_171));
		T49_[3] = copyString(mapfile);
		T49_[4] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_172));
		T49_[5] = copyString(buildgui);
		T49_[6] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_106));
		T49_[7] = copyString(linkOptions);
		T49_[8] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_166));
		T49_[9] = copyString(objfiles);
		T49_[10] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_173));
		T49_[11] = copyString(exefile);
		T49_[12] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_108));
		T49_[13] = getPrefixDir__options_4096(conf);
		T49_[14] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_109));
		T49_[15] = copyString((*conf).libpath);
		T50_ = NIM_NIL;
		T50_ = nsuFormatOpenArray(result, T49_, 16);
		result = nospquoteShell(T50_);
		result = addChar(result, 32);
		nimZeroMem((void*)T51_, sizeof(tyArray__68WB4OcBspSFyW4LY9cOceA));
		T51_[0] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_170));
		T51_[1] = copyString(builddll);
		T51_[2] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_171));
		T51_[3] = copyString(mapfile);
		T51_[4] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_172));
		T51_[5] = copyString(buildgui);
		T51_[6] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_106));
		T51_[7] = copyString(linkOptions);
		T51_[8] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_166));
		T51_[9] = copyString(objfiles);
		T51_[10] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_173));
		T51_[11] = copyString(exefile);
		T51_[12] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_108));
		T52_ = NIM_NIL;
		T52_ = getPrefixDir__options_4096(conf);
		T51_[13] = nospquoteShell(T52_);
		T51_[14] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_109));
		T51_[15] = nospquoteShell((*conf).libpath);
		T51_[16] = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_119));
		T51_[17] = vccplatform__extccomp_872(conf);
		nsuAddf((&result), linkTmpl, T51_, 18);
		{
			NIM_BOOL T55_;
			tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA t;
			NimStringDesc* pdb;
			NimStringDesc* T59_;
			NimStringDesc* T60_;
			NI T61_;
			NimStringDesc* T62_;
			NimStringDesc* T63_;
			T55_ = (NIM_BOOL)0;
			T55_ = hcrOn__options_582(conf);
			if (!(T55_)) goto LA56_;
			T55_ = isVSCompatible__extccomp_577(conf);
			LA56_: ;
			if (!T55_) goto LA57_;
			nimZeroMem((void*)(&t), sizeof(tyObject_DateTime__8A9b0ni9bk9cgtdWJfdrY5WiA));
			t.Sup.m_type = (&NTIdatetime__8A9b0ni9bk9cgtdWJfdrY5WiA_);
			now__pureZtimes_1467((&t));
			T59_ = NIM_NIL;
			T60_ = NIM_NIL;
			T60_ = format__extccomp_1127((&t));
			T61_ = (NI)0;
			T61_ = nanosecond__pureZtimes_1065((&t));
			T62_ = NIM_NIL;
			T62_ = dollar___systemZdollars_3(((NI) (T61_)));
			T59_ = rawNewString((output ? output->Sup.len : 0) + (T60_ ? T60_->Sup.len : 0) + (T62_ ? T62_->Sup.len : 0) + 5);
appendString(T59_, output);
appendString(T59_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_2));
appendString(T59_, T60_);
appendString(T59_, T62_);
appendString(T59_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_174));
			pdb = T59_;
			T63_ = NIM_NIL;
			T63_ = rawNewString((pdb ? pdb->Sup.len : 0) + 12);
appendString(T63_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_175));
appendString(T63_, pdb);
			result = resizeString(result, (T63_ ? T63_->Sup.len : 0) + 0);
appendString(result, T63_);
		}
		LA57_: ;
	}
	LA1_: ;
	{
		NIM_BOOL T66_;
		T66_ = (NIM_BOOL)0;
		T66_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 6))&63U)))!=0);
		if (!(T66_)) goto LA67_;
		T66_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 6));
		LA67_: ;
		if (!T66_) goto LA68_;
		result = resizeString(result, 12);
appendString(result, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_176));
	}
	LA68_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == ((NimStringDesc*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
static N_INLINE(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, map__extccomp_1380)(NimStringDesc** s, NI sLen_0, tyProc__oFHfEKFsiYTMAy9a42cSiKw op) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
	result = NIM_NIL;
	result = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) (sLen_0)));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				asgnRef((void**) (&result->data[i]), op.ClE_0? op.ClP_0(s[i], op.ClE_0):((TM__pZmXgBT0YcBrnAO6VUvpNQ_179)(op.ClP_0))(s[i]));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, colonanonymous___extccomp_1376)(NimStringDesc* curr) {
	NimStringDesc* result;
{	result = NIM_NIL;
	result = nsuReplaceStr(curr, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_97), ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_180));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, getExtraCmds__extccomp_1152)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* output) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
	result = NIM_NIL;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, execExternalProgram__extccomp_810)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg) {
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = execWithEcho__extccomp_797(conf, cmd, msg);
		if (!!((T3_ == ((NI) 0)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), cmd);
		liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_185, NIM_FALSE);
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, execLinkCmd__extccomp_1156)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* linkCmd) {
	TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_184;
	pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_184);
	TM__pZmXgBT0YcBrnAO6VUvpNQ_184.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_184.context);
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_184.status == 0) {
	execExternalProgram__extccomp_810(conf, linkCmd, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 94));
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__THeHlGxHorUQ17FON5jY0g_))) {
			tyObject_OSError__THeHlGxHorUQ17FON5jY0g* oseX60gensym56_;
			Exception* T3_;
			TM__pZmXgBT0YcBrnAO6VUvpNQ_184.status = 0;
			T3_ = NIM_NIL;
			T3_ = getCurrentException();
			oseX60gensym56_ = ((tyObject_OSError__THeHlGxHorUQ17FON5jY0g*) (T3_));
			{
				NimStringDesc* T8_;
				NimStringDesc* T9_;
				if (!NIM_TRUE) goto LA6_;
				T8_ = NIM_NIL;
				T9_ = NIM_NIL;
				T9_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym56_).errorCode)));
				T8_ = rawNewString(((*oseX60gensym56_).Sup.Sup.message ? (*oseX60gensym56_).Sup.Sup.message->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + 47);
appendString(T8_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_186));
appendString(T8_, (*oseX60gensym56_).Sup.Sup.message);
appendString(T8_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T8_, T9_);
				liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T8_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_159, NIM_FALSE);
			}
			goto LA4_;
			LA6_: ;
			{
				NimStringDesc* T11_;
				NimStringDesc* T12_;
				NimStringDesc* T13_;
				T11_ = NIM_NIL;
				T12_ = NIM_NIL;
				T12_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym56_).errorCode)));
				T11_ = rawNewString(((*oseX60gensym56_).Sup.Sup.message ? (*oseX60gensym56_).Sup.Sup.message->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 1);
appendString(T11_, (*oseX60gensym56_).Sup.Sup.message);
appendString(T11_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T11_, T12_);
				T13_ = NIM_NIL;
				T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_160), T11_);
				liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_161, NIM_FALSE);
			}
			LA4_: ;
			reraiseException();
			popCurrentException();
		}
	}
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_184.status != 0) reraiseException();
}
N_LIB_PRIVATE N_NIMCALL(void, linkViaResponseFile__extccomp_1194)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd) {
	NI i;
	NI last;
	NimStringDesc* linkerArgs;
	NimStringDesc* T20_;
	NimStringDesc* args;
	TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_183;
	NimStringDesc* T29_;
	NimStringDesc* T30_;
	i = ((NI) 0);
	last = ((NI) 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) < (cmd ? cmd->Sup.len : 0));
		if (!(T3_)) goto LA4_;
		T3_ = ((NU8)(cmd->data[((NI) 0)]) == (NU8)(34));
		LA4_: ;
		if (!T3_) goto LA5_;
		i += ((NI) 1);
		{
			while (1) {
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = (i < (cmd ? cmd->Sup.len : 0));
				if (!(T9_)) goto LA10_;
				T9_ = !(((NU8)(cmd->data[i]) == (NU8)(34)));
				LA10_: ;
				if (!T9_) goto LA8;
				i += ((NI) 1);
			} LA8: ;
		}
		last = i;
		i += ((NI) 1);
	}
	goto LA1_;
	LA5_: ;
	{
		{
			while (1) {
				NIM_BOOL T14_;
				T14_ = (NIM_BOOL)0;
				T14_ = (i < (cmd ? cmd->Sup.len : 0));
				if (!(T14_)) goto LA15_;
				T14_ = !(((NU8)(cmd->data[i]) == (NU8)(32)));
				LA15_: ;
				if (!T14_) goto LA13;
				i += ((NI) 1);
			} LA13: ;
		}
		last = i;
	}
	LA1_: ;
	{
		while (1) {
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = (i < (cmd ? cmd->Sup.len : 0));
			if (!(T18_)) goto LA19_;
			T18_ = ((NU8)(cmd->data[i]) == (NU8)(32));
			LA19_: ;
			if (!T18_) goto LA17;
			i += ((NI) 1);
		} LA17: ;
	}
	T20_ = NIM_NIL;
	T20_ = rawNewString(((*conf).projectName ? (*conf).projectName->Sup.len : 0) + 15);
appendString(T20_, (*conf).projectName);
appendString(T20_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_182));
	linkerArgs = T20_;
	args = substr__system_7767(cmd, i);
	{
		NIM_BOOL T23_;
		NimStringDesc* T27_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 1));
		if (T23_) goto LA24_;
		T23_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ) 4));
		LA24_: ;
		if (!T23_) goto LA25_;
		T27_ = NIM_NIL;
		T27_ = nsuReplaceChar(args, 92, 47);
		writeFile__systemZio_476(linkerArgs, T27_);
	}
	goto LA21_;
	LA25_: ;
	{
		writeFile__systemZio_476(linkerArgs, args);
	}
	LA21_: ;
	pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_183);
	TM__pZmXgBT0YcBrnAO6VUvpNQ_183.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_183.context);
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_183.status == 0) {
	T29_ = NIM_NIL;
	T30_ = NIM_NIL;
	T30_ = substr__system_7755(cmd, ((NI) 0), last);
	T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + (linkerArgs ? linkerArgs->Sup.len : 0) + 2);
appendString(T29_, T30_);
appendString(T29_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_187));
appendString(T29_, linkerArgs);
	execLinkCmd__extccomp_1156(conf, T29_);
	popSafePoint();
	}
	else {
		popSafePoint();
	}
	{
		nosremoveFile(linkerArgs);
		if (TM__pZmXgBT0YcBrnAO6VUvpNQ_183.status != 0) nimLeaveFinally();
	}
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_183.status != 0) reraiseException();
}
N_LIB_PRIVATE N_NIMCALL(void, generateScript__extccomp_814)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* script) {
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
	NimStringDesc* _;
	NimStringDesc* name;
	NimStringDesc* __2;
	NimStringDesc* filename;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	nossplitFile((*conf).outFile, (&T1_));
	_ = NIM_NIL;
	_ = T1_.Field0;
	name = NIM_NIL;
	name = T1_.Field1;
	__2 = NIM_NIL;
	__2 = T1_.Field2;
	T2_ = NIM_NIL;
	T2_ = getNimcacheDir__options_4185(conf);
	T3_ = NIM_NIL;
	T3_ = rawNewString((name ? name->Sup.len : 0) + 8);
appendString(T3_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_188));
appendString(T3_, name);
	T4_ = NIM_NIL;
	T4_ = nosaddFileExt(T3_, OS__platform_518[((*conf).target.targetOS)- 1].Field8);
	filename = slash___pathutils_90(T2_, T4_);
	{
		NIM_BOOL T7_;
		NimStringDesc* T10_;
		T7_ = (NIM_BOOL)0;
		T7_ = writeRope__ropes_241(script, filename);
		if (!!(T7_)) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = rawNewString((filename ? filename->Sup.len : 0) + 25);
appendString(T10_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_146));
appendString(T10_, filename);
		liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T10_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__pZmXgBT0YcBrnAO6VUvpNQ_189, NIM_FALSE);
	}
	LA8_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, callCCompiler__extccomp_1254)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A* colonenv_;
	NimStringDesc* linkCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* script;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds;
	tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb;
	tyProc__SqRJqa5aOiKB4EuKlKh9asA T5_;
{	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A*) newObj((&NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_), sizeof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A));
	(*colonenv_).Sup.m_type = (&NTIobject__bt67vpmqSRgon6DPHLke6A_);
	asgnRef((void**) (&(*colonenv_).conf2), conf);
	linkCmd = NIM_NIL;
	extraCmds = NIM_NIL;
	{
		if (!(((*(*colonenv_).conf2).globalOptions & 1040) == 16)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	script = ((tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*) NIM_NIL);
	cmds = NIM_NIL;
	asgnRef((void**) (&(*colonenv_).prettyCmds1), NIM_NIL);
	nimZeroMem((void*)(&prettyCb), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
	nimZeroMem((void*)(&T5_), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
	T5_.ClP_0 = colonanonymous___extccomp_1269; T5_.ClE_0 = colonenv_;
	prettyCb.ClE_0 = T5_.ClE_0;
	prettyCb.ClP_0 = T5_.ClP_0;
	{
		NI idx;
		tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw it;
		NI i;
		NI L;
		NI T7_;
		idx = (NI)0;
		nimZeroMem((void*)(&it), sizeof(tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw));
		i = ((NI) 0);
		T7_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
		L = T7_;
		{
			while (1) {
				if (!(i < L)) goto LA9;
				idx = i;
				nimCopyMem((void*)(&it), (NIM_CONST void*)(&(*(*colonenv_).conf2).toCompile->data[i]), sizeof(it));
				{
					NimStringDesc* compileCmd;
					NI T15_;
					{
						if (!((it.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 0))&7U)))!=0)) goto LA13_;
						goto LA10;
					}
					LA13_: ;
					T15_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
					compileCmd = getCompileCFileCmd__extccomp_997((*colonenv_).conf2, (&it), (idx == (NI)(T15_ - ((NI) 1))), NIM_TRUE);
					{
						NI T20_;
						NimStringDesc* T21_;
						NimStringDesc* T22_;
						NimStringDesc* T23_;
						NI T24_;
						NimStringDesc* T25_;
						if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 4))&63U)))!=0))) goto LA18_;
						cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
						T20_ = cmds->Sup.len++;
						T21_ = NIM_NIL;
						T21_ = cmds->data[T20_]; cmds->data[T20_] = copyStringRC1(compileCmd);
						if (T21_) nimGCunrefNoCycle(T21_);
						T22_ = NIM_NIL;
						T22_ = dollar___options_4370(it.cname);
						T23_ = NIM_NIL;
						T23_ = displayProgressCC__extccomp_1245((*colonenv_).conf2, T22_, compileCmd);
						asgnRef((void**) (&(*colonenv_).prettyCmds1), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*colonenv_).prettyCmds1), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
						T24_ = (*colonenv_).prettyCmds1->Sup.len++;
						T25_ = NIM_NIL;
						T25_ = (*colonenv_).prettyCmds1->data[T24_]; (*colonenv_).prettyCmds1->data[T24_] = copyStringRC1(T23_);
						if (T25_) nimGCunrefNoCycle(T25_);
					}
					LA18_: ;
					{
						if (!(((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 10))&63U)))!=0)) goto LA28_;
						add__ropes_162(&script, compileCmd);
						add__ropes_162(&script, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_124));
					}
					LA28_: ;
				} LA10: ;
				i += ((NI) 1);
			} LA9: ;
		}
	}
	{
		if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 4))&63U)))!=0))) goto LA32_;
		execCmdsInParallel__extccomp_1161((*colonenv_).conf2, cmds, prettyCb);
	}
	LA32_: ;
	{
		NimStringDesc* objfiles;
		if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 5))&63U)))!=0))) goto LA36_;
		objfiles = ((NimStringDesc*) NIM_NIL);
		{
			NimStringDesc** it_2;
			NI i_2;
			NI L_2;
			NI T39_;
			it_2 = (NimStringDesc**)0;
			i_2 = ((NI) 0);
			T39_ = ((*(*colonenv_).conf2).externalToLink ? (*(*colonenv_).conf2).externalToLink->Sup.len : 0);
			L_2 = T39_;
			{
				while (1) {
					NimStringDesc* objFile;
					NimStringDesc* T48_;
					NimStringDesc* T49_;
					if (!(i_2 < L_2)) goto LA41;
					it_2 = (&(*(*colonenv_).conf2).externalToLink->data[i_2]);
					{
						NIM_BOOL T44_;
						T44_ = (NIM_BOOL)0;
						T44_ = noAbsolutePaths__extccomp_833((*colonenv_).conf2);
						if (!T44_) goto LA45_;
						objFile = nosextractFilename((*it_2));
					}
					goto LA42_;
					LA45_: ;
					{
						objFile = (*it_2);
					}
					LA42_: ;
					objfiles = addChar(objfiles, 32);
					T48_ = NIM_NIL;
					T48_ = nosaddFileExt(objFile, CC__extccomp_510[((*(*colonenv_).conf2).cCompiler)- 1].Field1);
					T49_ = NIM_NIL;
					T49_ = nospquoteShell(T48_);
					objfiles = resizeString(objfiles, (T49_ ? T49_->Sup.len : 0) + 0);
appendString(objfiles, T49_);
					i_2 += ((NI) 1);
				} LA41: ;
			}
		}
		{
			NIM_BOOL T52_;
			NI mainFileIdx;
			NI T55_;
			tyProc__oFHfEKFsiYTMAy9a42cSiKw T93_;
			T52_ = (NIM_BOOL)0;
			T52_ = hcrOn__options_582((*colonenv_).conf2);
			if (!T52_) goto LA53_;
			cmds = NIM_NIL;
			T55_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
			mainFileIdx = (NI)(T55_ - ((NI) 1));
			{
				NI idx_2;
				tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw x;
				NI i_3;
				NI L_3;
				NI T57_;
				idx_2 = (NI)0;
				nimZeroMem((void*)(&x), sizeof(tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw));
				i_3 = ((NI) 0);
				T57_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
				L_3 = T57_;
				{
					while (1) {
						if (!(i_3 < L_3)) goto LA59;
						idx_2 = i_3;
						nimCopyMem((void*)(&x), (NIM_CONST void*)(&(*(*colonenv_).conf2).toCompile->data[i_3]), sizeof(x));
						{
							NimStringDesc* objFile_2;
							NIM_BOOL buildDll;
							NimStringDesc* linkTarget;
							NimStringDesc* T65_;
							NimStringDesc* T66_;
							NimStringDesc* T67_;
							NI T68_;
							NimStringDesc* T69_;
							{
								if (!((x.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 0))&7U)))!=0)) goto LA63_;
								goto LA60;
							}
							LA63_: ;
							objFile_2 = getObjFilePath__extccomp_1234((*colonenv_).conf2, (&x));
							buildDll = !((idx_2 == mainFileIdx));
							linkTarget = hcrLinkTargetName__extccomp_1238((*colonenv_).conf2, objFile_2, !(buildDll));
							T65_ = NIM_NIL;
							T66_ = NIM_NIL;
							T66_ = nospquoteShell(objFile_2);
							T65_ = rawNewString((objfiles ? objfiles->Sup.len : 0) + (T66_ ? T66_->Sup.len : 0) + 1);
appendString(T65_, objfiles);
appendString(T65_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_87));
appendString(T65_, T66_);
							T67_ = NIM_NIL;
							T67_ = getLinkCmd__extccomp_1100((*colonenv_).conf2, linkTarget, T65_, buildDll, NIM_TRUE);
							cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
							T68_ = cmds->Sup.len++;
							T69_ = NIM_NIL;
							T69_ = cmds->data[T68_]; cmds->data[T68_] = copyStringRC1(T67_);
							if (T69_) nimGCunrefNoCycle(T69_);
							{
								NIM_BOOL T72_;
								T72_ = (NIM_BOOL)0;
								T72_ = isVSCompatible__extccomp_577((*colonenv_).conf2);
								if (!T72_) goto LA73_;
								{
									NimStringDesc* pdb;
									NimStringDesc* colontmp_;
									NimStringDesc* T76_;
									glob_t fX60gensym137_;
									NI resX60gensym137_;
									int T77_;
									TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_178;
									pdb = NIM_NIL;
									colontmp_ = NIM_NIL;
									T76_ = NIM_NIL;
									T76_ = rawNewString((objFile_2 ? objFile_2->Sup.len : 0) + 6);
appendString(T76_, objFile_2);
appendString(T76_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_177));
									colontmp_ = T76_;
									nimZeroMem((void*)(&fX60gensym137_), sizeof(glob_t));
									resX60gensym137_ = (NI)0;
									fX60gensym137_.gl_offs = ((NI) 0);
									fX60gensym137_.gl_pathc = ((NI) 0);
									fX60gensym137_.gl_pathv = ((NCSTRING*) NIM_NIL);
									T77_ = (int)0;
									T77_ = glob(nimToCStringConv(colontmp_), ((int) 0), NIM_NIL, (&fX60gensym137_));
									resX60gensym137_ = ((NI) (T77_));
									pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_178);
									TM__pZmXgBT0YcBrnAO6VUvpNQ_178.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_178.context);
									if (TM__pZmXgBT0YcBrnAO6VUvpNQ_178.status == 0) {
									{
										if (!(resX60gensym137_ == ((NI) 0))) goto LA80_;
										{
											NI iX60gensym137_;
											NI colontmp__2;
											NI res;
											iX60gensym137_ = (NI)0;
											colontmp__2 = (NI)0;
											colontmp__2 = (NI)(fX60gensym137_.gl_pathc - ((NI) 1));
											res = ((NI) 0);
											{
												while (1) {
													NimStringDesc* pathX60gensym137_;
													if (!(res <= colontmp__2)) goto LA84;
													iX60gensym137_ = res;
													pathX60gensym137_ = cstrToNimstr(fX60gensym137_.gl_pathv[iX60gensym137_]);
													{
														NIM_BOOL T87_;
														NIM_BOOL T90_;
														T87_ = (NIM_BOOL)0;
														T87_ = nosfileExists(pathX60gensym137_);
														if (!T87_) goto LA88_;
														pdb = pathX60gensym137_;
														T90_ = (NIM_BOOL)0;
														T90_ = nostryRemoveFile(pdb);
														(void)(T90_);
													}
													LA88_: ;
													res += ((NI) 1);
												} LA84: ;
											}
										}
									}
									LA80_: ;
									popSafePoint();
									}
									else {
										popSafePoint();
									}
									{
										globfree((&fX60gensym137_));
										if (TM__pZmXgBT0YcBrnAO6VUvpNQ_178.status != 0) nimLeaveFinally();
									}
									if (TM__pZmXgBT0YcBrnAO6VUvpNQ_178.status != 0) reraiseException();
								}
							}
							LA73_: ;
						} LA60: ;
						i_3 += ((NI) 1);
					} LA59: ;
				}
			}
			nimZeroMem((void*)(&T93_), sizeof(tyProc__oFHfEKFsiYTMAy9a42cSiKw));
			T93_.ClP_0 = ((TM__pZmXgBT0YcBrnAO6VUvpNQ_181) (colonanonymous___extccomp_1376)); T93_.ClE_0 = NIM_NIL;
			asgnRef((void**) (&(*colonenv_).prettyCmds1), map__extccomp_1380(((*colonenv_).prettyCmds1) ? ((*colonenv_).prettyCmds1->data) : NIM_NIL, ((*colonenv_).prettyCmds1 ? (*colonenv_).prettyCmds1->Sup.len : 0), T93_));
			execCmdsInParallel__extccomp_1161((*colonenv_).conf2, cmds, prettyCb);
			{
				NimStringDesc* mainObjFile;
				NimStringDesc* src;
				NimStringDesc* dst;
				if (!!((((*(*colonenv_).conf2).toCompile->data[mainFileIdx].flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 0))&7U)))!=0))) goto LA96_;
				mainObjFile = getObjFilePath__extccomp_1234((*colonenv_).conf2, (&(*(*colonenv_).conf2).toCompile->data[mainFileIdx]));
				src = hcrLinkTargetName__extccomp_1238((*colonenv_).conf2, mainObjFile, NIM_TRUE);
				dst = prepareToWriteOutput__options_4093((*colonenv_).conf2);
				copyFileWithPermissions__pureZos_1455(src, dst, NIM_TRUE, 2);
			}
			LA96_: ;
		}
		goto LA50_;
		LA53_: ;
		{
			NimStringDesc* mainOutput;
			{
				tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* x_2;
				NI i_4;
				NI L_4;
				NI T100_;
				x_2 = (tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw*)0;
				i_4 = ((NI) 0);
				T100_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
				L_4 = T100_;
				{
					while (1) {
						NimStringDesc* objFile_3;
						NimStringDesc* T109_;
						if (!(i_4 < L_4)) goto LA102;
						x_2 = (&(*(*colonenv_).conf2).toCompile->data[i_4]);
						{
							NIM_BOOL T105_;
							T105_ = (NIM_BOOL)0;
							T105_ = noAbsolutePaths__extccomp_833((*colonenv_).conf2);
							if (!T105_) goto LA106_;
							objFile_3 = nosextractFilename((*x_2).obj);
						}
						goto LA103_;
						LA106_: ;
						{
							objFile_3 = (*x_2).obj;
						}
						LA103_: ;
						objfiles = addChar(objfiles, 32);
						T109_ = NIM_NIL;
						T109_ = nospquoteShell(objFile_3);
						objfiles = resizeString(objfiles, (T109_ ? T109_->Sup.len : 0) + 0);
appendString(objfiles, T109_);
						i_4 += ((NI) 1);
					} LA102: ;
				}
			}
			{
				if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 10))&63U)))!=0))) goto LA112_;
				mainOutput = prepareToWriteOutput__options_4093((*colonenv_).conf2);
			}
			goto LA110_;
			LA112_: ;
			{
				mainOutput = (*(*colonenv_).conf2).projectName;
			}
			LA110_: ;
			linkCmd = getLinkCmd__extccomp_1100((*colonenv_).conf2, mainOutput, objfiles, (((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 7))&63U)))!=0), NIM_TRUE);
			extraCmds = getExtraCmds__extccomp_1152((*colonenv_).conf2, mainOutput);
			{
				if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 4))&63U)))!=0))) goto LA117_;
				{
					if (!(((NI) 32000) < (linkCmd ? linkCmd->Sup.len : 0))) goto LA121_;
					linkViaResponseFile__extccomp_1194((*colonenv_).conf2, linkCmd);
				}
				goto LA119_;
				LA121_: ;
				{
					execLinkCmd__extccomp_1156((*colonenv_).conf2, linkCmd);
				}
				LA119_: ;
				{
					NimStringDesc** cmd;
					NI i_5;
					NI L_5;
					NI T125_;
					cmd = (NimStringDesc**)0;
					i_5 = ((NI) 0);
					T125_ = (extraCmds ? extraCmds->Sup.len : 0);
					L_5 = T125_;
					{
						while (1) {
							if (!(i_5 < L_5)) goto LA127;
							cmd = (&extraCmds->data[i_5]);
							execExternalProgram__extccomp_810((*colonenv_).conf2, (*cmd), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 93));
							i_5 += ((NI) 1);
						} LA127: ;
					}
				}
			}
			LA117_: ;
		}
		LA50_: ;
	}
	goto LA34_;
	LA36_: ;
	{
		linkCmd = ((NimStringDesc*) NIM_NIL);
	}
	LA34_: ;
	{
		if (!(((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 10))&63U)))!=0)) goto LA131_;
		add__ropes_162(&script, linkCmd);
		add__ropes_162(&script, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_124));
		generateScript__extccomp_814((*colonenv_).conf2, script);
	}
	LA131_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, writeJsonBuildInstructions__extccomp_1507)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* linkFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* collectResult;
	tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ bcache;
	tySequence__4eQHGndY6XBYpFOH09apV8Q* collectResult_2;
	NimStringDesc* T31_;
	NimStringDesc* T32_;
	NimStringDesc* T33_;
	tyObject_ToJsonOptions__hwpMtSVqR9ad9atcjwlRIwtg T63_;
	tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* T64_;
	NimStringDesc* T65_;
	collectResult = newSeq__systemZio_503(((NI) 0));
	{
		NimStringDesc** it;
		NI i;
		NI L;
		NI T2_;
		it = (NimStringDesc**)0;
		i = ((NI) 0);
		T2_ = ((*conf).externalToLink ? (*conf).externalToLink->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NimStringDesc* it_2;
				NimStringDesc* T10_;
				NI T11_;
				NimStringDesc* T12_;
				if (!(i < L)) goto LA4;
				it = (&(*conf).externalToLink->data[i]);
				it_2 = copyString((*it));
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = noAbsolutePaths__extccomp_833(conf);
					if (!T7_) goto LA8_;
					it_2 = nosextractFilename(it_2);
				}
				LA8_: ;
				T10_ = NIM_NIL;
				T10_ = nosaddFileExt(it_2, CC__extccomp_510[((*conf).cCompiler)- 1].Field1);
				collectResult = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(collectResult), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
				T11_ = collectResult->Sup.len++;
				T12_ = NIM_NIL;
				T12_ = collectResult->data[T11_]; collectResult->data[T11_] = copyStringRC1(T10_);
				if (T12_) nimGCunrefNoCycle(T12_);
				i += ((NI) 1);
			} LA4: ;
		}
	}
	genericSeqAssign((&linkFiles), collectResult, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
	{
		tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw* it_3;
		NI i_2;
		NI L_2;
		NI T14_;
		it_3 = (tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw*)0;
		i_2 = ((NI) 0);
		T14_ = ((*conf).toCompile ? (*conf).toCompile->Sup.len : 0);
		L_2 = T14_;
		{
			while (1) {
				NI T17_;
				NimStringDesc* T18_;
				if (!(i_2 < L_2)) goto LA16;
				it_3 = (&(*conf).toCompile->data[i_2]);
				linkFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(linkFiles), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
				T17_ = linkFiles->Sup.len++;
				T18_ = NIM_NIL;
				T18_ = linkFiles->data[T17_]; linkFiles->data[T17_] = copyStringRC1((*it_3).obj);
				if (T18_) nimGCunrefNoCycle(T18_);
				i_2 += ((NI) 1);
			} LA16: ;
		}
	}
	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ));
	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ));
	bcache.cacheVersion = copyString(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_133));
	bcache.outputFile = absOutFile__options_4073(conf);
	collectResult_2 = newSeq__extccomp_1558(((NI) 0));
	{
		NI i_3;
		tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw it_4;
		NI i_4;
		NI L_3;
		NI T20_;
		i_3 = (NI)0;
		nimZeroMem((void*)(&it_4), sizeof(tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw));
		i_4 = ((NI) 0);
		T20_ = ((*conf).toCompile ? (*conf).toCompile->Sup.len : 0);
		L_3 = T20_;
		{
			while (1) {
				if (!(i_4 < L_3)) goto LA22;
				i_3 = i_4;
				nimCopyMem((void*)(&it_4), (NIM_CONST void*)(&(*conf).toCompile->data[i_4]), sizeof(it_4));
				{
					tyTuple__UV3llMMYFckfui8YMBuUZA T27_;
					NI T28_;
					NimStringDesc* T29_;
					NimStringDesc* T30_;
					if (!!(((it_4.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA) 0))&7U)))!=0))) goto LA25_;
					nimZeroMem((void*)(&T27_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
					T27_.Field0 = copyString(it_4.cname);
					T27_.Field1 = getCompileCFileCmd__extccomp_997(conf, (&it_4), NIM_FALSE, NIM_FALSE);
					collectResult_2 = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) incrSeqV3((TGenericSeq*)(collectResult_2), (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
					T28_ = collectResult_2->Sup.len++;
					T29_ = NIM_NIL;
					T29_ = collectResult_2->data[T28_].Field0; collectResult_2->data[T28_].Field0 = copyStringRC1(T27_.Field0);
					if (T29_) nimGCunrefNoCycle(T29_);
					T30_ = NIM_NIL;
					T30_ = collectResult_2->data[T28_].Field1; collectResult_2->data[T28_].Field1 = copyStringRC1(T27_.Field1);
					if (T30_) nimGCunrefNoCycle(T30_);
				}
				LA25_: ;
				i_4 += ((NI) 1);
			} LA22: ;
		}
	}
	genericSeqAssign((&bcache.compile), collectResult_2, (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
	genericSeqAssign((&bcache.link), linkFiles, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
	T31_ = NIM_NIL;
	T31_ = absOutFile__options_4073(conf);
	T32_ = NIM_NIL;
	T32_ = quoteShellCommand__pureZos_601((linkFiles) ? (linkFiles->data) : NIM_NIL, (linkFiles ? linkFiles->Sup.len : 0));
	bcache.linkcmd = getLinkCmd__extccomp_1100(conf, T31_, T32_, (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 7))&63U)))!=0), NIM_FALSE);
	T33_ = NIM_NIL;
	T33_ = absOutFile__options_4073(conf);
	bcache.extraCmds = getExtraCmds__extccomp_1152(conf, T33_);
	bcache.stdinInput = (*conf).projectIsStdin;
	bcache.projectIsCmd = (*conf).projectIsCmd;
	bcache.cmdInput = copyString((*conf).cmdInput);
	{
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
		NI iX60gensym114_;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* resultX60gensym114_;
		NI T35_;
		colontmp_ = (*conf).configFiles;
		iX60gensym114_ = ((NI) 0);
		T35_ = (colontmp_ ? colontmp_->Sup.len : 0);
		resultX60gensym114_ = newSeq__systemZio_503(((NI) (T35_)));
		{
			NimStringDesc** it_5;
			NI i_5;
			NI L_4;
			NI T37_;
			it_5 = (NimStringDesc**)0;
			i_5 = ((NI) 0);
			T37_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L_4 = T37_;
			{
				while (1) {
					NimStringDesc* T40_;
					if (!(i_5 < L_4)) goto LA39;
					it_5 = (&colontmp_->data[i_5]);
					T40_ = NIM_NIL;
					T40_ = resultX60gensym114_->data[iX60gensym114_]; resultX60gensym114_->data[iX60gensym114_] = copyStringRC1((*it_5));
					if (T40_) nimGCunrefNoCycle(T40_);
					iX60gensym114_ += ((NI) 1);
					i_5 += ((NI) 1);
				} LA39: ;
			}
		}
		genericSeqAssign((&bcache.configFiles), resultX60gensym114_, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
	}
	bcache.currentDir = nosgetCurrentDir();
	{
		NIM_BOOL T43_;
		tySequence__4eQHGndY6XBYpFOH09apV8Q* collectResult_3;
		NimStringDesc* T61_;
		tyArray__YtcvxHNKV4YiecPE9ap1mcA T62_;
		T43_ = (NIM_BOOL)0;
		T43_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 12))&63U)))!=0);
		if (T43_) goto LA44_;
		T43_ = isDefined__options_2292(conf, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_190));
		LA44_: ;
		if (!T43_) goto LA45_;
		bcache.cmdline = copyString((*conf).commandLine);
		collectResult_3 = newSeq__extccomp_1558(((NI) 0));
		{
			tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w* it_6;
			NI i_6;
			NI L_5;
			NI T48_;
			it_6 = (tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w*)0;
			i_6 = ((NI) 0);
			T48_ = ((*conf).m.fileInfos ? (*conf).m.fileInfos->Sup.len : 0);
			L_5 = T48_;
			{
				while (1) {
					NimStringDesc* path;
					if (!(i_6 < L_5)) goto LA50;
					it_6 = (&(*conf).m.fileInfos->data[i_6]);
					path = (*it_6).fullPath;
					{
						NIM_BOOL T53_;
						tyTuple__UV3llMMYFckfui8YMBuUZA T56_;
						tyArray__YtcvxHNKV4YiecPE9ap1mcA T57_;
						NI T58_;
						NimStringDesc* T59_;
						NimStringDesc* T60_;
						T53_ = (NIM_BOOL)0;
						T53_ = nosisAbsolute(path);
						if (!T53_) goto LA54_;
						nimZeroMem((void*)(&T56_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
						T56_.Field0 = copyString(path);
						nimZeroMem((void*)T57_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
						secureHashFile__stdZsha49_862(path, T57_);
						T56_.Field1 = dollar___stdZsha49_870(T57_);
						collectResult_3 = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) incrSeqV3((TGenericSeq*)(collectResult_3), (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
						T58_ = collectResult_3->Sup.len++;
						T59_ = NIM_NIL;
						T59_ = collectResult_3->data[T58_].Field0; collectResult_3->data[T58_].Field0 = copyStringRC1(T56_.Field0);
						if (T59_) nimGCunrefNoCycle(T59_);
						T60_ = NIM_NIL;
						T60_ = collectResult_3->data[T58_].Field1; collectResult_3->data[T58_].Field1 = copyStringRC1(T56_.Field1);
						if (T60_) nimGCunrefNoCycle(T60_);
					}
					LA54_: ;
					i_6 += ((NI) 1);
				} LA50: ;
			}
		}
		genericSeqAssign((&bcache.depfiles), collectResult_3, (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
		T61_ = NIM_NIL;
		T61_ = nosgetAppFilename();
		nimZeroMem((void*)T62_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
		secureHashFile__stdZsha49_862(T61_, T62_);
		bcache.nimexe = dollar___stdZsha49_870(T62_);
	}
	LA45_: ;
	asgnRef((void**) (&(*conf).jsonBuildFile), jsonBuildInstructionsFile__extccomp_1488(conf));
	T63_ = initToJsonOptions__stdZjsonutils_33();
	T64_ = NIM_NIL;
	T64_ = toJson__extccomp_1689((&bcache), T63_);
	T65_ = NIM_NIL;
	T65_ = pretty__pureZjson_4480(T64_, ((NI) 2));
	writeFile__systemZio_476((*conf).jsonBuildFile, T65_);
}
static N_NIMCALL(void, Marker_tyRef__JNuzMHJeMcY6vo2WncVH1w)(void* p, NI op) {
	tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw* a;
	a = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw*)p;
	nimGCvisit((void*)(*a).prettyCmds1, op);
	nimGCvisit((void*)(*a).conf2, op);
}
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_2617)(NI idx, void* ClE_0) {
	tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw* colonenvP_;
	colonenvP_ = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw*) ClE_0;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T5_;
		if (!(((NI) 0) < ((*colonenvP_).prettyCmds1->data[idx] ? (*colonenvP_).prettyCmds1->data[idx]->Sup.len : 0))) goto LA3_;
		flushDot__msgs_17((*colonenvP_).conf2);
		nimZeroMem((void*)T5_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T5_[0] = copyString((*colonenvP_).prettyCmds1->data[idx]);
		writeLine__msgs_442(stderr, T5_, 1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, runJsonBuildInstructions__extccomp_2595)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* jsonFile) {
	tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw* colonenv_;
	tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ bcache;
	TSafePoint TM__pZmXgBT0YcBrnAO6VUvpNQ_192;
	tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* T1_;
	tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw T2_;
	NimStringDesc* output;
	NimStringDesc* T20_;
	NimStringDesc* outputCurrent;
	NimStringDesc* T21_;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds;
	tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb;
	tyProc__SqRJqa5aOiKB4EuKlKh9asA T30_;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw*) newObj((&NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_), sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw));
	(*colonenv_).Sup.m_type = (&NTIobject__tydHlQwYr9bAH64Samu8pCw_);
	asgnRef((void**) (&(*colonenv_).conf2), conf);
	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__3RriOFYkrnBg9bAREc08ZSQ));
	pushSafePoint(&TM__pZmXgBT0YcBrnAO6VUvpNQ_192);
	TM__pZmXgBT0YcBrnAO6VUvpNQ_192.status = _setjmp(TM__pZmXgBT0YcBrnAO6VUvpNQ_192.context);
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_192.status == 0) {
	T1_ = NIM_NIL;
	T1_ = parseFile__pureZjson_5247(jsonFile);
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Joptions__KEnZw9a9a5Pq4nzgEqVDEM9cw));
	fromJson__extccomp_1852((&bcache), T1_, T2_);
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIjsonkinderror__AoNiOfrNmMaOu0Lc0TiKiQ_))) {
			Exception* e;
			TM__pZmXgBT0YcBrnAO6VUvpNQ_192.status = 0;
			e = getCurrentException();
			{
				NIM_BOOL T7_;
				T7_ = (NIM_BOOL)0;
				T7_ = isDefined__options_2292((*colonenv_).conf2, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_193));
				if (!T7_) goto LA8_;
				{
					NimStringDesc* T14_;
					tyArray__24KAM9afIUgUaqBaEBB6r9bg T15_;
					NimStringDesc* T16_;
					if (!NIM_TRUE) goto LA12_;
					T14_ = NIM_NIL;
					nimZeroMem((void*)T15_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
					T15_[0] = copyString((*e).message);
					T15_[1] = getStackTrace__system_2521(e);
					T15_[2] = copyString(jsonFile);
					T16_ = NIM_NIL;
					T16_ = nsuFormatOpenArray(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_195), T15_, 3);
					T14_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 29);
appendString(T14_, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_194));
appendString(T14_, T16_);
					failedAssertImpl__systemZassertions_56(T14_);
				}
				LA12_: ;
			}
			goto LA5_;
			LA8_: ;
			{
				tyArray__24KAM9afIUgUaqBaEBB6r9bg T18_;
				NimStringDesc* T19_;
				nimZeroMem((void*)T18_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
				T18_[0] = copyString((*e).message);
				T18_[1] = getStackTrace__system_2521(e);
				T18_[2] = copyString(jsonFile);
				T19_ = NIM_NIL;
				T19_ = nsuFormatOpenArray(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_195), T18_, 3);
				quit__system_7185(T19_, ((NI) 1));
			}
			LA5_: ;
			popCurrentException();
		}
	}
	if (TM__pZmXgBT0YcBrnAO6VUvpNQ_192.status != 0) reraiseException();
	output = bcache.outputFile;
	T20_ = NIM_NIL;
	T20_ = nosparentDir(output);
	noscreateDir(T20_);
	T21_ = NIM_NIL;
	T21_ = absOutFile__options_4073((*colonenv_).conf2);
	outputCurrent = dollar___options_4370(T21_);
	{
		NIM_BOOL T24_;
		tyArray__24KAM9afIUgUaqBaEBB6r9bg T28_;
		NimStringDesc* T29_;
		T24_ = (NIM_BOOL)0;
		T24_ = !(eqStrings(output, outputCurrent));
		if (T24_) goto LA25_;
		T24_ = !(eqStrings(bcache.cacheVersion, ((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_133)));
		LA25_: ;
		if (!T24_) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
		T28_[0] = copyString(outputCurrent);
		T28_[1] = copyString(output);
		T28_[2] = copyString(jsonFile);
		T29_ = NIM_NIL;
		T29_ = nsuFormatOpenArray(((NimStringDesc*) &TM__pZmXgBT0YcBrnAO6VUvpNQ_196), T28_, 3);
		liMessage__msgs_1128((*colonenv_).conf2, gCmdLineInfo__msgs_414, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T29_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__pZmXgBT0YcBrnAO6VUvpNQ_197, NIM_FALSE);
	}
	LA26_: ;
	cmds = NIM_NIL;
	asgnRef((void**) (&(*colonenv_).prettyCmds1), NIM_NIL);
	nimZeroMem((void*)(&prettyCb), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
	nimZeroMem((void*)(&T30_), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
	T30_.ClP_0 = colonanonymous___extccomp_2617; T30_.ClE_0 = colonenv_;
	prettyCb.ClE_0 = T30_.ClE_0;
	prettyCb.ClP_0 = T30_.ClP_0;
	{
		NimStringDesc** name;
		NimStringDesc** cmd;
		NI i;
		NI L;
		NI T32_;
		name = (NimStringDesc**)0;
		cmd = (NimStringDesc**)0;
		i = ((NI) 0);
		T32_ = (bcache.compile ? bcache.compile->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI T35_;
				NimStringDesc* T36_;
				NimStringDesc* T37_;
				NI T38_;
				NimStringDesc* T39_;
				if (!(i < L)) goto LA34;
				name = (&bcache.compile->data[i].Field0);
				cmd = (&bcache.compile->data[i].Field1);
				cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
				T35_ = cmds->Sup.len++;
				T36_ = NIM_NIL;
				T36_ = cmds->data[T35_]; cmds->data[T35_] = copyStringRC1((*cmd));
				if (T36_) nimGCunrefNoCycle(T36_);
				T37_ = NIM_NIL;
				T37_ = displayProgressCC__extccomp_1245((*colonenv_).conf2, (*name), (*cmd));
				asgnRef((void**) (&(*colonenv_).prettyCmds1), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*colonenv_).prettyCmds1), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
				T38_ = (*colonenv_).prettyCmds1->Sup.len++;
				T39_ = NIM_NIL;
				T39_ = (*colonenv_).prettyCmds1->data[T38_]; (*colonenv_).prettyCmds1->data[T38_] = copyStringRC1(T37_);
				if (T39_) nimGCunrefNoCycle(T39_);
				i += ((NI) 1);
			} LA34: ;
		}
	}
	execCmdsInParallel__extccomp_1161((*colonenv_).conf2, cmds, prettyCb);
	execLinkCmd__extccomp_1156((*colonenv_).conf2, bcache.linkcmd);
	{
		NimStringDesc** cmd_2;
		NI i_2;
		NI L_2;
		NI T41_;
		cmd_2 = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		T41_ = (bcache.extraCmds ? bcache.extraCmds->Sup.len : 0);
		L_2 = T41_;
		{
			while (1) {
				if (!(i_2 < L_2)) goto LA43;
				cmd_2 = (&bcache.extraCmds->data[i_2]);
				execExternalProgram__extccomp_810((*colonenv_).conf2, (*cmd_2), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 93));
				i_2 += ((NI) 1);
			} LA43: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, atmextccompdotnim_DatInit000)(void) {
static TNimNode* TM__pZmXgBT0YcBrnAO6VUvpNQ_148_3[3];
static TNimNode* TM__pZmXgBT0YcBrnAO6VUvpNQ_151_3[3];
static TNimNode* TM__pZmXgBT0YcBrnAO6VUvpNQ_191_3[3];
static TNimNode TM__pZmXgBT0YcBrnAO6VUvpNQ_0[12];
NTIobject__bt67vpmqSRgon6DPHLke6A_.size = sizeof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A);
NTIobject__bt67vpmqSRgon6DPHLke6A_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A);
NTIobject__bt67vpmqSRgon6DPHLke6A_.kind = 17;
NTIobject__bt67vpmqSRgon6DPHLke6A_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_148_3[0] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[1];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[1].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[1].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A, colonstate_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[1].name = ":state";
TM__pZmXgBT0YcBrnAO6VUvpNQ_148_3[1] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[2];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[2].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[2].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A, prettyCmds1);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[2].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[2].name = "prettyCmds1";
TM__pZmXgBT0YcBrnAO6VUvpNQ_148_3[2] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[3];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[3].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[3].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A, conf2);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[3].typ = (&NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[3].name = "conf2";
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[0].len = 3; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[0].kind = 2; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[0].sons = &TM__pZmXgBT0YcBrnAO6VUvpNQ_148_3[0];
NTIobject__bt67vpmqSRgon6DPHLke6A_.node = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[0];
NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_.size = sizeof(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A*);
NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_callCCompiler___bt67vpmqSRgon6DPHLke6A*);
NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_.kind = 22;
NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_.base = (&NTIobject__bt67vpmqSRgon6DPHLke6A_);
NTIrefobject__JVTk4z2mtPJTtv2jA9b8cEw_.marker = Marker_tyRef__JVTk4z2mtPJTtv2jA9b8cEw;
NTIobject__No4B2P3n9cbIbeyPxQsRdZg_.size = sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg);
NTIobject__No4B2P3n9cbIbeyPxQsRdZg_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg);
NTIobject__No4B2P3n9cbIbeyPxQsRdZg_.kind = 17;
NTIobject__No4B2P3n9cbIbeyPxQsRdZg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_151_3[0] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[5];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[5].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[5].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg, colonstate_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[5].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[5].name = ":state";
TM__pZmXgBT0YcBrnAO6VUvpNQ_151_3[1] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[6];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[6].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[6].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg, conf1);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[6].typ = (&NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[6].name = "conf1";
TM__pZmXgBT0YcBrnAO6VUvpNQ_151_3[2] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[7];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[7].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[7].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg, cmds2);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[7].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[7].name = "cmds2";
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[4].len = 3; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[4].kind = 2; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[4].sons = &TM__pZmXgBT0YcBrnAO6VUvpNQ_151_3[0];
NTIobject__No4B2P3n9cbIbeyPxQsRdZg_.node = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[4];
NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_.size = sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg*);
NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_execCmdsInParallel___No4B2P3n9cbIbeyPxQsRdZg*);
NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_.kind = 22;
NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_.base = (&NTIobject__No4B2P3n9cbIbeyPxQsRdZg_);
NTIrefobject__ZR39bZITIEGpLUSLWXvP1uQ_.marker = Marker_tyRef__ZR39bZITIEGpLUSLWXvP1uQ;
NTIobject__tydHlQwYr9bAH64Samu8pCw_.size = sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw);
NTIobject__tydHlQwYr9bAH64Samu8pCw_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw);
NTIobject__tydHlQwYr9bAH64Samu8pCw_.kind = 17;
NTIobject__tydHlQwYr9bAH64Samu8pCw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_191_3[0] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[9];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[9].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[9].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw, colonstate_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[9].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[9].name = ":state";
TM__pZmXgBT0YcBrnAO6VUvpNQ_191_3[1] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[10];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[10].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[10].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw, prettyCmds1);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[10].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[10].name = "prettyCmds1";
TM__pZmXgBT0YcBrnAO6VUvpNQ_191_3[2] = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[11];
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[11].kind = 1;
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[11].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw, conf2);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[11].typ = (&NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_);
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[11].name = "conf2";
TM__pZmXgBT0YcBrnAO6VUvpNQ_0[8].len = 3; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[8].kind = 2; TM__pZmXgBT0YcBrnAO6VUvpNQ_0[8].sons = &TM__pZmXgBT0YcBrnAO6VUvpNQ_191_3[0];
NTIobject__tydHlQwYr9bAH64Samu8pCw_.node = &TM__pZmXgBT0YcBrnAO6VUvpNQ_0[8];
NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_.size = sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw*);
NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_runJsonBuildInstructions___tydHlQwYr9bAH64Samu8pCw*);
NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_.kind = 22;
NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_.base = (&NTIobject__tydHlQwYr9bAH64Samu8pCw_);
NTIrefobject__JNuzMHJeMcY6vo2WncVH1w_.marker = Marker_tyRef__JNuzMHJeMcY6vo2WncVH1w;
}

