Comments (7)
!nim c
type
Enum = enum
a = 2
b = 10
iterator items2(): Enum =
for a in [a, b]:
yield a
var s = newSeq[Enum]()
for i in items2():
s.add i
doAssert s == @[a, b]
from nim.
!nim c
type
Enum = enum
a = 2
b = 10
iterator items2(): Enum =
for a in [a, b]:
yield a
var s = newSeq[Enum]()
for i in items2():
s.add i
echo s
from nim.
!nim c
type
Enum = enum
a = 2
b = 10
iterator items2(): Enum =
for a in [a, b]:
yield a
var s = newSeq[Enum]()
for i in items2():
s.add i
doAssert s == @[a, b]
from nim.
Type inference bug, minimized
type Enum = enum a, b
block:
let a = b
let x: Enum = a
echo x # a
Type inference for enums overrides local symbols now but I thought this was removed because it's bad behavior, it was in semExpr for nkIdent, the commit the bisect links to just adapted type inference to yield
Edit: Here:
https://github.com/nim-lang/Nim/blob/devel/compiler%2Fsemexprs.nim#L3031-L3037
We can just remove these lines and see if CI passes, and backport it if it does, but on version-2-0 they might be directly inside semExpr under nkIdent rather than in resolveIdentToSym.
from nim.
π§ Linux bisect by @ringabout (member)
devel π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:49
- Finished
2024-05-09T04:36:49
- Duration
now
AST
stable π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:49
- Finished
2024-05-09T04:36:49
- Duration
now
AST
2.0.2 π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:52
- Finished
2024-05-09T04:36:52
- Duration
AST
1.6.14 π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:54
- Finished
2024-05-09T04:36:54
- Duration
now
AST
1.4.8 π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:57
- Finished
2024-05-09T04:36:57
- Duration
now
AST
1.2.18 π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:36:59
- Finished
2024-05-09T04:36:59
- Duration
now
AST
1.0.10 π FAIL
Output
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-09T04:37:01
- Finished
2024-05-09T04:37:01
- Duration
now
AST
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-09T04:36:19Z
- Comments
1
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
π€ Bug found in 15 minutes
bisecting 7
commits at 0
commits per second
from nim.
π§ Linux bisect by @ringabout (member)
devel π OK
Output
@[a, a]
IR
Compiled filesize99.05 Kb (101,424 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u168)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u217)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u301)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u179)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4555)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_3 = { 1 | NIM_STRLIT_FLAG, "a" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_4 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_3};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_5 = { 1 | NIM_STRLIT_FLAG, "b" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_6 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_5};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u215;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u216;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4339;
extern NIM_THREADVAR TFrame* framePtr__system_u2654;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u4)(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_4;
}
break;
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_6;
}
break;
default: __builtin_unreachable();
}
return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4339);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2654 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2654).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2654;
framePtr__system_u2654 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4555();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2654 = (*framePtr__system_u2654).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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) {
{
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T10_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u215 = newSeq__temp_u168(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u216 = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2);
colontmpD__2 = i__temp_u216;
add__temp_u217((&s__temp_u215), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
i += ((NI)1);
}
} LA4: ;
}
}
colontmpD_ = dollar___temp_u301(s__temp_u215);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T10_[0] = colontmpD_;
echoBinSafe(T10_, 1);
{
LA1_:;
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u179(s__temp_u215);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:40:58
- Finished
2024-05-09T04:40:59
- Duration
stable π OK
Output
@[a, b]
IR
Compiled filesize96.98 Kb (99,304 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u207)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u256)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u341)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u218)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "a" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 1 | NIM_STRLIT_FLAG, "b" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_7 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u254;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u255;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u4)(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_7;
}
break;
}
return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4403);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4621();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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) {
{
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T10_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u254 = newSeq__temp_u207(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u255 = a;
colontmpD__2 = i__temp_u255;
add__temp_u256((&s__temp_u254), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto LA1_;
};
if (TM__SRd76hP9cMfCzdUO857UhQQ_3 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_3 > 1){ raiseOverflow(); goto LA1_;
}
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
}
} LA4: ;
}
}
colontmpD_ = dollar___temp_u341(s__temp_u254);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T10_[0] = colontmpD_;
echoBinSafe(T10_, 1);
{
LA1_:;
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u218(s__temp_u254);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:40:59
- Finished
2024-05-09T04:41:00
- Duration
2.0.2 π OK
Output
@[a, b]
IR
Compiled filesize96.98 Kb (99,312 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u207)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u256)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u341)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u218)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "a" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 1 | NIM_STRLIT_FLAG, "b" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_7 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u254;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u255;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u4)(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
case ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_7;
}
break;
}
return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4403);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4621();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_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) {
{
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T10_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u254 = newSeq__temp_u207(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u255 = a;
colontmpD__2 = i__temp_u255;
add__temp_u256((&s__temp_u254), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto LA1_;
};
if (TM__SRd76hP9cMfCzdUO857UhQQ_3 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_3 > 1){ raiseOverflow(); goto LA1_;
}
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
}
} LA4: ;
}
}
colontmpD_ = dollar___temp_u341(s__temp_u254);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T10_[0] = colontmpD_;
echoBinSafe(T10_, 1);
{
LA1_:;
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u218(s__temp_u254);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:41:02
- Finished
2024-05-09T04:41:02
- Duration
1.6.14 π OK
Output
@[a, b]
IR
Compiled filesize105.61 Kb (108,144 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
# 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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q;
typedef struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg;
typedef struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ;
typedef struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg;
typedef struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g;
typedef struct tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA;
typedef struct tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A;
typedef struct tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA;
typedef struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw;
typedef struct tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg;
typedef struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg;
typedef struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw;
typedef struct tyTuple__6nVTvmjorcAWafHl9cWGFuA tyTuple__6nVTvmjorcAWafHl9cWGFuA;
typedef struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg;
typedef struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA;
typedef struct tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ;
typedef struct NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef NU8 tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA;
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__3rC59cFdCULJbp2tHLSZMXQ kind;
tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg {
void* bottom;
};
struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg {
NI len;
NI cap;
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q** d;
};
typedef tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA* tyArray__VYTQW7wK07xvH5Z4opKI1w[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* tyArray__YkUf1j9c9b6JzhUdDj7S3KQA[32];
typedef tyArray__YkUf1j9c9b6JzhUdDj7S3KQA tyArray__MQbMf9bcijUF9a14VvUbfzqg[24];
typedef tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg* tyArray__sCQfOQF0EdBvLpqvNeg1Mg[256];
struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw {
tyArray__sCQfOQF0EdBvLpqvNeg1Mg data;
};
typedef tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw[2];
struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg {
tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__6nVTvmjorcAWafHl9cWGFuA {
tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* Field0;
NI Field1;
};
typedef tyTuple__6nVTvmjorcAWafHl9cWGFuA tyArray__yUjlcLC9c9aIvr4MhTCDBnnA[30];
struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw {
NI len;
tyArray__yUjlcLC9c9aIvr4MhTCDBnnA chunks;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw* next;
};
struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g {
NI minLargeObj;
NI maxLargeObj;
tyArray__VYTQW7wK07xvH5Z4opKI1w freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__MQbMf9bcijUF9a14VvUbfzqg matrix;
tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw chunkStarts;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* root;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* deleted;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* last;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg bottomData;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw heapLinks;
};
struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA {
NI counter;
NI max;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ* head;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ** data;
};
struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ {
tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg zct;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg decStack;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tempStack;
NI recGcLock;
tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g region;
tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg stat;
tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA marked;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg additionalRoots;
NI gcThreadId;
};
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w;
struct TNimNode {
tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
TGenericSeq Sup;
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE];
};
static N_NIMCALL(void, Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*, newSeq__temp_56)(NI len);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5302)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5296)(tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg* s, tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___temp_134)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_;
N_LIB_PRIVATE TNimType NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_;
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* s__temp_73;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ gch__system_5249;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_74;
static N_NIMCALL(void, Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ)(void* p, NI op) {
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* a;
NI T1_;
a = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*)p;
T1_ = (NI)0;
}
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__temp_73, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_2564;
framePtr__system_2564 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__system_2997();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_2564 = (*framePtr__system_2564).prev;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
NI result;
nimfr_("+%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
popFrame();
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
NI result;
nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5302)(void* usr) {
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* result;
NI T1_;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
result = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T1_ = (NI)0;
T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
result = ((tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*) (T1_));
popFrame();
return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
NIM_BOOL result;
nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/comparisons.nim");
result = (NIM_BOOL)0;
result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
addZCT__system_5296((&gch__system_5249.zct), c);
popFrame();
}
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
if (!T3_) goto LA4_;
rtlAddZCT__system_5345(c);
}
LA4_: ;
popFrame();
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
{
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* T5_;
if (!!((src == NIM_NIL))) goto LA3_;
T5_ = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T5_ = usrToCell__system_5302(src);
incRef__system_5340(T5_);
}
LA3_: ;
{
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* T10_;
if (!!(((*dest) == NIM_NIL))) goto LA8_;
T10_ = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T10_ = usrToCell__system_5302((*dest));
decRef__system_5347(T10_);
}
LA8_: ;
(*dest) = src;
popFrame();
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(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__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000();
initStackBottomWith((void *)&inner);
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000();
atmtempdotnim_DatInit000();
(*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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
tyArray__nHXaesL0DJZHyVS07ARPRA T10_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__temp_73), newSeq__temp_56(((NI) 0)));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI) 0);
{
while (1) {
NI T5_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__temp_74 = a;
asgnRef((void**) (&s__temp_73), (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*) incrSeqV3((TGenericSeq*)(s__temp_73), (&NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_)));
T5_ = s__temp_73->Sup.len++;
s__temp_73->data[T5_] = i__temp_74;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA8_;
goto LA3;
}
LA8_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA3: ;
}
}
nimZeroMem((void*)T10_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T10_[0] = dollar___temp_134(s__temp_73);
echoBinSafe(T10_, 1);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.size = sizeof(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA);
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.align = NIM_ALIGNOF(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA);
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.kind = 14;
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.base = 0;
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.flags = 1<<2;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.size = sizeof(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.align = NIM_ALIGNOF(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.kind = 24;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.base = (&NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.flags = 2;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.marker = Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
}
Stats
- Started
2024-05-09T04:41:05
- Finished
2024-05-09T04:41:05
- Duration
1.4.8 π OK
Output
@[a, b]
IR
Compiled filesize106.02 Kb (108,560 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
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(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
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*, dollar___9asdNzTbxWtqZ1OGrivIJqg)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
static NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
N_LIB_PRIVATE tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
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;
N_LIB_PRIVATE tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) 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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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);
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T14_[0] = dollar___9asdNzTbxWtqZ1OGrivIJqg(s__3LIKhS5Wi6V7579bNnofO5g);
echoBinSafe(T14_, 1);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.align = NIM_ALIGNOF(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:41:08
- Finished
2024-05-09T04:41:08
- Duration
1.2.18 π OK
Output
@[a, b]
IR
Compiled filesize97.74 Kb (100,088 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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__SiRwrEKZdLgxqz9a9aoVBglg[512];
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__SiRwrEKZdLgxqz9a9aoVBglg 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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
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(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
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*, dollar___9asdNzTbxWtqZ1OGrivIJqg)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
static NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
N_LIB_PRIVATE tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
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;
N_LIB_PRIVATE tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 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) (((NI) 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.2.18/lib/system/arithm"
"etics.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.2.18/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.2.18/lib/system/arithm"
"etics.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.2.18/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.2.18/lib/system/compar"
"isons.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.2.18/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.2.18/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.2.18/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);
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T14_[0] = dollar___9asdNzTbxWtqZ1OGrivIJqg(s__3LIKhS5Wi6V7579bNnofO5g);
echoBinSafe(T14_, 1);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:41:10
- Finished
2024-05-09T04:41:11
- Duration
1.0.10 π OK
Output
@[a, b]
IR
Compiled filesize92.77 Kb (94,992 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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__SiRwrEKZdLgxqz9a9aoVBglg[512];
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__SiRwrEKZdLgxqz9a9aoVBglg 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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
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(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
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_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
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*, dollar___9asdNzTbxWtqZ1OGrivIJqg)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
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;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) { NI T1_;
T1_ = (NI)0;
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
T1_ = ((NI) 0);
}
goto LA2_;
LA4_: ;
{
T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
}
LA2_: ;
(*s).calldepth = ((NI16) (T1_));
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA9_: ;
}
static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/gc.nim");
(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
popFrame();
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/gc.nim");
result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI) 16)))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.0.10/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.0.10/lib/system/gc.nim");
(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
{
if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system(c);
}
LA3_: ;
popFrame();
}
static N_INLINE(void, asgnRef)(void** dest, void* src) { nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.0.10/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(NI, addInt)(NI a, NI b) { NI result;
{ result = (NI)0;
result = (NI)((NU64)(a) + (NU64)(b));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = (((NI) 0) <= (NI)(result ^ a));
if (T3_) goto LA4_;
T3_ = (((NI) 0) <= (NI)(result ^ b));
LA4_: ;
if (!T3_) goto LA5_;
goto BeforeRet_;
}
LA5_: ;
raiseOverflow();
}BeforeRet_: ;
return result;
}
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);
}
static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
tempDatInit000();
(*inner)();
}
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) {
{
tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
TM__SRd76hP9cMfCzdUO857UhQQ_7 = addInt(i, ((NI) 1));
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1) raiseOverflow();
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T14_[0] = dollar___9asdNzTbxWtqZ1OGrivIJqg(s__3LIKhS5Wi6V7579bNnofO5g);
echoBinSafe(T14_, 1);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:41:12
- Finished
2024-05-09T04:41:13
- Duration
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-09T04:40:28Z
- Comments
3
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
π€ Bug found in 18 minutes
bisecting 7
commits at 0
commits per second
from nim.
π§ Linux bisect by @ringabout (member)
devel π FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints: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 temp
/home/runner/.choosenim/toolchains/nim-#devel/lib/std/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-#devel/lib/std/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-#devel/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(11, 1) `s == @[a, b]` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize98.14 Kb (100,496 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u168)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u217)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_u241)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0, tySequence__fEmfwfXkZgfvfVGgBu0R9aQ y_p1);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u235)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u179)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4555)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[57+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_3 = { 57 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(11, 1) `s == @[a, b]` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_4 = {57, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_3};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u215;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u216;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4339;
extern NIM_THREADVAR TFrame* framePtr__system_u2654;
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4339);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2654 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2654).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2654;
framePtr__system_u2654 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4555();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2654 = (*framePtr__system_u2654).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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) {
{
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ colontmpD_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u215 = newSeq__temp_u168(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u216 = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2);
colontmpD__2 = i__temp_u216;
add__temp_u217((&s__temp_u215), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
i += ((NI)1);
}
} LA4: ;
}
}
{
NIM_BOOL T12_;
colontmpD_.len = 2; colontmpD_.p = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content*) newSeqPayload(2, sizeof(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA), NIM_ALIGNOF(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA));
colontmpD_.p->data[0] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2);
colontmpD_.p->data[1] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10);
T12_ = (NIM_BOOL)0;
T12_ = eqeq___temp_u241(s__temp_u215, colontmpD_);
if (!!(T12_)) goto LA13_;
failedAssertImpl__stdZassertions_u235(TM__SRd76hP9cMfCzdUO857UhQQ_4);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA13_: ;
{
LA1_:;
}
{
eqdestroy___temp_u179(colontmpD_);
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u179(s__temp_u215);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:42:18
- Finished
2024-05-09T04:42:19
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Enum"),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
nnkEnumFieldDef.newTree(
newIdentNode("a"),
newLit(2)
),
nnkEnumFieldDef.newTree(
newIdentNode("b"),
newLit(10)
)
)
)
),
nnkIteratorDef.newTree(
newIdentNode("items2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("Enum")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkForStmt.newTree(
newIdentNode("a"),
nnkBracket.newTree(
newIdentNode("a"),
newIdentNode("b")
),
nnkStmtList.newTree(
nnkYieldStmt.newTree(
newIdentNode("a")
)
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkCall.newTree(
nnkBracketExpr.newTree(
newIdentNode("newSeq"),
newIdentNode("Enum")
)
)
)
),
nnkForStmt.newTree(
newIdentNode("i"),
nnkCall.newTree(
newIdentNode("items2")
),
nnkStmtList.newTree(
nnkCommand.newTree(
nnkDotExpr.newTree(
newIdentNode("s"),
newIdentNode("add")
),
newIdentNode("i")
)
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
newIdentNode("s"),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newIdentNode("a"),
newIdentNode("b")
)
)
)
)
)
stable π OK
Output
IR
Compiled filesize96.02 Kb (98,328 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u207)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u256)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_u280)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0, tySequence__fEmfwfXkZgfvfVGgBu0R9aQ y_p1);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u218)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[57+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 57 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(11, 1) `s == @[a, b]` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {57, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u254;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u255;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4403);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4621();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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) {
{
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ colontmpD_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u254 = newSeq__temp_u207(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u255 = a;
colontmpD__2 = i__temp_u255;
add__temp_u256((&s__temp_u254), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto LA1_;
};
if (TM__SRd76hP9cMfCzdUO857UhQQ_3 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_3 > 1){ raiseOverflow(); goto LA1_;
}
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
}
} LA4: ;
}
}
{
NIM_BOOL T12_;
colontmpD_.len = 2; colontmpD_.p = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content*) newSeqPayload(2, sizeof(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA), NIM_ALIGNOF(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA));
colontmpD_.p->data[0] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2);
colontmpD_.p->data[1] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10);
T12_ = (NIM_BOOL)0;
T12_ = eqeq___temp_u280(s__temp_u254, colontmpD_);
if (!!(T12_)) goto LA13_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_5);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA13_: ;
{
LA1_:;
}
{
eqdestroy___temp_u218(colontmpD_);
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u218(s__temp_u254);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:42:19
- Finished
2024-05-09T04:42:20
- Duration
2.0.2 π OK
Output
IR
Compiled filesize96.03 Kb (98,336 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
NI len; tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content* p;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content { NI cap; tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ, newSeq__temp_u207)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__temp_u256)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x_p0, tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA y_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_u280)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ x_p0, tySequence__fEmfwfXkZgfvfVGgBu0R9aQ y_p1);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u218)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[57+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 57 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(11, 1) `s == @[a, b]` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {57, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10)}
;
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ s__temp_u254;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_u255;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4403);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4621();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_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) {
{
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ colontmpD_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
s__temp_u254 = newSeq__temp_u207(((NI)0));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI)0);
{
while (1) {
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA colontmpD__2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
colontmpD__2 = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
a = TM__SRd76hP9cMfCzdUO857UhQQ_2[(i)- 0];
i__temp_u255 = a;
colontmpD__2 = i__temp_u255;
add__temp_u256((&s__temp_u254), colontmpD__2);
{
if (!(((NI)1) <= ((NI) (i)))) goto LA8_;
goto LA4;
}
LA8_: ;
if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto LA1_;
};
if (TM__SRd76hP9cMfCzdUO857UhQQ_3 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_3 > 1){ raiseOverflow(); goto LA1_;
}
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
}
} LA4: ;
}
}
{
NIM_BOOL T12_;
colontmpD_.len = 2; colontmpD_.p = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ_Content*) newSeqPayload(2, sizeof(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA), NIM_ALIGNOF(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA));
colontmpD_.p->data[0] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)2);
colontmpD_.p->data[1] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)10);
T12_ = (NIM_BOOL)0;
T12_ = eqeq___temp_u280(s__temp_u254, colontmpD_);
if (!!(T12_)) goto LA13_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_5);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA13_: ;
{
LA1_:;
}
{
eqdestroy___temp_u218(colontmpD_);
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u218(s__temp_u254);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-09T04:42:22
- Finished
2024-05-09T04:42:23
- Duration
1.6.14 π OK
Output
IR
Compiled filesize104.85 Kb (107,368 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
# 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 tySequence__fEmfwfXkZgfvfVGgBu0R9aQ tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q;
typedef struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg;
typedef struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ;
typedef struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg;
typedef struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g;
typedef struct tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA;
typedef struct tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A;
typedef struct tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA;
typedef struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw;
typedef struct tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg;
typedef struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg;
typedef struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw;
typedef struct tyTuple__6nVTvmjorcAWafHl9cWGFuA tyTuple__6nVTvmjorcAWafHl9cWGFuA;
typedef struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg;
typedef struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA;
typedef struct tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ;
typedef struct NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA;
typedef NU8 tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA;
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__3rC59cFdCULJbp2tHLSZMXQ kind;
tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg {
void* bottom;
};
struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg {
NI len;
NI cap;
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q** d;
};
typedef tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA* tyArray__VYTQW7wK07xvH5Z4opKI1w[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* tyArray__YkUf1j9c9b6JzhUdDj7S3KQA[32];
typedef tyArray__YkUf1j9c9b6JzhUdDj7S3KQA tyArray__MQbMf9bcijUF9a14VvUbfzqg[24];
typedef tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg* tyArray__sCQfOQF0EdBvLpqvNeg1Mg[256];
struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw {
tyArray__sCQfOQF0EdBvLpqvNeg1Mg data;
};
typedef tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw[2];
struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg {
tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__6nVTvmjorcAWafHl9cWGFuA {
tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* Field0;
NI Field1;
};
typedef tyTuple__6nVTvmjorcAWafHl9cWGFuA tyArray__yUjlcLC9c9aIvr4MhTCDBnnA[30];
struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw {
NI len;
tyArray__yUjlcLC9c9aIvr4MhTCDBnnA chunks;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw* next;
};
struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g {
NI minLargeObj;
NI maxLargeObj;
tyArray__VYTQW7wK07xvH5Z4opKI1w freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__MQbMf9bcijUF9a14VvUbfzqg matrix;
tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw chunkStarts;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* root;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* deleted;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* last;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg bottomData;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw heapLinks;
};
struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA {
NI counter;
NI max;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ* head;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ** data;
};
struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ {
tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg zct;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg decStack;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tempStack;
NI recGcLock;
tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g region;
tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg stat;
tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA marked;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg additionalRoots;
NI gcThreadId;
};
typedef tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA tyArray__EoEahNCZNHm39czkt8HQFZw[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w;
struct TNimNode {
tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tySequence__fEmfwfXkZgfvfVGgBu0R9aQ {
TGenericSeq Sup;
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA data[SEQ_DECL_SIZE];
};
static N_NIMCALL(void, Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*, newSeq__temp_56)(NI len);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5302)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5296)(tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg* s, tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_83)(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* x, tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* y);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(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, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_;
N_LIB_PRIVATE TNimType NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_;
static NIM_CONST tyArray__EoEahNCZNHm39czkt8HQFZw TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 2),
((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 10)}
;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/work/Nim/Nim/temp.nim(11, 10) `s == @[a, b]` ", 58);
N_LIB_PRIVATE tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* s__temp_73;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ gch__system_5249;
N_LIB_PRIVATE tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA i__temp_74;
static N_NIMCALL(void, Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ)(void* p, NI op) {
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* a;
NI T1_;
a = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*)p;
T1_ = (NI)0;
}
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__temp_73, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_2564;
framePtr__system_2564 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__system_2997();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_2564 = (*framePtr__system_2564).prev;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
NI result;
nimfr_("+%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
popFrame();
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
NI result;
nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5302)(void* usr) {
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* result;
NI T1_;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
result = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T1_ = (NI)0;
T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
result = ((tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*) (T1_));
popFrame();
return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
NIM_BOOL result;
nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/comparisons.nim");
result = (NIM_BOOL)0;
result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
addZCT__system_5296((&gch__system_5249.zct), c);
popFrame();
}
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
if (!T3_) goto LA4_;
rtlAddZCT__system_5345(c);
}
LA4_: ;
popFrame();
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
{
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* T5_;
if (!!((src == NIM_NIL))) goto LA3_;
T5_ = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T5_ = usrToCell__system_5302(src);
incRef__system_5340(T5_);
}
LA3_: ;
{
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* T10_;
if (!!(((*dest) == NIM_NIL))) goto LA8_;
T10_ = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T10_ = usrToCell__system_5302((*dest));
decRef__system_5347(T10_);
}
LA8_: ;
(*dest) = src;
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000();
initStackBottomWith((void *)&inner);
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000();
atmtempdotnim_DatInit000();
(*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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__temp_73), newSeq__temp_56(((NI) 0)));
{
{
tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA a;
NI i;
a = (tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA)0;
i = ((NI) 0);
{
while (1) {
NI T5_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__temp_74 = a;
asgnRef((void**) (&s__temp_73), (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*) incrSeqV3((TGenericSeq*)(s__temp_73), (&NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_)));
T5_ = s__temp_73->Sup.len++;
s__temp_73->data[T5_] = i__temp_74;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA8_;
goto LA3;
}
LA8_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA3: ;
}
}
{
tySequence__fEmfwfXkZgfvfVGgBu0R9aQ* T12_;
NIM_BOOL T13_;
T12_ = NIM_NIL;
T12_ = (tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*) newSeq((&NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_), 2);
T12_->data[0] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 2);
T12_->data[1] = ((tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA) 10);
T13_ = (NIM_BOOL)0;
T13_ = eqeq___temp_83(s__temp_73, T12_);
if (!!(T13_)) goto LA14_;
failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
}
LA14_: ;
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.size = sizeof(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA);
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.align = NIM_ALIGNOF(tyEnum_Enum__vUE9bEY2Xv5IEByiMQ9bylUA);
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.kind = 14;
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.base = 0;
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_.flags = 1<<2;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.size = sizeof(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.align = NIM_ALIGNOF(tySequence__fEmfwfXkZgfvfVGgBu0R9aQ*);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.kind = 24;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.base = (&NTIenum__vUE9bEY2Xv5IEByiMQ9bylUA_);
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.flags = 2;
NTIseqLenumT__fEmfwfXkZgfvfVGgBu0R9aQ_.marker = Marker_tySequence__fEmfwfXkZgfvfVGgBu0R9aQ;
}
Stats
- Started
2024-05-09T04:42:25
- Finished
2024-05-09T04:42:26
- Duration
1.4.8 π OK
Output
IR
Compiled filesize97.21 Kb (99,544 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
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(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___VdQP1AQ8dQ2E1qrT2oUN2w)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x, tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* y);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
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, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
static NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/work/Nim/Nim/temp.nim(11, 10) `s == @[a, b]` ", 58);
N_LIB_PRIVATE tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
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;
N_LIB_PRIVATE tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) 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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
{
tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* T16_;
NIM_BOOL T17_;
T16_ = (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*)0;
T16_ = (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) newSeq((&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_), 2);
T16_->data[0] = ((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2);
T16_->data[1] = ((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10);
T17_ = (NIM_BOOL)0;
T17_ = eqeq___VdQP1AQ8dQ2E1qrT2oUN2w(s__3LIKhS5Wi6V7579bNnofO5g, T16_);
if (!!(T17_)) goto LA18_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
}
LA18_: ;
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.align = NIM_ALIGNOF(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:42:28
- Finished
2024-05-09T04:42:28
- Duration
1.2.18 π OK
Output
IR
Compiled filesize96.94 Kb (99,264 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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__SiRwrEKZdLgxqz9a9aoVBglg[512];
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__SiRwrEKZdLgxqz9a9aoVBglg 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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
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(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___VdQP1AQ8dQ2E1qrT2oUN2w)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x, tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* y);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
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, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
static NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/work/Nim/Nim/temp.nim(11, 10) `s == @[a, b]` ", 58);
N_LIB_PRIVATE tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
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;
N_LIB_PRIVATE tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 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) (((NI) 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.2.18/lib/system/arithm"
"etics.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.2.18/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.2.18/lib/system/arithm"
"etics.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.2.18/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.2.18/lib/system/compar"
"isons.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.2.18/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.2.18/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.2.18/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, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
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;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
TFrame FR_; FR_.len = 0;
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
}
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1){ raiseOverflow(); }
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
{
tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* T16_;
NIM_BOOL T17_;
T16_ = NIM_NIL;
T16_ = (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) newSeq((&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_), 2);
T16_->data[0] = ((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2);
T16_->data[1] = ((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10);
T17_ = (NIM_BOOL)0;
T17_ = eqeq___VdQP1AQ8dQ2E1qrT2oUN2w(s__3LIKhS5Wi6V7579bNnofO5g, T16_);
if (!!(T17_)) goto LA18_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
}
LA18_: ;
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:42:31
- Finished
2024-05-09T04:42:31
- Duration
1.0.10 π OK
Output
IR
Compiled filesize92.09 Kb (94,296 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
# 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 tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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 NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg;
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;
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;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
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__SiRwrEKZdLgxqz9a9aoVBglg[512];
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__SiRwrEKZdLgxqz9a9aoVBglg 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 tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg tyArray__2IabNbFx1rhFM1wHDQ9b5kQ[2];
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*, newSeq__qgwWxgCsoKGJnlgkmBqlUQ)(NI len);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
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(void, decRef__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
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_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___VdQP1AQ8dQ2E1qrT2oUN2w)(tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* x, tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* y);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* s__3LIKhS5Wi6V7579bNnofO5g;
TNimType NTI__dmBjsd4qLergxHiuaoLHkg_;
extern TNimType NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_;
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;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg i__Vuap9ai8jfbvRhF5w5oYzTw;
NIM_CONST tyArray__2IabNbFx1rhFM1wHDQ9b5kQ TM__SRd76hP9cMfCzdUO857UhQQ_6 = {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}
;
NIM_CONST struct {
TGenericSeq Sup;
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg data[2];
} TM__SRd76hP9cMfCzdUO857UhQQ_9 = {{2, 2 | NIM_STRLIT_FLAG}, {((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 2),
((tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg) 10)}};
NIM_CONST tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ* TM__SRd76hP9cMfCzdUO857UhQQ_8 = ((tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_9);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "/home/runner/work/Nim/Nim/temp.nim(11, 10) `s == @[a, b]` ", 58);
static N_NIMCALL(void, TM__SRd76hP9cMfCzdUO857UhQQ_5)(void) {
nimGCvisit((void*)s__3LIKhS5Wi6V7579bNnofO5g, 0);
}
static N_INLINE(void, nimFrame)(TFrame* s) { NI T1_;
T1_ = (NI)0;
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
T1_ = ((NI) 0);
}
goto LA2_;
LA4_: ;
{
T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
}
LA2_: ;
(*s).calldepth = ((NI16) (T1_));
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA9_: ;
}
static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("incRef", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/gc.nim");
(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
popFrame();
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/gc.nim");
result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI) 16)))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.0.10/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.0.10/lib/system/gc.nim");
(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
{
if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_3system(c);
}
LA3_: ;
popFrame();
}
static N_INLINE(void, asgnRef)(void** dest, void* src) { nimfr_("asgnRef", "/home/runner/.choosenim/toolchains/nim-1.0.10/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(NI, addInt)(NI a, NI b) { NI result;
{ result = (NI)0;
result = (NI)((NU64)(a) + (NU64)(b));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = (((NI) 0) <= (NI)(result ^ a));
if (T3_) goto LA4_;
T3_ = (((NI) 0) <= (NI)(result ^ b));
LA4_: ;
if (!T3_) goto LA5_;
goto BeforeRet_;
}
LA5_: ;
raiseOverflow();
}BeforeRet_: ;
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
tempDatInit000();
(*inner)();
}
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimRegisterGlobalMarker(TM__SRd76hP9cMfCzdUO857UhQQ_5);
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), newSeq__qgwWxgCsoKGJnlgkmBqlUQ(((NI) 0)));
{
{
tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg a;
NI i;
a = (tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg)0;
i = ((NI) 0);
{
if (!(((NI) (i)) <= ((NI) 1))) goto LA5_;
{
while (1) {
NI T9_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
a = TM__SRd76hP9cMfCzdUO857UhQQ_6[(i)- 0];
i__Vuap9ai8jfbvRhF5w5oYzTw = a;
asgnRef((void**) (&s__3LIKhS5Wi6V7579bNnofO5g), (tySequence__K5QKUsFvWE9cHkZ9bUXhYOSQ*) incrSeqV3((TGenericSeq*)(s__3LIKhS5Wi6V7579bNnofO5g), (&NTI__K5QKUsFvWE9cHkZ9bUXhYOSQ_)));
T9_ = s__3LIKhS5Wi6V7579bNnofO5g->Sup.len++;
s__3LIKhS5Wi6V7579bNnofO5g->data[T9_] = i__Vuap9ai8jfbvRhF5w5oYzTw;
{
if (!(((NI) 1) <= ((NI) (i)))) goto LA12_;
goto LA7;
}
LA12_: ;
TM__SRd76hP9cMfCzdUO857UhQQ_7 = addInt(i, ((NI) 1));
if (TM__SRd76hP9cMfCzdUO857UhQQ_7 < 0 || TM__SRd76hP9cMfCzdUO857UhQQ_7 > 1) raiseOverflow();
i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
}
} LA7: ;
}
LA5_: ;
}
}
{
NIM_BOOL T16_;
T16_ = (NIM_BOOL)0;
T16_ = eqeq___VdQP1AQ8dQ2E1qrT2oUN2w(s__3LIKhS5Wi6V7579bNnofO5g, TM__SRd76hP9cMfCzdUO857UhQQ_8);
if (!!(T16_)) goto LA17_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10));
}
LA17_: ;
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"a",
"b"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__dmBjsd4qLergxHiuaoLHkg_.size = sizeof(tyEnum_Enum__dmBjsd4qLergxHiuaoLHkg);
NTI__dmBjsd4qLergxHiuaoLHkg_.kind = 14;
NTI__dmBjsd4qLergxHiuaoLHkg_.base = 0;
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[0].offset = 2;
TM__SRd76hP9cMfCzdUO857UhQQ_0[1].offset = 10;
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__dmBjsd4qLergxHiuaoLHkg_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
NTI__dmBjsd4qLergxHiuaoLHkg_.flags = 1<<2;
}
Stats
- Started
2024-05-09T04:42:33
- Finished
2024-05-09T04:42:33
- Duration
#cfd69bad1 β‘οΈ π
Diagnostics
metagn introduced a bug at 2024-01-18 23:19:29 +0300
on commit #cfd69bad1 with message:
fix wrong subtype relation in tuples & infer some conversions (#23228)
fixes #18125
Previously a tuple type like `(T, int)` would match an expected tuple
type `(U, int)` if `T` is a subtype of `U`. This is wrong since the
codegen does not handle type conversions of individual tuple elements in
a type conversion of an entire tuple. For this reason the compiler
already does not accept `(float, int)` for a matched type `(int, int)`,
however the code that checked for which relations are unacceptable
checked for `< isSubtype` rather than `<= isSubtype`, so subtypes were
not included in the unacceptable relations.
Update: Now only considered unacceptable when inheritance is used, as in
[`paramTypesMatch`](https://github.com/nim-lang/Nim/blob/3379d26629f30e6be8d303a36e220d1039eb4551/compiler/sigmatch.nim#L2252-L2254).
Ideally subtype relations that don't need conversions, like `nil`,
`seq[empty]`, `range[0..5]` etc would be their own relation
`isConcreteSubtype` (which would also allow us to differentiate with
`openArray[T]`), but this is too big of a refactor for now.
To compensate for this making things like `let x: (Parent, int) =
(Child(), 0)` not compile (they would crash codegen before anyway but
should still work in principle), type inference for tuple constructors
is updated such that they call `fitNode` on the fields and their
expected types, so a type conversion is generated for the individual
subtype element.
The bug is in the files:
compiler/semexprs.nim
compiler/sigmatch.nim
tests/tuples/t18125_1.nim
tests/tuples/t18125_2.nim
The bug can be in the commits:
(Diagnostics sometimes off-by-one).
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-09T04:41:47Z
- Comments
5
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
π€ Bug found in 27 minutes
bisecting 599
commits at 22
commits per second
from nim.
Related Issues (20)
- Compiler crashes with infinite recursion for nested generic instantiation with static[int]
- The stdout.write doesn't print to terminal until new line symbol is sent HOT 3
- Gc_ref(x: string) and Gc_ref[T](x: seq[T]) doesn't exists anymore ? HOT 2
- tasks.toTask Doesn't Expect a Dot Expression
- [potential bug] SIGILL at `renderer.atom()`
- SIGSEGV due to freeing of uninitialized local string, during exception handling HOT 21
- Parameterless Conversions and Upcasting Are Broken HOT 3
- Thread var cannot be returned from a proc. Causing SIGSEV HOT 4
- C++ generation issue when wrapping constructors HOT 11
- C++ compilation fails with: 'T1_' was not declared in this scope HOT 2
- Overloaded template causes `untyped` param is resolved when called. HOT 6
- Add `hash()` for `Path`
- [C, C++ & ObjC codegen] Incompatible pointer types used in codegen (an error on GCC 14) HOT 1
- Why this code produces a compiler warningοΌ Warning: `=destroy`(t.c) can raise an unlisted exception: Exception HOT 1
- Consider migrating from pcre to pcre2 HOT 1
- [Feature] a new lint rule to require that each block must end with #. or # or a new line. HOT 2
- Nimsuggest's inlay exception hints don't work for iterators
- compiler does not throw "... has to be used or discarded" error when else branch raises error HOT 6
- Extremely slow and inefficient hash function for openArray[byte] for 64-bit systems HOT 4
- Overloaded `template`s across scopes where one has `untyped` parameter fail to build HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nim.