1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #include <setjmp.h>
8 #include <stdio.h>
9 #undef LANGUAGE_C
10 #undef MIPSEB
11 #undef MIPSEL
12 #undef PPC
13 #undef R3000
14 #undef R4000
15 #undef i386
16 #undef linux
17 #undef mips
18 #undef near
19 #undef far
20 #undef powerpc
21 #undef unix
22 #define nimfr_(x, y)
23 #define nimln_(x, y)
24 typedef struct NimStringDesc NimStringDesc;
25 typedef struct TGenericSeq TGenericSeq;
26 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
27 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
28 typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
29 typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
30 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
31 typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
32 typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
33 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
34 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
35 typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
36 typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
37 typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
38 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
39 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
40 typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
41 typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
42 typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
43 typedef struct Exception Exception;
44 typedef struct RootObj RootObj;
45 typedef struct TNimType TNimType;
46 typedef struct TNimNode TNimNode;
47 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
48 typedef struct TSafePoint TSafePoint;
49 typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
50 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
51 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
52 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
53 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
54 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
55 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
56 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
57 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
58 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
59 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
60 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
61 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
62 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
63 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
64 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
65 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
66 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
67 typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
68 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
69 typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
70 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
71 typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
72 typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
73 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
74 struct TGenericSeq {
75 NI len;
76 NI reserved;
77 };
78 struct NimStringDesc {
79   TGenericSeq Sup;
80 NIM_CHAR data[SEQ_DECL_SIZE];
81 };
82 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
83 NU16 line;
84 NI16 col;
85 NI32 fileIndex;
86 };
87 typedef NU8 tyArray__YtcvxHNKV4YiecPE9ap1mcA[20];
88 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
89 typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
90 typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
91 struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
92 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
93 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
94 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
95 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
96 NI intSize;
97 NI floatSize;
98 NI ptrSize;
99 NimStringDesc* tnl;
100 };
101 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
102 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
103 typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
104 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
105 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
106 NI counter;
107 };
108 struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
109 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
110 NIM_BOOL trackPosAttached;
111 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
112 tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
113 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
114 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
115 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
116 NI32 systemFileIdx;
117 };
118 typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
119 typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
120 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
121 typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
122 typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
123 struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
124 tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
125 NI counter;
126 };
127 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
128 typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
129 typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
130 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
131 typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
132 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
133 NI Field0;
134 NI Field1;
135 NI Field2;
136 };
137 typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
138 typedef struct {
139 N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
140 void* ClE_0;
141 } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
142 typedef struct {
143 N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
144 void* ClE_0;
145 } tyProc__k2HFjxisIgDALbEUFojxaQ;
146 typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
147 typedef struct {
148 N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
149 void* ClE_0;
150 } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
151 struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
152 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
153 tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
154 NI linesCompiled;
155 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
156 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
157 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
158 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
159 tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
160 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
161 NimStringDesc* unitSep;
162 NI evalTemplateCounter;
163 NI evalMacroCounter;
164 NI8 exitcode;
165 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
166 NimStringDesc* cmdInput;
167 NIM_BOOL projectIsCmd;
168 NIM_BOOL implicitCmd;
169 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
170 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
171 NIM_BOOL hintProcessingDots;
172 NI verbosity;
173 NI numberOfProcessors;
174 NF lastCmdTime;
175 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
176 NI spellSuggestMax;
177 tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
178 NimStringDesc* headerFile;
179 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
180 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
181 NimStringDesc* arguments;
182 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
183 NIM_BOOL oldNewlines;
184 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
185 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
186 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
187 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
188 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
189 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
190 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
191 NI mainPackageId;
192 NI errorCounter;
193 NI hintCounter;
194 NI warnCounter;
195 NI errorMax;
196 NI maxLoopIterationsVM;
197 NIM_BOOL isVmTrace;
198 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
199 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
200 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
201 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
202 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
203 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
204 NimStringDesc* outFile;
205 NimStringDesc* outDir;
206 NimStringDesc* jsonBuildFile;
207 NimStringDesc* prefixDir;
208 NimStringDesc* libpath;
209 NimStringDesc* nimcacheDir;
210 tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
211 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
212 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
213 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
214 NimStringDesc* projectName;
215 NimStringDesc* projectPath;
216 NimStringDesc* projectFull;
217 NIM_BOOL projectIsStdin;
218 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
219 NI32 projectMainIdx;
220 NI32 projectMainIdx2;
221 NimStringDesc* command;
222 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
223 NimStringDesc* commandLine;
224 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
225 NIM_BOOL keepComments;
226 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
227 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
228 NimStringDesc* docSeeSrcUrl;
229 NimStringDesc* docRoot;
230 NimStringDesc* docCmd;
231 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
232 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
233 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
234 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
235 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
236 NimStringDesc* linkOptionsCmd;
237 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
238 NimStringDesc* linkOptions;
239 NimStringDesc* compileOptions;
240 NimStringDesc* cCompilerPath;
241 tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
242 tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
243 NI suggestVersion;
244 NI suggestMaxResults;
245 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
246 tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
247 tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
248 NimStringDesc* cppCustomNamespace;
249 NimStringDesc* nimMainPrefix;
250 tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
251 };
252 typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
253 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
254 struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
255 NimStringDesc* Field0;
256 NI Field1;
257 };
258 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
259 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
260 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
261 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
262 struct TNimType {
263 NI size;
264 NI align;
265 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
266 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
267 TNimType* base;
268 TNimNode* node;
269 void* finalizer;
270 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
271 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
272 };
273 struct RootObj {
274 TNimType* m_type;
275 };
276 struct Exception {
277   RootObj Sup;
278 Exception* parent;
279 NCSTRING name;
280 NimStringDesc* message;
281 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
282 Exception* up;
283 };
284 struct TSafePoint {
285 TSafePoint* prev;
286 NI status;
287 jmp_buf context;
288 };
289 typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
290 typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
291 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
292 struct TNimNode {
293 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
294 NI offset;
295 TNimType* typ;
296 NCSTRING name;
297 NI len;
298 TNimNode** sons;
299 };
300 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
301 NI refcount;
302 TNimType* typ;
303 };
304 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
305 void* bottom;
306 };
307 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
308 NI len;
309 NI cap;
310 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
311 };
312 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
313 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
314 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
315 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
316 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
317 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
318 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
319 };
320 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
321 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
322 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
323 NI key;
324 NI upperBound;
325 NI level;
326 };
327 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
328 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
329 NI Field1;
330 };
331 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
332 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
333 NI len;
334 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
335 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
336 };
337 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
338 NI minLargeObj;
339 NI maxLargeObj;
340 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
341 NU32 flBitmap;
342 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
343 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
344 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
345 NI currMem;
346 NI maxMem;
347 NI freeMem;
348 NI occ;
349 NI lastSize;
350 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
351 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
352 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
353 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
354 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
355 NIM_BOOL locked;
356 NIM_BOOL blockChunkSizeIncrease;
357 NI nextChunkSize;
358 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
359 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
360 };
361 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
362 NI stackScans;
363 NI cycleCollections;
364 NI maxThreshold;
365 NI maxStackSize;
366 NI maxStackCells;
367 NI cycleTableSize;
368 NI64 maxPause;
369 };
370 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
371 NI counter;
372 NI max;
373 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
374 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
375 };
376 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
377 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
378 NI cycleThreshold;
379 NI zctThreshold;
380 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
381 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
382 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
383 NI recGcLock;
384 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
385 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
386 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
387 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
388 NI gcThreadId;
389 };
390 struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
391 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
392 NimStringDesc* Field1;
393 };
394 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
395 NI Field0;
396 NimStringDesc* Field1;
397 NI32 Field2;
398 };
399 struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
400 NimStringDesc* fullPath;
401 NimStringDesc* projPath;
402 NimStringDesc* shortName;
403 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
404 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
405 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
406 NimStringDesc* dirtyFile;
407 NimStringDesc* hash;
408 NIM_BOOL dirty;
409 };
410 struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
411 NI Field0;
412 NimStringDesc* Field1;
413 };
414 typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
415 struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
416 NimStringDesc* nimname;
417 NimStringDesc* cname;
418 NimStringDesc* obj;
419 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
420 NimStringDesc* customArgs;
421 };
422 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
423 NCSTRING procname;
424 NI line;
425 NCSTRING filename;
426 };
427 struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
428   TGenericSeq Sup;
429   tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
430 };
431 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
432   TGenericSeq Sup;
433   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
434 };
435 struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
436   TGenericSeq Sup;
437   tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
438 };
439 struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
440   TGenericSeq Sup;
441   tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
442 };
443 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
444   TGenericSeq Sup;
445   NimStringDesc* data[SEQ_DECL_SIZE];
446 };
447 struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
448   TGenericSeq Sup;
449   tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
450 };
451 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
452   TGenericSeq Sup;
453   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
454 };
455 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
456 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
457 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__msgs_538)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
458 static N_INLINE(void, nimZeroMem)(void* p, NI size);
459 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
460 N_LIB_PRIVATE N_NIMCALL(void, secureHash__stdZsha49_840)(NIM_CHAR* str, NI strLen_0, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
461 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
462 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
463 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
464 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
465 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toGeneratedFile__options_4235)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path, NimStringDesc* ext);
466 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZsha49_879)(tyArray__YtcvxHNKV4YiecPE9ap1mcA self);
467 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_391)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
468 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readAll__systemZio_352)(FILE* file);
469 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
470 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_218)(FILE* f);
471 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
472 N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options);
473 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
474 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
475 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
476 N_LIB_PRIVATE N_NIMCALL(void, readOutput__gorgeimpl_9)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result);
477 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
478 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
479 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__pureZstreams_539)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
480 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
481 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
482 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
483 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
484 N_LIB_PRIVATE N_NIMCALL(void, writeFile__systemZio_472)(NimStringDesc* filename, NimStringDesc* content);
485 static N_INLINE(void, popSafePoint)(void);
486 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
487 static N_INLINE(Exception*, nimBorrowCurrentException)(void);
488 static N_INLINE(void, popCurrentException)(void);
489 static N_INLINE(void, asgnRef)(void** dest, void* src);
490 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
491 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
492 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
493 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
494 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
495 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
496 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
497 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
498 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
499 STRING_LITERAL(TM__69a9b06YSkBJW7wqzuZfJ29aQ_2, "\011", 1);
500 STRING_LITERAL(TM__69a9b06YSkBJW7wqzuZfJ29aQ_3, "gorge_", 6);
501 STRING_LITERAL(TM__69a9b06YSkBJW7wqzuZfJ29aQ_4, "txt", 3);
502 STRING_LITERAL(TM__69a9b06YSkBJW7wqzuZfJ29aQ_6, "\012", 1);
503 extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
504 extern TNimType NTIoserror__BeJgrOdDsczOwEWOZbRfKA_;
505 extern TSafePoint* excHandler__system_2565;
506 extern TSafePoint* excHandler__system_2565;
507 extern TSafePoint* excHandler__system_2565;
508 extern TSafePoint* excHandler__system_2565;
509 extern Exception* currException__system_2566;
510 extern Exception* currException__system_2566;
511 extern Exception* currException__system_2566;
512 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_INLINE(void,nimSetMem__systemZmemory_7)513 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
514 	void* T1_;
515 	T1_ = (void*)0;
516 	T1_ = memset(a, v, ((size_t) (size)));
517 }
N_INLINE(void,nimZeroMem)518 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
519 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
520 }
N_INLINE(void,nimCopyMem)521 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
522 	void* T1_;
523 	T1_ = (void*)0;
524 	T1_ = memcpy(dest, source, ((size_t) (size)));
525 }
N_INLINE(void,copyMem__system_1727)526 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
527 	nimCopyMem(dest, source, size);
528 }
N_INLINE(void,appendString)529 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
530 	{
531 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
532 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
533 		(*dest).Sup.len += (*src).Sup.len;
534 	}
535 	LA3_: ;
536 }
N_INLINE(void,pushSafePoint)537 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
538 	(*s).prev = excHandler__system_2565;
539 	excHandler__system_2565 = s;
540 }
N_NIMCALL(void,readOutput__gorgeimpl_9)541 N_LIB_PRIVATE N_NIMCALL(void, readOutput__gorgeimpl_9)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
542 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* output;
543 	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
544 	(*Result).Field1 = 0;
545 	unsureAsgnRef((void**) (&(*Result).Field0), ((NimStringDesc*) NIM_NIL));
546 	output = nospoutputStream(p);
547 	{
548 		while (1) {
549 			NIM_BOOL T3_;
550 			NimStringDesc* T4_;
551 			T3_ = (NIM_BOOL)0;
552 			T3_ = atEnd__pureZstreams_63(output);
553 			if (!!(T3_)) goto LA2;
554 			T4_ = NIM_NIL;
555 			T4_ = readLine__pureZstreams_539(output);
556 			unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (T4_ ? T4_->Sup.len : 0) + 0));
557 appendString((*Result).Field0, T4_);
558 			unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, 1));
559 appendString((*Result).Field0, ((NimStringDesc*) &TM__69a9b06YSkBJW7wqzuZfJ29aQ_6));
560 		} LA2: ;
561 	}
562 	{
563 		if (!(((NI) 0) < ((*Result).Field0 ? (*Result).Field0->Sup.len : 0))) goto LA7_;
564 		unsureAsgnRef((void**) (&(*Result).Field0), setLengthStr((*Result).Field0, ((NI) ((NI)(((*Result).Field0 ? (*Result).Field0->Sup.len : 0) - ((NI) 1))))));
565 	}
566 	LA7_: ;
567 	(*Result).Field1 = nospwaitForExit(p, ((NI) -1));
568 }
N_INLINE(void,popSafePoint)569 static N_INLINE(void, popSafePoint)(void) {
570 	excHandler__system_2565 = (*excHandler__system_2565).prev;
571 }
N_INLINE(Exception *,nimBorrowCurrentException)572 static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
573 	Exception* result;
574 	result = NIM_NIL;
575 	result = currException__system_2566;
576 	return result;
577 }
N_INLINE(NI,pluspercent___system_696)578 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
579 	NI result;
580 	result = (NI)0;
581 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
582 	return result;
583 }
N_INLINE(void,incRef__system_5338)584 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
585 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
586 }
N_INLINE(NI,minuspercent___system_716)587 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
588 	NI result;
589 	result = (NI)0;
590 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
591 	return result;
592 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)593 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
594 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
595 	NI T1_;
596 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
597 	T1_ = (NI)0;
598 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
599 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
600 	return result;
601 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)602 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
603 	NIM_BOOL result;
604 	result = (NIM_BOOL)0;
605 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
606 	return result;
607 }
N_INLINE(void,rtlAddZCT__system_5343)608 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
609 	addZCT__system_5294((&gch__system_5247.zct), c);
610 }
N_INLINE(void,decRef__system_5345)611 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
612 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
613 	{
614 		NIM_BOOL T3_;
615 		T3_ = (NIM_BOOL)0;
616 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
617 		if (!T3_) goto LA4_;
618 		rtlAddZCT__system_5343(c);
619 	}
620 	LA4_: ;
621 }
N_INLINE(void,asgnRef)622 static N_INLINE(void, asgnRef)(void** dest, void* src) {
623 	{
624 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
625 		if (!!((src == NIM_NIL))) goto LA3_;
626 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
627 		T5_ = usrToCell__system_5300(src);
628 		incRef__system_5338(T5_);
629 	}
630 	LA3_: ;
631 	{
632 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
633 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
634 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
635 		T10_ = usrToCell__system_5300((*dest));
636 		decRef__system_5345(T10_);
637 	}
638 	LA8_: ;
639 	(*dest) = src;
640 }
N_INLINE(void,popCurrentException)641 static N_INLINE(void, popCurrentException)(void) {
642 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
643 }
N_NIMCALL(void,opGorge__gorgeimpl_13)644 N_LIB_PRIVATE N_NIMCALL(void, opGorge__gorgeimpl_13)(NimStringDesc* cmd, NimStringDesc* input, NimStringDesc* cache, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
645 	NimStringDesc* workingDir;
646 	NimStringDesc* T1_;
647 {	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
648 	(*Result).Field1 = 0;
649 	T1_ = NIM_NIL;
650 	T1_ = toFullPath__msgs_538(conf, info.fileIndex);
651 	workingDir = nosparentDir(T1_);
652 	{
653 		tyArray__YtcvxHNKV4YiecPE9ap1mcA h;
654 		NimStringDesc* T6_;
655 		NimStringDesc* filename;
656 		NimStringDesc* T7_;
657 		NimStringDesc* T8_;
658 		FILE* f;
659 		NIM_BOOL volatile readSuccessful;
660 		TSafePoint TM__69a9b06YSkBJW7wqzuZfJ29aQ_5;
661 		tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
662 		tyArray__8ZvwQIddfpj2THRVPsFzIQ T15_;
663 		if (!(((NI) 0) < (cache ? cache->Sup.len : 0))) goto LA4_;
664 		nimZeroMem((void*)h, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
665 		T6_ = NIM_NIL;
666 		T6_ = rawNewString((cmd ? cmd->Sup.len : 0) + (input ? input->Sup.len : 0) + (cache ? cache->Sup.len : 0) + 2);
667 appendString(T6_, cmd);
668 appendString(T6_, ((NimStringDesc*) &TM__69a9b06YSkBJW7wqzuZfJ29aQ_2));
669 appendString(T6_, input);
670 appendString(T6_, ((NimStringDesc*) &TM__69a9b06YSkBJW7wqzuZfJ29aQ_2));
671 appendString(T6_, cache);
672 		secureHash__stdZsha49_840(T6_->data, (T6_ ? T6_->Sup.len : 0), h);
673 		T7_ = NIM_NIL;
674 		T8_ = NIM_NIL;
675 		T8_ = dollar___stdZsha49_879(h);
676 		T7_ = rawNewString((T8_ ? T8_->Sup.len : 0) + 6);
677 appendString(T7_, ((NimStringDesc*) &TM__69a9b06YSkBJW7wqzuZfJ29aQ_3));
678 appendString(T7_, T8_);
679 		filename = toGeneratedFile__options_4235(conf, T7_, ((NimStringDesc*) &TM__69a9b06YSkBJW7wqzuZfJ29aQ_4));
680 		f = (FILE*)0;
681 		{
682 			NIM_BOOL T11_;
683 			NimStringDesc* colontmp_;
684 			NI colontmp__2;
685 			T11_ = (NIM_BOOL)0;
686 			T11_ = !((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0));
687 			if (!(T11_)) goto LA12_;
688 			T11_ = open__systemZio_391(&f, filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) -1));
689 			LA12_: ;
690 			if (!T11_) goto LA13_;
691 			colontmp_ = readAll__systemZio_352(f);
692 			colontmp__2 = ((NI) 0);
693 			unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
694 			(*Result).Field1 = colontmp__2;
695 			close__systemZio_218(f);
696 			goto BeforeRet_;
697 		}
698 		LA13_: ;
699 		readSuccessful = NIM_FALSE;
700 		pushSafePoint(&TM__69a9b06YSkBJW7wqzuZfJ29aQ_5);
701 		TM__69a9b06YSkBJW7wqzuZfJ29aQ_5.status = setjmp(TM__69a9b06YSkBJW7wqzuZfJ29aQ_5.context);
702 		if (TM__69a9b06YSkBJW7wqzuZfJ29aQ_5.status == 0) {
703 		nimZeroMem((void*)T15_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
704 		p = nospstartProcess(cmd, workingDir, T15_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), 12);
705 		{
706 			tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T20_;
707 			tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T21_;
708 			if (!!(((input ? input->Sup.len : 0) == ((NI) 0)))) goto LA18_;
709 			T20_ = NIM_NIL;
710 			T20_ = nospinputStream(p);
711 			write__pureZstreams_177(T20_, input);
712 			T21_ = NIM_NIL;
713 			T21_ = nospinputStream(p);
714 			close__pureZstreams_57(T21_);
715 		}
716 		LA18_: ;
717 		readOutput__gorgeimpl_9(p, Result);
718 		nospclose(p);
719 		readSuccessful = NIM_TRUE;
720 		{
721 			if (!((*Result).Field1 == ((NI) 0))) goto LA24_;
722 			writeFile__systemZio_472(filename, (*Result).Field0);
723 		}
724 		LA24_: ;
725 		popSafePoint();
726 		}
727 		else {
728 			popSafePoint();
729 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))) {
730 				TM__69a9b06YSkBJW7wqzuZfJ29aQ_5.status = 0;
731 				{
732 					NimStringDesc* colontmp__3;
733 					NI colontmp__4;
734 					if (!!(readSuccessful)) goto LA30_;
735 					colontmp__3 = ((NimStringDesc*) NIM_NIL);
736 					colontmp__4 = ((NI) -1);
737 					unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp__3));
738 					(*Result).Field1 = colontmp__4;
739 				}
740 				LA30_: ;
741 				popCurrentException();
742 			}
743 		}
744 		if (TM__69a9b06YSkBJW7wqzuZfJ29aQ_5.status != 0) reraiseException();
745 	}
746 	goto LA2_;
747 	LA4_: ;
748 	{
749 		TSafePoint TM__69a9b06YSkBJW7wqzuZfJ29aQ_7;
750 		tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p_2;
751 		tyArray__8ZvwQIddfpj2THRVPsFzIQ T33_;
752 		pushSafePoint(&TM__69a9b06YSkBJW7wqzuZfJ29aQ_7);
753 		TM__69a9b06YSkBJW7wqzuZfJ29aQ_7.status = setjmp(TM__69a9b06YSkBJW7wqzuZfJ29aQ_7.context);
754 		if (TM__69a9b06YSkBJW7wqzuZfJ29aQ_7.status == 0) {
755 		nimZeroMem((void*)T33_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
756 		p_2 = nospstartProcess(cmd, workingDir, T33_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), 12);
757 		{
758 			tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T38_;
759 			tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T39_;
760 			if (!!(((input ? input->Sup.len : 0) == ((NI) 0)))) goto LA36_;
761 			T38_ = NIM_NIL;
762 			T38_ = nospinputStream(p_2);
763 			write__pureZstreams_177(T38_, input);
764 			T39_ = NIM_NIL;
765 			T39_ = nospinputStream(p_2);
766 			close__pureZstreams_57(T39_);
767 		}
768 		LA36_: ;
769 		readOutput__gorgeimpl_9(p_2, Result);
770 		nospclose(p_2);
771 		popSafePoint();
772 		}
773 		else {
774 			popSafePoint();
775 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))) {
776 				NimStringDesc* colontmp__5;
777 				NI colontmp__6;
778 				TM__69a9b06YSkBJW7wqzuZfJ29aQ_7.status = 0;
779 				colontmp__5 = ((NimStringDesc*) NIM_NIL);
780 				colontmp__6 = ((NI) -1);
781 				unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp__5));
782 				(*Result).Field1 = colontmp__6;
783 				popCurrentException();
784 			}
785 		}
786 		if (TM__69a9b06YSkBJW7wqzuZfJ29aQ_7.status != 0) reraiseException();
787 	}
788 	LA2_: ;
789 	}BeforeRet_: ;
790 }
791