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