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