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