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