/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ /* Compiled for: Linux, amd64, gcc */ /* Command for C compiler: gcc -c -w -I/afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/lib -o tools/nimcache/stdlib_os.o tools/nimcache/stdlib_os.c */ #define NIM_INTBITS 64 #include "nimbase.h" #include #include #include #include #include #include #include #undef linux typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct Indexerror_b0IIwghFQBADkB2c86kXQA Indexerror_b0IIwghFQBADkB2c86kXQA; typedef struct Exception Exception; typedef struct TNimObject TNimObject; typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g; typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w; typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ; typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA; typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg; typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ; typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw; typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg; typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA; typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw; typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw; typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg; typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ; typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg; typedef struct TY_7q7q3E6Oj24ZNVJb9aonhAg TY_7q7q3E6Oj24ZNVJb9aonhAg; typedef struct Oserror_3XwRQvmzCEOC4QnT706q1g Oserror_3XwRQvmzCEOC4QnT706q1g; typedef struct Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set; typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0); typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0); struct TNimType { NI size; Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind; Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags; TNimType* base; TNimNode* node; void* finalizer; TY_ojoeKfW4VYIm36I9cpDTQIg marker; TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; typedef N_NIMCALL_PTR(void, TY_T4eqaYlFJYZUv9aG9b1TV0bQ) (void); struct TNimObject { TNimType* m_type; }; struct Exception { TNimObject Sup; Exception* parent; NCSTRING name; NimStringDesc* message; NimStringDesc* trace; }; struct Indexerror_b0IIwghFQBADkB2c86kXQA { Exception Sup; }; struct Cell_1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct Cellseq_Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; Cell_1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512]; typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256]; struct Intset_EZObFrE3NC9bIb3YMkY9crZA { TY_lh2A89ahMmYg9bCmpVaplLbA data; }; struct Memregion_x81NhDv59b8ercDZ9bi85jyg { NI minlargeobj; NI maxlargeobj; TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks; Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem; NI currmem; NI maxmem; NI freemem; NI lastsize; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist; Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes; NIM_BOOL locked; NIM_BOOL blockchunksizeincrease; NI nextchunksize; }; struct Gcstat_0RwLoVBHZPfUAcLczmfQAg { NI stackscans; NI cyclecollections; NI maxthreshold; NI maxstacksize; NI maxstackcells; NI cycletablesize; NI64 maxpause; }; struct Cellset_jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; Pagedesc_fublkgIY4LG3mT51LU2WHg* head; Pagedesc_fublkgIY4LG3mT51LU2WHg** data; }; struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ { Gcstack_7fytPA5bBsob6See21YMRA* stack; void* stackbottom; NI cyclethreshold; Cellseq_Axo1XVm9aaQueTOldv8le5w zct; Cellseq_Axo1XVm9aaQueTOldv8le5w decstack; Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack; NI recgclock; Memregion_x81NhDv59b8ercDZ9bi85jyg region; Gcstat_0RwLoVBHZPfUAcLczmfQAg stat; Cellset_jG87P0AI9aZtss9ccTYBIISQ marked; Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots; }; struct TY_7q7q3E6Oj24ZNVJb9aonhAg { NimStringDesc* Field0; NimStringDesc* Field1; NimStringDesc* Field2; }; typedef NU8 Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg; struct Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg { Exception Sup; }; struct Oserror_3XwRQvmzCEOC4QnT706q1g { Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup; NI32 errorcode; }; struct Gcstack_7fytPA5bBsob6See21YMRA { Gcstack_7fytPA5bBsob6See21YMRA* prev; Gcstack_7fytPA5bBsob6See21YMRA* next; void* starts; void* pos; NI maxstacksize; }; struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w { NI prevsize; NI size; NIM_BOOL used; }; struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev; Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist; NI free; NI acc; NF data; }; struct Llchunk_XsENErzHIZV9bhvyJx56wGw { NI size; NI acc; Llchunk_XsENErzHIZV9bhvyJx56wGw* next; }; struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev; NI align; NF data; }; typedef NI TY_9a8QARi5WsUggNU9bom7kzTQ[8]; struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw { Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next; NI key; TY_9a8QARi5WsUggNU9bom7kzTQ bits; }; typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2]; struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw { TY_0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperbound; NI level; }; struct Pagedesc_fublkgIY4LG3mT51LU2WHg { Pagedesc_fublkgIY4LG3mT51LU2WHg* next; NI key; TY_9a8QARi5WsUggNU9bom7kzTQ bits; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; struct TY_sM4lkSb7zS6F7OVMvW9cffQ { TGenericSeq Sup; NimStringDesc* data[SEQ_DECL_SIZE]; }; N_NIMCALL(void, nimGCvisit)(void* d0, NI op0); static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void); N_NIMCALL(void, nimRegisterGlobalMarker)(TY_T4eqaYlFJYZUv9aG9b1TV0bQ markerproc0); static N_INLINE(NimStringDesc*, pop_9cDsfK2acP02vJ9bhxIE9caEAos)(TY_sM4lkSb7zS6F7OVMvW9cffQ** s0); static N_INLINE(NI, subInt)(NI a0, NI b0); N_NOINLINE(void, raiseOverflow)(void); N_NOINLINE(void, raiseIndexError)(void); N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0); static N_INLINE(NI, chckRange)(NI i0, NI a0, NI b0); N_NOINLINE(void, raiseRangeError)(NI64 val0); N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0); static N_INLINE(void, nimFrame)(TFrame* s0); N_NOINLINE(void, stackoverflow_II46IjNZztN9bmbxUD8dt8g)(void); static N_INLINE(void, popFrame)(void); N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0); N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0); N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0); static N_INLINE(void, nimGCunrefNoCycle)(void* p0); static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0); static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0); N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0); N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void); N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0); static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem)(NCSTRING x0, NCSTRING y0); N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0); static N_INLINE(NI, addInt)(NI a0, NI b0); static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0); static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0); static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0); N_NIMCALL(NimStringDesc*, rawNewString)(NI space0); N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s0, NimStringDesc* prefix0); N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0); N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0); N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0); N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0); N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0); N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0); N_NIMCALL(NI, cmp_xEnKsp9cfvO7Do9cTYXo8eJw)(NimStringDesc* x0, NimStringDesc* y0); N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringDesc* a0, NimStringDesc* b0); N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0); N_NIMCALL(void, failedassertimpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg0); N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0); N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0); static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0); N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void); N_NIMCALL(NimStringDesc*, mnewString)(NI len0); N_NIMCALL(NimStringDesc*, mnewString)(NI len0); N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0); N_NOINLINE(void, raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2)(NimStringDesc* msg0); NIM_BOOL envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ; TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g; extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ; extern NCSTRING* environ; extern TFrame* frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw; extern int cmdCount; extern NCSTRING* cmdLine; extern TNimType NTI_z58cIdR0vOibqJ0QwYvB3Q; extern TNimType NTI_b0IIwghFQBADkB2c86kXQA; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; extern TNimType NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA; extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g; STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_5, "invalid index", 13); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_9, "", 0); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_18, "\012 not (path == \"\") ", 20); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_19, "\012Additional info: ", 18); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_20, "unknown OS error", 16); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_21, "\012 0 <= bufsize ", 16); static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void) { nimGCvisit((void*)environment_mlhK49b6YMgc9cgrcYkKq9a3g, 0); } static N_INLINE(NI, subInt)(NI a0, NI b0) { NI result0; { result0 = (NI)0; result0 = (NI)((NU64)(a0) - (NU64)(b0)); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (((NI) 0) <= (NI)(result0 ^ a0)); if (LOC3) goto LA4; LOC3 = (((NI) 0) <= (NI)(result0 ^ (NI)((NU64) ~(b0)))); LA4: ; if (!LOC3) goto LA5; goto BeforeRet; } LA5: ; raiseOverflow(); }BeforeRet: ; return result0; } static N_INLINE(NI, chckRange)(NI i0, NI a0, NI b0) { NI result0; { result0 = (NI)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (a0 <= i0); if (!(LOC3)) goto LA4; LOC3 = (i0 <= b0); LA4: ; if (!LOC3) goto LA5; result0 = i0; goto BeforeRet; } goto LA1; LA5: ; { raiseRangeError(((NI64) (i0))); } LA1: ; }BeforeRet: ; return result0; } static N_INLINE(void, nimFrame)(TFrame* s0) { NI LOC1; LOC1 = (NI)0; { if (!(frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4; LOC1 = ((NI) 0); } goto LA2; LA4: ; { LOC1 = ((NI) ((NI16)((*frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1)))); } LA2: ; (*s0).calldepth = ((NI16) (LOC1)); (*s0).prev = frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw; frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw = s0; { if (!((*s0).calldepth == ((NI16) 2000))) goto LA9; stackoverflow_II46IjNZztN9bmbxUD8dt8g(); } LA9: ; } static N_INLINE(void, popFrame)(void) { frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw = (*frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw).prev; } static N_INLINE(NimStringDesc*, pop_9cDsfK2acP02vJ9bhxIE9caEAos)(TY_sM4lkSb7zS6F7OVMvW9cffQ** s0) { NimStringDesc* result0; NI L0; NI T_yu6cxgKBBXbNsTkT9cyMd4g_3; nimfr("pop", "system.nim") result0 = (NimStringDesc*)0; nimln(2245, "system.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_3 = subInt(((*s0) ? (*s0)->Sup.len : 0), ((NI) 1)); L0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_3); nimln(2246, "system.nim"); if ((NU)(L0) >= (NU)((*s0)->Sup.len)) raiseIndexError(); result0 = copyString((*s0)->data[L0]); nimln(2247, "system.nim"); (*s0) = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeq(&((*s0))->Sup, sizeof(NimStringDesc*), ((NI)chckRange(L0, ((NI) 0), ((NI) IL64(9223372036854775807))))); popFrame(); return result0; } N_NIMCALL(NI, paramcount_T74rCHY8RMV0X07YnKmggw)(void) { NI result0; NI T_yu6cxgKBBXbNsTkT9cyMd4g_4; nimfr("paramCount", "os.nim") result0 = (NI)0; nimln(1443, "os.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_4 = subInt(cmdCount, ((NI32) 1)); if (T_yu6cxgKBBXbNsTkT9cyMd4g_4 < (-2147483647 -1) || T_yu6cxgKBBXbNsTkT9cyMd4g_4 > 2147483647) raiseOverflow(); result0 = ((NI) ((NI32)(T_yu6cxgKBBXbNsTkT9cyMd4g_4))); popFrame(); return result0; } static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0; nimfr("usrToCell", "gc.nim") result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0; nimln(134, "gc.nim"); result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g)))))); popFrame(); return result0; } static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) { nimfr("rtlAddZCT", "gc.nim") nimln(220, "gc.nim"); addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0); popFrame(); } static N_INLINE(void, nimGCunrefNoCycle)(void* p0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; nimfr("nimGCunrefNoCycle", "gc.nim") nimln(262, "gc.nim"); c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0); nimln(264, "gc.nim"); { (*c0).refcount -= ((NI) 8); if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3; nimln(265, "gc.nim"); rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA3: ; popFrame(); } N_NIMCALL(NimStringDesc*, paramstr_eYicl3uwirn1ppNz7OCowg)(NI i0) { NimStringDesc* result0; Indexerror_b0IIwghFQBADkB2c86kXQA* e_9c9avxASFO8rHZknrsDnVzEA; NimStringDesc* LOC7; nimfr("paramStr", "os.nim") { result0 = (NimStringDesc*)0; nimln(1438, "os.nim"); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (i0 < ((NI) (cmdCount))); if (!(LOC3)) goto LA4; LOC3 = (((NI) 0) <= i0); LA4: ; if (!LOC3) goto LA5; if ((NU)(i0) > (NU)(100000000)) raiseIndexError(); result0 = cstrToNimstr(cmdLine[(i0)- 0]); goto BeforeRet; } LA5: ; e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*)0; nimln(2560, "system.nim"); e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*) newObj((&NTI_z58cIdR0vOibqJ0QwYvB3Q), sizeof(Indexerror_b0IIwghFQBADkB2c86kXQA)); (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.Sup.m_type = (&NTI_b0IIwghFQBADkB2c86kXQA); nimln(2561, "system.nim"); LOC7 = (NimStringDesc*)0; LOC7 = (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message; (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_5)); if (LOC7) nimGCunrefNoCycle(LOC7); nimln(1439, "os.nim"); raiseException((Exception*)e_9c9avxASFO8rHZknrsDnVzEA, "IndexError"); }BeforeRet: ; popFrame(); return result0; } static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem)(NCSTRING x0, NCSTRING y0) { NIM_BOOL result0; nimfr("==", "system.nim") result0 = (NIM_BOOL)0; nimln(3706, "system.nim"); { if (!(((void*) (x0)) == ((void*) (y0)))) goto LA3; result0 = NIM_TRUE; } goto LA1; LA3: ; { NIM_BOOL LOC6; nimln(3707, "system.nim"); LOC6 = (NIM_BOOL)0; LOC6 = (x0 == 0); if (LOC6) goto LA7; LOC6 = (y0 == 0); LA7: ; if (!LOC6) goto LA8; result0 = NIM_FALSE; } goto LA1; LA8: ; { int LOC11; nimln(3708, "system.nim"); LOC11 = (int)0; LOC11 = strcmp(x0, y0); result0 = (LOC11 == ((NI32) 0)); } LA1: ; popFrame(); return result0; } static N_INLINE(NI, addInt)(NI a0, NI b0) { NI result0; { result0 = (NI)0; result0 = (NI)((NU64)(a0) + (NU64)(b0)); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (((NI) 0) <= (NI)(result0 ^ a0)); if (LOC3) goto LA4; LOC3 = (((NI) 0) <= (NI)(result0 ^ b0)); LA4: ; if (!LOC3) goto LA5; goto BeforeRet; } LA5: ; raiseOverflow(); }BeforeRet: ; return result0; } N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void) { nimfr("getEnvVarsC", "os.nim") nimln(751, "os.nim"); { NI i0; if (!!(envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ)) goto LA3; nimln(752, "os.nim"); if (environment_mlhK49b6YMgc9cgrcYkKq9a3g) nimGCunrefNoCycle(environment_mlhK49b6YMgc9cgrcYkKq9a3g); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeqRC1((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0); nimln(755, "os.nim"); i0 = ((NI) 0); { nimln(756, "os.nim"); while (1) { NimStringDesc* LOC12; NimStringDesc* LOC13; NI T_yu6cxgKBBXbNsTkT9cyMd4g_6; nimln(757, "os.nim"); { NIM_BOOL LOC9; if ((NU)(i0) > (NU)(100000000)) raiseIndexError(); LOC9 = (NIM_BOOL)0; LOC9 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(environ[(i0)- 0], NIM_NIL); if (!LOC9) goto LA10; goto LA5; } LA10: ; nimln(758, "os.nim"); if ((NU)(i0) > (NU)(100000000)) raiseIndexError(); LOC12 = (NimStringDesc*)0; LOC12 = cstrToNimstr(environ[(i0)- 0]); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*)); LOC13 = (NimStringDesc*)0; LOC13 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC12); if (LOC13) nimGCunrefNoCycle(LOC13); ++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len; nimln(759, "os.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_6 = addInt(i0, ((NI) 1)); i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_6); } } LA5: ; nimln(760, "os.nim"); envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ = NIM_TRUE; } LA3: ; popFrame(); } static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0) { void* LOC1; LOC1 = (void*)0; LOC1 = memcpy(dest0, source0, ((size_t) (size0))); } static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) { copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1))))); (*dest0).Sup.len += (*src0).Sup.len; } static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) { (*dest0).data[((*dest0).Sup.len)- 0] = c0; (*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0; (*dest0).Sup.len += ((NI) 1); } N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0) { NI result0; NimStringDesc* temp0; NimStringDesc* LOC1; nimfr("findEnvVar", "os.nim") { result0 = (NI)0; nimln(763, "os.nim"); getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA(); nimln(764, "os.nim"); LOC1 = (NimStringDesc*)0; LOC1 = rawNewString(key0->Sup.len + 1); appendString(LOC1, key0); appendChar(LOC1, 61); temp0 = LOC1; { NI i_QFpQyCBMTAf3RQiHRTCtRA; NI HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA; NI res_9cO4Qfuzy9c4z8ih7joizeqg; i_QFpQyCBMTAf3RQiHRTCtRA = (NI)0; HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (NI)0; nimln(765, "os.nim"); HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1); nimln(1908, "system.nim"); res_9cO4Qfuzy9c4z8ih7joizeqg = ((NI) 0); { nimln(1909, "system.nim"); while (1) { NI T_yu6cxgKBBXbNsTkT9cyMd4g_7; nimln(1908, "system.nim"); if (!(res_9cO4Qfuzy9c4z8ih7joizeqg <= HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA)) goto LA4; nimln(1910, "system.nim"); i_QFpQyCBMTAf3RQiHRTCtRA = res_9cO4Qfuzy9c4z8ih7joizeqg; nimln(766, "os.nim"); { NIM_BOOL LOC7; if ((NU)(i_QFpQyCBMTAf3RQiHRTCtRA) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError(); LOC7 = (NIM_BOOL)0; LOC7 = nsuStartsWith(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_QFpQyCBMTAf3RQiHRTCtRA], temp0); if (!LOC7) goto LA8; result0 = i_QFpQyCBMTAf3RQiHRTCtRA; goto BeforeRet; } LA8: ; nimln(1908, "system.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_7 = addInt(res_9cO4Qfuzy9c4z8ih7joizeqg, ((NI) 1)); res_9cO4Qfuzy9c4z8ih7joizeqg = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_7); } LA4: ; } } nimln(767, "os.nim"); result0 = ((NI) -1); goto BeforeRet; }BeforeRet: ; popFrame(); return result0; } N_NIMCALL(NimStringDesc*, getenv_8zNgT9bxx7m9cTt2TeVdTdIw)(NimStringDesc* key0) { NimStringDesc* result0; NI i0; nimfr("getEnv", "os.nim") { result0 = (NimStringDesc*)0; nimln(775, "os.nim"); i0 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0); nimln(776, "os.nim"); { NI LOC5; NI T_yu6cxgKBBXbNsTkT9cyMd4g_8; if (!(((NI) 0) <= i0)) goto LA3; nimln(777, "os.nim"); if ((NU)(i0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError(); if ((NU)(i0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError(); LOC5 = (NI)0; LOC5 = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], 61, ((NI) 0)); T_yu6cxgKBBXbNsTkT9cyMd4g_8 = addInt(LOC5, ((NI) 1)); result0 = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_8)); goto BeforeRet; } goto LA1; LA3: ; { NCSTRING env0; nimln(779, "os.nim"); env0 = getenv(key0->data); nimln(780, "os.nim"); { NIM_BOOL LOC9; LOC9 = (NIM_BOOL)0; LOC9 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(env0, NIM_NIL); if (!LOC9) goto LA10; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); goto BeforeRet; } LA10: ; nimln(781, "os.nim"); result0 = cstrToNimstr(env0); } LA1: ; }BeforeRet: ; popFrame(); return result0; } N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result) { nimfr("splitFile", "ospaths.nim") nimln(361, "ospaths.nim"); { NIM_BOOL LOC3; NI T_yu6cxgKBBXbNsTkT9cyMd4g_10; LOC3 = (NIM_BOOL)0; LOC3 = ((path0 ? path0->Sup.len : 0) == ((NI) 0)); if (LOC3) goto LA4; T_yu6cxgKBBXbNsTkT9cyMd4g_10 = subInt((path0 ? path0->Sup.len : 0), ((NI) 1)); if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_10)) > (NU)(path0->Sup.len)) raiseIndexError(); LOC3 = (((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_10)])) == ((NU8)(47)) || ((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_10)])) == ((NU8)(47))); LA4: ; if (!LOC3) goto LA5; nimln(362, "ospaths.nim"); unsureAsgnRef((void**) (&(*Result).Field0), copyString(path0)); unsureAsgnRef((void**) (&(*Result).Field1), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9))); unsureAsgnRef((void**) (&(*Result).Field2), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9))); } goto LA1; LA5: ; { NI seppos0; NI dotpos0; NI T_yu6cxgKBBXbNsTkT9cyMd4g_14; NI T_yu6cxgKBBXbNsTkT9cyMd4g_15; NI T_yu6cxgKBBXbNsTkT9cyMd4g_16; nimln(364, "ospaths.nim"); seppos0 = ((NI) -1); nimln(365, "ospaths.nim"); dotpos0 = (path0 ? path0->Sup.len : 0); { NI i_RvAXC8pcRrjQVcLzMy7Fhw; NI HEX3Atmp_yDPmQODHSEiGYJLOLrehCg; NI T_yu6cxgKBBXbNsTkT9cyMd4g_11; NI res_FD5o2nBImp9bjBTg5egPNBA; i_RvAXC8pcRrjQVcLzMy7Fhw = (NI)0; HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)0; nimln(366, "ospaths.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_11 = subInt((path0 ? path0->Sup.len : 0), ((NI) 1)); HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_11); nimln(1896, "system.nim"); res_FD5o2nBImp9bjBTg5egPNBA = HEX3Atmp_yDPmQODHSEiGYJLOLrehCg; { nimln(1897, "system.nim"); while (1) { NI T_yu6cxgKBBXbNsTkT9cyMd4g_13; nimln(366, "ospaths.nim"); if (!(((NI) 0) <= res_FD5o2nBImp9bjBTg5egPNBA)) goto LA10; nimln(1898, "system.nim"); i_RvAXC8pcRrjQVcLzMy7Fhw = res_FD5o2nBImp9bjBTg5egPNBA; nimln(367, "ospaths.nim"); { if ((NU)(i_RvAXC8pcRrjQVcLzMy7Fhw) > (NU)(path0->Sup.len)) raiseIndexError(); if (!((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw]) == (NU8)(46))) goto LA13; nimln(368, "ospaths.nim"); { NIM_BOOL LOC17; NIM_BOOL LOC18; NI T_yu6cxgKBBXbNsTkT9cyMd4g_12; LOC17 = (NIM_BOOL)0; LOC18 = (NIM_BOOL)0; LOC18 = (dotpos0 == (path0 ? path0->Sup.len : 0)); if (!(LOC18)) goto LA19; LOC18 = (((NI) 0) < i_RvAXC8pcRrjQVcLzMy7Fhw); LA19: ; LOC17 = LOC18; if (!(LOC17)) goto LA20; nimln(1130, "system.nim"); nimln(369, "ospaths.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_12 = subInt(i_RvAXC8pcRrjQVcLzMy7Fhw, ((NI) 1)); if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_12)) > (NU)(path0->Sup.len)) raiseIndexError(); LOC17 = !((((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_12)])) == ((NU8)(47)) || ((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_12)])) == ((NU8)(47)))); LA20: ; if (!LOC17) goto LA21; dotpos0 = i_RvAXC8pcRrjQVcLzMy7Fhw; } LA21: ; } goto LA11; LA13: ; { nimln(370, "ospaths.nim"); if ((NU)(i_RvAXC8pcRrjQVcLzMy7Fhw) > (NU)(path0->Sup.len)) raiseIndexError(); if (!(((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(47)) || ((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(47)))) goto LA24; nimln(371, "ospaths.nim"); seppos0 = i_RvAXC8pcRrjQVcLzMy7Fhw; nimln(372, "ospaths.nim"); goto LA8; } goto LA11; LA24: ; LA11: ; nimln(1896, "system.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_13 = subInt(res_FD5o2nBImp9bjBTg5egPNBA, ((NI) 1)); res_FD5o2nBImp9bjBTg5egPNBA = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_13); } LA10: ; } } LA8: ; nimln(373, "ospaths.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_14 = subInt(seppos0, ((NI) 1)); unsureAsgnRef((void**) (&(*Result).Field0), copyStrLast(path0, ((NI) 0), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_14))); nimln(374, "ospaths.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_15 = addInt(seppos0, ((NI) 1)); T_yu6cxgKBBXbNsTkT9cyMd4g_16 = subInt(dotpos0, ((NI) 1)); unsureAsgnRef((void**) (&(*Result).Field1), copyStrLast(path0, (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_15), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_16))); nimln(375, "ospaths.nim"); unsureAsgnRef((void**) (&(*Result).Field2), copyStr(path0, dotpos0)); } LA1: ; popFrame(); } N_NIMCALL(NI, noscmpPaths)(NimStringDesc* patha0, NimStringDesc* pathb0) { NI result0; nimfr("cmpPaths", "ospaths.nim") result0 = (NI)0; nimln(422, "ospaths.nim"); { if (!NIM_TRUE) goto LA3; nimln(423, "ospaths.nim"); result0 = cmp_xEnKsp9cfvO7Do9cTYXo8eJw(patha0, pathb0); } goto LA1; LA3: ; { nimln(429, "ospaths.nim"); result0 = nsuCmpIgnoreCase(patha0, pathb0); } LA1: ; popFrame(); return result0; } N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0) { NimStringDesc* result0; nimfr("joinPath", "ospaths.nim") result0 = (NimStringDesc*)0; nimln(197, "ospaths.nim"); { if (!((head0 ? head0->Sup.len : 0) == ((NI) 0))) goto LA3; nimln(198, "ospaths.nim"); result0 = copyString(tail0); } goto LA1; LA3: ; { NI T_yu6cxgKBBXbNsTkT9cyMd4g_17; nimln(199, "ospaths.nim"); T_yu6cxgKBBXbNsTkT9cyMd4g_17 = subInt((head0 ? head0->Sup.len : 0), ((NI) 1)); if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_17)) > (NU)(head0->Sup.len)) raiseIndexError(); if (!(((NU8)(head0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_17)])) == ((NU8)(47)) || ((NU8)(head0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_17)])) == ((NU8)(47)))) goto LA6; nimln(200, "ospaths.nim"); { NimStringDesc* LOC12; NimStringDesc* LOC13; if ((NU)(((NI) 0)) > (NU)(tail0->Sup.len)) raiseIndexError(); if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA10; nimln(201, "ospaths.nim"); LOC12 = (NimStringDesc*)0; LOC13 = (NimStringDesc*)0; LOC13 = copyStr(tail0, ((NI) 1)); LOC12 = rawNewString(head0->Sup.len + LOC13->Sup.len + 0); appendString(LOC12, head0); appendString(LOC12, LOC13); result0 = LOC12; } goto LA8; LA10: ; { NimStringDesc* LOC15; nimln(203, "ospaths.nim"); LOC15 = (NimStringDesc*)0; LOC15 = rawNewString(head0->Sup.len + tail0->Sup.len + 0); appendString(LOC15, head0); appendString(LOC15, tail0); result0 = LOC15; } LA8: ; } goto LA1; LA6: ; { nimln(205, "ospaths.nim"); { NimStringDesc* LOC21; if ((NU)(((NI) 0)) > (NU)(tail0->Sup.len)) raiseIndexError(); if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA19; nimln(206, "ospaths.nim"); LOC21 = (NimStringDesc*)0; LOC21 = rawNewString(head0->Sup.len + tail0->Sup.len + 0); appendString(LOC21, head0); appendString(LOC21, tail0); result0 = LOC21; } goto LA17; LA19: ; { NimStringDesc* LOC23; nimln(208, "ospaths.nim"); LOC23 = (NimStringDesc*)0; LOC23 = rawNewString(head0->Sup.len + tail0->Sup.len + 1); appendString(LOC23, head0); appendChar(LOC23, 47); appendString(LOC23, tail0); result0 = LOC23; } LA17: ; } LA1: ; popFrame(); return result0; } N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0) { NimStringDesc* result0; nimfr("/", "ospaths.nim") { result0 = (NimStringDesc*)0; nimln(229, "ospaths.nim"); result0 = nosjoinPath(head0, tail0); goto BeforeRet; }BeforeRet: ; popFrame(); return result0; } N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0) { NIM_BOOL result0; struct stat res0; NIM_BOOL LOC1; int LOC2; nimfr("existsDir", "os.nim") { result0 = (NIM_BOOL)0; memset((void*)(&res0), 0, sizeof(res0)); nimln(229, "os.nim"); LOC1 = (NIM_BOOL)0; LOC2 = (int)0; LOC2 = stat(dir0->data, (&res0)); LOC1 = (((NI32) 0) <= LOC2); if (!(LOC1)) goto LA3; LOC1 = S_ISDIR(res0.st_mode); LA3: ; result0 = LOC1; goto BeforeRet; }BeforeRet: ; popFrame(); return result0; } N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0) { NimStringDesc* result0; nimfr("osErrorMsg", "os.nim") result0 = (NimStringDesc*)0; nimln(118, "os.nim"); result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); nimln(134, "os.nim"); { NCSTRING LOC5; nimln(347, "system.nim"); nimln(134, "os.nim"); if (!!((errorcode0 == ((NI32) 0)))) goto LA3; nimln(135, "os.nim"); LOC5 = (NCSTRING)0; LOC5 = strerror(errorcode0); result0 = cstrToNimstr(LOC5); } LA3: ; popFrame(); return result0; } static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) { nimfr("asgnRefNoCycle", "gc.nim") nimln(280, "gc.nim"); { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; nimln(347, "system.nim"); nimln(280, "gc.nim"); if (!!((src0 == NIM_NIL))) goto LA3; nimln(281, "gc.nim"); c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0); nimln(282, "gc.nim"); (*c0).refcount += ((NI) 8); } LA3: ; nimln(283, "gc.nim"); { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; nimln(347, "system.nim"); nimln(283, "gc.nim"); if (!!(((*dest0) == NIM_NIL))) goto LA7; nimln(284, "gc.nim"); c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0)); nimln(285, "gc.nim"); { (*c0).refcount -= ((NI) 8); if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA11; nimln(286, "gc.nim"); rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA11: ; } LA7: ; nimln(287, "gc.nim"); (*dest0) = src0; popFrame(); } N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0) { Oserror_3XwRQvmzCEOC4QnT706q1g* e0; nimfr("raiseOSError", "os.nim") e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*)0; nimln(145, "os.nim"); e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*) newObj((&NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA), sizeof(Oserror_3XwRQvmzCEOC4QnT706q1g)); (*e0).Sup.Sup.Sup.m_type = (&NTI_3XwRQvmzCEOC4QnT706q1g); nimln(146, "os.nim"); (*e0).errorcode = errorcode0; nimln(147, "os.nim"); { if (!((additionalinfo0 ? additionalinfo0->Sup.len : 0) == ((NI) 0))) goto LA3; nimln(148, "os.nim"); asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0)); } goto LA1; LA3: ; { NimStringDesc* LOC6; NimStringDesc* LOC7; nimln(150, "os.nim"); LOC6 = (NimStringDesc*)0; LOC7 = (NimStringDesc*)0; LOC7 = oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0); LOC6 = rawNewString(LOC7->Sup.len + additionalinfo0->Sup.len + 18); appendString(LOC6, LOC7); appendString(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_19)); appendString(LOC6, additionalinfo0); asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), LOC6); } LA1: ; nimln(151, "os.nim"); { NimStringDesc* LOC12; if (!(((*e0).Sup.Sup.message) && ((*e0).Sup.Sup.message)->Sup.len == 0)) goto LA10; nimln(152, "os.nim"); LOC12 = (NimStringDesc*)0; LOC12 = (*e0).Sup.Sup.message; (*e0).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_20)); if (LOC12) nimGCunrefNoCycle(LOC12); } LA10: ; nimln(153, "os.nim"); raiseException((Exception*)e0, "OSError"); popFrame(); } N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void) { NI32 result0; result0 = (NI32)0; result0 = errno; return result0; } N_NIMCALL(Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg, getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg)(NimStringDesc* path0) { Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg result0; struct stat s0; nimfr("getSymlinkFileKind", "os.nim") result0 = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0; memset((void*)(&s0), 0, sizeof(s0)); nimln(916, "os.nim"); { if (!!(!(((path0) && (path0)->Sup.len == 0)))) goto LA3; failedassertimpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_18)); } LA3: ; nimln(917, "os.nim"); { int LOC7; NI32 LOC10; LOC7 = (int)0; LOC7 = stat(path0->data, (&s0)); if (!(LOC7 < ((NI32) 0))) goto LA8; nimln(918, "os.nim"); LOC10 = (NI32)0; LOC10 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC10, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); } LA8: ; nimln(919, "os.nim"); { NIM_BOOL LOC13; LOC13 = (NIM_BOOL)0; LOC13 = S_ISDIR(s0.st_mode); if (!LOC13) goto LA14; nimln(920, "os.nim"); result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3); } goto LA11; LA14: ; { nimln(922, "os.nim"); result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1); } LA11: ; popFrame(); return result0; } N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0) { NIM_BOOL result0; struct stat res0; NIM_BOOL LOC1; int LOC2; nimfr("existsFile", "os.nim") { result0 = (NIM_BOOL)0; memset((void*)(&res0), 0, sizeof(res0)); nimln(215, "os.nim"); LOC1 = (NIM_BOOL)0; LOC2 = (int)0; LOC2 = stat(filename0->data, (&res0)); LOC1 = (((NI32) 0) <= LOC2); if (!(LOC1)) goto LA3; LOC1 = S_ISREG(res0.st_mode); LA3: ; result0 = LOC1; goto BeforeRet; }BeforeRet: ; popFrame(); return result0; } N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void) { NimStringDesc* result0; NI bufsize0; nimfr("getCurrentDir", "os.nim") result0 = (NimStringDesc*)0; nimln(335, "os.nim"); bufsize0 = ((NI) 1024); nimln(336, "os.nim"); result0 = mnewString(((NI)chckRange(bufsize0, ((NI) 0), ((NI) IL64(9223372036854775807))))); { nimln(337, "os.nim"); while (1) { nimln(338, "os.nim"); { NCSTRING LOC5; NIM_BOOL LOC6; int LOC9; nimln(347, "system.nim"); nimln(338, "os.nim"); LOC5 = (NCSTRING)0; LOC5 = getcwd(result0->data, bufsize0); LOC6 = (NIM_BOOL)0; LOC6 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(LOC5, NIM_NIL); if (!!(LOC6)) goto LA7; nimln(339, "os.nim"); LOC9 = (int)0; LOC9 = strlen(result0->data); result0 = setLengthStr(result0, ((NI)chckRange(LOC9, ((NI) 0), ((NI) IL64(9223372036854775807))))); nimln(340, "os.nim"); goto LA1; } goto LA3; LA7: ; { NI32 err0; nimln(342, "os.nim"); err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); nimln(343, "os.nim"); { if (!(err0 == ERANGE)) goto LA13; nimln(344, "os.nim"); bufsize0 = (NI)((NU64)(bufsize0) << (NU64)(((NI) 1))); nimln(345, "os.nim"); { if (!!((((NI) 0) <= bufsize0))) goto LA17; raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_21)); } LA17: ; nimln(346, "os.nim"); result0 = mnewString(((NI)chckRange(bufsize0, ((NI) 0), ((NI) IL64(9223372036854775807))))); } goto LA11; LA13: ; { NI32 LOC20; nimln(348, "os.nim"); LOC20 = (NI32)0; LOC20 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC20, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); } LA11: ; } LA3: ; } } LA1: ; popFrame(); return result0; } NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void) { nimfr("os", "os.nim") nimRegisterGlobalMarker(T_yu6cxgKBBXbNsTkT9cyMd4g_2); popFrame(); } NIM_EXTERNC N_NOINLINE(void, stdlib_osDatInit000)(void) { }