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 <sys/types.h>
8 #include <unistd.h>
9 #include <setjmp.h>
10 #include <spawn.h>
11 #include <signal.h>
12 #include <sys/wait.h>
13 #include <time.h>
14 #include <stdlib.h>
15 #include <stdio.h>
16 #undef LANGUAGE_C
17 #undef MIPSEB
18 #undef MIPSEL
19 #undef PPC
20 #undef R3000
21 #undef R4000
22 #undef i386
23 #undef linux
24 #undef mips
25 #undef near
26 #undef far
27 #undef powerpc
28 #undef unix
29 #define nimfr_(x, y)
30 #define nimln_(x, y)
31 typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
32 typedef struct NimStringDesc NimStringDesc;
33 typedef struct TGenericSeq TGenericSeq;
34 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
35 typedef struct RootObj RootObj;
36 typedef struct TNimType TNimType;
37 typedef struct TNimNode TNimNode;
38 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
39 typedef struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA;
40 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
41 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
42 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
43 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
44 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
45 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
46 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
47 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
48 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
49 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
50 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
51 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
52 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
53 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
54 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
55 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
56 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
57 typedef struct Exception Exception;
58 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
59 typedef struct TSafePoint TSafePoint;
60 typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
61 typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
62 typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
63 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
64 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
65 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
66 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
67 typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
68 typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ tySequence__PrBYolTs4TOSgE8v5oqDUQ;
69 typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
70 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
71 struct TGenericSeq {
72 NI len;
73 NI reserved;
74 };
75 struct NimStringDesc {
76   TGenericSeq Sup;
77 NIM_CHAR data[SEQ_DECL_SIZE];
78 };
79 typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
80 typedef int tyArray__SKEqGXcReU4NvbQlH779b5Q[2];
81 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
82 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
83 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
84 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
85 struct TNimType {
86 NI size;
87 NI align;
88 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
89 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
90 TNimType* base;
91 TNimNode* node;
92 void* finalizer;
93 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
94 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
95 };
96 struct RootObj {
97 TNimType* m_type;
98 };
99 struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
100   RootObj Sup;
101 int inHandle;
102 int outHandle;
103 int errHandle;
104 pid_t id;
105 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
106 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
107 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
108 int exitStatus;
109 NIM_BOOL exitFlag;
110 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
111 };
112 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
113 struct TNimNode {
114 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
115 NI offset;
116 TNimType* typ;
117 NCSTRING name;
118 NI len;
119 TNimNode** sons;
120 };
121 typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
122 struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA {
123 NimStringDesc* sysCommand;
124 NCSTRING* sysArgs;
125 NCSTRING* sysEnv;
126 NCSTRING workingDir;
127 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
128 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
129 tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
130 tyArray__SKEqGXcReU4NvbQlH779b5Q pErrorPipe;
131 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
132 };
133 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
134 NI refcount;
135 TNimType* typ;
136 };
137 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
138 void* bottom;
139 };
140 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
141 NI len;
142 NI cap;
143 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
144 };
145 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
146 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
147 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
148 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
149 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
150 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
151 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
152 };
153 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
154 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
155 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
156 NI key;
157 NI upperBound;
158 NI level;
159 };
160 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
161 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
162 NI Field1;
163 };
164 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
165 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
166 NI len;
167 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
168 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
169 };
170 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
171 NI minLargeObj;
172 NI maxLargeObj;
173 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
174 NU32 flBitmap;
175 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
176 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
177 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
178 NI currMem;
179 NI maxMem;
180 NI freeMem;
181 NI occ;
182 NI lastSize;
183 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
184 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
185 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
186 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
187 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
188 NIM_BOOL locked;
189 NIM_BOOL blockChunkSizeIncrease;
190 NI nextChunkSize;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
192 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
193 };
194 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
195 NI stackScans;
196 NI cycleCollections;
197 NI maxThreshold;
198 NI maxStackSize;
199 NI maxStackCells;
200 NI cycleTableSize;
201 NI64 maxPause;
202 };
203 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
204 NI counter;
205 NI max;
206 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
207 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
208 };
209 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
210 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
211 NI cycleThreshold;
212 NI zctThreshold;
213 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
214 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
215 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
216 NI recGcLock;
217 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
218 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
219 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
220 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
221 NI gcThreadId;
222 };
223 struct Exception {
224   RootObj Sup;
225 Exception* parent;
226 NCSTRING name;
227 NimStringDesc* message;
228 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
229 Exception* up;
230 };
231 struct TSafePoint {
232 TSafePoint* prev;
233 NI status;
234 jmp_buf context;
235 };
236 struct tyTuple__UV3llMMYFckfui8YMBuUZA {
237 NimStringDesc* Field0;
238 NimStringDesc* Field1;
239 };
240 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
241 typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
242 struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
243   RootObj Sup;
244 NI counter;
245 tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
246 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
247 };
248 struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
249 NimStringDesc* Field0;
250 NimStringDesc* Field1;
251 NIM_BOOL Field2;
252 };
253 typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
254 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
255 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
256 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
257 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
258 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
259 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
260 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
261 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
262 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
263   RootObj Sup;
264 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
265 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
266 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
267 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
268 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
269 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
270 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
271 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
272 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
273 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
274 };
275 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
276   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
277 FILE* f;
278 };
279 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
280 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
281   Exception Sup;
282 };
283 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
284   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
285 };
286 typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
287 struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
288 NimStringDesc* Field0;
289 NI Field1;
290 };
291 typedef struct {
292 N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
293 void* ClE_0;
294 } tyProc__SqRJqa5aOiKB4EuKlKh9asA;
295 typedef struct {
296 N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
297 void* ClE_0;
298 } tyProc__oudJckli4GdxAXLVzBBlAw;
299 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_16) (NI idx);
300 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_18) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
301 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_19) (NI idx);
302 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_20) (NI idx);
303 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_21) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
304 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
305 NCSTRING procname;
306 NI line;
307 NCSTRING filename;
308 };
309 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
310 NI a;
311 NI b;
312 };
313 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
314   TGenericSeq Sup;
315   NimStringDesc* data[SEQ_DECL_SIZE];
316 };
317 struct tySequence__PrBYolTs4TOSgE8v5oqDUQ {
318   TGenericSeq Sup;
319   tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* data[SEQ_DECL_SIZE];
320 };
321 struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
322   TGenericSeq Sup;
323   NI data[SEQ_DECL_SIZE];
324 };
325 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
326   TGenericSeq Sup;
327   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
328 };
329 struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
330   TGenericSeq Sup;
331   tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
332 };
333 static N_INLINE(void, nimZeroMem)(void* p, NI size);
334 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
335 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
336 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
337 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
338 N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__pureZos_387)(NI32 errorCode, NimStringDesc* additionalInfo);
339 N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__pureZos_390)(void);
340 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
341 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
342 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
343 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
344 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
345 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
346 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
347 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
348 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
349 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
350 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
351 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0);
352 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
353 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void);
354 static N_INLINE(NIM_BOOL, eqeq___system_7753)(NCSTRING x, NCSTRING y);
355 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
356 N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
357 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7773)(NimStringDesc* s, NI first, NI last);
358 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7785)(NimStringDesc* s, NI first);
359 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
360 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
361 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
362 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
363 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
364 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
365 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
366 N_LIB_PRIVATE N_NIMCALL(NI, nstlen)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
367 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
368 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
369 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxSpawn__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
370 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
371 static N_INLINE(void, setCurrentDir__pureZos_713)(NimStringDesc* newDir);
372 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
373 N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
374 static N_INLINE(void, popSafePoint)(void);
375 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a);
376 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
377 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
378 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_612)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode);
379 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_422)(FILE** f, int filehandle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
380 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
381 static N_INLINE(void, asgnRef)(void** dest, void* src);
382 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
383 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
384 N_LIB_PRIVATE N_NIMCALL(int, exitStatusLikeShell__pureZos_1080)(int status);
385 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
386 N_LIB_PRIVATE N_NIMCALL(pid_t, si_pid__posixZposix_219)(siginfo_t info);
387 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
388 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
389 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);
390 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
391 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
392 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
393 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
394 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
395 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
396 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
397 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
398 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status);
399 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, WIFEXITED__posixZposix_875)(int s);
400 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, WIFSIGNALED__posixZposix_884)(int s);
401 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
402 N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
403 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len);
404 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op);
405 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len);
406 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
407 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
408 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
409 N_LIB_PRIVATE TNimType NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_;
410 extern TNimType NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_;
411 extern TNimType NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_;
412 extern TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
413 extern TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
414 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
415 N_LIB_PRIVATE TNimType NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_;
416 N_LIB_PRIVATE TNimType NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_;
417 N_LIB_PRIVATE TNimType NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_;
418 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "/bin/sh", 7);
419 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
420 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "-c", 2);
421 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, "=", 1);
422 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_11, " ", 1);
423 extern TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
424 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
425 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_13, "System time was modified", 24);
426 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_14, "\012", 1);
427 N_LIB_PRIVATE TNimType NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_;
428 extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
429 static NIM_CONST tyProc__SqRJqa5aOiKB4EuKlKh9asA TM__HZdw8BhppcTQo8DIK46LSg_15 = {NIM_NIL,NIM_NIL};
430 static NIM_CONST tyProc__oudJckli4GdxAXLVzBBlAw TM__HZdw8BhppcTQo8DIK46LSg_17 = {NIM_NIL,NIM_NIL};
431 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
432 extern TSafePoint* excHandler__system_2565;
433 extern TSafePoint* excHandler__system_2565;
434 extern NCSTRING* environ;
435 extern TSafePoint* excHandler__system_2565;
436 extern TSafePoint* excHandler__system_2565;
N_INLINE(void,nimSetMem__systemZmemory_7)437 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
438 	void* T1_;
439 	T1_ = (void*)0;
440 	T1_ = memset(a, v, ((size_t) (size)));
441 }
N_INLINE(void,nimZeroMem)442 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
443 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
444 }
N_NIMCALL(void,Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)445 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
446 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
447 	a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
448 	nimGCvisit((void*)(*a).inStream, op);
449 	nimGCvisit((void*)(*a).outStream, op);
450 	nimGCvisit((void*)(*a).errStream, op);
451 }
N_INLINE(NI,minuspercent___system_716)452 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
453 	NI result;
454 	result = (NI)0;
455 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
456 	return result;
457 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)458 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
459 	NIM_BOOL result;
460 	result = (NIM_BOOL)0;
461 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
462 	return result;
463 }
N_INLINE(void,rtlAddZCT__system_5343)464 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
465 	addZCT__system_5294((&gch__system_5247.zct), c);
466 }
N_INLINE(void,decRef__system_5345)467 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
468 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
469 	{
470 		NIM_BOOL T3_;
471 		T3_ = (NIM_BOOL)0;
472 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
473 		if (!T3_) goto LA4_;
474 		rtlAddZCT__system_5343(c);
475 	}
476 	LA4_: ;
477 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)478 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
479 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
480 	NI T1_;
481 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
482 	T1_ = (NI)0;
483 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
484 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
485 	return result;
486 }
N_INLINE(void,nimGCunrefNoCycle)487 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
488 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
489 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
490 	T1_ = usrToCell__system_5300(p);
491 	decRef__system_5345(T1_);
492 }
N_INLINE(void,pushSafePoint)493 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
494 	(*s).prev = excHandler__system_2565;
495 	excHandler__system_2565 = s;
496 }
N_INLINE(NIM_BOOL,eqeq___system_7753)497 static N_INLINE(NIM_BOOL, eqeq___system_7753)(NCSTRING x, NCSTRING y) {
498 	NIM_BOOL result;
499 	result = (NIM_BOOL)0;
500 	{
501 		if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
502 		result = NIM_TRUE;
503 	}
504 	goto LA1_;
505 	LA3_: ;
506 	{
507 		NIM_BOOL T6_;
508 		T6_ = (NIM_BOOL)0;
509 		T6_ = (x == 0);
510 		if (T6_) goto LA7_;
511 		T6_ = (y == 0);
512 		LA7_: ;
513 		if (!T6_) goto LA8_;
514 		result = NIM_FALSE;
515 	}
516 	goto LA1_;
517 	LA8_: ;
518 	{
519 		int T11_;
520 		T11_ = (int)0;
521 		T11_ = strcmp(x, y);
522 		result = (T11_ == ((NI32) 0));
523 	}
524 	LA1_: ;
525 	return result;
526 }
N_INLINE(void,nimCopyMem)527 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
528 	void* T1_;
529 	T1_ = (void*)0;
530 	T1_ = memcpy(dest, source, ((size_t) (size)));
531 }
N_INLINE(void,copyMem__system_1727)532 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
533 	nimCopyMem(dest, source, size);
534 }
N_INLINE(void,appendString)535 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
536 	{
537 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
538 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
539 		(*dest).Sup.len += (*src).Sup.len;
540 	}
541 	LA3_: ;
542 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_320)543 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void) {
544 	NCSTRING* result;
545 	NI counter;
546 	void* T6_;
547 	NI i_2;
548 	result = (NCSTRING*)0;
549 	counter = ((NI) 0);
550 	{
551 		NimStringDesc* key;
552 		NimStringDesc* val;
553 		key = NIM_NIL;
554 		val = NIM_NIL;
555 		{
556 			tyTuple__UV3llMMYFckfui8YMBuUZA ai;
557 			NI i;
558 			nimZeroMem((void*)(&ai), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
559 			i = ((NI) 0);
560 			{
561 				while (1) {
562 					NIM_BOOL T5_;
563 					NimStringDesc* kv;
564 					NI p;
565 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp_;
566 					T5_ = (NIM_BOOL)0;
567 					T5_ = eqeq___system_7753(environ[i], ((NCSTRING) NIM_NIL));
568 					if (!!(T5_)) goto LA4;
569 					kv = cstrToNimstr(environ[i]);
570 					i += ((NI) 1);
571 					p = nsuFindChar(kv, 61, ((NI) 0), ((NI) 0));
572 					ai.Field0 = substr__system_7773(kv, ((NI) 0), (NI)(p - ((NI) 1)));
573 					ai.Field1 = substr__system_7785(kv, (NI)(p + ((NI) 1)));
574 					nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
575 					colontmp_.Field0 = copyString(ai.Field0);
576 					colontmp_.Field1 = copyString(ai.Field1);
577 					key = colontmp_.Field0;
578 					val = colontmp_.Field1;
579 					counter += ((NI) 1);
580 				} LA4: ;
581 			}
582 		}
583 	}
584 	T6_ = (void*)0;
585 	T6_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(counter + ((NI) 1)) * ((NI) 8)))));
586 	result = ((NCSTRING*) (T6_));
587 	i_2 = ((NI) 0);
588 	{
589 		NimStringDesc* key_2;
590 		NimStringDesc* val_2;
591 		key_2 = NIM_NIL;
592 		val_2 = NIM_NIL;
593 		{
594 			tyTuple__UV3llMMYFckfui8YMBuUZA ai_2;
595 			NI i_3;
596 			nimZeroMem((void*)(&ai_2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
597 			i_3 = ((NI) 0);
598 			{
599 				while (1) {
600 					NIM_BOOL T11_;
601 					NimStringDesc* kv_2;
602 					NI p_2;
603 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp__2;
604 					NimStringDesc* x;
605 					NimStringDesc* T12_;
606 					void* T13_;
607 					T11_ = (NIM_BOOL)0;
608 					T11_ = eqeq___system_7753(environ[i_3], ((NCSTRING) NIM_NIL));
609 					if (!!(T11_)) goto LA10;
610 					kv_2 = cstrToNimstr(environ[i_3]);
611 					i_3 += ((NI) 1);
612 					p_2 = nsuFindChar(kv_2, 61, ((NI) 0), ((NI) 0));
613 					ai_2.Field0 = substr__system_7773(kv_2, ((NI) 0), (NI)(p_2 - ((NI) 1)));
614 					ai_2.Field1 = substr__system_7785(kv_2, (NI)(p_2 + ((NI) 1)));
615 					nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
616 					colontmp__2.Field0 = copyString(ai_2.Field0);
617 					colontmp__2.Field1 = copyString(ai_2.Field1);
618 					key_2 = colontmp__2.Field0;
619 					val_2 = colontmp__2.Field1;
620 					T12_ = NIM_NIL;
621 					T12_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
622 appendString(T12_, key_2);
623 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
624 appendString(T12_, val_2);
625 					x = T12_;
626 					T13_ = (void*)0;
627 					T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
628 					result[i_2] = ((NCSTRING) (T13_));
629 					copyMem__system_1727(((void*) (result[i_2])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
630 					i_2 += ((NI) 1);
631 				} LA10: ;
632 			}
633 		}
634 	}
635 	return result;
636 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_309)637 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t) {
638 	NCSTRING* result;
639 	NI T1_;
640 	void* T2_;
641 	NI i;
642 	result = (NCSTRING*)0;
643 	T1_ = (NI)0;
644 	T1_ = nstlen(t);
645 	T2_ = (void*)0;
646 	T2_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(T1_ + ((NI) 1)) * ((NI) 8)))));
647 	result = ((NCSTRING*) (T2_));
648 	i = ((NI) 0);
649 	{
650 		NimStringDesc* key;
651 		NimStringDesc* val;
652 		key = NIM_NIL;
653 		val = NIM_NIL;
654 		{
655 			NI h;
656 			NI colontmp_;
657 			NI T5_;
658 			NI res;
659 			h = (NI)0;
660 			colontmp_ = (NI)0;
661 			T5_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
662 			colontmp_ = T5_;
663 			res = ((NI) 0);
664 			{
665 				while (1) {
666 					if (!(res <= colontmp_)) goto LA7;
667 					h = res;
668 					{
669 						NimStringDesc* x;
670 						NimStringDesc* T12_;
671 						void* T13_;
672 						if (!(*t).data->data[h].Field2) goto LA10_;
673 						key = (*t).data->data[h].Field0;
674 						val = (*t).data->data[h].Field1;
675 						T12_ = NIM_NIL;
676 						T12_ = rawNewString((key ? key->Sup.len : 0) + (val ? val->Sup.len : 0) + 1);
677 appendString(T12_, key);
678 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
679 appendString(T12_, val);
680 						x = T12_;
681 						T13_ = (void*)0;
682 						T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
683 						result[i] = ((NCSTRING) (T13_));
684 						copyMem__system_1727(((void*) (result[i])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
685 						i += ((NI) 1);
686 					}
687 					LA10_: ;
688 					res += ((NI) 1);
689 				} LA7: ;
690 			}
691 		}
692 	}
693 	return result;
694 }
N_INLINE(NCSTRING,nimToCStringConv)695 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
696 	NCSTRING result;
697 	result = (NCSTRING)0;
698 	{
699 		NIM_BOOL T3_;
700 		T3_ = (NIM_BOOL)0;
701 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
702 		if (T3_) goto LA4_;
703 		T3_ = ((*s).Sup.len == ((NI) 0));
704 		LA4_: ;
705 		if (!T3_) goto LA5_;
706 		result = "";
707 	}
708 	goto LA1_;
709 	LA5_: ;
710 	{
711 		result = ((NCSTRING) ((*s).data));
712 	}
713 	LA1_: ;
714 	return result;
715 }
N_INLINE(NI,nimCStrLen)716 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
717 	NI result;
718 	size_t T1_;
719 	result = (NI)0;
720 	T1_ = (size_t)0;
721 	T1_ = strlen(a);
722 	result = ((NI) (T1_));
723 	return result;
724 }
N_INLINE(void,setCurrentDir__pureZos_713)725 static N_INLINE(void, setCurrentDir__pureZos_713)(NimStringDesc* newDir) {
726 	{
727 		int T3_;
728 		NI32 T6_;
729 		T3_ = (int)0;
730 		T3_ = chdir(nimToCStringConv(newDir));
731 		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
732 		T6_ = (NI32)0;
733 		T6_ = osLastError__pureZos_390();
734 		raiseOSError__pureZos_387(T6_, newDir);
735 	}
736 	LA4_: ;
737 }
N_NIMCALL(pid_t,startProcessAuxSpawn__pureZosproc_348)738 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxSpawn__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
739 	pid_t result;
740 	posix_spawnattr_t attr;
741 	posix_spawn_file_actions_t fops;
742 	sigset_t mask;
743 	NI32 flags;
744 	int res;
745 	pid_t pid;
746 	int T106_;
747 	int T107_;
748 {	result = (pid_t)0;
749 	nimZeroMem((void*)(&attr), sizeof(posix_spawnattr_t));
750 	nimZeroMem((void*)(&fops), sizeof(posix_spawn_file_actions_t));
751 	{
752 		int T3_;
753 		NI32 T6_;
754 		T3_ = (int)0;
755 		T3_ = posix_spawn_file_actions_init((&fops));
756 		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
757 		T6_ = (NI32)0;
758 		T6_ = osLastError__pureZos_390();
759 		raiseOSError__pureZos_387(T6_, ((NimStringDesc*) NIM_NIL));
760 	}
761 	LA4_: ;
762 	{
763 		int T9_;
764 		NI32 T12_;
765 		T9_ = (int)0;
766 		T9_ = posix_spawnattr_init((&attr));
767 		if (!!((T9_ == ((NI32) 0)))) goto LA10_;
768 		T12_ = (NI32)0;
769 		T12_ = osLastError__pureZos_390();
770 		raiseOSError__pureZos_387(T12_, ((NimStringDesc*) NIM_NIL));
771 	}
772 	LA10_: ;
773 	mask = (sigset_t)0;
774 	{
775 		int T15_;
776 		NI32 T18_;
777 		T15_ = (int)0;
778 		T15_ = sigemptyset((&mask));
779 		if (!!((T15_ == ((NI32) 0)))) goto LA16_;
780 		T18_ = (NI32)0;
781 		T18_ = osLastError__pureZos_390();
782 		raiseOSError__pureZos_387(T18_, ((NimStringDesc*) NIM_NIL));
783 	}
784 	LA16_: ;
785 	{
786 		int T21_;
787 		NI32 T24_;
788 		T21_ = (int)0;
789 		T21_ = posix_spawnattr_setsigmask((&attr), (&mask));
790 		if (!!((T21_ == ((NI32) 0)))) goto LA22_;
791 		T24_ = (NI32)0;
792 		T24_ = osLastError__pureZos_390();
793 		raiseOSError__pureZos_387(T24_, ((NimStringDesc*) NIM_NIL));
794 	}
795 	LA22_: ;
796 	{
797 		if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA27_;
798 		{
799 			int T31_;
800 			NI32 T34_;
801 			T31_ = (int)0;
802 			T31_ = posix_spawnattr_setpgroup((&attr), ((NI32) 0));
803 			if (!!((T31_ == ((NI32) 0)))) goto LA32_;
804 			T34_ = (NI32)0;
805 			T34_ = osLastError__pureZos_390();
806 			raiseOSError__pureZos_387(T34_, ((NimStringDesc*) NIM_NIL));
807 		}
808 		LA32_: ;
809 	}
810 	LA27_: ;
811 	flags = ((NI32) 96);
812 	{
813 		if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA37_;
814 		flags = (NI32)(flags | ((int) 2));
815 	}
816 	LA37_: ;
817 	{
818 		int T41_;
819 		NI32 T44_;
820 		T41_ = (int)0;
821 		T41_ = posix_spawnattr_setflags((&attr), flags);
822 		if (!!((T41_ == ((NI32) 0)))) goto LA42_;
823 		T44_ = (NI32)0;
824 		T44_ = osLastError__pureZos_390();
825 		raiseOSError__pureZos_387(T44_, ((NimStringDesc*) NIM_NIL));
826 	}
827 	LA42_: ;
828 	{
829 		if (!!((((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA47_;
830 		{
831 			int T51_;
832 			NI32 T54_;
833 			T51_ = (int)0;
834 			T51_ = posix_spawn_file_actions_addclose((&fops), (*data).pStdin[(((NI) 1))- 0]);
835 			if (!!((T51_ == ((NI32) 0)))) goto LA52_;
836 			T54_ = (NI32)0;
837 			T54_ = osLastError__pureZos_390();
838 			raiseOSError__pureZos_387(T54_, ((NimStringDesc*) NIM_NIL));
839 		}
840 		LA52_: ;
841 		{
842 			int T57_;
843 			NI32 T60_;
844 			T57_ = (int)0;
845 			T57_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdin[(((NI) 0))- 0], ((int) 0));
846 			if (!!((T57_ == ((NI32) 0)))) goto LA58_;
847 			T60_ = (NI32)0;
848 			T60_ = osLastError__pureZos_390();
849 			raiseOSError__pureZos_387(T60_, ((NimStringDesc*) NIM_NIL));
850 		}
851 		LA58_: ;
852 		{
853 			int T63_;
854 			NI32 T66_;
855 			T63_ = (int)0;
856 			T63_ = posix_spawn_file_actions_addclose((&fops), (*data).pStdout[(((NI) 0))- 0]);
857 			if (!!((T63_ == ((NI32) 0)))) goto LA64_;
858 			T66_ = (NI32)0;
859 			T66_ = osLastError__pureZos_390();
860 			raiseOSError__pureZos_387(T66_, ((NimStringDesc*) NIM_NIL));
861 		}
862 		LA64_: ;
863 		{
864 			int T69_;
865 			NI32 T72_;
866 			T69_ = (int)0;
867 			T69_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdout[(((NI) 1))- 0], ((int) 1));
868 			if (!!((T69_ == ((NI32) 0)))) goto LA70_;
869 			T72_ = (NI32)0;
870 			T72_ = osLastError__pureZos_390();
871 			raiseOSError__pureZos_387(T72_, ((NimStringDesc*) NIM_NIL));
872 		}
873 		LA70_: ;
874 		{
875 			int T75_;
876 			NI32 T78_;
877 			T75_ = (int)0;
878 			T75_ = posix_spawn_file_actions_addclose((&fops), (*data).pStderr[(((NI) 0))- 0]);
879 			if (!!((T75_ == ((NI32) 0)))) goto LA76_;
880 			T78_ = (NI32)0;
881 			T78_ = osLastError__pureZos_390();
882 			raiseOSError__pureZos_387(T78_, ((NimStringDesc*) NIM_NIL));
883 		}
884 		LA76_: ;
885 		{
886 			if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA81_;
887 			{
888 				int T85_;
889 				NI32 T88_;
890 				T85_ = (int)0;
891 				T85_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdout[(((NI) 1))- 0], ((int) 2));
892 				if (!!((T85_ == ((NI32) 0)))) goto LA86_;
893 				T88_ = (NI32)0;
894 				T88_ = osLastError__pureZos_390();
895 				raiseOSError__pureZos_387(T88_, ((NimStringDesc*) NIM_NIL));
896 			}
897 			LA86_: ;
898 		}
899 		goto LA79_;
900 		LA81_: ;
901 		{
902 			{
903 				int T92_;
904 				NI32 T95_;
905 				T92_ = (int)0;
906 				T92_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStderr[(((NI) 1))- 0], ((int) 2));
907 				if (!!((T92_ == ((NI32) 0)))) goto LA93_;
908 				T95_ = (NI32)0;
909 				T95_ = osLastError__pureZos_390();
910 				raiseOSError__pureZos_387(T95_, ((NimStringDesc*) NIM_NIL));
911 			}
912 			LA93_: ;
913 		}
914 		LA79_: ;
915 	}
916 	LA47_: ;
917 	res = (int)0;
918 	{
919 		NimStringDesc* T100_;
920 		if (!(((NI) 0) < ((*data).workingDir ? nimCStrLen((*data).workingDir) : 0))) goto LA98_;
921 		T100_ = NIM_NIL;
922 		T100_ = cstrToNimstr((*data).workingDir);
923 		setCurrentDir__pureZos_713(T100_);
924 	}
925 	LA98_: ;
926 	pid = (pid_t)0;
927 	{
928 		if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0)) goto LA103_;
929 		res = posix_spawnp((&pid), nimToCStringConv((*data).sysCommand), (&fops), (&attr), (*data).sysArgs, (*data).sysEnv);
930 	}
931 	goto LA101_;
932 	LA103_: ;
933 	{
934 		res = posix_spawn((&pid), nimToCStringConv((*data).sysCommand), (&fops), (&attr), (*data).sysArgs, (*data).sysEnv);
935 	}
936 	LA101_: ;
937 	T106_ = (int)0;
938 	T106_ = posix_spawn_file_actions_destroy((&fops));
939 	(void)(T106_);
940 	T107_ = (int)0;
941 	T107_ = posix_spawnattr_destroy((&attr));
942 	(void)(T107_);
943 	{
944 		if (!!((res == ((NI32) 0)))) goto LA110_;
945 		raiseOSError__pureZos_387(res, (*data).sysCommand);
946 	}
947 	LA110_: ;
948 	result = pid;
949 	goto BeforeRet_;
950 	}BeforeRet_: ;
951 	return result;
952 }
N_INLINE(void,popSafePoint)953 static N_INLINE(void, popSafePoint)(void) {
954 	excHandler__system_2565 = (*excHandler__system_2565).prev;
955 }
N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg *,nospstartProcess)956 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) {
957 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
958 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
959 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
960 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
961 	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA data;
962 	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* sysArgsRaw;
963 	pid_t pid;
964 	NCSTRING* sysArgs;
965 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_8;
966 	NCSTRING* sysEnv;
967 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_10;
968 	NimStringDesc* currentDir;
969 	result = NIM_NIL;
970 	nimZeroMem((void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
971 	nimZeroMem((void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
972 	nimZeroMem((void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
973 	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) newObj((&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_), sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
974 	(*result).Sup.m_type = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
975 	(*result).options = options;
976 	(*result).exitFlag = NIM_TRUE;
977 	{
978 		if (!!(((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
979 		{
980 			NIM_BOOL T7_;
981 			NIM_BOOL T8_;
982 			int T9_;
983 			int T11_;
984 			int T13_;
985 			NI32 T16_;
986 			T7_ = (NIM_BOOL)0;
987 			T8_ = (NIM_BOOL)0;
988 			T9_ = (int)0;
989 			T9_ = pipe(pStdin);
990 			T8_ = !((T9_ == ((NI32) 0)));
991 			if (T8_) goto LA10_;
992 			T11_ = (int)0;
993 			T11_ = pipe(pStdout);
994 			T8_ = !((T11_ == ((NI32) 0)));
995 			LA10_: ;
996 			T7_ = T8_;
997 			if (T7_) goto LA12_;
998 			T13_ = (int)0;
999 			T13_ = pipe(pStderr);
1000 			T7_ = !((T13_ == ((NI32) 0)));
1001 			LA12_: ;
1002 			if (!T7_) goto LA14_;
1003 			T16_ = (NI32)0;
1004 			T16_ = osLastError__pureZos_390();
1005 			raiseOSError__pureZos_387(T16_, ((NimStringDesc*) NIM_NIL));
1006 		}
1007 		LA14_: ;
1008 	}
1009 	LA3_: ;
1010 	nimZeroMem((void*)(&data), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
1011 	sysArgsRaw = NIM_NIL;
1012 	{
1013 		NimStringDesc* T21_;
1014 		NimStringDesc* T22_;
1015 		NimStringDesc* T23_;
1016 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19_;
1017 		data.sysCommand = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
1018 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 3);
1019 		T21_ = NIM_NIL;
1020 		T21_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
1021 		if (T21_) nimGCunrefNoCycle(T21_);
1022 		T22_ = NIM_NIL;
1023 		T22_ = sysArgsRaw->data[1]; sysArgsRaw->data[1] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_7));
1024 		if (T22_) nimGCunrefNoCycle(T22_);
1025 		T23_ = NIM_NIL;
1026 		T23_ = sysArgsRaw->data[2]; sysArgsRaw->data[2] = copyStringRC1(command);
1027 		if (T23_) nimGCunrefNoCycle(T23_);
1028 	}
1029 	goto LA17_;
1030 	LA19_: ;
1031 	{
1032 		NimStringDesc* T25_;
1033 		data.sysCommand = copyString(command);
1034 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
1035 		T25_ = NIM_NIL;
1036 		T25_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(command);
1037 		if (T25_) nimGCunrefNoCycle(T25_);
1038 		{
1039 			NimStringDesc** arg;
1040 			NI i;
1041 			arg = (NimStringDesc**)0;
1042 			i = ((NI) 0);
1043 			{
1044 				while (1) {
1045 					NI T29_;
1046 					NimStringDesc* T30_;
1047 					if (!(i < argsLen_0)) goto LA28;
1048 					arg = (&args[i]);
1049 					sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(sysArgsRaw), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
1050 					T29_ = sysArgsRaw->Sup.len++;
1051 					T30_ = NIM_NIL;
1052 					T30_ = sysArgsRaw->data[T29_]; sysArgsRaw->data[T29_] = copyStringRC1((*arg));
1053 					if (T30_) nimGCunrefNoCycle(T30_);
1054 					i += ((NI) 1);
1055 				} LA28: ;
1056 			}
1057 		}
1058 	}
1059 	LA17_: ;
1060 	pid = (pid_t)0;
1061 	sysArgs = allocCStringArray__system_2469(sysArgsRaw->data, (sysArgsRaw ? sysArgsRaw->Sup.len : 0));
1062 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_8);
1063 	TM__HZdw8BhppcTQo8DIK46LSg_8.status = setjmp(TM__HZdw8BhppcTQo8DIK46LSg_8.context);
1064 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status == 0) {
1065 	{
1066 		if (!(env == ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL))) goto LA33_;
1067 		sysEnv = envToCStringArray__pureZosproc_320();
1068 	}
1069 	goto LA31_;
1070 	LA33_: ;
1071 	{
1072 		sysEnv = envToCStringArray__pureZosproc_309(env);
1073 	}
1074 	LA31_: ;
1075 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_10);
1076 	TM__HZdw8BhppcTQo8DIK46LSg_10.status = setjmp(TM__HZdw8BhppcTQo8DIK46LSg_10.context);
1077 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status == 0) {
1078 	data.sysArgs = sysArgs;
1079 	data.sysEnv = sysEnv;
1080 	nimCopyMem((void*)data.pStdin, (NIM_CONST void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1081 	nimCopyMem((void*)data.pStdout, (NIM_CONST void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1082 	nimCopyMem((void*)data.pStderr, (NIM_CONST void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1083 	data.workingDir = nimToCStringConv(workingDir);
1084 	data.options = options;
1085 	currentDir = nosgetCurrentDir();
1086 	pid = startProcessAuxSpawn__pureZosproc_348((&data));
1087 	{
1088 		if (!(((NI) 0) < (workingDir ? workingDir->Sup.len : 0))) goto LA38_;
1089 		setCurrentDir__pureZos_713(currentDir);
1090 	}
1091 	LA38_: ;
1092 	{
1093 		tyArray__24KAM9afIUgUaqBaEBB6r9bg T44_;
1094 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA42_;
1095 		nimZeroMem((void*)T44_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
1096 		T44_[0] = copyString(command);
1097 		T44_[1] = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_11));
1098 		T44_[2] = nsuJoinSep(args, argsLen_0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_11));
1099 		echoBinSafe(T44_, 3);
1100 	}
1101 	LA42_: ;
1102 	(*result).id = pid;
1103 	(*result).exitFlag = NIM_FALSE;
1104 	{
1105 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA47_;
1106 		(*result).inHandle = ((int) 0);
1107 		(*result).outHandle = ((int) 1);
1108 		{
1109 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA51_;
1110 			(*result).errHandle = (*result).outHandle;
1111 		}
1112 		goto LA49_;
1113 		LA51_: ;
1114 		{
1115 			(*result).errHandle = ((int) 2);
1116 		}
1117 		LA49_: ;
1118 	}
1119 	goto LA45_;
1120 	LA47_: ;
1121 	{
1122 		int T61_;
1123 		int T62_;
1124 		int T63_;
1125 		(*result).inHandle = pStdin[(((NI) 1))- 0];
1126 		(*result).outHandle = pStdout[(((NI) 0))- 0];
1127 		{
1128 			int T59_;
1129 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA57_;
1130 			(*result).errHandle = (*result).outHandle;
1131 			T59_ = (int)0;
1132 			T59_ = close(pStderr[(((NI) 0))- 0]);
1133 			(void)(T59_);
1134 		}
1135 		goto LA55_;
1136 		LA57_: ;
1137 		{
1138 			(*result).errHandle = pStderr[(((NI) 0))- 0];
1139 		}
1140 		LA55_: ;
1141 		T61_ = (int)0;
1142 		T61_ = close(pStderr[(((NI) 1))- 0]);
1143 		(void)(T61_);
1144 		T62_ = (int)0;
1145 		T62_ = close(pStdin[(((NI) 0))- 0]);
1146 		(void)(T62_);
1147 		T63_ = (int)0;
1148 		T63_ = close(pStdout[(((NI) 1))- 0]);
1149 		(void)(T63_);
1150 	}
1151 	LA45_: ;
1152 	popSafePoint();
1153 	}
1154 	else {
1155 		popSafePoint();
1156 	}
1157 	{
1158 		deallocCStringArray__system_2503(sysEnv);
1159 		if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) nimLeaveFinally();
1160 	}
1161 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) reraiseException();
1162 	popSafePoint();
1163 	}
1164 	else {
1165 		popSafePoint();
1166 	}
1167 	{
1168 		deallocCStringArray__system_2503(sysArgs);
1169 		if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) nimLeaveFinally();
1170 	}
1171 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) reraiseException();
1172 	return result;
1173 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,createStream__pureZosproc_612)1174 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_612)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode) {
1175 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
1176 	FILE* f;
1177 {	result = NIM_NIL;
1178 	f = (FILE*)0;
1179 	{
1180 		NIM_BOOL T3_;
1181 		NI32 T6_;
1182 		T3_ = (NIM_BOOL)0;
1183 		T3_ = open__systemZio_422(&f, (*handle), fileMode);
1184 		if (!!(T3_)) goto LA4_;
1185 		T6_ = (NI32)0;
1186 		T6_ = osLastError__pureZos_390();
1187 		raiseOSError__pureZos_387(T6_, ((NimStringDesc*) NIM_NIL));
1188 	}
1189 	LA4_: ;
1190 	result = newFileStream__pureZstreams_808(f);
1191 	goto BeforeRet_;
1192 	}BeforeRet_: ;
1193 	return result;
1194 }
N_INLINE(NI,pluspercent___system_696)1195 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1196 	NI result;
1197 	result = (NI)0;
1198 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
1199 	return result;
1200 }
N_INLINE(void,incRef__system_5338)1201 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1202 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1203 }
N_INLINE(void,asgnRef)1204 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1205 	{
1206 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1207 		if (!!((src == NIM_NIL))) goto LA3_;
1208 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1209 		T5_ = usrToCell__system_5300(src);
1210 		incRef__system_5338(T5_);
1211 	}
1212 	LA3_: ;
1213 	{
1214 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1215 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1216 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1217 		T10_ = usrToCell__system_5300((*dest));
1218 		decRef__system_5345(T10_);
1219 	}
1220 	LA8_: ;
1221 	(*dest) = src;
1222 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospinputStream)1223 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1224 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1225 {	result = NIM_NIL;
1226 	{
1227 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1228 		if (!((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1229 		T5_ = NIM_NIL;
1230 		T5_ = createStream__pureZosproc_612((&(*p).inHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1));
1231 		asgnRef((void**) (&(*p).inStream), &T5_->Sup);
1232 	}
1233 	LA3_: ;
1234 	result = (*p).inStream;
1235 	goto BeforeRet_;
1236 	}BeforeRet_: ;
1237 	return result;
1238 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospoutputStream)1239 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1240 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1241 {	result = NIM_NIL;
1242 	{
1243 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1244 		if (!((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1245 		T5_ = NIM_NIL;
1246 		T5_ = createStream__pureZosproc_612((&(*p).outHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
1247 		asgnRef((void**) (&(*p).outStream), &T5_->Sup);
1248 	}
1249 	LA3_: ;
1250 	result = (*p).outStream;
1251 	goto BeforeRet_;
1252 	}BeforeRet_: ;
1253 	return result;
1254 }
N_INLINE(NI,percentpercent___system_776)1255 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
1256 	NI result;
1257 	result = (NI)0;
1258 	result = ((NI) ((NU)((NU64)(((NU) (x))) % (NU64)(((NU) (y))))));
1259 	return result;
1260 }
N_NIMCALL(NI,nospwaitForExit)1261 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout) {
1262 	NI result;
1263 	int T133_;
1264 {	result = (NI)0;
1265 	{
1266 		int T5_;
1267 		if (!(*p).exitFlag) goto LA3_;
1268 		T5_ = (int)0;
1269 		T5_ = exitStatusLikeShell__pureZos_1080((*p).exitStatus);
1270 		result = ((NI) (T5_));
1271 		goto BeforeRet_;
1272 	}
1273 	LA3_: ;
1274 	{
1275 		int status;
1276 		if (!(timeout == ((NI) -1))) goto LA8_;
1277 		status = ((int) 1);
1278 		{
1279 			pid_t T12_;
1280 			NI32 T15_;
1281 			T12_ = (pid_t)0;
1282 			T12_ = waitpid((*p).id, (&status), ((int) 0));
1283 			if (!(T12_ < ((NI32) 0))) goto LA13_;
1284 			T15_ = (NI32)0;
1285 			T15_ = osLastError__pureZos_390();
1286 			raiseOSError__pureZos_387(T15_, ((NimStringDesc*) NIM_NIL));
1287 		}
1288 		LA13_: ;
1289 		(*p).exitFlag = NIM_TRUE;
1290 		(*p).exitStatus = status;
1291 	}
1292 	goto LA6_;
1293 	LA8_: ;
1294 	{
1295 		sigset_t nmask;
1296 		sigset_t omask;
1297 		siginfo_t sinfo;
1298 		struct timespec stspec;
1299 		struct timespec enspec;
1300 		struct timespec tmspec;
1301 		int T17_;
1302 		int T18_;
1303 		int T19_;
1304 		TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_12;
1305 		nmask = (sigset_t)0;
1306 		omask = (sigset_t)0;
1307 		nimZeroMem((void*)(&sinfo), sizeof(siginfo_t));
1308 		nimZeroMem((void*)(&stspec), sizeof(struct timespec));
1309 		nimZeroMem((void*)(&enspec), sizeof(struct timespec));
1310 		nimZeroMem((void*)(&tmspec), sizeof(struct timespec));
1311 		T17_ = (int)0;
1312 		T17_ = sigemptyset((&nmask));
1313 		(void)(T17_);
1314 		T18_ = (int)0;
1315 		T18_ = sigemptyset((&omask));
1316 		(void)(T18_);
1317 		T19_ = (int)0;
1318 		T19_ = sigaddset((&nmask), ((int) 20));
1319 		(void)(T19_);
1320 		{
1321 			int T22_;
1322 			NI32 T25_;
1323 			T22_ = (int)0;
1324 			T22_ = sigprocmask(((int) 1), (&nmask), (&omask));
1325 			if (!(T22_ == ((NI32) -1))) goto LA23_;
1326 			T25_ = (NI32)0;
1327 			T25_ = osLastError__pureZos_390();
1328 			raiseOSError__pureZos_387(T25_, ((NimStringDesc*) NIM_NIL));
1329 		}
1330 		LA23_: ;
1331 		{
1332 			NI T30_;
1333 			if (!(((NI) 1000) <= timeout)) goto LA28_;
1334 			tmspec.tv_sec = (NI)(timeout / ((NI) 1000));
1335 			T30_ = (NI)0;
1336 			T30_ = percentpercent___system_776(timeout, ((NI) 1000));
1337 			tmspec.tv_nsec = (NI)(T30_ * ((NI) 1000000));
1338 		}
1339 		goto LA26_;
1340 		LA28_: ;
1341 		{
1342 			tmspec.tv_sec = ((long) 0);
1343 			tmspec.tv_nsec = (NI)(timeout * ((NI) 1000000));
1344 		}
1345 		LA26_: ;
1346 		pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_12);
1347 		TM__HZdw8BhppcTQo8DIK46LSg_12.status = setjmp(TM__HZdw8BhppcTQo8DIK46LSg_12.context);
1348 		if (TM__HZdw8BhppcTQo8DIK46LSg_12.status == 0) {
1349 		{
1350 			int T34_;
1351 			NI32 T37_;
1352 			T34_ = (int)0;
1353 			T34_ = clock_gettime(((int) 1), (&stspec));
1354 			if (!(T34_ == ((NI32) -1))) goto LA35_;
1355 			T37_ = (NI32)0;
1356 			T37_ = osLastError__pureZos_390();
1357 			raiseOSError__pureZos_387(T37_, ((NimStringDesc*) NIM_NIL));
1358 		}
1359 		LA35_: ;
1360 		{
1361 			while (1) {
1362 				int res;
1363 				res = sigtimedwait((&nmask), (&sinfo), (&tmspec));
1364 				{
1365 					if (!(res == ((int) 20))) goto LA42_;
1366 					{
1367 						pid_t T46_;
1368 						int status_2;
1369 						T46_ = (pid_t)0;
1370 						T46_ = si_pid__posixZposix_219(sinfo);
1371 						if (!(T46_ == (*p).id)) goto LA47_;
1372 						status_2 = ((int) 1);
1373 						{
1374 							pid_t T51_;
1375 							NI32 T54_;
1376 							T51_ = (pid_t)0;
1377 							T51_ = waitpid((*p).id, (&status_2), ((int) 0));
1378 							if (!(T51_ < ((NI32) 0))) goto LA52_;
1379 							T54_ = (NI32)0;
1380 							T54_ = osLastError__pureZos_390();
1381 							raiseOSError__pureZos_387(T54_, ((NimStringDesc*) NIM_NIL));
1382 						}
1383 						LA52_: ;
1384 						(*p).exitFlag = NIM_TRUE;
1385 						(*p).exitStatus = status_2;
1386 						goto LA38;
1387 					}
1388 					goto LA44_;
1389 					LA47_: ;
1390 					{
1391 						NI volatile diffX60gensym83_;
1392 						struct timespec bX60gensym83_;
1393 						{
1394 							int T58_;
1395 							NI32 T61_;
1396 							T58_ = (int)0;
1397 							T58_ = clock_gettime(((int) 1), (&enspec));
1398 							if (!(T58_ == ((NI32) -1))) goto LA59_;
1399 							T61_ = (NI32)0;
1400 							T61_ = osLastError__pureZos_390();
1401 							raiseOSError__pureZos_387(T61_, ((NimStringDesc*) NIM_NIL));
1402 						}
1403 						LA59_: ;
1404 						diffX60gensym83_ = (NI)0;
1405 						nimZeroMem((void*)(&bX60gensym83_), sizeof(struct timespec));
1406 						bX60gensym83_.tv_sec = enspec.tv_sec;
1407 						bX60gensym83_.tv_nsec = enspec.tv_nsec;
1408 						enspec.tv_sec = (long)(enspec.tv_sec - stspec.tv_sec);
1409 						{
1410 							if (!(stspec.tv_nsec <= enspec.tv_nsec)) goto LA64_;
1411 							enspec.tv_nsec -= stspec.tv_nsec;
1412 						}
1413 						goto LA62_;
1414 						LA64_: ;
1415 						{
1416 							{
1417 								tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T71_;
1418 								NimStringDesc* T72_;
1419 								if (!(enspec.tv_sec == ((long) 0))) goto LA69_;
1420 								T71_ = NIM_NIL;
1421 								T71_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
1422 								(*T71_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
1423 								(*T71_).Sup.Sup.name = "ValueError";
1424 								T72_ = NIM_NIL;
1425 								T72_ = (*T71_).Sup.Sup.message; (*T71_).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_13));
1426 								if (T72_) nimGCunrefNoCycle(T72_);
1427 								asgnRef((void**) (&(*T71_).Sup.Sup.parent), ((Exception*) NIM_NIL));
1428 								raiseExceptionEx((Exception*)T71_, "ValueError", "waitForExit", "osproc.nim", 1378);
1429 							}
1430 							goto LA67_;
1431 							LA69_: ;
1432 							{
1433 								diffX60gensym83_ = (NI)(stspec.tv_nsec - enspec.tv_nsec);
1434 								enspec.tv_nsec = (NI)(((NI) 1000000000) - diffX60gensym83_);
1435 							}
1436 							LA67_: ;
1437 						}
1438 						LA62_: ;
1439 						tmspec.tv_sec = (long)(tmspec.tv_sec - enspec.tv_sec);
1440 						{
1441 							if (!(enspec.tv_nsec <= tmspec.tv_nsec)) goto LA76_;
1442 							tmspec.tv_nsec -= enspec.tv_nsec;
1443 						}
1444 						goto LA74_;
1445 						LA76_: ;
1446 						{
1447 							tmspec.tv_sec = (long)(tmspec.tv_sec - ((long) 1));
1448 							diffX60gensym83_ = (NI)(enspec.tv_nsec - tmspec.tv_nsec);
1449 							tmspec.tv_nsec = (NI)(((NI) 1000000000) - diffX60gensym83_);
1450 						}
1451 						LA74_: ;
1452 						stspec.tv_sec = bX60gensym83_.tv_sec;
1453 						stspec.tv_nsec = bX60gensym83_.tv_nsec;
1454 					}
1455 					LA44_: ;
1456 				}
1457 				goto LA40_;
1458 				LA42_: ;
1459 				{
1460 					NI32 err;
1461 					if (!(res < ((NI32) 0))) goto LA80_;
1462 					err = osLastError__pureZos_390();
1463 					{
1464 						NI volatile diffX60gensym87_;
1465 						struct timespec bX60gensym87_;
1466 						if (!(err == ((int) 4))) goto LA84_;
1467 						{
1468 							int T88_;
1469 							NI32 T91_;
1470 							T88_ = (int)0;
1471 							T88_ = clock_gettime(((int) 1), (&enspec));
1472 							if (!(T88_ == ((NI32) -1))) goto LA89_;
1473 							T91_ = (NI32)0;
1474 							T91_ = osLastError__pureZos_390();
1475 							raiseOSError__pureZos_387(T91_, ((NimStringDesc*) NIM_NIL));
1476 						}
1477 						LA89_: ;
1478 						diffX60gensym87_ = (NI)0;
1479 						nimZeroMem((void*)(&bX60gensym87_), sizeof(struct timespec));
1480 						bX60gensym87_.tv_sec = enspec.tv_sec;
1481 						bX60gensym87_.tv_nsec = enspec.tv_nsec;
1482 						enspec.tv_sec = (long)(enspec.tv_sec - stspec.tv_sec);
1483 						{
1484 							if (!(stspec.tv_nsec <= enspec.tv_nsec)) goto LA94_;
1485 							enspec.tv_nsec -= stspec.tv_nsec;
1486 						}
1487 						goto LA92_;
1488 						LA94_: ;
1489 						{
1490 							{
1491 								tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T101_;
1492 								NimStringDesc* T102_;
1493 								if (!(enspec.tv_sec == ((long) 0))) goto LA99_;
1494 								T101_ = NIM_NIL;
1495 								T101_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
1496 								(*T101_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
1497 								(*T101_).Sup.Sup.name = "ValueError";
1498 								T102_ = NIM_NIL;
1499 								T102_ = (*T101_).Sup.Sup.message; (*T101_).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_13));
1500 								if (T102_) nimGCunrefNoCycle(T102_);
1501 								asgnRef((void**) (&(*T101_).Sup.Sup.parent), ((Exception*) NIM_NIL));
1502 								raiseExceptionEx((Exception*)T101_, "ValueError", "waitForExit", "osproc.nim", 1378);
1503 							}
1504 							goto LA97_;
1505 							LA99_: ;
1506 							{
1507 								diffX60gensym87_ = (NI)(stspec.tv_nsec - enspec.tv_nsec);
1508 								enspec.tv_nsec = (NI)(((NI) 1000000000) - diffX60gensym87_);
1509 							}
1510 							LA97_: ;
1511 						}
1512 						LA92_: ;
1513 						tmspec.tv_sec = (long)(tmspec.tv_sec - enspec.tv_sec);
1514 						{
1515 							if (!(enspec.tv_nsec <= tmspec.tv_nsec)) goto LA106_;
1516 							tmspec.tv_nsec -= enspec.tv_nsec;
1517 						}
1518 						goto LA104_;
1519 						LA106_: ;
1520 						{
1521 							tmspec.tv_sec = (long)(tmspec.tv_sec - ((long) 1));
1522 							diffX60gensym87_ = (NI)(enspec.tv_nsec - tmspec.tv_nsec);
1523 							tmspec.tv_nsec = (NI)(((NI) 1000000000) - diffX60gensym87_);
1524 						}
1525 						LA104_: ;
1526 						stspec.tv_sec = bX60gensym87_.tv_sec;
1527 						stspec.tv_nsec = bX60gensym87_.tv_nsec;
1528 					}
1529 					goto LA82_;
1530 					LA84_: ;
1531 					{
1532 						int status_3;
1533 						if (!(err == ((int) 11))) goto LA110_;
1534 						{
1535 							int T114_;
1536 							NI32 T117_;
1537 							T114_ = (int)0;
1538 							T114_ = kill((*p).id, ((int) 9));
1539 							if (!(T114_ == ((NI32) -1))) goto LA115_;
1540 							T117_ = (NI32)0;
1541 							T117_ = osLastError__pureZos_390();
1542 							raiseOSError__pureZos_387(T117_, ((NimStringDesc*) NIM_NIL));
1543 						}
1544 						LA115_: ;
1545 						status_3 = ((int) 1);
1546 						{
1547 							pid_t T120_;
1548 							NI32 T123_;
1549 							T120_ = (pid_t)0;
1550 							T120_ = waitpid((*p).id, (&status_3), ((int) 0));
1551 							if (!(T120_ < ((NI32) 0))) goto LA121_;
1552 							T123_ = (NI32)0;
1553 							T123_ = osLastError__pureZos_390();
1554 							raiseOSError__pureZos_387(T123_, ((NimStringDesc*) NIM_NIL));
1555 						}
1556 						LA121_: ;
1557 						(*p).exitFlag = NIM_TRUE;
1558 						(*p).exitStatus = status_3;
1559 						goto LA38;
1560 					}
1561 					goto LA82_;
1562 					LA110_: ;
1563 					{
1564 						raiseOSError__pureZos_387(err, ((NimStringDesc*) NIM_NIL));
1565 					}
1566 					LA82_: ;
1567 				}
1568 				goto LA40_;
1569 				LA80_: ;
1570 				LA40_: ;
1571 			}
1572 		} LA38: ;
1573 		popSafePoint();
1574 		}
1575 		else {
1576 			popSafePoint();
1577 		}
1578 		{
1579 			{
1580 				int T129_;
1581 				NI32 T132_;
1582 				T129_ = (int)0;
1583 				T129_ = sigprocmask(((int) 2), (&nmask), (&omask));
1584 				if (!(T129_ == ((NI32) -1))) goto LA130_;
1585 				T132_ = (NI32)0;
1586 				T132_ = osLastError__pureZos_390();
1587 				raiseOSError__pureZos_387(T132_, ((NimStringDesc*) NIM_NIL));
1588 			}
1589 			LA130_: ;
1590 			if (TM__HZdw8BhppcTQo8DIK46LSg_12.status != 0) nimLeaveFinally();
1591 		}
1592 		if (TM__HZdw8BhppcTQo8DIK46LSg_12.status != 0) reraiseException();
1593 	}
1594 	LA6_: ;
1595 	T133_ = (int)0;
1596 	T133_ = exitStatusLikeShell__pureZos_1080((*p).exitStatus);
1597 	result = ((NI) (T133_));
1598 	}BeforeRet_: ;
1599 	return result;
1600 }
N_NIMCALL(void,nospclose)1601 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1602 	{
1603 		if (!!((((*p).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
1604 		{
1605 			if (!!(((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA7_;
1606 			close__pureZstreams_57((*p).inStream);
1607 		}
1608 		goto LA5_;
1609 		LA7_: ;
1610 		{
1611 			int T10_;
1612 			T10_ = (int)0;
1613 			T10_ = close((*p).inHandle);
1614 			(void)(T10_);
1615 		}
1616 		LA5_: ;
1617 		{
1618 			if (!!(((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA13_;
1619 			close__pureZstreams_57((*p).outStream);
1620 		}
1621 		goto LA11_;
1622 		LA13_: ;
1623 		{
1624 			int T16_;
1625 			T16_ = (int)0;
1626 			T16_ = close((*p).outHandle);
1627 			(void)(T16_);
1628 		}
1629 		LA11_: ;
1630 		{
1631 			if (!!(((*p).errStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA19_;
1632 			close__pureZstreams_57((*p).errStream);
1633 		}
1634 		goto LA17_;
1635 		LA19_: ;
1636 		{
1637 			int T22_;
1638 			T22_ = (int)0;
1639 			T22_ = close((*p).errHandle);
1640 			(void)(T22_);
1641 		}
1642 		LA17_: ;
1643 	}
1644 	LA3_: ;
1645 }
N_NIMCALL(NIM_BOOL,isExitStatus__pureZosproc_306)1646 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status) {
1647 	NIM_BOOL result;
1648 	NIM_BOOL T1_;
1649 	result = (NIM_BOOL)0;
1650 	T1_ = (NIM_BOOL)0;
1651 	T1_ = WIFEXITED__posixZposix_875(status);
1652 	if (T1_) goto LA2_;
1653 	T1_ = WIFSIGNALED__posixZposix_884(status);
1654 	LA2_: ;
1655 	result = T1_;
1656 	return result;
1657 }
N_NIMCALL(NI,nosppeekExitCode)1658 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1659 	NI result;
1660 	int status;
1661 	pid_t ret;
1662 {	result = (NI)0;
1663 	status = ((int) 0);
1664 	result = ((NI) -1);
1665 	{
1666 		int T5_;
1667 		if (!(*p).exitFlag) goto LA3_;
1668 		T5_ = (int)0;
1669 		T5_ = exitStatusLikeShell__pureZos_1080((*p).exitStatus);
1670 		result = ((NI) (T5_));
1671 		goto BeforeRet_;
1672 	}
1673 	LA3_: ;
1674 	ret = waitpid((*p).id, (&status), ((int) 1));
1675 	{
1676 		if (!(((NI32) 0) < ret)) goto LA8_;
1677 		{
1678 			NIM_BOOL T12_;
1679 			int T15_;
1680 			T12_ = (NIM_BOOL)0;
1681 			T12_ = isExitStatus__pureZosproc_306(status);
1682 			if (!T12_) goto LA13_;
1683 			(*p).exitFlag = NIM_TRUE;
1684 			(*p).exitStatus = status;
1685 			T15_ = (int)0;
1686 			T15_ = exitStatusLikeShell__pureZos_1080(status);
1687 			result = ((NI) (T15_));
1688 		}
1689 		LA13_: ;
1690 	}
1691 	LA8_: ;
1692 	}BeforeRet_: ;
1693 	return result;
1694 }
N_NIMCALL(void,execCmdEx__pureZosproc_1155)1695 N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1155)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
1696 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1697 	tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
1698 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
1699 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
1700 	NimStringDesc* colontmp_;
1701 	NI colontmp__2;
1702 	NimStringDesc* line;
1703 	nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1704 	p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
1705 	outp = nospoutputStream(p);
1706 	{
1707 		tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
1708 		if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
1709 		T6_ = NIM_NIL;
1710 		T6_ = nospinputStream(p);
1711 		write__pureZstreams_177(T6_, input);
1712 	}
1713 	LA4_: ;
1714 	T7_ = NIM_NIL;
1715 	T7_ = nospinputStream(p);
1716 	close__pureZstreams_57(T7_);
1717 	colontmp_ = ((NimStringDesc*) NIM_NIL);
1718 	colontmp__2 = ((NI) -1);
1719 	unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
1720 	(*Result).Field1 = colontmp__2;
1721 	line = rawNewString(((NI) 120));
1722 	{
1723 		while (1) {
1724 			{
1725 				NIM_BOOL T12_;
1726 				T12_ = (NIM_BOOL)0;
1727 				T12_ = readLine__pureZstreams_524(outp, (&line));
1728 				if (!T12_) goto LA13_;
1729 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0));
1730 appendString((*Result).Field0, line);
1731 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, 1));
1732 appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_14));
1733 			}
1734 			goto LA10_;
1735 			LA13_: ;
1736 			{
1737 				(*Result).Field1 = nosppeekExitCode(p);
1738 				{
1739 					if (!!(((*Result).Field1 == ((NI) -1)))) goto LA18_;
1740 					goto LA8;
1741 				}
1742 				LA18_: ;
1743 			}
1744 			LA10_: ;
1745 		}
1746 	} LA8: ;
1747 	nospclose(p);
1748 }
N_NIMCALL(NI,nospexecCmd)1749 N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command) {
1750 	NI result;
1751 	int T1_;
1752 	result = (NI)0;
1753 	T1_ = (int)0;
1754 	T1_ = system(nimToCStringConv(command));
1755 	result = ((NI) (T1_));
1756 	return result;
1757 }
N_NIMCALL(NI,nospcountProcessors)1758 N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void) {
1759 	NI result;
1760 	result = (NI)0;
1761 	result = ncpicountProcessors();
1762 	return result;
1763 }
N_NIMCALL(void,Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)1764 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op) {
1765 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* a;
1766 	NI T1_;
1767 	a = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*)p;
1768 	T1_ = (NI)0;
1769 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
1770 	nimGCvisit((void*)a->data[T1_], op);
1771 	}
1772 }
N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ *,newSeq__pureZosproc_120)1773 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len) {
1774 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* result;
1775 	result = NIM_NIL;
1776 	result = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*) newSeq((&NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_), len);
1777 	return result;
1778 }
N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g *,newSeq__pureZosproc_151)1779 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len) {
1780 	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
1781 	result = NIM_NIL;
1782 	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
1783 	return result;
1784 }
N_NIMCALL(NIM_BOOL,nosprunning)1785 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1786 	NIM_BOOL result;
1787 {	result = (NIM_BOOL)0;
1788 	{
1789 		if (!(*p).exitFlag) goto LA3_;
1790 		result = NIM_FALSE;
1791 		goto BeforeRet_;
1792 	}
1793 	goto LA1_;
1794 	LA3_: ;
1795 	{
1796 		int status;
1797 		pid_t ret;
1798 		status = ((int) 1);
1799 		ret = waitpid((*p).id, (&status), ((int) 1));
1800 		{
1801 			if (!(((NI) (ret)) == ((NI) ((*p).id)))) goto LA8_;
1802 			{
1803 				NIM_BOOL T12_;
1804 				T12_ = (NIM_BOOL)0;
1805 				T12_ = isExitStatus__pureZosproc_306(status);
1806 				if (!T12_) goto LA13_;
1807 				(*p).exitFlag = NIM_TRUE;
1808 				(*p).exitStatus = status;
1809 				result = NIM_FALSE;
1810 				goto BeforeRet_;
1811 			}
1812 			goto LA10_;
1813 			LA13_: ;
1814 			{
1815 				result = NIM_TRUE;
1816 				goto BeforeRet_;
1817 			}
1818 			LA10_: ;
1819 		}
1820 		goto LA6_;
1821 		LA8_: ;
1822 		{
1823 			if (!(ret == ((NI32) 0))) goto LA17_;
1824 			result = NIM_TRUE;
1825 			goto BeforeRet_;
1826 		}
1827 		goto LA6_;
1828 		LA17_: ;
1829 		{
1830 			NI32 T20_;
1831 			T20_ = (NI32)0;
1832 			T20_ = osLastError__pureZos_390();
1833 			raiseOSError__pureZos_387(T20_, ((NimStringDesc*) NIM_NIL));
1834 		}
1835 		LA6_: ;
1836 	}
1837 	LA1_: ;
1838 	}BeforeRet_: ;
1839 	return result;
1840 }
N_NIMCALL(NI,nospexecProcesses)1841 N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__oudJckli4GdxAXLVzBBlAw afterRunEvent) {
1842 	NI result;
1843 	result = (NI)0;
1844 	{
1845 		NI i;
1846 		tySequence__PrBYolTs4TOSgE8v5oqDUQ* q;
1847 		tySequence__qwqHTkRvwhrRyENtudHQ7g* idxs;
1848 		NI m;
1849 		NI ecount;
1850 		if (!(((NI) 1) < n)) goto LA3_;
1851 		i = ((NI) 0);
1852 		q = newSeq__pureZosproc_120(((NI) (n)));
1853 		idxs = newSeq__pureZosproc_151(((NI) (n)));
1854 		m = ((n <= cmdsLen_0) ? n : cmdsLen_0);
1855 		{
1856 			while (1) {
1857 				tyArray__8ZvwQIddfpj2THRVPsFzIQ T11_;
1858 				if (!(i < m)) goto LA6;
1859 				{
1860 					if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClE_0))) goto LA9_;
1861 					beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_16)(beforeRunEvent.ClP_0))(i);
1862 				}
1863 				LA9_: ;
1864 				nimZeroMem((void*)T11_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1865 				asgnRef((void**) (&q->data[i]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T11_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1866 				idxs->data[i] = i;
1867 				i += ((NI) 1);
1868 			} LA6: ;
1869 		}
1870 		ecount = cmdsLen_0;
1871 		{
1872 			while (1) {
1873 				if (!(((NI) 0) < ecount)) goto LA13;
1874 				{
1875 					NI rexit;
1876 					int status;
1877 					pid_t res;
1878 					rexit = ((NI) -1);
1879 					status = ((int) 1);
1880 					res = waitpid(((pid_t) -1), (&status), ((int) 0));
1881 					{
1882 						if (!(((NI32) 0) < res)) goto LA17_;
1883 						{
1884 							NI r;
1885 							NI colontmp_;
1886 							NI res_2;
1887 							r = (NI)0;
1888 							colontmp_ = (NI)0;
1889 							colontmp_ = (NI)(m - ((NI) 1));
1890 							res_2 = ((NI) 0);
1891 							{
1892 								while (1) {
1893 									if (!(res_2 <= colontmp_)) goto LA21;
1894 									r = res_2;
1895 									{
1896 										NIM_BOOL T24_;
1897 										T24_ = (NIM_BOOL)0;
1898 										T24_ = !((q->data[r] == 0));
1899 										if (!(T24_)) goto LA25_;
1900 										T24_ = ((*q->data[r]).id == res);
1901 										LA25_: ;
1902 										if (!T24_) goto LA26_;
1903 										{
1904 											NIM_BOOL T30_;
1905 											T30_ = (NIM_BOOL)0;
1906 											T30_ = WIFEXITED__posixZposix_875(status);
1907 											if (T30_) goto LA31_;
1908 											T30_ = WIFSIGNALED__posixZposix_884(status);
1909 											LA31_: ;
1910 											if (!T30_) goto LA32_;
1911 											(*q->data[r]).exitFlag = NIM_TRUE;
1912 											(*q->data[r]).exitStatus = status;
1913 											rexit = r;
1914 											goto LA19;
1915 										}
1916 										LA32_: ;
1917 									}
1918 									LA26_: ;
1919 									res_2 += ((NI) 1);
1920 								} LA21: ;
1921 							}
1922 						} LA19: ;
1923 					}
1924 					goto LA15_;
1925 					LA17_: ;
1926 					{
1927 						NI32 err;
1928 						err = osLastError__pureZos_390();
1929 						{
1930 							if (!(err == ((NI32) 10))) goto LA37_;
1931 							{
1932 								NI r_2;
1933 								NI colontmp__2;
1934 								NI res_3;
1935 								r_2 = (NI)0;
1936 								colontmp__2 = (NI)0;
1937 								colontmp__2 = (NI)(m - ((NI) 1));
1938 								res_3 = ((NI) 0);
1939 								{
1940 									while (1) {
1941 										if (!(res_3 <= colontmp__2)) goto LA41;
1942 										r_2 = res_3;
1943 										{
1944 											NIM_BOOL T44_;
1945 											NIM_BOOL T46_;
1946 											T44_ = (NIM_BOOL)0;
1947 											T44_ = !((q->data[r_2] == 0));
1948 											if (!(T44_)) goto LA45_;
1949 											T46_ = (NIM_BOOL)0;
1950 											T46_ = nosprunning(q->data[r_2]);
1951 											T44_ = !(T46_);
1952 											LA45_: ;
1953 											if (!T44_) goto LA47_;
1954 											(*q->data[r_2]).exitFlag = NIM_TRUE;
1955 											(*q->data[r_2]).exitStatus = status;
1956 											rexit = r_2;
1957 											goto LA39;
1958 										}
1959 										LA47_: ;
1960 										res_3 += ((NI) 1);
1961 									} LA41: ;
1962 								}
1963 							} LA39: ;
1964 						}
1965 						goto LA35_;
1966 						LA37_: ;
1967 						{
1968 							if (!(err == ((NI32) 4))) goto LA50_;
1969 							goto LA14;
1970 						}
1971 						goto LA35_;
1972 						LA50_: ;
1973 						{
1974 							raiseOSError__pureZos_387(err, ((NimStringDesc*) NIM_NIL));
1975 						}
1976 						LA35_: ;
1977 					}
1978 					LA15_: ;
1979 					{
1980 						NI T57_;
1981 						if (!(((NI) 0) <= rexit)) goto LA55_;
1982 						T57_ = (NI)0;
1983 						T57_ = nosppeekExitCode(q->data[rexit]);
1984 						result = ((result >= (T57_ > 0? (T57_) : -(T57_))) ? result : (T57_ > 0? (T57_) : -(T57_)));
1985 						{
1986 							if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA60_;
1987 							afterRunEvent.ClE_0? afterRunEvent.ClP_0(idxs->data[rexit], q->data[rexit], afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_18)(afterRunEvent.ClP_0))(idxs->data[rexit], q->data[rexit]);
1988 						}
1989 						LA60_: ;
1990 						nospclose(q->data[rexit]);
1991 						{
1992 							tyArray__8ZvwQIddfpj2THRVPsFzIQ T70_;
1993 							if (!(i < cmdsLen_0)) goto LA64_;
1994 							{
1995 								if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClE_0))) goto LA68_;
1996 								beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_19)(beforeRunEvent.ClP_0))(i);
1997 							}
1998 							LA68_: ;
1999 							nimZeroMem((void*)T70_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
2000 							asgnRef((void**) (&q->data[rexit]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T70_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
2001 							idxs->data[rexit] = i;
2002 							i += ((NI) 1);
2003 						}
2004 						goto LA62_;
2005 						LA64_: ;
2006 						{
2007 							asgnRef((void**) (&q->data[rexit]), ((tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) NIM_NIL));
2008 						}
2009 						LA62_: ;
2010 						ecount -= ((NI) 1);
2011 					}
2012 					LA55_: ;
2013 				} LA14: ;
2014 			} LA13: ;
2015 		}
2016 	}
2017 	goto LA1_;
2018 	LA3_: ;
2019 	{
2020 		{
2021 			NI i_2;
2022 			NI colontmp__3;
2023 			NI res_4;
2024 			i_2 = (NI)0;
2025 			colontmp__3 = (NI)0;
2026 			colontmp__3 = (cmdsLen_0-1);
2027 			res_4 = ((NI) 0);
2028 			{
2029 				while (1) {
2030 					tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
2031 					tyArray__8ZvwQIddfpj2THRVPsFzIQ T80_;
2032 					NI T81_;
2033 					if (!(res_4 <= colontmp__3)) goto LA75;
2034 					i_2 = res_4;
2035 					{
2036 						if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_15.ClE_0))) goto LA78_;
2037 						beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i_2, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_20)(beforeRunEvent.ClP_0))(i_2);
2038 					}
2039 					LA78_: ;
2040 					nimZeroMem((void*)T80_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
2041 					p = nospstartProcess(cmds[i_2], ((NimStringDesc*) NIM_NIL), T80_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
2042 					T81_ = (NI)0;
2043 					T81_ = nospwaitForExit(p, ((NI) -1));
2044 					result = (((T81_ > 0? (T81_) : -(T81_)) >= result) ? (T81_ > 0? (T81_) : -(T81_)) : result);
2045 					{
2046 						if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA84_;
2047 						afterRunEvent.ClE_0? afterRunEvent.ClP_0(i_2, p, afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_21)(afterRunEvent.ClP_0))(i_2, p);
2048 					}
2049 					LA84_: ;
2050 					nospclose(p);
2051 					res_4 += ((NI) 1);
2052 				} LA75: ;
2053 			}
2054 		}
2055 	}
2056 	LA1_: ;
2057 	return result;
2058 }
N_NIMCALL(void,stdlib_osprocDatInit000)2059 N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {
2060 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_10[10];
2061 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
2062 NI TM__HZdw8BhppcTQo8DIK46LSg_5;
2063 static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
2064 "poEchoCmd",
2065 "poUsePath",
2066 "poEvalCommand",
2067 "poStdErrToStdOut",
2068 "poParentStreams",
2069 "poInteractive",
2070 "poDaemon"};
2071 static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[20];
2072 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
2073 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
2074 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
2075 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
2076 TM__HZdw8BhppcTQo8DIK46LSg_2_10[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
2077 TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
2078 TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
2079 TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
2080 TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
2081 TM__HZdw8BhppcTQo8DIK46LSg_2_10[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
2082 TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
2083 TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
2084 TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
2085 TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
2086 TM__HZdw8BhppcTQo8DIK46LSg_2_10[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
2087 TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
2088 TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
2089 TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
2090 TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
2091 TM__HZdw8BhppcTQo8DIK46LSg_2_10[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
2092 TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
2093 TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
2094 TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_);
2095 TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "id";
2096 TM__HZdw8BhppcTQo8DIK46LSg_2_10[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
2097 TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
2098 TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
2099 TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
2100 TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "inStream";
2101 TM__HZdw8BhppcTQo8DIK46LSg_2_10[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
2102 TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
2103 TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
2104 TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
2105 TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "outStream";
2106 TM__HZdw8BhppcTQo8DIK46LSg_2_10[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
2107 TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
2108 TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
2109 TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
2110 TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "errStream";
2111 TM__HZdw8BhppcTQo8DIK46LSg_2_10[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
2112 TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
2113 TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
2114 TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
2115 TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
2116 TM__HZdw8BhppcTQo8DIK46LSg_2_10[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
2117 TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
2118 TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
2119 TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
2120 TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "exitFlag";
2121 TM__HZdw8BhppcTQo8DIK46LSg_2_10[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
2122 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
2123 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
2124 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
2125 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
2126 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
2127 for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
2128 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].kind = 1;
2129 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
2130 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
2131 TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11];
2132 }
2133 TM__HZdw8BhppcTQo8DIK46LSg_0[18].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[18].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[18].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
2134 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[18];
2135 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
2136 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
2137 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
2138 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_);
2139 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
2140 TM__HZdw8BhppcTQo8DIK46LSg_0[19].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[19].kind = 0;
2141 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[19];
2142 TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
2143 TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
2144 TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
2145 TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "options";
2146 TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 10; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_10[0];
2147 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
2148 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
2149 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
2150 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
2151 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
2152 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
2153 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.size = sizeof(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2154 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.align = NIM_ALIGNOF(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2155 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.kind = 24;
2156 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.base = (&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_);
2157 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.marker = Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ;
2158 }
2159 
2160