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