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