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 <crt_externs.h>
11 #include <spawn.h>
12 #include <signal.h>
13 #include <sys/wait.h>
14 #include <sys/event.h>
15 #include <sys/types.h>
16 #include <sys/event.h>
17 #include <sys/time.h>
18 #include <time.h>
19 #include <errno.h>
20 #include <stdlib.h>
21 #include <stdio.h>
22 #undef LANGUAGE_C
23 #undef MIPSEB
24 #undef MIPSEL
25 #undef PPC
26 #undef R3000
27 #undef R4000
28 #undef i386
29 #undef linux
30 #undef mips
31 #undef near
32 #undef far
33 #undef powerpc
34 #undef unix
35 #define nimfr_(x, y)
36 #define nimln_(x, y)
37 typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
38 typedef struct NimStringDesc NimStringDesc;
39 typedef struct TGenericSeq TGenericSeq;
40 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
41 typedef struct RootObj RootObj;
42 typedef struct TNimType TNimType;
43 typedef struct TNimNode TNimNode;
44 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
45 typedef struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA;
46 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
47 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
48 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
49 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
50 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
51 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
52 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
53 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
54 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
55 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
56 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
57 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
58 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
59 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
60 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
61 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
62 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
63 typedef struct Exception Exception;
64 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
65 typedef struct TSafePoint TSafePoint;
66 typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
67 typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
68 typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
69 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
70 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
71 typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
72 typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ tySequence__PrBYolTs4TOSgE8v5oqDUQ;
73 typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
74 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
75 struct TGenericSeq {
76 NI len;
77 NI reserved;
78 };
79 struct NimStringDesc {
80 TGenericSeq Sup;
81 NIM_CHAR data[SEQ_DECL_SIZE];
82 };
83 typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
84 typedef int tyArray__SKEqGXcReU4NvbQlH779b5Q[2];
85 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
86 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
87 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
88 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
89 struct TNimType {
90 NI size;
91 NI align;
92 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
93 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
94 TNimType* base;
95 TNimNode* node;
96 void* finalizer;
97 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
98 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
99 };
100 struct RootObj {
101 TNimType* m_type;
102 };
103 struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
104 RootObj Sup;
105 int inHandle;
106 int outHandle;
107 int errHandle;
108 pid_t id;
109 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
110 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
111 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
112 int exitStatus;
113 NIM_BOOL exitFlag;
114 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
115 };
116 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
117 struct TNimNode {
118 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
119 NI offset;
120 TNimType* typ;
121 NCSTRING name;
122 NI len;
123 TNimNode** sons;
124 };
125 typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
126 struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA {
127 NimStringDesc* sysCommand;
128 NCSTRING* sysArgs;
129 NCSTRING* sysEnv;
130 NCSTRING workingDir;
131 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
132 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
133 tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
134 tyArray__SKEqGXcReU4NvbQlH779b5Q pErrorPipe;
135 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
136 };
137 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
138 NI refcount;
139 TNimType* typ;
140 };
141 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
142 void* bottom;
143 };
144 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
145 NI len;
146 NI cap;
147 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
148 };
149 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
150 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
151 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
152 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
153 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
154 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
155 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
156 };
157 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
158 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
159 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
160 NI key;
161 NI upperBound;
162 NI level;
163 };
164 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
165 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
166 NI Field1;
167 };
168 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
169 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
170 NI len;
171 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
172 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
173 };
174 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
175 NI minLargeObj;
176 NI maxLargeObj;
177 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
178 NU32 flBitmap;
179 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
180 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
181 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
182 NI currMem;
183 NI maxMem;
184 NI freeMem;
185 NI occ;
186 NI lastSize;
187 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
188 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
189 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
190 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
192 NIM_BOOL locked;
193 NIM_BOOL blockChunkSizeIncrease;
194 NI nextChunkSize;
195 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
196 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
197 };
198 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
199 NI stackScans;
200 NI cycleCollections;
201 NI maxThreshold;
202 NI maxStackSize;
203 NI maxStackCells;
204 NI cycleTableSize;
205 NI64 maxPause;
206 };
207 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
208 NI counter;
209 NI max;
210 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
211 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
212 };
213 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
214 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
215 NI cycleThreshold;
216 NI zctThreshold;
217 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
218 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
219 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
220 NI recGcLock;
221 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
222 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
223 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
224 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
225 NI gcThreadId;
226 };
227 struct Exception {
228 RootObj Sup;
229 Exception* parent;
230 NCSTRING name;
231 NimStringDesc* message;
232 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
233 Exception* up;
234 };
235 struct TSafePoint {
236 TSafePoint* prev;
237 NI status;
238 jmp_buf context;
239 };
240 struct tyTuple__UV3llMMYFckfui8YMBuUZA {
241 NimStringDesc* Field0;
242 NimStringDesc* Field1;
243 };
244 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
245 typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
246 struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
247 RootObj Sup;
248 NI counter;
249 tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
250 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
251 };
252 struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
253 NimStringDesc* Field0;
254 NimStringDesc* Field1;
255 NIM_BOOL Field2;
256 };
257 typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
258 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
259 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
260 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
261 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
262 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
263 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
264 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
265 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
266 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
267 RootObj Sup;
268 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
269 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
270 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
271 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
272 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
273 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
274 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
275 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
276 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
277 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
278 };
279 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
280 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
281 FILE* f;
282 };
283 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
284 typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
285 struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
286 NimStringDesc* Field0;
287 NI Field1;
288 };
289 typedef struct {
290 N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
291 void* ClE_0;
292 } tyProc__SqRJqa5aOiKB4EuKlKh9asA;
293 typedef struct {
294 N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
295 void* ClE_0;
296 } tyProc__oudJckli4GdxAXLVzBBlAw;
297 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_15) (NI idx);
298 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_17) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
299 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_18) (NI idx);
300 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_19) (NI idx);
301 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_20) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
302 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
303 NCSTRING procname;
304 NI line;
305 NCSTRING filename;
306 };
307 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
308 NI a;
309 NI b;
310 };
311 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
312 TGenericSeq Sup;
313 NimStringDesc* data[SEQ_DECL_SIZE];
314 };
315 struct tySequence__PrBYolTs4TOSgE8v5oqDUQ {
316 TGenericSeq Sup;
317 tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* data[SEQ_DECL_SIZE];
318 };
319 struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
320 TGenericSeq Sup;
321 NI data[SEQ_DECL_SIZE];
322 };
323 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
324 TGenericSeq Sup;
325 tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
326 };
327 struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
328 TGenericSeq Sup;
329 tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
330 };
331 static N_INLINE(void, nimZeroMem)(void* p, NI size);
332 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
333 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
334 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
335 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
336 N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__pureZos_405)(NI32 errorCode, NimStringDesc* additionalInfo);
337 N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__pureZos_408)(void);
338 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
339 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
340 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
341 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
342 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
343 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
344 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
345 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
346 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
347 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
348 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
349 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0);
350 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
351 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void);
352 static N_INLINE(NIM_BOOL, eqeq___system_7753)(NCSTRING x, NCSTRING y);
353 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
354 N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
355 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7773)(NimStringDesc* s, NI first, NI last);
356 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7785)(NimStringDesc* s, NI first);
357 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
358 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
359 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
360 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
361 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
362 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
363 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
364 N_LIB_PRIVATE N_NIMCALL(NI, nstlen)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
365 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
366 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
367 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxSpawn__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
368 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
369 static N_INLINE(void, setCurrentDir__pureZos_741)(NimStringDesc* newDir);
370 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
371 N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
372 static N_INLINE(void, popSafePoint)(void);
373 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a);
374 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
375 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
376 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_606)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode);
377 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_422)(FILE** f, int filehandle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
378 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
379 static N_INLINE(void, asgnRef)(void** dest, void* src);
380 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
381 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
382 N_LIB_PRIVATE N_NIMCALL(int, exitStatusLikeShell__pureZos_1127)(int status);
383 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
384 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
385 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);
386 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
387 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
388 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
389 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
390 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
391 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
392 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
393 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
394 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status);
395 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
396 N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
397 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len);
398 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op);
399 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len);
400 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
401 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
402 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
403 N_LIB_PRIVATE TNimType NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_;
404 extern TNimType NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_;
405 extern TNimType NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_;
406 extern TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
407 extern TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
408 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
409 N_LIB_PRIVATE TNimType NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_;
410 N_LIB_PRIVATE TNimType NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_;
411 N_LIB_PRIVATE TNimType NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_;
412 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "/bin/sh", 7);
413 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
414 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "-c", 2);
415 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, "=", 1);
416 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_11, " ", 1);
417 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_13, "\012", 1);
418 N_LIB_PRIVATE TNimType NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_;
419 extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
420 static NIM_CONST tyProc__SqRJqa5aOiKB4EuKlKh9asA TM__HZdw8BhppcTQo8DIK46LSg_14 = {NIM_NIL,NIM_NIL};
421 static NIM_CONST tyProc__oudJckli4GdxAXLVzBBlAw TM__HZdw8BhppcTQo8DIK46LSg_16 = {NIM_NIL,NIM_NIL};
422 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
423 extern TSafePoint* excHandler__system_2565;
424 extern TSafePoint* excHandler__system_2565;
425 extern TSafePoint* excHandler__system_2565;
426 extern TSafePoint* excHandler__system_2565;
N_INLINE(void,nimSetMem__systemZmemory_7)427 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
428 void* T1_;
429 T1_ = (void*)0;
430 T1_ = memset(a, v, ((size_t) (size)));
431 }
N_INLINE(void,nimZeroMem)432 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
433 nimSetMem__systemZmemory_7(p, ((int) 0), size);
434 }
N_NIMCALL(void,Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)435 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
436 tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
437 a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
438 nimGCvisit((void*)(*a).inStream, op);
439 nimGCvisit((void*)(*a).outStream, op);
440 nimGCvisit((void*)(*a).errStream, op);
441 }
N_INLINE(NI,minuspercent___system_716)442 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
443 NI result;
444 result = (NI)0;
445 result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
446 return result;
447 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)448 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
449 NIM_BOOL result;
450 result = (NIM_BOOL)0;
451 result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
452 return result;
453 }
N_INLINE(void,rtlAddZCT__system_5343)454 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
455 addZCT__system_5294((&gch__system_5247.zct), c);
456 }
N_INLINE(void,decRef__system_5345)457 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
458 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
459 {
460 NIM_BOOL T3_;
461 T3_ = (NIM_BOOL)0;
462 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
463 if (!T3_) goto LA4_;
464 rtlAddZCT__system_5343(c);
465 }
466 LA4_: ;
467 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)468 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
469 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
470 NI T1_;
471 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
472 T1_ = (NI)0;
473 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
474 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
475 return result;
476 }
N_INLINE(void,nimGCunrefNoCycle)477 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
478 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
479 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
480 T1_ = usrToCell__system_5300(p);
481 decRef__system_5345(T1_);
482 }
N_INLINE(void,pushSafePoint)483 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
484 (*s).prev = excHandler__system_2565;
485 excHandler__system_2565 = s;
486 }
N_INLINE(NIM_BOOL,eqeq___system_7753)487 static N_INLINE(NIM_BOOL, eqeq___system_7753)(NCSTRING x, NCSTRING y) {
488 NIM_BOOL result;
489 result = (NIM_BOOL)0;
490 {
491 if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
492 result = NIM_TRUE;
493 }
494 goto LA1_;
495 LA3_: ;
496 {
497 NIM_BOOL T6_;
498 T6_ = (NIM_BOOL)0;
499 T6_ = (x == 0);
500 if (T6_) goto LA7_;
501 T6_ = (y == 0);
502 LA7_: ;
503 if (!T6_) goto LA8_;
504 result = NIM_FALSE;
505 }
506 goto LA1_;
507 LA8_: ;
508 {
509 int T11_;
510 T11_ = (int)0;
511 T11_ = strcmp(x, y);
512 result = (T11_ == ((NI32) 0));
513 }
514 LA1_: ;
515 return result;
516 }
N_INLINE(void,nimCopyMem)517 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
518 void* T1_;
519 T1_ = (void*)0;
520 T1_ = memcpy(dest, source, ((size_t) (size)));
521 }
N_INLINE(void,copyMem__system_1727)522 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
523 nimCopyMem(dest, source, size);
524 }
N_INLINE(void,appendString)525 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
526 {
527 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
528 copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
529 (*dest).Sup.len += (*src).Sup.len;
530 }
531 LA3_: ;
532 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_320)533 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void) {
534 NCSTRING* result;
535 NI counter;
536 void* T7_;
537 NI i_2;
538 result = (NCSTRING*)0;
539 counter = ((NI) 0);
540 {
541 NimStringDesc* key;
542 NimStringDesc* val;
543 key = NIM_NIL;
544 val = NIM_NIL;
545 {
546 tyTuple__UV3llMMYFckfui8YMBuUZA ai;
547 NI i;
548 NCSTRING* gEnv;
549 NCSTRING** T3_;
550 nimZeroMem((void*)(&ai), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
551 i = ((NI) 0);
552 T3_ = (NCSTRING**)0;
553 T3_ = _NSGetEnviron();
554 gEnv = (*T3_);
555 {
556 while (1) {
557 NIM_BOOL T6_;
558 NimStringDesc* kv;
559 NI p;
560 tyTuple__UV3llMMYFckfui8YMBuUZA colontmp_;
561 T6_ = (NIM_BOOL)0;
562 T6_ = eqeq___system_7753(gEnv[i], ((NCSTRING) NIM_NIL));
563 if (!!(T6_)) goto LA5;
564 kv = cstrToNimstr(gEnv[i]);
565 i += ((NI) 1);
566 p = nsuFindChar(kv, 61, ((NI) 0), ((NI) 0));
567 ai.Field0 = substr__system_7773(kv, ((NI) 0), (NI)(p - ((NI) 1)));
568 ai.Field1 = substr__system_7785(kv, (NI)(p + ((NI) 1)));
569 nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
570 colontmp_.Field0 = copyString(ai.Field0);
571 colontmp_.Field1 = copyString(ai.Field1);
572 key = colontmp_.Field0;
573 val = colontmp_.Field1;
574 counter += ((NI) 1);
575 } LA5: ;
576 }
577 }
578 }
579 T7_ = (void*)0;
580 T7_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(counter + ((NI) 1)) * ((NI) 8)))));
581 result = ((NCSTRING*) (T7_));
582 i_2 = ((NI) 0);
583 {
584 NimStringDesc* key_2;
585 NimStringDesc* val_2;
586 key_2 = NIM_NIL;
587 val_2 = NIM_NIL;
588 {
589 tyTuple__UV3llMMYFckfui8YMBuUZA ai_2;
590 NI i_3;
591 NCSTRING* gEnv_2;
592 NCSTRING** T10_;
593 nimZeroMem((void*)(&ai_2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
594 i_3 = ((NI) 0);
595 T10_ = (NCSTRING**)0;
596 T10_ = _NSGetEnviron();
597 gEnv_2 = (*T10_);
598 {
599 while (1) {
600 NIM_BOOL T13_;
601 NimStringDesc* kv_2;
602 NI p_2;
603 tyTuple__UV3llMMYFckfui8YMBuUZA colontmp__2;
604 NimStringDesc* x;
605 NimStringDesc* T14_;
606 void* T15_;
607 T13_ = (NIM_BOOL)0;
608 T13_ = eqeq___system_7753(gEnv_2[i_3], ((NCSTRING) NIM_NIL));
609 if (!!(T13_)) goto LA12;
610 kv_2 = cstrToNimstr(gEnv_2[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 T14_ = NIM_NIL;
621 T14_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
622 appendString(T14_, key_2);
623 appendString(T14_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
624 appendString(T14_, val_2);
625 x = T14_;
626 T15_ = (void*)0;
627 T15_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
628 result[i_2] = ((NCSTRING) (T15_));
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 } LA12: ;
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_741)725 static N_INLINE(void, setCurrentDir__pureZos_741)(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_408();
734 raiseOSError__pureZos_405(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_408();
759 raiseOSError__pureZos_405(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_408();
770 raiseOSError__pureZos_405(T12_, ((NimStringDesc*) NIM_NIL));
771 }
772 LA10_: ;
773 nimZeroMem((void*)(&mask), sizeof(sigset_t));
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_408();
782 raiseOSError__pureZos_405(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_408();
793 raiseOSError__pureZos_405(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_408();
806 raiseOSError__pureZos_405(T34_, ((NimStringDesc*) NIM_NIL));
807 }
808 LA32_: ;
809 }
810 LA27_: ;
811 flags = (NI32)(((int) 0) | POSIX_SPAWN_SETSIGMASK);
812 {
813 if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA37_;
814 flags = (NI32)(flags | POSIX_SPAWN_SETPGROUP);
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_408();
825 raiseOSError__pureZos_405(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_408();
838 raiseOSError__pureZos_405(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_408();
849 raiseOSError__pureZos_405(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_408();
860 raiseOSError__pureZos_405(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_408();
871 raiseOSError__pureZos_405(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_408();
882 raiseOSError__pureZos_405(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_408();
895 raiseOSError__pureZos_405(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_408();
910 raiseOSError__pureZos_405(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_741(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_405(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_408();
1005 raiseOSError__pureZos_405(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_741(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_606)1174 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_606)(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_408();
1187 raiseOSError__pureZos_405(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_606((&(*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_606((&(*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 T72_;
1264 { result = (NI)0;
1265 {
1266 int T5_;
1267 if (!(*p).exitFlag) goto LA3_;
1268 T5_ = (int)0;
1269 T5_ = exitStatusLikeShell__pureZos_1127((*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_408();
1286 raiseOSError__pureZos_405(T15_, ((NimStringDesc*) NIM_NIL));
1287 }
1288 LA13_: ;
1289 (*p).exitFlag = NIM_TRUE;
1290 (*p).exitStatus = status;
1291 }
1292 goto LA6_;
1293 LA8_: ;
1294 {
1295 int kqFD;
1296 struct kevent volatile kevIn;
1297 struct kevent volatile kevOut;
1298 struct timespec volatile tmspec;
1299 TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_12;
1300 kqFD = kqueue();
1301 {
1302 NI32 T21_;
1303 if (!(kqFD == ((NI32) -1))) goto LA19_;
1304 T21_ = (NI32)0;
1305 T21_ = osLastError__pureZos_408();
1306 raiseOSError__pureZos_405(T21_, ((NimStringDesc*) NIM_NIL));
1307 }
1308 LA19_: ;
1309 nimZeroMem((void*)(&kevIn), sizeof(struct kevent));
1310 kevIn.ident = ((NU) ((*p).id));
1311 kevIn.filter = ((short) -5);
1312 kevIn.flags = ((unsigned short) 1);
1313 kevIn.fflags = ((NU32) IL64(2147483648));
1314 nimZeroMem((void*)(&kevOut), sizeof(struct kevent));
1315 nimZeroMem((void*)(&tmspec), sizeof(struct timespec));
1316 {
1317 NI T26_;
1318 if (!(((NI) 1000) <= timeout)) goto LA24_;
1319 tmspec.tv_sec = (NI)(timeout / ((NI) 1000));
1320 T26_ = (NI)0;
1321 T26_ = percentpercent___system_776(timeout, ((NI) 1000));
1322 tmspec.tv_nsec = (NI)(T26_ * ((NI) 1000000));
1323 }
1324 goto LA22_;
1325 LA24_: ;
1326 {
1327 tmspec.tv_sec = ((long) 0);
1328 tmspec.tv_nsec = (NI)(timeout * ((NI) 1000000));
1329 }
1330 LA22_: ;
1331 pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_12);
1332 TM__HZdw8BhppcTQo8DIK46LSg_12.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_12.context);
1333 if (TM__HZdw8BhppcTQo8DIK46LSg_12.status == 0) {
1334 {
1335 while (1) {
1336 int status_2;
1337 int count;
1338 status_2 = ((int) 1);
1339 count = kevent(kqFD, (&kevIn), ((int) 1), (&kevOut), ((int) 1), (&tmspec));
1340 {
1341 NI32 err;
1342 if (!(count < ((NI32) 0))) goto LA32_;
1343 err = osLastError__pureZos_408();
1344 {
1345 NI32 T38_;
1346 if (!!((err == EINTR))) goto LA36_;
1347 T38_ = (NI32)0;
1348 T38_ = osLastError__pureZos_408();
1349 raiseOSError__pureZos_405(T38_, ((NimStringDesc*) NIM_NIL));
1350 }
1351 LA36_: ;
1352 }
1353 goto LA30_;
1354 LA32_: ;
1355 {
1356 if (!(count == ((NI32) 0))) goto LA40_;
1357 {
1358 int T44_;
1359 NI32 T47_;
1360 T44_ = (int)0;
1361 T44_ = kill((*p).id, SIGKILL);
1362 if (!(T44_ == ((NI32) -1))) goto LA45_;
1363 T47_ = (NI32)0;
1364 T47_ = osLastError__pureZos_408();
1365 raiseOSError__pureZos_405(T47_, ((NimStringDesc*) NIM_NIL));
1366 }
1367 LA45_: ;
1368 {
1369 pid_t T50_;
1370 NI32 T53_;
1371 T50_ = (pid_t)0;
1372 T50_ = waitpid((*p).id, (&status_2), ((int) 0));
1373 if (!(T50_ < ((NI32) 0))) goto LA51_;
1374 T53_ = (NI32)0;
1375 T53_ = osLastError__pureZos_408();
1376 raiseOSError__pureZos_405(T53_, ((NimStringDesc*) NIM_NIL));
1377 }
1378 LA51_: ;
1379 (*p).exitFlag = NIM_TRUE;
1380 (*p).exitStatus = status_2;
1381 goto LA28;
1382 }
1383 goto LA30_;
1384 LA40_: ;
1385 {
1386 {
1387 NIM_BOOL T57_;
1388 T57_ = (NIM_BOOL)0;
1389 T57_ = (kevOut.ident == ((NU) ((*p).id)));
1390 if (!(T57_)) goto LA58_;
1391 T57_ = (kevOut.filter == ((NI16) -5));
1392 LA58_: ;
1393 if (!T57_) goto LA59_;
1394 {
1395 pid_t T63_;
1396 NI32 T66_;
1397 T63_ = (pid_t)0;
1398 T63_ = waitpid((*p).id, (&status_2), ((int) 0));
1399 if (!(T63_ < ((NI32) 0))) goto LA64_;
1400 T66_ = (NI32)0;
1401 T66_ = osLastError__pureZos_408();
1402 raiseOSError__pureZos_405(T66_, ((NimStringDesc*) NIM_NIL));
1403 }
1404 LA64_: ;
1405 (*p).exitFlag = NIM_TRUE;
1406 (*p).exitStatus = status_2;
1407 goto LA28;
1408 }
1409 goto LA55_;
1410 LA59_: ;
1411 {
1412 NI32 T68_;
1413 T68_ = (NI32)0;
1414 T68_ = osLastError__pureZos_408();
1415 raiseOSError__pureZos_405(T68_, ((NimStringDesc*) NIM_NIL));
1416 }
1417 LA55_: ;
1418 }
1419 LA30_: ;
1420 }
1421 } LA28: ;
1422 popSafePoint();
1423 }
1424 else {
1425 popSafePoint();
1426 }
1427 {
1428 int T71_;
1429 T71_ = (int)0;
1430 T71_ = close(kqFD);
1431 (void)(T71_);
1432 if (TM__HZdw8BhppcTQo8DIK46LSg_12.status != 0) nimLeaveFinally();
1433 }
1434 if (TM__HZdw8BhppcTQo8DIK46LSg_12.status != 0) reraiseException();
1435 }
1436 LA6_: ;
1437 T72_ = (int)0;
1438 T72_ = exitStatusLikeShell__pureZos_1127((*p).exitStatus);
1439 result = ((NI) (T72_));
1440 }BeforeRet_: ;
1441 return result;
1442 }
N_NIMCALL(void,nospclose)1443 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1444 {
1445 if (!!((((*p).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
1446 {
1447 if (!!(((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA7_;
1448 close__pureZstreams_57((*p).inStream);
1449 }
1450 goto LA5_;
1451 LA7_: ;
1452 {
1453 int T10_;
1454 T10_ = (int)0;
1455 T10_ = close((*p).inHandle);
1456 (void)(T10_);
1457 }
1458 LA5_: ;
1459 {
1460 if (!!(((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA13_;
1461 close__pureZstreams_57((*p).outStream);
1462 }
1463 goto LA11_;
1464 LA13_: ;
1465 {
1466 int T16_;
1467 T16_ = (int)0;
1468 T16_ = close((*p).outHandle);
1469 (void)(T16_);
1470 }
1471 LA11_: ;
1472 {
1473 if (!!(((*p).errStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA19_;
1474 close__pureZstreams_57((*p).errStream);
1475 }
1476 goto LA17_;
1477 LA19_: ;
1478 {
1479 int T22_;
1480 T22_ = (int)0;
1481 T22_ = close((*p).errHandle);
1482 (void)(T22_);
1483 }
1484 LA17_: ;
1485 }
1486 LA3_: ;
1487 }
N_NIMCALL(NIM_BOOL,isExitStatus__pureZosproc_306)1488 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status) {
1489 NIM_BOOL result;
1490 NIM_BOOL T1_;
1491 result = (NIM_BOOL)0;
1492 T1_ = (NIM_BOOL)0;
1493 T1_ = WIFEXITED(status);
1494 if (T1_) goto LA2_;
1495 T1_ = WIFSIGNALED(status);
1496 LA2_: ;
1497 result = T1_;
1498 return result;
1499 }
N_NIMCALL(NI,nosppeekExitCode)1500 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1501 NI result;
1502 int status;
1503 pid_t ret;
1504 { result = (NI)0;
1505 status = ((int) 0);
1506 result = ((NI) -1);
1507 {
1508 int T5_;
1509 if (!(*p).exitFlag) goto LA3_;
1510 T5_ = (int)0;
1511 T5_ = exitStatusLikeShell__pureZos_1127((*p).exitStatus);
1512 result = ((NI) (T5_));
1513 goto BeforeRet_;
1514 }
1515 LA3_: ;
1516 ret = waitpid((*p).id, (&status), WNOHANG);
1517 {
1518 if (!(((NI32) 0) < ret)) goto LA8_;
1519 {
1520 NIM_BOOL T12_;
1521 int T15_;
1522 T12_ = (NIM_BOOL)0;
1523 T12_ = isExitStatus__pureZosproc_306(status);
1524 if (!T12_) goto LA13_;
1525 (*p).exitFlag = NIM_TRUE;
1526 (*p).exitStatus = status;
1527 T15_ = (int)0;
1528 T15_ = exitStatusLikeShell__pureZos_1127(status);
1529 result = ((NI) (T15_));
1530 }
1531 LA13_: ;
1532 }
1533 LA8_: ;
1534 }BeforeRet_: ;
1535 return result;
1536 }
N_NIMCALL(void,execCmdEx__pureZosproc_1149)1537 N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1149)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
1538 tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1539 tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
1540 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
1541 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
1542 NimStringDesc* colontmp_;
1543 NI colontmp__2;
1544 NimStringDesc* line;
1545 nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1546 p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
1547 outp = nospoutputStream(p);
1548 {
1549 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
1550 if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
1551 T6_ = NIM_NIL;
1552 T6_ = nospinputStream(p);
1553 write__pureZstreams_177(T6_, input);
1554 }
1555 LA4_: ;
1556 T7_ = NIM_NIL;
1557 T7_ = nospinputStream(p);
1558 close__pureZstreams_57(T7_);
1559 colontmp_ = ((NimStringDesc*) NIM_NIL);
1560 colontmp__2 = ((NI) -1);
1561 unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
1562 (*Result).Field1 = colontmp__2;
1563 line = rawNewString(((NI) 120));
1564 {
1565 while (1) {
1566 {
1567 NIM_BOOL T12_;
1568 T12_ = (NIM_BOOL)0;
1569 T12_ = readLine__pureZstreams_524(outp, (&line));
1570 if (!T12_) goto LA13_;
1571 unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0));
1572 appendString((*Result).Field0, line);
1573 unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, 1));
1574 appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_13));
1575 }
1576 goto LA10_;
1577 LA13_: ;
1578 {
1579 (*Result).Field1 = nosppeekExitCode(p);
1580 {
1581 if (!!(((*Result).Field1 == ((NI) -1)))) goto LA18_;
1582 goto LA8;
1583 }
1584 LA18_: ;
1585 }
1586 LA10_: ;
1587 }
1588 } LA8: ;
1589 nospclose(p);
1590 }
N_NIMCALL(NI,nospexecCmd)1591 N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command) {
1592 NI result;
1593 int T1_;
1594 result = (NI)0;
1595 T1_ = (int)0;
1596 T1_ = system(nimToCStringConv(command));
1597 result = ((NI) (T1_));
1598 return result;
1599 }
N_NIMCALL(NI,nospcountProcessors)1600 N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void) {
1601 NI result;
1602 result = (NI)0;
1603 result = ncpicountProcessors();
1604 return result;
1605 }
N_NIMCALL(void,Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)1606 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op) {
1607 tySequence__PrBYolTs4TOSgE8v5oqDUQ* a;
1608 NI T1_;
1609 a = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*)p;
1610 T1_ = (NI)0;
1611 for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
1612 nimGCvisit((void*)a->data[T1_], op);
1613 }
1614 }
N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ *,newSeq__pureZosproc_120)1615 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len) {
1616 tySequence__PrBYolTs4TOSgE8v5oqDUQ* result;
1617 result = NIM_NIL;
1618 result = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*) newSeq((&NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_), len);
1619 return result;
1620 }
N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g *,newSeq__pureZosproc_151)1621 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len) {
1622 tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
1623 result = NIM_NIL;
1624 result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
1625 return result;
1626 }
N_NIMCALL(NIM_BOOL,nosprunning)1627 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1628 NIM_BOOL result;
1629 { result = (NIM_BOOL)0;
1630 {
1631 if (!(*p).exitFlag) goto LA3_;
1632 result = NIM_FALSE;
1633 goto BeforeRet_;
1634 }
1635 goto LA1_;
1636 LA3_: ;
1637 {
1638 int status;
1639 pid_t ret;
1640 status = ((int) 1);
1641 ret = waitpid((*p).id, (&status), WNOHANG);
1642 {
1643 if (!(((NI) (ret)) == ((NI) ((*p).id)))) goto LA8_;
1644 {
1645 NIM_BOOL T12_;
1646 T12_ = (NIM_BOOL)0;
1647 T12_ = isExitStatus__pureZosproc_306(status);
1648 if (!T12_) goto LA13_;
1649 (*p).exitFlag = NIM_TRUE;
1650 (*p).exitStatus = status;
1651 result = NIM_FALSE;
1652 goto BeforeRet_;
1653 }
1654 goto LA10_;
1655 LA13_: ;
1656 {
1657 result = NIM_TRUE;
1658 goto BeforeRet_;
1659 }
1660 LA10_: ;
1661 }
1662 goto LA6_;
1663 LA8_: ;
1664 {
1665 if (!(ret == ((NI32) 0))) goto LA17_;
1666 result = NIM_TRUE;
1667 goto BeforeRet_;
1668 }
1669 goto LA6_;
1670 LA17_: ;
1671 {
1672 NI32 T20_;
1673 T20_ = (NI32)0;
1674 T20_ = osLastError__pureZos_408();
1675 raiseOSError__pureZos_405(T20_, ((NimStringDesc*) NIM_NIL));
1676 }
1677 LA6_: ;
1678 }
1679 LA1_: ;
1680 }BeforeRet_: ;
1681 return result;
1682 }
N_NIMCALL(NI,nospexecProcesses)1683 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) {
1684 NI result;
1685 result = (NI)0;
1686 {
1687 NI i;
1688 tySequence__PrBYolTs4TOSgE8v5oqDUQ* q;
1689 tySequence__qwqHTkRvwhrRyENtudHQ7g* idxs;
1690 NI m;
1691 NI ecount;
1692 if (!(((NI) 1) < n)) goto LA3_;
1693 i = ((NI) 0);
1694 q = newSeq__pureZosproc_120(((NI) (n)));
1695 idxs = newSeq__pureZosproc_151(((NI) (n)));
1696 m = ((n <= cmdsLen_0) ? n : cmdsLen_0);
1697 {
1698 while (1) {
1699 tyArray__8ZvwQIddfpj2THRVPsFzIQ T11_;
1700 if (!(i < m)) goto LA6;
1701 {
1702 if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClE_0))) goto LA9_;
1703 beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_15)(beforeRunEvent.ClP_0))(i);
1704 }
1705 LA9_: ;
1706 nimZeroMem((void*)T11_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1707 asgnRef((void**) (&q->data[i]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T11_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1708 idxs->data[i] = i;
1709 i += ((NI) 1);
1710 } LA6: ;
1711 }
1712 ecount = cmdsLen_0;
1713 {
1714 while (1) {
1715 if (!(((NI) 0) < ecount)) goto LA13;
1716 {
1717 NI rexit;
1718 int status;
1719 pid_t res;
1720 rexit = ((NI) -1);
1721 status = ((int) 1);
1722 res = waitpid(((pid_t) -1), (&status), ((int) 0));
1723 {
1724 if (!(((NI32) 0) < res)) goto LA17_;
1725 {
1726 NI r;
1727 NI colontmp_;
1728 NI res_2;
1729 r = (NI)0;
1730 colontmp_ = (NI)0;
1731 colontmp_ = (NI)(m - ((NI) 1));
1732 res_2 = ((NI) 0);
1733 {
1734 while (1) {
1735 if (!(res_2 <= colontmp_)) goto LA21;
1736 r = res_2;
1737 {
1738 NIM_BOOL T24_;
1739 T24_ = (NIM_BOOL)0;
1740 T24_ = !((q->data[r] == 0));
1741 if (!(T24_)) goto LA25_;
1742 T24_ = ((*q->data[r]).id == res);
1743 LA25_: ;
1744 if (!T24_) goto LA26_;
1745 {
1746 NIM_BOOL T30_;
1747 T30_ = (NIM_BOOL)0;
1748 T30_ = WIFEXITED(status);
1749 if (T30_) goto LA31_;
1750 T30_ = WIFSIGNALED(status);
1751 LA31_: ;
1752 if (!T30_) goto LA32_;
1753 (*q->data[r]).exitFlag = NIM_TRUE;
1754 (*q->data[r]).exitStatus = status;
1755 rexit = r;
1756 goto LA19;
1757 }
1758 LA32_: ;
1759 }
1760 LA26_: ;
1761 res_2 += ((NI) 1);
1762 } LA21: ;
1763 }
1764 } LA19: ;
1765 }
1766 goto LA15_;
1767 LA17_: ;
1768 {
1769 NI32 err;
1770 err = osLastError__pureZos_408();
1771 {
1772 if (!(err == ECHILD)) goto LA37_;
1773 {
1774 NI r_2;
1775 NI colontmp__2;
1776 NI res_3;
1777 r_2 = (NI)0;
1778 colontmp__2 = (NI)0;
1779 colontmp__2 = (NI)(m - ((NI) 1));
1780 res_3 = ((NI) 0);
1781 {
1782 while (1) {
1783 if (!(res_3 <= colontmp__2)) goto LA41;
1784 r_2 = res_3;
1785 {
1786 NIM_BOOL T44_;
1787 NIM_BOOL T46_;
1788 T44_ = (NIM_BOOL)0;
1789 T44_ = !((q->data[r_2] == 0));
1790 if (!(T44_)) goto LA45_;
1791 T46_ = (NIM_BOOL)0;
1792 T46_ = nosprunning(q->data[r_2]);
1793 T44_ = !(T46_);
1794 LA45_: ;
1795 if (!T44_) goto LA47_;
1796 (*q->data[r_2]).exitFlag = NIM_TRUE;
1797 (*q->data[r_2]).exitStatus = status;
1798 rexit = r_2;
1799 goto LA39;
1800 }
1801 LA47_: ;
1802 res_3 += ((NI) 1);
1803 } LA41: ;
1804 }
1805 } LA39: ;
1806 }
1807 goto LA35_;
1808 LA37_: ;
1809 {
1810 if (!(err == EINTR)) goto LA50_;
1811 goto LA14;
1812 }
1813 goto LA35_;
1814 LA50_: ;
1815 {
1816 raiseOSError__pureZos_405(err, ((NimStringDesc*) NIM_NIL));
1817 }
1818 LA35_: ;
1819 }
1820 LA15_: ;
1821 {
1822 NI T57_;
1823 if (!(((NI) 0) <= rexit)) goto LA55_;
1824 T57_ = (NI)0;
1825 T57_ = nosppeekExitCode(q->data[rexit]);
1826 result = ((result >= (T57_ > 0? (T57_) : -(T57_))) ? result : (T57_ > 0? (T57_) : -(T57_)));
1827 {
1828 if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_16.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_16.ClE_0))) goto LA60_;
1829 afterRunEvent.ClE_0? afterRunEvent.ClP_0(idxs->data[rexit], q->data[rexit], afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_17)(afterRunEvent.ClP_0))(idxs->data[rexit], q->data[rexit]);
1830 }
1831 LA60_: ;
1832 nospclose(q->data[rexit]);
1833 {
1834 tyArray__8ZvwQIddfpj2THRVPsFzIQ T70_;
1835 if (!(i < cmdsLen_0)) goto LA64_;
1836 {
1837 if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClE_0))) goto LA68_;
1838 beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_18)(beforeRunEvent.ClP_0))(i);
1839 }
1840 LA68_: ;
1841 nimZeroMem((void*)T70_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1842 asgnRef((void**) (&q->data[rexit]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T70_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1843 idxs->data[rexit] = i;
1844 i += ((NI) 1);
1845 }
1846 goto LA62_;
1847 LA64_: ;
1848 {
1849 asgnRef((void**) (&q->data[rexit]), ((tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) NIM_NIL));
1850 }
1851 LA62_: ;
1852 ecount -= ((NI) 1);
1853 }
1854 LA55_: ;
1855 } LA14: ;
1856 } LA13: ;
1857 }
1858 }
1859 goto LA1_;
1860 LA3_: ;
1861 {
1862 {
1863 NI i_2;
1864 NI colontmp__3;
1865 NI res_4;
1866 i_2 = (NI)0;
1867 colontmp__3 = (NI)0;
1868 colontmp__3 = (cmdsLen_0-1);
1869 res_4 = ((NI) 0);
1870 {
1871 while (1) {
1872 tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1873 tyArray__8ZvwQIddfpj2THRVPsFzIQ T80_;
1874 NI T81_;
1875 if (!(res_4 <= colontmp__3)) goto LA75;
1876 i_2 = res_4;
1877 {
1878 if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_14.ClE_0))) goto LA78_;
1879 beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i_2, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_19)(beforeRunEvent.ClP_0))(i_2);
1880 }
1881 LA78_: ;
1882 nimZeroMem((void*)T80_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1883 p = nospstartProcess(cmds[i_2], ((NimStringDesc*) NIM_NIL), T80_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
1884 T81_ = (NI)0;
1885 T81_ = nospwaitForExit(p, ((NI) -1));
1886 result = (((T81_ > 0? (T81_) : -(T81_)) >= result) ? (T81_ > 0? (T81_) : -(T81_)) : result);
1887 {
1888 if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_16.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_16.ClE_0))) goto LA84_;
1889 afterRunEvent.ClE_0? afterRunEvent.ClP_0(i_2, p, afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_20)(afterRunEvent.ClP_0))(i_2, p);
1890 }
1891 LA84_: ;
1892 nospclose(p);
1893 res_4 += ((NI) 1);
1894 } LA75: ;
1895 }
1896 }
1897 }
1898 LA1_: ;
1899 return result;
1900 }
N_NIMCALL(void,stdlib_osprocDatInit000)1901 N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {
1902 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_10[10];
1903 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
1904 NI TM__HZdw8BhppcTQo8DIK46LSg_5;
1905 static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
1906 "poEchoCmd",
1907 "poUsePath",
1908 "poEvalCommand",
1909 "poStdErrToStdOut",
1910 "poParentStreams",
1911 "poInteractive",
1912 "poDaemon"};
1913 static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[20];
1914 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1915 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1916 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
1917 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
1918 TM__HZdw8BhppcTQo8DIK46LSg_2_10[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
1919 TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
1920 TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
1921 TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1922 TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
1923 TM__HZdw8BhppcTQo8DIK46LSg_2_10[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
1924 TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
1925 TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
1926 TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1927 TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
1928 TM__HZdw8BhppcTQo8DIK46LSg_2_10[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
1929 TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
1930 TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
1931 TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1932 TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
1933 TM__HZdw8BhppcTQo8DIK46LSg_2_10[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
1934 TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
1935 TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
1936 TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_);
1937 TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "id";
1938 TM__HZdw8BhppcTQo8DIK46LSg_2_10[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
1939 TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
1940 TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
1941 TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1942 TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "inStream";
1943 TM__HZdw8BhppcTQo8DIK46LSg_2_10[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
1944 TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
1945 TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
1946 TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1947 TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "outStream";
1948 TM__HZdw8BhppcTQo8DIK46LSg_2_10[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
1949 TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
1950 TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
1951 TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1952 TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "errStream";
1953 TM__HZdw8BhppcTQo8DIK46LSg_2_10[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
1954 TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
1955 TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
1956 TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
1957 TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
1958 TM__HZdw8BhppcTQo8DIK46LSg_2_10[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
1959 TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
1960 TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
1961 TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
1962 TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "exitFlag";
1963 TM__HZdw8BhppcTQo8DIK46LSg_2_10[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
1964 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1965 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1966 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
1967 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
1968 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
1969 for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
1970 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].kind = 1;
1971 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
1972 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
1973 TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11];
1974 }
1975 TM__HZdw8BhppcTQo8DIK46LSg_0[18].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[18].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[18].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
1976 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[18];
1977 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1978 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1979 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
1980 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_);
1981 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
1982 TM__HZdw8BhppcTQo8DIK46LSg_0[19].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[19].kind = 0;
1983 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[19];
1984 TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
1985 TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
1986 TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
1987 TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "options";
1988 TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 10; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_10[0];
1989 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
1990 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1991 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1992 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
1993 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
1994 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
1995 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.size = sizeof(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
1996 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.align = NIM_ALIGNOF(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
1997 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.kind = 24;
1998 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.base = (&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_);
1999 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.marker = Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ;
2000 }
2001
2002