nim-lang / Nim

Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
https://nim-lang.org
Other
16.25k stars 1.46k forks source link

SIGSEGV when using a `stream` and `addExitProc` #20844

Open diegomrsantos opened 1 year ago

diegomrsantos commented 1 year ago

What happened?

Executing nim c -r test2.nim for the code below causes a runtime error.

import std/[streams, exitprocs]

type
  Test = ref object of RootObj
    strm: Stream

var t = Test(strm: newFileStream("somefile.txt", fmWrite))

proc p() =
  for s in @["The first line", "the second line"]:
    t.strm.writeLine(s)

addExitProc(p)

Possibly related to https://github.com/nim-lang/Nim/issues/19795 and https://github.com/nim-lang/Nim/issues/20800

Nim Version

Nim Compiler Version 1.7.3 [MacOSX: amd64] Compiled at 2022-11-14 Copyright (c) 2006-2022 by Andreas Rumpf

git hash: d73fff1ecc858783a3f1a90830e1bad4a3a23737 active boot switches: -d:release

Current Standard Output Logs

Traceback (most recent call last)
.choosenim/toolchains/nim-#devel/lib/std/exitprocs.nim(44) callClosures
workspace/nim-unittest2/tests/test2.nim(10) p
.choosenim/toolchains/nim-#devel/lib/pure/streams.nim(405) writeLine
.choosenim/toolchains/nim-#devel/lib/pure/streams.nim(380) write
.choosenim/toolchains/nim-#devel/lib/pure/streams.nim(342) writeData
SIGSEGV: Illegal storage access. (Attempt to read from nil?)

Expected Standard Output Logs

# Output (somefile.txt):
# The first line
# the second line

Possible Solution

No response

Additional Information

Works fine on:

Nim Compiler Version 1.6.8 [MacOSX: amd64] Compiled at 2022-10-27 Copyright (c) 2006-2021 by Andreas Rumpf

active boot switches: -d:release

juancarlospaco commented 1 year ago

!nim c

import std/[streams, exitprocs]

type Test = ref object of RootObj
  strm: Stream

var t = Test(strm: newFileStream("temp.txt", fmWrite))

proc p() =
  for s in @["a", "b"]:
    t.strm.writeLine(s)

addExitProc(p)
github-actions[bot] commented 1 year ago

@juancarlospaco (contributor)

devel :-1: FAIL

Output

Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off  --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Traceback (most recent call last)
/home/runner/.choosenim/toolchains/nim-#devel/lib/std/exitprocs.nim callClosures
/home/runner/work/Nim/Nim/temp.nim p
/home/runner/.choosenim/toolchains/nim-#devel/lib/pure/streams.nim writeLine
/home/runner/.choosenim/toolchains/nim-#devel/lib/pure/streams.nim write
/home/runner/.choosenim/toolchains/nim-#devel/lib/pure/streams.nim writeData
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Segmentation fault (core dumped)
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:44:33
  • Finished 2023-07-11T19:44:34
  • Duration 1 minute
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

IR

```cpp #define NIM_INTBITS 64 #include "nimbase.h" #include #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix #define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); #define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); #define nimln_(n) \ FR_.line = n; #define nimlf_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA; typedef struct RootObj RootObj; typedef struct TNimTypeV2 TNimTypeV2; typedef struct tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A; typedef struct tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw; typedef struct tyObject_GcEnv__wrXjIZdIxCtzM9cDR1LtFhA tyObject_GcEnv__wrXjIZdIxCtzM9cDR1LtFhA; typedef struct tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q; typedef struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyTuple__N4J9cV4JZGem3ljqqj5rT0Q; typedef struct tyObject_CellSeq__9aBhmPhRskpiCeptzlOeZyA tyObject_CellSeq__9aBhmPhRskpiCeptzlOeZyA; typedef struct tyTuple__JtsWbX86bdJaB04v6hfOnA tyTuple__JtsWbX86bdJaB04v6hfOnA; typedef struct tyObject_FileStreamObj__9aN9aFdKE49brbyK8w5qRyP6A tyObject_FileStreamObj__9aN9aFdKE49brbyK8w5qRyP6A; typedef struct NimStrPayload NimStrPayload; typedef struct NimStringV2 NimStringV2; typedef struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA; typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ; typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content; typedef struct tySequence__Cdl00TjDeC2rNM9a79cj4Kgg tySequence__Cdl00TjDeC2rNM9a79cj4Kgg; typedef struct tySequence__Cdl00TjDeC2rNM9a79cj4Kgg_Content tySequence__Cdl00TjDeC2rNM9a79cj4Kgg_Content; typedef struct tyObject_Fun__l9atehLO9aquHHtiLmI3ObnA tyObject_Fun__l9atehLO9aquHHtiLmI3ObnA; struct TNimTypeV2 { void* destructor; NI size; NI16 align; NI16 depth; NU32* display; void* traceImpl; void* typeInfoV1; NI flags; }; struct RootObj { TNimTypeV2* m_type; }; struct tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA { RootObj Sup; tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* strm; }; struct tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw { NI rc; NI rootIdx; }; struct tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q { NI len; NI cap; tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d; }; struct tyObject_CellSeq__9aBhmPhRskpiCeptzlOeZyA { NI len; NI cap; tyTuple__JtsWbX86bdJaB04v6hfOnA* d; }; struct tyObject_GcEnv__wrXjIZdIxCtzM9cDR1LtFhA { tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q traceStack; tyObject_CellSeq__9aBhmPhRskpiCeptzlOeZyA toFree; NI freed; NI touched; NI edges; NI rcSum; NIM_BOOL keepThreshold; }; struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q { void** Field0; TNimTypeV2* Field1; }; typedef N_NIMCALL_PTR(void, tyProc__J4AsIwjCCQPsejptM9acm2Q) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__Y7JvZPYVM77NMRiWVdpjjQ) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0); typedef N_NIMCALL_PTR(void, tyProc__mKw8cIcxLmKPaPinNTvJVw) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, NI pos_p1); typedef N_NIMCALL_PTR(NI, tyProc__r4QiIt9aqGQaW2nVHlYy8TA) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0); struct NimStrPayload { NI cap; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct NimStringV2 { NI len; NimStrPayload* p; }; typedef N_NIMCALL_PTR(NI, tyProc__tswMTa34dEVy5qI7IoKK3w) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, NimStringV2* buffer_p1, tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA slice_p2); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__rH5jb8iZfX3MHhHZPil0Aw) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, NimStringV2* line_p1); typedef N_NIMCALL_PTR(NI, tyProc__HnOcv1GGpVUprWIlPDYpvA) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, void* buffer_p1, NI bufLen_p2); typedef N_NIMCALL_PTR(void, tyProc__q4Y4zTmQ9cy9bO9cbzKua9bS2g) (tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, void* buffer_p1, NI bufLen_p2); struct tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A { RootObj Sup; tyProc__J4AsIwjCCQPsejptM9acm2Q closeImpl; tyProc__Y7JvZPYVM77NMRiWVdpjjQ atEndImpl; tyProc__mKw8cIcxLmKPaPinNTvJVw setPositionImpl; tyProc__r4QiIt9aqGQaW2nVHlYy8TA getPositionImpl; tyProc__tswMTa34dEVy5qI7IoKK3w readDataStrImpl; tyProc__rH5jb8iZfX3MHhHZPil0Aw readLineImpl; tyProc__HnOcv1GGpVUprWIlPDYpvA readDataImpl; tyProc__HnOcv1GGpVUprWIlPDYpvA peekDataImpl; tyProc__q4Y4zTmQ9cy9bO9cbzKua9bS2g writeDataImpl; tyProc__J4AsIwjCCQPsejptM9acm2Q flushImpl; }; struct tyObject_FileStreamObj__9aN9aFdKE49brbyK8w5qRyP6A { tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A Sup; FILE* f; }; typedef NU8 tyEnum_FileMode__39bFZoYF4P1fKMLJ1ev9ch1Q; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ { NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p; }; typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1]; typedef N_CLOSURE_PTR(void, TM__SRd76hP9cMfCzdUO857UhQQ_14) (void* ClE_0); struct tySequence__Cdl00TjDeC2rNM9a79cj4Kgg { NI len; tySequence__Cdl00TjDeC2rNM9a79cj4Kgg_Content* p; }; struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA { NI a; NI b; }; struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; }; typedef NU8 tyEnum_FunKind__cy9aZL9ccnzHQytstFS2GViA; typedef N_NOCONV_PTR(void, tyProc__vhjNbzH0Mvv2fTvoe1717Q) (void); struct tyObject_Fun__l9atehLO9aquHHtiLmI3ObnA { tyEnum_FunKind__cy9aZL9ccnzHQytstFS2GViA kind; union{ tyProc__HzVCwACFYM9cx9aV62PdjtuA fun1; tyProc__vhjNbzH0Mvv2fTvoe1717Q fun2; }; }; struct tySequence__Cdl00TjDeC2rNM9a79cj4Kgg_Content { NI cap; tyObject_Fun__l9atehLO9aquHHtiLmI3ObnA data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void*, nimNewObjUninit)(NI size_p0, NI alignment_p1); N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u144)(void* dest_p0); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u95)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0); static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0); static N_INLINE(NI, minuspercent___system_u811)(NI x_p0, NI y_p1); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4483)(void); static N_INLINE(void, popFrame)(void); N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void); N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3358)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw* s_p1, TNimTypeV2* desc_p2); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p_p0); N_LIB_PRIVATE N_NIMCALL(void, eqtrace___temp_u107)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0, void* env_p1); static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1); static N_INLINE(void, add__system_u2827)(tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q* s_p0, void** c_p1, TNimTypeV2* t_p2); N_LIB_PRIVATE N_NIMCALL(void, resize__system_u2835)(tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q* s_p0); N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9aN9aFdKE49brbyK8w5qRyP6A*, newFileStream__pureZstreams_u1306)(NimStringV2 filename_p0, tyEnum_FileMode__39bFZoYF4P1fKMLJ1ev9ch1Q mode_p1, NI bufSize_p2); N_LIB_PRIVATE N_NIMCALL(void, addExitProc__stdZexitprocs_u252)(tyProc__HzVCwACFYM9cx9aV62PdjtuA cl_p0); N_LIB_PRIVATE N_NIMCALL(void, p__temp_u7)(void); N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2); N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1); N_LIB_PRIVATE N_NIMCALL(void, writeLine__pureZstreams_u332)(tyObject_StreamObj__zQ9cXnM0UG3G9aFsuhfPtz3A* s_p0, NimStringV2* args_p1, NI args_p1Len_0); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u3715)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0); static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1); static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u123)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZexitprocs_u333)(tySequence__Cdl00TjDeC2rNM9a79cj4Kgg dest_p0); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatsexitprocsdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); N_LIB_PRIVATE TNimTypeV2 NTIv2__j7kUe8vzrYt3TDhhNqB0QA_; static const struct { NI cap; NIM_CHAR data[8+1]; } TM__SRd76hP9cMfCzdUO857UhQQ_5 = { 8 | NIM_STRLIT_FLAG, "temp.txt" }; static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_6 = {8, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_5}; static const struct { NI cap; NIM_CHAR data[1+1]; } TM__SRd76hP9cMfCzdUO857UhQQ_7 = { 1 | NIM_STRLIT_FLAG, "a" }; static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_8 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_7}; static const struct { NI cap; NIM_CHAR data[1+1]; } TM__SRd76hP9cMfCzdUO857UhQQ_9 = { 1 | NIM_STRLIT_FLAG, "b" }; static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_10 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_9}; static const struct { NI cap; NIM_CHAR data[147+1]; } TM__SRd76hP9cMfCzdUO857UhQQ_12 = { 147 | NIM_STRLIT_FLAG, "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it" }; static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_13 = {147, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_12}; N_LIB_PRIVATE tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* t__temp_u6; extern TFrame* framePtr__system_u3877; extern NIM_BOOL nimInErrorMode__system_u4265; static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {3701606400, 3105127168}; N_LIB_PRIVATE TNimTypeV2 NTIv2__j7kUe8vzrYt3TDhhNqB0QA_ = {.destructor = (void*)rttiDestroy__temp_u144, .size = sizeof(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA), .align = (NI16) NIM_ALIGNOF(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_3, .traceImpl = (void*)eqtrace___temp_u107, .flags = 0}; extern tySequence__Cdl00TjDeC2rNM9a79cj4Kgg gFuns__stdZexitprocs_u15; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u3877 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u3877).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u3877; framePtr__system_u3877 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4483(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u3877 = (*framePtr__system_u3877).prev; } static N_INLINE(NI, minuspercent___system_u811)(NI x_p0, NI y_p1) { NI result; nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/arithmetics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1)))))); popFrame(); return result; } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4265); return result; } static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0) { NIM_BOOL result; NIM_BOOL* nimErr_; nimfr_("nimDecRefIsLastCyclicDyn", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/orc.nim"); {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw* cell; NI T5_; if (!!((p_p0 == NIM_NIL))) goto LA3_; T5_ = (NI)0; T5_ = minuspercent___system_u811(((NI) (ptrdiff_t) (p_p0)), ((NI)16)); cell = ((tyObject_RefHeader__YmUax3FsG7Gnj3DF0PcAlw*) (T5_)); { if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_; result = NIM_TRUE; } goto LA6_; LA8_: ; { NI TM__SRd76hP9cMfCzdUO857UhQQ_2; if (nimSubInt((*cell).rc, ((NI)16), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_; }; (*cell).rc = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2); } LA6_: ; rememberCycle__system_u3358(result, cell, (*((TNimTypeV2**) (p_p0)))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3_: ; }BeforeRet_: ; popFrame(); return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u95)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0) { { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLastCyclicDyn((*dest_p0).strm); if (!T3_) goto LA4_; nimDestroyAndDispose((*dest_p0).strm); } LA4_: ; } N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u144)(void* dest_p0) { eqdestroy___temp_u95(((tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA*) (dest_p0))); } static N_INLINE(void, add__system_u2827)(tyObject_CellSeq__89bNXn3s6QKjCT39cWz9cQw5Q* s_p0, void** c_p1, TNimTypeV2* t_p2) { void** colontmp_; TNimTypeV2* colontmp__2; NI TM__SRd76hP9cMfCzdUO857UhQQ_4; nimfr_("add", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/cellseqs_v2.nim"); { { if (!((*s_p0).cap <= (*s_p0).len)) goto LA3_; resize__system_u2835(s_p0); } LA3_: ; colontmp_ = c_p1; colontmp__2 = t_p2; (*s_p0).d[(*s_p0).len].Field0 = colontmp_; (*s_p0).d[(*s_p0).len].Field1 = colontmp__2; if (nimAddInt((*s_p0).len, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); goto BeforeRet_; }; (*s_p0).len = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4); }BeforeRet_: ; popFrame(); } static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1) { void** p; nimfr_("nimTraceRefDyn", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/orc.nim"); p = ((void**) (q_p0)); { tyObject_GcEnv__wrXjIZdIxCtzM9cDR1LtFhA* j; if (!!(((*p) == NIM_NIL))) goto LA3_; j = ((tyObject_GcEnv__wrXjIZdIxCtzM9cDR1LtFhA*) (env_p1)); add__system_u2827((&(*j).traceStack), p, (*((TNimTypeV2**) ((*p))))); } LA3_: ; popFrame(); } N_LIB_PRIVATE N_NIMCALL(void, eqtrace___temp_u107)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0, void* env_p1) { nimTraceRefDyn(&(*dest_p0).strm, env_p1); } N_LIB_PRIVATE N_NIMCALL(void, p__temp_u7)(void) { NIM_BOOL* nimErr_; nimfr_("p", "/home/runner/work/Nim/Nim/temp.nim"); {nimErr_ = nimErrorFlag(); { tySequence__sM4lkSb7zS6F7OVMvW9cffQ colontmp_; NimStringV2* s; NI i; NI L; NI T3_; colontmp_.len = 0; colontmp_.p = NIM_NIL; s = (NimStringV2*)0; colontmp_.len = 2; colontmp_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(2, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2)); colontmp_.p->data[0] = TM__SRd76hP9cMfCzdUO857UhQQ_8; colontmp_.p->data[1] = TM__SRd76hP9cMfCzdUO857UhQQ_10; i = ((NI)0); T3_ = colontmp_.len; L = T3_; { while (1) { tyArray__nHXaesL0DJZHyVS07ARPRA T6_; NI TM__SRd76hP9cMfCzdUO857UhQQ_11; if (!(i < L)) goto LA5; if (i < 0 || i >= colontmp_.len){ raiseIndexError2(i,colontmp_.len-1); goto LA2_; } s = (&colontmp_.p->data[i]); T6_[0] = (*s); writeLine__pureZstreams_u332((*t__temp_u6).strm, T6_, 1); if (NIM_UNLIKELY(*nimErr_)) goto LA2_; if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_11)) { raiseOverflow(); goto LA2_; }; i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_11); { NI T9_; T9_ = colontmp_.len; if (!!((T9_ == L))) goto LA10_; failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_13); if (NIM_UNLIKELY(*nimErr_)) goto LA2_; } LA10_: ; } LA5: ; } { LA2_:; } { eqdestroy___system_u3715(colontmp_); } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } }BeforeRet_: ; popFrame(); } static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) { void* T1_; T1_ = (void*)0; T1_ = memset(a_p0, v_p1, ((size_t) (size_p2))); } static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u123)(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* dest_p0) { { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLastCyclicDyn(dest_p0); if (!T3_) goto LA4_; nimDestroyAndDispose(dest_p0); } LA4_: ; } N_LIB_PRIVATE void PreMainInner(void) { atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatsexitprocsdotnim_Init000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { #if 0 void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000(); (*inner)(); #else atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000(); PreMainInner(); #endif } N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) { NimMainModule(); } N_CDECL(void, NimMain)(void) { #if 0 void (*volatile inner)(void); PreMain(); inner = NimMainInner; (*inner)(); #else PreMain(); NimMainInner(); #endif } int main(int argc, char** args, char** env) { cmdLine = args; cmdCount = argc; gEnv = env; NimMain(); return nim_program_result; } N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) { { tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA* T1_; tyObject_FileStreamObj__9aN9aFdKE49brbyK8w5qRyP6A* T2_; tyProc__HzVCwACFYM9cx9aV62PdjtuA T3_; NIM_BOOL* nimErr_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); T1_ = NIM_NIL; T1_ = (tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA*) nimNewObjUninit(sizeof(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA), NIM_ALIGNOF(tyObject_TestcolonObjectType___j7kUe8vzrYt3TDhhNqB0QA)); (*T1_).Sup.m_type = (&NTIv2__j7kUe8vzrYt3TDhhNqB0QA_); T2_ = NIM_NIL; T2_ = newFileStream__pureZstreams_u1306(TM__SRd76hP9cMfCzdUO857UhQQ_6, ((tyEnum_FileMode__39bFZoYF4P1fKMLJ1ev9ch1Q)1), ((NI)-1)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; (*T1_).strm = &T2_->Sup; t__temp_u6 = T1_; nimZeroMem((void*)(&T3_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA)); T3_.ClP_0 = ((TM__SRd76hP9cMfCzdUO857UhQQ_14) (p__temp_u7)); T3_.ClE_0 = NIM_NIL; addExitProc__stdZexitprocs_u252(T3_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___temp_u123(t__temp_u6); eqdestroy___stdZexitprocs_u333(gFuns__stdZexitprocs_u15); BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

AST

```nim nnkStmtList.newTree( nnkImportStmt.newTree( nnkInfix.newTree( newIdentNode("/"), newIdentNode("std"), nnkBracket.newTree( newIdentNode("streams"), newIdentNode("exitprocs") ) ) ), nnkTypeSection.newTree( nnkTypeDef.newTree( newIdentNode("Test"), newEmptyNode(), nnkRefTy.newTree( nnkObjectTy.newTree( newEmptyNode(), nnkOfInherit.newTree( newIdentNode("RootObj") ), nnkRecList.newTree( nnkIdentDefs.newTree( newIdentNode("strm"), newIdentNode("Stream"), newEmptyNode() ) ) ) ) ) ), nnkVarSection.newTree( nnkIdentDefs.newTree( newIdentNode("t"), newEmptyNode(), nnkObjConstr.newTree( newIdentNode("Test"), nnkExprColonExpr.newTree( newIdentNode("strm"), nnkCall.newTree( newIdentNode("newFileStream"), newLit("temp.txt"), newIdentNode("fmWrite") ) ) ) ) ), nnkProcDef.newTree( newIdentNode("p"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode() ), newEmptyNode(), newEmptyNode(), nnkStmtList.newTree( nnkForStmt.newTree( newIdentNode("s"), nnkPrefix.newTree( newIdentNode("@"), nnkBracket.newTree( newLit("a"), newLit("b") ) ), nnkStmtList.newTree( nnkCall.newTree( nnkDotExpr.newTree( nnkDotExpr.newTree( newIdentNode("t"), newIdentNode("strm") ), newIdentNode("writeLine") ), newIdentNode("s") ) ) ) ) ), nnkCall.newTree( newIdentNode("addExitProc"), newIdentNode("p") ) ) ```
stable :+1: OK

Output

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:44:35
  • Finished 2023-07-11T19:44:36
  • Duration 1 minute
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
1.6.0 :+1: OK

Output

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:44:39
  • Finished 2023-07-11T19:44:40
  • Duration 1 minute
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
1.4.0 :+1: OK

Output

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:44:43
  • Finished 2023-07-11T19:44:45
  • Duration 2 minutes
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
1.2.0 :-1: FAIL

Output

Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off  --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(1, 11) Error: cannot open file: std/exitprocs

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:45:00
  • Finished 2023-07-11T19:45:00
  • Duration now
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

IR

```cpp #define NIM_INTBITS 64 #include "nimbase.h" #include #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix # define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); # define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); # define nimln_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct RootObj RootObj; typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ; typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA; typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g; typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w; typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ; typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA; typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg; typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ; typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg; typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw; typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA; typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw; typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw; typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg; typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg; typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg; typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ; typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg; typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ; typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ; typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op); typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p); struct TNimType { NI size; NI align; tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind; tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags; TNimType* base; TNimNode* node; void* finalizer; tyProc__ojoeKfW4VYIm36I9cpDTQIg marker; tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ; struct TNimNode { tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct RootObj { TNimType* m_type; }; struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw { RootObj Sup; tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* strm; }; typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void); typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos); typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line); typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ { RootObj Sup; tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl; tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl; tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl; tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl; tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl; tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl; tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl; tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl; }; struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ { tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup; FILE* f; }; typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg; struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct tyObject_GcStack__7fytPA5bBsob6See21YMRA { void* bottom; }; struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256]; typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24]; typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32]; typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24]; typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256]; struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA { tyArray__lh2A89ahMmYg9bCmpVaplLbA data; }; typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2]; struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw { tyArray__0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperBound; NI level; }; struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg { tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0; NI Field1; }; typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30]; struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg { NI len; tyArray__LzOv2eCDGiceMKQstCLmhw chunks; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next; }; struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg { NI minLargeObj; NI maxLargeObj; tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks; NU32 flBitmap; tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap; tyArray__B6durA4ZCi1xjJvRtyYxMg matrix; tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem; NI currMem; NI maxMem; NI freeMem; NI occ; NI lastSize; tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes; NIM_BOOL locked; NIM_BOOL blockChunkSizeIncrease; NI nextChunkSize; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks; }; struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg { NI stackScans; NI cycleCollections; NI maxThreshold; NI maxStackSize; NI maxStackCells; NI cycleTableSize; NI64 maxPause; }; struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data; }; struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ { tyObject_GcStack__7fytPA5bBsob6See21YMRA stack; NI cycleThreshold; NI zctThreshold; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack; NI recGcLock; tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region; tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat; tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots; NI gcThreadId; }; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1]; typedef N_CLOSURE_PTR(void, TM__SRd76hP9cMfCzdUO857UhQQ_10) (void* ClE_0); struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA { NI a; NI b; }; struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ { TGenericSeq Sup; NimStringDesc* data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op); static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op); static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void); N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc); N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size); N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__cwYJiP3D7DOTCJxCdBqBZQ)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize); static N_INLINE(void, asgnRef)(void** dest, void* src); static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr); static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y); static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y); static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NIMCALL(void, addExitProc__Aa1RKd71swxSxeVBcHYcGA)(tyProc__HzVCwACFYM9cx9aV62PdjtuA cl); N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void); N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n); N_LIB_PRIVATE N_NIMCALL(void, writeLine__2KoDZXJB4LmoH7PHLGmZ9cg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** args, NI argsLen_0); static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size); N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src); N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, stdlib_ioDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_; N_LIB_PRIVATE TNimType NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_; extern TNimType NTI__1G0jiQbe7KwD5ADza5AZaw_; N_LIB_PRIVATE TNimType NTI__ubqfgIT7wUxV9cm8xMDenVg_; STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "temp.txt", 8); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_5, "a", 1); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "b", 1); static NIM_CONST struct { TGenericSeq Sup; NimStringDesc* data[2]; } TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{2, 2 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_5), ((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6)}}; static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_7); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_9, "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/iterato" "rs.nim(204, 11) `len(a) == L` the length of the seq changed whil" "e iterating over it", 146); N_LIB_PRIVATE tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* t__xtMmGip2VtVBREnQ1jJCbQ; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q; static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op) { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* a; a = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)p; nimGCvisit((void*)(*a).strm, op); } static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void) { nimGCvisit((void*)t__xtMmGip2VtVBREnQ1jJCbQ, 0); } static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev; } static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) { NI result; nimfr_("+%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8)); popFrame(); } static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) { NI result; nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result; NI T1_; nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T1_ = (NI)0; T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem(((NI) (ptrdiff_t) (usr)), ((NI) 16)); result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_)); popFrame(); return result; } static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) { NIM_BOOL result; nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/compari" "sons.nim"); result = (NIM_BOOL)0; result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y)))); popFrame(); return result; } static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c); popFrame(); } static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8)); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8)); if (!T3_) goto LA4_; rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system(c); } LA4_: ; popFrame(); } static N_INLINE(void, asgnRef)(void** dest, void* src) { nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_; if (!!((src == NIM_NIL))) goto LA3_; T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src); incRef__AT1eRuflKWyTTBdLjEDZbgsystem(T5_); } LA3_: ; { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_; if (!!(((*dest) == NIM_NIL))) goto LA8_; T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest)); decRef__AT1eRuflKWyTTBdLjEDZbg_2system(T10_); } LA8_: ; (*dest) = src; popFrame(); } static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size); } N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void) { nimfr_("p", "/home/runner/work/Nim/Nim/temp.nim"); { NimStringDesc** s; NI i; NI L; s = (NimStringDesc**)0; i = ((NI) 0); L = ((NI) 2); { while (1) { tyArray__nHXaesL0DJZHyVS07ARPRA T4_; NI TM__SRd76hP9cMfCzdUO857UhQQ_8; if (!(i < L)) goto LA3; if ((NU)(i) >= (NU)(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)){ raiseIndexError2(i,(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)-1); } s = (&TM__SRd76hP9cMfCzdUO857UhQQ_4->data[i]); nimZeroMem((void*)T4_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA)); T4_[0] = copyString((*s)); writeLine__2KoDZXJB4LmoH7PHLGmZ9cg((*t__xtMmGip2VtVBREnQ1jJCbQ).strm, T4_, 1); if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_8)) { raiseOverflow(); }; i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_8); { if (!!((((NI) 2) == L))) goto LA7_; failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_9)); } LA7_: ; } LA3: ; } } popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { stdlib_exitprocsInit000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; stdlib_ioDatInit000(); systemDatInit000(); initStackBottomWith((void *)&inner); systemInit000(); stdlib_streamsDatInit000(); stdlib_exitprocsDatInit000(); tempDatInit000(); (*inner)(); } N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) { NimMainModule(); } N_CDECL(void, NimMain)(void) { void (*volatile inner)(void); PreMain(); inner = NimMainInner; initStackBottomWith((void *)&inner); (*inner)(); } int main(int argc, char** args, char** env) { cmdLine = args; cmdCount = argc; gEnv = env; NimMain(); return nim_program_result; } N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) { { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* T1_; tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T2_; tyProc__HzVCwACFYM9cx9aV62PdjtuA T3_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_2); T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)0; T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*) newObj((&NTI__ubqfgIT7wUxV9cm8xMDenVg_), sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw)); (*T1_).Sup.m_type = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); T2_ = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0; T2_ = newFileStream__cwYJiP3D7DOTCJxCdBqBZQ(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1)); asgnRef((void**) (&(*T1_).strm), &T2_->Sup); asgnRef((void**) (&t__xtMmGip2VtVBREnQ1jJCbQ), T1_); nimZeroMem((void*)(&T3_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA)); T3_.ClP_0 = ((TM__SRd76hP9cMfCzdUO857UhQQ_10) (p__EzBZaa239as9bFx8yeHDoTOw)); T3_.ClE_0 = NIM_NIL; addExitProc__Aa1RKd71swxSxeVBcHYcGA(T3_); popFrame(); } } N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) { static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[1]; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.kind = 17; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].kind = 1; TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = offsetof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw, strm); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].name = "strm"; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[0]; NTI__ubqfgIT7wUxV9cm8xMDenVg_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.kind = 22; NTI__ubqfgIT7wUxV9cm8xMDenVg_.base = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); NTI__ubqfgIT7wUxV9cm8xMDenVg_.marker = Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg; } ```

AST

```nim nnkStmtList.newTree( nnkImportStmt.newTree( nnkInfix.newTree( newIdentNode("/"), newIdentNode("std"), nnkBracket.newTree( newIdentNode("streams"), newIdentNode("exitprocs") ) ) ), nnkTypeSection.newTree( nnkTypeDef.newTree( newIdentNode("Test"), newEmptyNode(), nnkRefTy.newTree( nnkObjectTy.newTree( newEmptyNode(), nnkOfInherit.newTree( newIdentNode("RootObj") ), nnkRecList.newTree( nnkIdentDefs.newTree( newIdentNode("strm"), newIdentNode("Stream"), newEmptyNode() ) ) ) ) ) ), nnkVarSection.newTree( nnkIdentDefs.newTree( newIdentNode("t"), newEmptyNode(), nnkObjConstr.newTree( newIdentNode("Test"), nnkExprColonExpr.newTree( newIdentNode("strm"), nnkCall.newTree( newIdentNode("newFileStream"), newLit("temp.txt"), newIdentNode("fmWrite") ) ) ) ) ), nnkProcDef.newTree( newIdentNode("p"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode() ), newEmptyNode(), newEmptyNode(), nnkStmtList.newTree( nnkForStmt.newTree( newIdentNode("s"), nnkPrefix.newTree( newIdentNode("@"), nnkBracket.newTree( newLit("a"), newLit("b") ) ), nnkStmtList.newTree( nnkCall.newTree( nnkDotExpr.newTree( nnkDotExpr.newTree( newIdentNode("t"), newIdentNode("strm") ), newIdentNode("writeLine") ), newIdentNode("s") ) ) ) ) ), nnkCall.newTree( newIdentNode("addExitProc"), newIdentNode("p") ) ) ```
1.0.0 :-1: FAIL

Output

Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off  --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(1, 11) Error: cannot open file: std/exitprocs

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:45:13
  • Finished 2023-07-11T19:45:13
  • Duration now
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

IR

```cpp #define NIM_INTBITS 64 #include "nimbase.h" #include #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix # define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); # define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); # define nimln_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct RootObj RootObj; typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ; typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA; typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g; typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w; typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ; typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA; typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg; typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ; typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg; typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw; typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA; typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw; typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw; typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg; typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg; typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg; typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ; typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg; typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ; typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ; typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op); typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p); struct TNimType { NI size; NI align; tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind; tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags; TNimType* base; TNimNode* node; void* finalizer; tyProc__ojoeKfW4VYIm36I9cpDTQIg marker; tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ; struct TNimNode { tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct RootObj { TNimType* m_type; }; struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw { RootObj Sup; tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* strm; }; typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void); typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos); typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line); typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ { RootObj Sup; tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl; tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl; tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl; tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl; tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl; tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl; tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl; tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl; }; struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ { tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup; FILE* f; }; typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg; struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct tyObject_GcStack__7fytPA5bBsob6See21YMRA { void* bottom; }; struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256]; typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24]; typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32]; typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24]; typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256]; struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA { tyArray__lh2A89ahMmYg9bCmpVaplLbA data; }; typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2]; struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw { tyArray__0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperBound; NI level; }; struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg { tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0; NI Field1; }; typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30]; struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg { NI len; tyArray__LzOv2eCDGiceMKQstCLmhw chunks; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next; }; struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg { NI minLargeObj; NI maxLargeObj; tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks; NU32 flBitmap; tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap; tyArray__B6durA4ZCi1xjJvRtyYxMg matrix; tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem; NI currMem; NI maxMem; NI freeMem; NI occ; NI lastSize; tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes; NIM_BOOL locked; NIM_BOOL blockChunkSizeIncrease; NI nextChunkSize; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks; }; struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg { NI stackScans; NI cycleCollections; NI maxThreshold; NI maxStackSize; NI maxStackCells; NI cycleTableSize; NI64 maxPause; }; struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data; }; struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ { tyObject_GcStack__7fytPA5bBsob6See21YMRA stack; NI cycleThreshold; NI zctThreshold; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack; NI recGcLock; tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region; tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat; tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots; NI gcThreadId; }; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1]; typedef N_CLOSURE_PTR(void, TM__SRd76hP9cMfCzdUO857UhQQ_10) (void* ClE_0); struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA { NI a; NI b; }; struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ { TGenericSeq Sup; NimStringDesc* data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op); static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op); static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void); N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc); N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size); N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__cwYJiP3D7DOTCJxCdBqBZQ)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize); static N_INLINE(void, asgnRef)(void** dest, void* src); static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr); static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y); static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y); static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NIMCALL(void, addExitProc__Aa1RKd71swxSxeVBcHYcGA)(tyProc__HzVCwACFYM9cx9aV62PdjtuA cl); N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void); N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n); N_LIB_PRIVATE N_NIMCALL(void, writeLine__2KoDZXJB4LmoH7PHLGmZ9cg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** args, NI argsLen_0); static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size); N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src); N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, stdlib_ioDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_; N_LIB_PRIVATE TNimType NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_; extern TNimType NTI__1G0jiQbe7KwD5ADza5AZaw_; N_LIB_PRIVATE TNimType NTI__ubqfgIT7wUxV9cm8xMDenVg_; STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "temp.txt", 8); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_5, "a", 1); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "b", 1); static NIM_CONST struct { TGenericSeq Sup; NimStringDesc* data[2]; } TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{2, 2 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_5), ((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6)}}; static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_7); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_9, "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/iterato" "rs.nim(204, 11) `len(a) == L` the length of the seq changed whil" "e iterating over it", 146); N_LIB_PRIVATE tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* t__xtMmGip2VtVBREnQ1jJCbQ; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q; static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op) { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* a; a = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)p; nimGCvisit((void*)(*a).strm, op); } static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void) { nimGCvisit((void*)t__xtMmGip2VtVBREnQ1jJCbQ, 0); } static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev; } static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) { NI result; nimfr_("+%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8)); popFrame(); } static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) { NI result; nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result; NI T1_; nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T1_ = (NI)0; T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem(((NI) (ptrdiff_t) (usr)), ((NI) 16)); result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_)); popFrame(); return result; } static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) { NIM_BOOL result; nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/compari" "sons.nim"); result = (NIM_BOOL)0; result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y)))); popFrame(); return result; } static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c); popFrame(); } static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8)); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8)); if (!T3_) goto LA4_; rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system(c); } LA4_: ; popFrame(); } static N_INLINE(void, asgnRef)(void** dest, void* src) { nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_; if (!!((src == NIM_NIL))) goto LA3_; T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src); incRef__AT1eRuflKWyTTBdLjEDZbgsystem(T5_); } LA3_: ; { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_; if (!!(((*dest) == NIM_NIL))) goto LA8_; T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest)); decRef__AT1eRuflKWyTTBdLjEDZbg_2system(T10_); } LA8_: ; (*dest) = src; popFrame(); } static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size); } N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void) { nimfr_("p", "/home/runner/work/Nim/Nim/temp.nim"); { NimStringDesc** s; NI i; NI L; s = (NimStringDesc**)0; i = ((NI) 0); L = ((NI) 2); { while (1) { tyArray__nHXaesL0DJZHyVS07ARPRA T4_; NI TM__SRd76hP9cMfCzdUO857UhQQ_8; if (!(i < L)) goto LA3; if ((NU)(i) >= (NU)(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)){ raiseIndexError2(i,(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)-1); } s = (&TM__SRd76hP9cMfCzdUO857UhQQ_4->data[i]); nimZeroMem((void*)T4_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA)); T4_[0] = copyString((*s)); writeLine__2KoDZXJB4LmoH7PHLGmZ9cg((*t__xtMmGip2VtVBREnQ1jJCbQ).strm, T4_, 1); if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_8)) { raiseOverflow(); }; i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_8); { if (!!((((NI) 2) == L))) goto LA7_; failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_9)); } LA7_: ; } LA3: ; } } popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { stdlib_exitprocsInit000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; stdlib_ioDatInit000(); systemDatInit000(); initStackBottomWith((void *)&inner); systemInit000(); stdlib_streamsDatInit000(); stdlib_exitprocsDatInit000(); tempDatInit000(); (*inner)(); } N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) { NimMainModule(); } N_CDECL(void, NimMain)(void) { void (*volatile inner)(void); PreMain(); inner = NimMainInner; initStackBottomWith((void *)&inner); (*inner)(); } int main(int argc, char** args, char** env) { cmdLine = args; cmdCount = argc; gEnv = env; NimMain(); return nim_program_result; } N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) { { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* T1_; tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T2_; tyProc__HzVCwACFYM9cx9aV62PdjtuA T3_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_2); T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)0; T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*) newObj((&NTI__ubqfgIT7wUxV9cm8xMDenVg_), sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw)); (*T1_).Sup.m_type = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); T2_ = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0; T2_ = newFileStream__cwYJiP3D7DOTCJxCdBqBZQ(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1)); asgnRef((void**) (&(*T1_).strm), &T2_->Sup); asgnRef((void**) (&t__xtMmGip2VtVBREnQ1jJCbQ), T1_); nimZeroMem((void*)(&T3_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA)); T3_.ClP_0 = ((TM__SRd76hP9cMfCzdUO857UhQQ_10) (p__EzBZaa239as9bFx8yeHDoTOw)); T3_.ClE_0 = NIM_NIL; addExitProc__Aa1RKd71swxSxeVBcHYcGA(T3_); popFrame(); } } N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) { static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[1]; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.kind = 17; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].kind = 1; TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = offsetof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw, strm); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].name = "strm"; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[0]; NTI__ubqfgIT7wUxV9cm8xMDenVg_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.kind = 22; NTI__ubqfgIT7wUxV9cm8xMDenVg_.base = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); NTI__ubqfgIT7wUxV9cm8xMDenVg_.marker = Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg; } ```

AST

```nim nnkStmtList.newTree( nnkImportStmt.newTree( nnkInfix.newTree( newIdentNode("/"), newIdentNode("std"), nnkBracket.newTree( newIdentNode("streams"), newIdentNode("exitprocs") ) ) ), nnkTypeSection.newTree( nnkTypeDef.newTree( newIdentNode("Test"), newEmptyNode(), nnkRefTy.newTree( nnkObjectTy.newTree( newEmptyNode(), nnkOfInherit.newTree( newIdentNode("RootObj") ), nnkRecList.newTree( nnkIdentDefs.newTree( newIdentNode("strm"), newIdentNode("Stream"), newEmptyNode() ) ) ) ) ) ), nnkVarSection.newTree( nnkIdentDefs.newTree( newIdentNode("t"), newEmptyNode(), nnkObjConstr.newTree( newIdentNode("Test"), nnkExprColonExpr.newTree( newIdentNode("strm"), nnkCall.newTree( newIdentNode("newFileStream"), newLit("temp.txt"), newIdentNode("fmWrite") ) ) ) ) ), nnkProcDef.newTree( newIdentNode("p"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode() ), newEmptyNode(), newEmptyNode(), nnkStmtList.newTree( nnkForStmt.newTree( newIdentNode("s"), nnkPrefix.newTree( newIdentNode("@"), nnkBracket.newTree( newLit("a"), newLit("b") ) ), nnkStmtList.newTree( nnkCall.newTree( nnkDotExpr.newTree( nnkDotExpr.newTree( newIdentNode("t"), newIdentNode("strm") ), newIdentNode("writeLine") ), newIdentNode("s") ) ) ) ) ), nnkCall.newTree( newIdentNode("addExitProc"), newIdentNode("p") ) ) ```
0.20.2 :-1: FAIL

Output

Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off  --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(1, 11) Error: cannot open file: std/exitprocs

Stats

  • Created 2023-07-11T19:43:18Z
  • Started 2023-07-11T19:45:24
  • Finished 2023-07-11T19:45:24
  • Duration now
  • Commands nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

IR

```cpp #define NIM_INTBITS 64 #include "nimbase.h" #include #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix # define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); # define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); # define nimln_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct RootObj RootObj; typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ; typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA; typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g; typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w; typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ; typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA; typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg; typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ; typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg; typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw; typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA; typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw; typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw; typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg; typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg; typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg; typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ; typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg; typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ; typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ; typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op); typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p); struct TNimType { NI size; NI align; tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind; tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags; TNimType* base; TNimNode* node; void* finalizer; tyProc__ojoeKfW4VYIm36I9cpDTQIg marker; tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ; struct TNimNode { tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct RootObj { TNimType* m_type; }; struct tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw { RootObj Sup; tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* strm; }; typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void); typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos); typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s); struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line); typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen); struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ { RootObj Sup; tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl; tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl; tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl; tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl; tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl; tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl; tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl; tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl; tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl; }; struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ { tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup; FILE* f; }; typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg; struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct tyObject_GcStack__7fytPA5bBsob6See21YMRA { void* bottom; }; struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256]; typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24]; typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32]; typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24]; typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256]; struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA { tyArray__lh2A89ahMmYg9bCmpVaplLbA data; }; typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2]; struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw { tyArray__0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperBound; NI level; }; struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg { tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0; NI Field1; }; typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30]; struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg { NI len; tyArray__LzOv2eCDGiceMKQstCLmhw chunks; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next; }; struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg { NI minLargeObj; NI maxLargeObj; tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks; NU32 flBitmap; tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap; tyArray__B6durA4ZCi1xjJvRtyYxMg matrix; tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem; NI currMem; NI maxMem; NI freeMem; NI occ; NI lastSize; tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes; NIM_BOOL locked; NIM_BOOL blockChunkSizeIncrease; NI nextChunkSize; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks; }; struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg { NI stackScans; NI cycleCollections; NI maxThreshold; NI maxStackSize; NI maxStackCells; NI cycleTableSize; NI64 maxPause; }; struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data; }; struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ { tyObject_GcStack__7fytPA5bBsob6See21YMRA stack; NI cycleThreshold; NI zctThreshold; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack; NI recGcLock; tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region; tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat; tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots; NI gcThreadId; }; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1]; typedef N_CLOSURE_PTR(void, TM__SRd76hP9cMfCzdUO857UhQQ_10) (void* ClE_0); struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA { NI a; NI b; }; struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ { TGenericSeq Sup; NimStringDesc* data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op); static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op); static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void); N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc); N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size); N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__cwYJiP3D7DOTCJxCdBqBZQ)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize); static N_INLINE(void, asgnRef)(void** dest, void* src); static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr); static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y); static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y); static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NIMCALL(void, addExitProc__Aa1RKd71swxSxeVBcHYcGA)(tyProc__HzVCwACFYM9cx9aV62PdjtuA cl); N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void); N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n); N_LIB_PRIVATE N_NIMCALL(void, writeLine__2KoDZXJB4LmoH7PHLGmZ9cg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** args, NI argsLen_0); static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size); N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src); N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, stdlib_ioDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, stdlib_exitprocsInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_; N_LIB_PRIVATE TNimType NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_; extern TNimType NTI__1G0jiQbe7KwD5ADza5AZaw_; N_LIB_PRIVATE TNimType NTI__ubqfgIT7wUxV9cm8xMDenVg_; STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "temp.txt", 8); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_5, "a", 1); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "b", 1); static NIM_CONST struct { TGenericSeq Sup; NimStringDesc* data[2]; } TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{2, 2 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_5), ((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6)}}; static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_7); STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_9, "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/iterato" "rs.nim(204, 11) `len(a) == L` the length of the seq changed whil" "e iterating over it", 146); N_LIB_PRIVATE tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* t__xtMmGip2VtVBREnQ1jJCbQ; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q; static N_NIMCALL(void, Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg)(void* p, NI op) { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* a; a = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)p; nimGCvisit((void*)(*a).strm, op); } static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_2)(void) { nimGCvisit((void*)t__xtMmGip2VtVBREnQ1jJCbQ, 0); } static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw; framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev; } static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) { NI result; nimfr_("+%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8)); popFrame(); } static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) { NI result; nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/arithme" "tics.nim"); result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y)))))); popFrame(); return result; } static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result; NI T1_; nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T1_ = (NI)0; T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem(((NI) (ptrdiff_t) (usr)), ((NI) 16)); result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_)); popFrame(); return result; } static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) { NIM_BOOL result; nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/compari" "sons.nim"); result = (NIM_BOOL)0; result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y)))); popFrame(); return result; } static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c); popFrame(); } static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); (*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8)); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8)); if (!T3_) goto LA4_; rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system(c); } LA4_: ; popFrame(); } static N_INLINE(void, asgnRef)(void** dest, void* src) { nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/gc.nim"); { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_; if (!!((src == NIM_NIL))) goto LA3_; T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src); incRef__AT1eRuflKWyTTBdLjEDZbgsystem(T5_); } LA3_: ; { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_; if (!!(((*dest) == NIM_NIL))) goto LA8_; T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest)); decRef__AT1eRuflKWyTTBdLjEDZbg_2system(T10_); } LA8_: ; (*dest) = src; popFrame(); } static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size); } N_LIB_PRIVATE N_NIMCALL(void, p__EzBZaa239as9bFx8yeHDoTOw)(void) { nimfr_("p", "/home/runner/work/Nim/Nim/temp.nim"); { NimStringDesc** s; NI i; NI L; s = (NimStringDesc**)0; i = ((NI) 0); L = ((NI) 2); { while (1) { tyArray__nHXaesL0DJZHyVS07ARPRA T4_; NI TM__SRd76hP9cMfCzdUO857UhQQ_8; if (!(i < L)) goto LA3; if ((NU)(i) >= (NU)(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)){ raiseIndexError2(i,(TM__SRd76hP9cMfCzdUO857UhQQ_4 ? TM__SRd76hP9cMfCzdUO857UhQQ_4->Sup.len : 0)-1); } s = (&TM__SRd76hP9cMfCzdUO857UhQQ_4->data[i]); nimZeroMem((void*)T4_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA)); T4_[0] = copyString((*s)); writeLine__2KoDZXJB4LmoH7PHLGmZ9cg((*t__xtMmGip2VtVBREnQ1jJCbQ).strm, T4_, 1); if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_8)) { raiseOverflow(); }; i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_8); { if (!!((((NI) 2) == L))) goto LA7_; failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_9)); } LA7_: ; } LA3: ; } } popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { stdlib_exitprocsInit000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; stdlib_ioDatInit000(); systemDatInit000(); initStackBottomWith((void *)&inner); systemInit000(); stdlib_streamsDatInit000(); stdlib_exitprocsDatInit000(); tempDatInit000(); (*inner)(); } N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) { NimMainModule(); } N_CDECL(void, NimMain)(void) { void (*volatile inner)(void); PreMain(); inner = NimMainInner; initStackBottomWith((void *)&inner); (*inner)(); } int main(int argc, char** args, char** env) { cmdLine = args; cmdCount = argc; gEnv = env; NimMain(); return nim_program_result; } N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) { { tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw* T1_; tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T2_; tyProc__HzVCwACFYM9cx9aV62PdjtuA T3_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_2); T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*)0; T1_ = (tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*) newObj((&NTI__ubqfgIT7wUxV9cm8xMDenVg_), sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw)); (*T1_).Sup.m_type = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); T2_ = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0; T2_ = newFileStream__cwYJiP3D7DOTCJxCdBqBZQ(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1)); asgnRef((void**) (&(*T1_).strm), &T2_->Sup); asgnRef((void**) (&t__xtMmGip2VtVBREnQ1jJCbQ), T1_); nimZeroMem((void*)(&T3_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA)); T3_.ClP_0 = ((TM__SRd76hP9cMfCzdUO857UhQQ_10) (p__EzBZaa239as9bFx8yeHDoTOw)); T3_.ClE_0 = NIM_NIL; addExitProc__Aa1RKd71swxSxeVBcHYcGA(T3_); popFrame(); } } N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) { static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[1]; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw); NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.kind = 17; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].kind = 1; TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = offsetof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw, strm); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_); TM__SRd76hP9cMfCzdUO857UhQQ_0[0].name = "strm"; NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[0]; NTI__ubqfgIT7wUxV9cm8xMDenVg_.size = sizeof(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.align = NIM_ALIGNOF(tyObject_TestcolonObjectType___Ed9b9aJGcJ6DWkeaeqXZoHOw*); NTI__ubqfgIT7wUxV9cm8xMDenVg_.kind = 22; NTI__ubqfgIT7wUxV9cm8xMDenVg_.base = (&NTI__Ed9b9aJGcJ6DWkeaeqXZoHOw_); NTI__ubqfgIT7wUxV9cm8xMDenVg_.marker = Marker_tyRef__ubqfgIT7wUxV9cm8xMDenVg; } ```

AST

```nim nnkStmtList.newTree( nnkImportStmt.newTree( nnkInfix.newTree( newIdentNode("/"), newIdentNode("std"), nnkBracket.newTree( newIdentNode("streams"), newIdentNode("exitprocs") ) ) ), nnkTypeSection.newTree( nnkTypeDef.newTree( newIdentNode("Test"), newEmptyNode(), nnkRefTy.newTree( nnkObjectTy.newTree( newEmptyNode(), nnkOfInherit.newTree( newIdentNode("RootObj") ), nnkRecList.newTree( nnkIdentDefs.newTree( newIdentNode("strm"), newIdentNode("Stream"), newEmptyNode() ) ) ) ) ) ), nnkVarSection.newTree( nnkIdentDefs.newTree( newIdentNode("t"), newEmptyNode(), nnkObjConstr.newTree( newIdentNode("Test"), nnkExprColonExpr.newTree( newIdentNode("strm"), nnkCall.newTree( newIdentNode("newFileStream"), newLit("temp.txt"), newIdentNode("fmWrite") ) ) ) ) ), nnkProcDef.newTree( newIdentNode("p"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode() ), newEmptyNode(), newEmptyNode(), nnkStmtList.newTree( nnkForStmt.newTree( newIdentNode("s"), nnkPrefix.newTree( newIdentNode("@"), nnkBracket.newTree( newLit("a"), newLit("b") ) ), nnkStmtList.newTree( nnkCall.newTree( nnkDotExpr.newTree( nnkDotExpr.newTree( newIdentNode("t"), newIdentNode("strm") ), newIdentNode("writeLine") ), newIdentNode("s") ) ) ) ) ), nnkCall.newTree( newIdentNode("addExitProc"), newIdentNode("p") ) ) ```
#7739e2342 :arrow_right: :bug:

Diagnostics

ringabout introduced a bug at 2022-09-23 19:05:05 +0800 on commit #7739e2342 with message:

defaults to ORC (#19972)

* defaults to Orc

* bootstrap using refc

* use gc

* init orc defines

* unregister orc

* fix gc

* fix commands

* add prepareMutation for orc

* enable deepcopy for orc

* prepareMutation

* more fixes

* some cases

* bug #20081

* partial fixes

* partial fixes

* fixes command line

* more fixes

* build Nim with refc

* use gc

* more fixes

* rstore

* orc doesn't support threadpool

* more shallowCopy

* more fixes

* fixes unsafeNew

* workarounds

* small

* more fixes

* fixes some megatest

* tcodegenbugs1 refc

* fxies megatest

* build nimble with refc

* workaround tensordsl tests

* replace shallowCopy with move

* fixes action

* workaround

* add todo

* fixes important packages

* unpublic unregisterArcOrc

* fixes cpp

* enable windows

Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>

The bug is in the files:

.github/workflows/ci_docs.yml
compiler/commands.nim
compiler/nim.nim
compiler/options.nim
koch.nim
lib/system/iterators.nim
nimsuggest/sexp.nim
testament/categories.nim
testament/important_packages.nim
tests/assign/moverload_asgn2.nim
tests/async/tasync_traceback.nim
tests/ccgbugs/t13062.nim
tests/ccgbugs/tassign_nil_strings.nim
tests/ccgbugs/tcodegenbug1.nim
tests/ccgbugs/tdeepcopy_addr_rval.nim
tests/ccgbugs/thtiobj.nim
tests/ccgbugs/tmissinginit.nim
tests/ccgbugs/tmissingvolatile.nim
tests/collections/tseq.nim
tests/concepts/t3330.nim
tests/concepts/tusertypeclasses.nim
tests/destructor/tatomicptrs.nim
tests/errmsgs/t10376.nim
tests/exception/tcpp_imported_exc.nim
tests/generics/tgeneric3.nim
tests/generics/tparam_binding.nim
tests/gensym/tgensymgeneric.nim
tests/ic/config.nims
tests/iter/tshallowcopy_closures.nim
tests/macros/tstaticparamsmacro.nim
tests/magics/t10307.nim
tests/magics/tmagics.nim
tests/manyloc/keineschweine/keineschweine.nim.cfg
tests/manyloc/keineschweine/lib/estreams.nim
tests/metatype/tmetatype_various.nim
tests/metatype/tstaticparammacro.nim
tests/metatype/tstaticvector.nim
tests/misc/taddr.nim
tests/misc/tnew.nim
tests/misc/trunner_special.nim
tests/misc/tunsignedconv.nim
tests/modules/tmodule_name_clashes.nim
tests/niminaction/Chapter3/various3.nim
tests/objects/t4318.nim
tests/objects/tobj_asgn_dont_slice.nim
tests/objects/tobjconstr.nim
tests/parallel/tconvexhull.nim
tests/parallel/tdeepcopy.nim
tests/parallel/tdeepcopy2.nim
tests/parallel/tdisjoint_slice1.nim
tests/parallel/tflowvar.nim
tests/parallel/tinvalid_array_bounds.nim
tests/parallel/tmissing_deepcopy.nim
tests/parallel/tnon_disjoint_slice1.nim
tests/parallel/tparfind.nim
tests/parallel/tpi.nim
tests/parallel/tsendtwice.nim
tests/parallel/tsysspawn.nim
tests/parallel/tuseafterdef.nim
tests/parallel/twaitany.nim
tests/parser/t12274.nim
tests/pragmas/t12640.nim
tests/pragmas/tnoreturn.nim
tests/stdlib/mgenast.nim
tests/stdlib/tgenast.nim
tests/stdlib/thttpclient_ssl.nim
tests/stdlib/tjson.nim
tests/stdlib/tmitems.nim
tests/stdlib/tstdlib_various.nim
tests/stdlib/tstring.nim
tests/stdlib/twchartoutf8.nim
tests/system/tdeepcopy.nim
tests/template/twrongmapit.nim
tests/threads/tjsthreads.nim
tests/threads/tonthreadcreation.nim
tests/typerel/t4799_1.nim
tests/typerel/t4799_2.nim
tests/typerel/t4799_3.nim
tests/typerel/ttypedesc_as_genericparam1.nim
tests/typerel/ttypedesc_as_genericparam1_orc.nim
tests/typerel/ttypedesc_as_genericparam2.nim

The bug can be in the commits:

(Diagnostics sometimes off-by-one).

:robot: Bug found in 42 minutes bisecting 1580 commits at 38 commits per second.