Comments (9)
!nim c
type K = tuple
g, w: int
let
a: int32 = 1
i: int = 1
v: K = (i * a, i * a)
from nim.
!nim js
type K = tuple
g, w: int
let
a: int32 = 1
i: int = 1
v: K = (i * a, i * a)
from nim.
🐧 Linux bisect by @metagn (collaborator)
devel 👍 OK
Output
IR
Compiled filesize92.97 Kb (95,200 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(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_u4608)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE NIM_CONST NI32 a__temp_u6 = ((NI32)1);
N_LIB_PRIVATE NIM_CONST NI i__temp_u7 = ((NI)1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__temp_u8;
extern NIM_THREADVAR TFrame* framePtr__system_u2688;
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2688 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2688).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2688;
framePtr__system_u2688 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4608();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2688 = (*framePtr__system_u2688).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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:03
- Finished
2024-03-11T08:41:04
- Duration
1 minutes
stable 👍 OK
Output
IR
Compiled filesize90.80 Kb (92,976 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(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);
N_LIB_PRIVATE NIM_CONST NI32 a__temp_u6 = ((NI32)1);
N_LIB_PRIVATE NIM_CONST NI i__temp_u7 = ((NI)1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__temp_u8;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:06
- Finished
2024-03-11T08:41:06
- Duration
2.0.2 👍 OK
Output
IR
Compiled filesize90.80 Kb (92,976 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(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);
N_LIB_PRIVATE NIM_CONST NI32 a__temp_u6 = ((NI32)1);
N_LIB_PRIVATE NIM_CONST NI i__temp_u7 = ((NI)1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__temp_u8;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__temp_u7, ((NI) (a__temp_u6)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
};
v__temp_u8.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:06
- Finished
2024-03-11T08:41:07
- Duration
1.6.14 👍 OK
Output
IR
Compiled filesize95.44 Kb (97,728 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE NIM_CONST NI32 a__temp_6 = ((NI32) 1);
N_LIB_PRIVATE NIM_CONST NI i__temp_7 = ((NI) 1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__temp_8;
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;
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
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;
}
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();
(*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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__temp_7, ((NI) (a__temp_6)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
v__temp_8.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__temp_7, ((NI) (a__temp_6)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
v__temp_8.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:10
- Finished
2024-03-11T08:41:10
- Duration
1.4.8 👍 OK
Output
IR
Compiled filesize91.35 Kb (93,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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE NIM_CONST NI32 a__pmzNoNHAcaDPxnGmV0hjXA = ((NI32) 1);
N_LIB_PRIVATE NIM_CONST NI i__Vuap9ai8jfbvRhF5w5oYzTw = ((NI) 1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__ZBo9advJ7u8QecSF0Bd4bHA;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
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;
}
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();
(*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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
v__ZBo9advJ7u8QecSF0Bd4bHA.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
v__ZBo9advJ7u8QecSF0Bd4bHA.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:12
- Finished
2024-03-11T08:41:13
- Duration
1.2.18 👍 OK
Output
IR
Compiled filesize87.08 Kb (89,168 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE NIM_CONST NI32 a__pmzNoNHAcaDPxnGmV0hjXA = ((NI32) 1);
N_LIB_PRIVATE NIM_CONST NI i__Vuap9ai8jfbvRhF5w5oYzTw = ((NI) 1);
N_LIB_PRIVATE tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__ZBo9advJ7u8QecSF0Bd4bHA;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
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;
}
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();
(*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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
if (nimMulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
v__ZBo9advJ7u8QecSF0Bd4bHA.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
if (nimMulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
v__ZBo9advJ7u8QecSF0Bd4bHA.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:15
- Finished
2024-03-11T08:41:15
- Duration
1.0.10 👍 OK
Output
IR
Compiled filesize86.18 Kb (88,248 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 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
N_NIMCALL(NI, mulInt)(NI a, NI b);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
NI32 a__pmzNoNHAcaDPxnGmV0hjXA;
NI i__Vuap9ai8jfbvRhF5w5oYzTw;
tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ v__ZBo9advJ7u8QecSF0Bd4bHA;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals);
}
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;
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
(*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) {
{
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
a__pmzNoNHAcaDPxnGmV0hjXA = ((NI32) 1);
i__Vuap9ai8jfbvRhF5w5oYzTw = ((NI) 1);
TM__SRd76hP9cMfCzdUO857UhQQ_2 = mulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)));
v__ZBo9advJ7u8QecSF0Bd4bHA.Field0 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
TM__SRd76hP9cMfCzdUO857UhQQ_3 = mulInt(i__Vuap9ai8jfbvRhF5w5oYzTw, ((NI) (a__pmzNoNHAcaDPxnGmV0hjXA)));
v__ZBo9advJ7u8QecSF0Bd4bHA.Field1 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
popFrame();
}
}
Stats
- Started
2024-03-11T08:41:17
- Finished
2024-03-11T08:41:18
- Duration
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
19.1
- Created
2024-03-11T08:40:26Z
- 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 18 minutes
bisecting 7
commits at 0
commits per second
from nim.
🐧 Linux bisect by @metagn (collaborator)
devel 👍 OK
Output
IR
Compiled filesize20.06 Kb (20,545 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI520093699 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI134217749 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217751 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33554435 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI33555824 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33555167 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555175 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33554449 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI33554450 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI33555174 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33555171 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555172 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217741 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217743 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI134217743 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217743.node = NNI134217743;
var NNI134217741 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217741.node = NNI134217741;
var NNI33555172 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555172.node = NNI33555172;
NTI33555174.base = NTI33555171;
NTI33555175.base = NTI33555171;
var NNI33555171 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555174, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI33554450, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI33554449, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI33554449, name: "trace", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI33555175, name: "up", sons: null}]};
NTI33555171.node = NNI33555171;
var NNI33555167 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555167.node = NNI33555167;
NTI33555171.base = NTI33555167;
NTI33555172.base = NTI33555171;
NTI134217741.base = NTI33555172;
NTI134217743.base = NTI134217741;
var NNI33555824 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554450, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null},
{kind: 1, offset: "Field2", len: 0, typ: NTI33554450, name: "Field2", sons: null}]};
NTI33555824.node = NNI33555824;
var NNI134217751 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217751.node = NNI134217751;
NTI134217751.base = NTI33555172;
var NNI134217749 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217749.node = NNI134217749;
NTI134217749.base = NTI33555172;
var NNI520093699 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554435, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null}]};
NTI520093699.node = NNI520093699;
function arrayConstr(len_33557301, value_33557302, typ_33557303) {
var result = new Array(len_33557301);
for (var i = 0; i < len_33557301; ++i) result[i] = nimCopy(null, value_33557302, typ_33557303);
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_33557255, src_33557256, ti_33557257) {
var result_33557266 = null;
switch (ti_33557257.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(isFatPointer_33557246(ti_33557257))) {
result_33557266 = src_33557256;
}
else {
result_33557266 = [src_33557256[0], src_33557256[1]];
}
break;
case 19:
if (dest_33557255 === null || dest_33557255 === undefined) {
dest_33557255 = {};
}
else {
for (var key in dest_33557255) { delete dest_33557255[key]; }
}
for (var key in src_33557256) { dest_33557255[key] = src_33557256[key]; }
result_33557266 = dest_33557255;
break;
case 18:
case 17:
if (!((ti_33557257.base == null))) {
result_33557266 = nimCopy(dest_33557255, src_33557256, ti_33557257.base);
}
else {
if ((ti_33557257.kind == 17)) {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {m_type: ti_33557257} : dest_33557255;
}
else {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {} : dest_33557255;
}
}
nimCopyAux(result_33557266, src_33557256, ti_33557257.node);
break;
case 4:
case 16:
if(ArrayBuffer.isView(src_33557256)) {
if(dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new src_33557256.constructor(src_33557256);
} else {
dest_33557255.set(src_33557256, 0);
}
result_33557266 = dest_33557255;
} else {
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
}
break;
case 24:
case 27:
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
break;
case 28:
if (src_33557256 !== null) {
result_33557266 = src_33557256.slice(0);
}
break;
default:
result_33557266 = src_33557256;
break;
}
return result_33557266;
}
function mnewString(len_33556990) {
var result = new Array(len_33556990);
for (var i = 0; i < len_33556990; i++) {result[i] = 0;}
return result;
}
function addInt(a_33557037, b_33557038) {
var result = a_33557037 + b_33557038;
checkOverflowInt(result);
return result;
}
function chckRange(i_33557311, a_33557312, b_33557313) {
var result_33557314 = 0;
BeforeRet: {
if (((a_33557312 <= i_33557311) && (i_33557311 <= b_33557313))) {
result_33557314 = i_33557311;
break BeforeRet;
}
else {
raiseRangeError();
}
};
return result_33557314;
}
function chckIndx(i_33557306, a_33557307, b_33557308) {
var result_33557309 = 0;
BeforeRet: {
if (((a_33557307 <= i_33557306) && (i_33557306 <= b_33557308))) {
result_33557309 = i_33557306;
break BeforeRet;
}
else {
raiseIndexError(i_33557306, a_33557307, b_33557308);
}
};
return result_33557309;
}
function cstrToNimstr(c_33556888) {
var ln = c_33556888.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_33556888.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_33556888.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function toJSStr(s_33556891) {
var result_33556892 = null;
var res_33556933 = newSeq_33556909((s_33556891).length);
var i_33556934 = 0;
var j_33556935 = 0;
Label1: {
Label2: while (true) {
if (!(i_33556934 < (s_33556891).length)) break Label2;
var c_33556936 = s_33556891[i_33556934];
if ((c_33556936 < 128)) {
res_33556933[j_33556935] = String.fromCharCode(c_33556936);
i_33556934 += 1;
}
else {
var helper_33556948 = newSeq_33556909(0);
Label3: {
Label4: while (true) {
if (!true) break Label4;
var code_33556949 = c_33556936.toString(16);
if ((((code_33556949) == null ? 0 : (code_33556949).length) == 1)) {
helper_33556948.push("%0");;
}
else {
helper_33556948.push("%");;
}
helper_33556948.push(code_33556949);;
i_33556934 += 1;
if ((((s_33556891).length <= i_33556934) || (s_33556891[i_33556934] < 128))) {
break Label3;
}
c_33556936 = s_33556891[i_33556934];
}
};
++excHandler;
try {
res_33556933[j_33556935] = decodeURIComponent(helper_33556948.join(""));
--excHandler;
} catch (EXCEPTION) {
var prevJSError = lastJSError;
lastJSError = EXCEPTION;
--excHandler;
res_33556933[j_33556935] = helper_33556948.join("");
lastJSError = prevJSError;
} finally {
}
}
j_33556935 += 1;
}
};
if (res_33556933.length < j_33556935) { for (var i = res_33556933.length ; i < j_33556935 ; ++i) res_33556933.push(null); }
else { res_33556933.length = j_33556935; };
result_33556892 = res_33556933.join("");
return result_33556892;
}
function raiseException(e_33556643, ename_33556644) {
e_33556643.name = ename_33556644;
if ((excHandler == 0)) {
unhandledException(e_33556643);
}
e_33556643.trace = nimCopy(null, rawWriteStackTrace_33556594(), NTI33554449);
throw e_33556643;
}
function mulInt(a_33557045, b_33557046) {
var result = a_33557045 * b_33557046;
checkOverflowInt(result);
return result;
}
function add_33556366(x_33556367, x_33556367_Idx, y_33556368) {
if (x_33556367[x_33556367_Idx] === null) { x_33556367[x_33556367_Idx] = []; }
var off = x_33556367[x_33556367_Idx].length;
x_33556367[x_33556367_Idx].length += y_33556368.length;
for (var i = 0; i < y_33556368.length; ++i) {
x_33556367[x_33556367_Idx][off+i] = y_33556368.charCodeAt(i);
}
}
function isFatPointer_33557246(ti_33557247) {
var result_33557248 = false;
BeforeRet: {
result_33557248 = !((ConstSet1[ti_33557247.base.kind] != undefined));
break BeforeRet;
};
return result_33557248;
}
function nimCopyAux(dest_33557259, src_33557260, n_33557261) {
switch (n_33557261.kind) {
case 0:
break;
case 1:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
break;
case 2:
for (var i = 0; i < n_33557261.sons.length; i++) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i]);
}
break;
case 3:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
for (var i = 0; i < n_33557261.sons.length; ++i) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i][1]);
}
break;
}
}
function raiseRangeError() {
raiseException({message: [118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101], parent: null, m_type: NTI134217751, name: null, trace: [], up: null}, "RangeDefect");
}
function raiseIndexError(i_33556802, a_33556803, b_33556804) {
var Temporary1;
if ((b_33556804 < a_33556803)) {
Temporary1 = [105,110,100,101,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,44,32,116,104,101,32,99,111,110,116,97,105,110,101,114,32,105,115,32,101,109,112,116,121];
}
else {
Temporary1 = ([105,110,100,101,120,32] || []).concat(HEX24_369098760(i_33556802) || [],[32,110,111,116,32,105,110,32] || [],HEX24_369098760(a_33556803) || [],[32,46,46,32] || [],HEX24_369098760(b_33556804) || []);
}
raiseException({message: nimCopy(null, Temporary1, NTI33554449), parent: null, m_type: NTI134217749, name: null, trace: [], up: null}, "IndexDefect");
}
function addChars_301990087(result_301990089, result_301990089_Idx, x_301990090, start_301990091, n_301990092) {
var Temporary1;
var old_301990093 = (result_301990089[result_301990089_Idx]).length;
if (result_301990089[result_301990089_Idx].length < (Temporary1 = chckRange(addInt(old_301990093, n_301990092), 0, 2147483647), Temporary1)) { for (var i = result_301990089[result_301990089_Idx].length; i < Temporary1; ++i) result_301990089[result_301990089_Idx].push(0); }
else {result_301990089[result_301990089_Idx].length = Temporary1; };
Label2: {
var iHEX60gensym4_301990107 = 0;
var i_520093733 = 0;
Label3: {
Label4: while (true) {
if (!(i_520093733 < n_301990092)) break Label4;
iHEX60gensym4_301990107 = i_520093733;
result_301990089[result_301990089_Idx][chckIndx(addInt(old_301990093, iHEX60gensym4_301990107), 0, (result_301990089[result_301990089_Idx]).length - 1)] = x_301990090.charCodeAt(chckIndx(addInt(start_301990091, iHEX60gensym4_301990107), 0, (x_301990090).length - 1));
i_520093733 = addInt(i_520093733, 1);
}
};
};
}
function addChars_301990083(result_301990085, result_301990085_Idx, x_301990086) {
addChars_301990087(result_301990085, result_301990085_Idx, x_301990086, 0, ((x_301990086) == null ? 0 : (x_301990086).length));
}
function addInt_301990108(result_301990109, result_301990109_Idx, x_301990110) {
addChars_301990083(result_301990109, result_301990109_Idx, ((x_301990110) + ""));
}
function addInt_301990126(result_301990127, result_301990127_Idx, x_301990128) {
addInt_301990108(result_301990127, result_301990127_Idx, BigInt(x_301990128));
}
function HEX24_369098760(x_369098761) {
var result_369098762 = [[]];
addInt_301990126(result_369098762, 0, x_369098761);
return result_369098762[0];
}
function auxWriteStackTrace_33556501(f_33556502) {
var result_33556503 = [[]];
var it_33556511 = f_33556502;
var i_33556512 = 0;
var total_33556513 = 0;
var tempFrames_33556514 = arrayConstr(64, {Field0: null, Field1: 0, Field2: null}, NTI33555824);
Label1: {
Label2: while (true) {
if (!(!((it_33556511 == null)) && (i_33556512 <= 63))) break Label2;
tempFrames_33556514[i_33556512].Field0 = it_33556511.procname;
tempFrames_33556514[i_33556512].Field1 = it_33556511.line;
tempFrames_33556514[i_33556512].Field2 = it_33556511.filename;
i_33556512 += 1;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
Label3: {
Label4: while (true) {
if (!!((it_33556511 == null))) break Label4;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
result_33556503[0] = nimCopy(null, [], NTI33554449);
if (!((total_33556513 == i_33556512))) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
result_33556503[0].push.apply(result_33556503[0], HEX24_369098760((total_33556513 - i_33556512)));;
result_33556503[0].push.apply(result_33556503[0], [32,99,97,108,108,115,32,111,109,105,116,116,101,100,41,32,46,46,46,10]);;
}
Label5: {
var j_33556544 = 0;
var colontmp__520093725 = 0;
colontmp__520093725 = (i_33556512 - 1);
var res_520093727 = colontmp__520093725;
Label6: {
Label7: while (true) {
if (!(0 <= res_520093727)) break Label7;
j_33556544 = res_520093727;
result_33556503[0].push.apply(result_33556503[0], cstrToNimstr(tempFrames_33556514[j_33556544].Field2));;
if ((0 < tempFrames_33556514[j_33556544].Field1)) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
addInt_301990126(result_33556503, 0, tempFrames_33556514[j_33556544].Field1);
if (false) {
result_33556503[0].push.apply(result_33556503[0], [44,32]);;
addInt_301990126(result_33556503, 0, 0);
}
result_33556503[0].push.apply(result_33556503[0], [41]);;
}
result_33556503[0].push.apply(result_33556503[0], [32,97,116,32]);;
add_33556366(result_33556503, 0, tempFrames_33556514[j_33556544].Field0);
result_33556503[0].push.apply(result_33556503[0], [10]);;
res_520093727 -= 1;
}
};
};
return result_33556503[0];
}
function rawWriteStackTrace_33556594() {
var result_33556595 = [];
if (!((framePtr == null))) {
result_33556595 = nimCopy(null, ([84,114,97,99,101,98,97,99,107,32,40,109,111,115,116,32,114,101,99,101,110,116,32,99,97,108,108,32,108,97,115,116,41,10] || []).concat(auxWriteStackTrace_33556501(framePtr) || []), NTI33554449);
}
else {
result_33556595 = nimCopy(null, [78,111,32,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,32,97,118,97,105,108,97,98,108,101,10], NTI33554449);
}
return result_33556595;
}
function newSeq_33556909(len_33556911) {
var result_33556912 = [];
result_33556912 = new Array(len_33556911); for (var i = 0 ; i < len_33556911 ; ++i) { result_33556912[i] = null; }
return result_33556912;
}
function unhandledException(e_33556639) {
var buf_33556640 = [[]];
if (!(((e_33556639.message).length == 0))) {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110,58,32]);;
buf_33556640[0].push.apply(buf_33556640[0], e_33556639.message);;
}
else {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110]);;
}
buf_33556640[0].push.apply(buf_33556640[0], [32,91]);;
add_33556366(buf_33556640, 0, e_33556639.name);
buf_33556640[0].push.apply(buf_33556640[0], [93,10]);;
buf_33556640[0].push.apply(buf_33556640[0], rawWriteStackTrace_33556594());;
var cbuf_33556641 = toJSStr(buf_33556640[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_33556641);
}
else {
throw cbuf_33556641;
}
}
function raiseOverflow() {
raiseException({message: [111,118,101,114,45,32,111,114,32,117,110,100,101,114,102,108,111,119], parent: null, m_type: NTI134217743, name: null, trace: [], up: null}, "OverflowDefect");
}
function checkOverflowInt(a_33557035) {
if (a_33557035 > 2147483647 || a_33557035 < -2147483648) raiseOverflow();
}
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
var a_520093702 = 1;
var i_520093703 = 1;
var v_520093704 = nimCopy(null, {Field0: ((mulInt(((i_520093703) | 0), a_520093702)) | 0), Field1: ((mulInt(((i_520093703) | 0), a_520093702)) | 0)}, NTI520093699);
framePtr = F.prev;
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
framePtr = F.prev;
Stats
- Started
2024-03-11T08:44:23
- Finished
2024-03-11T08:44:23
- Duration
stable 👎 FAIL
Output
Error: Command failed: nim js -d:nodejs -d:nimExperimentalAsyncjsThen -d:nimExperimentalJsfetch --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(6, 10) Error: type mismatch: got '(int32, int32)' for '(i * a, i * a)' but expected 'K = tuple[g: int, w: int]'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize20.06 Kb (20,545 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI520093699 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI134217749 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217751 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33554435 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI33555824 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33555167 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555175 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33554449 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI33554450 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI33555174 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33555171 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555172 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217741 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217743 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI134217743 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217743.node = NNI134217743;
var NNI134217741 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217741.node = NNI134217741;
var NNI33555172 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555172.node = NNI33555172;
NTI33555174.base = NTI33555171;
NTI33555175.base = NTI33555171;
var NNI33555171 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555174, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI33554450, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI33554449, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI33554449, name: "trace", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI33555175, name: "up", sons: null}]};
NTI33555171.node = NNI33555171;
var NNI33555167 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555167.node = NNI33555167;
NTI33555171.base = NTI33555167;
NTI33555172.base = NTI33555171;
NTI134217741.base = NTI33555172;
NTI134217743.base = NTI134217741;
var NNI33555824 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554450, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null},
{kind: 1, offset: "Field2", len: 0, typ: NTI33554450, name: "Field2", sons: null}]};
NTI33555824.node = NNI33555824;
var NNI134217751 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217751.node = NNI134217751;
NTI134217751.base = NTI33555172;
var NNI134217749 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217749.node = NNI134217749;
NTI134217749.base = NTI33555172;
var NNI520093699 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554435, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null}]};
NTI520093699.node = NNI520093699;
function arrayConstr(len_33557301, value_33557302, typ_33557303) {
var result = new Array(len_33557301);
for (var i = 0; i < len_33557301; ++i) result[i] = nimCopy(null, value_33557302, typ_33557303);
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_33557255, src_33557256, ti_33557257) {
var result_33557266 = null;
switch (ti_33557257.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(isFatPointer_33557246(ti_33557257))) {
result_33557266 = src_33557256;
}
else {
result_33557266 = [src_33557256[0], src_33557256[1]];
}
break;
case 19:
if (dest_33557255 === null || dest_33557255 === undefined) {
dest_33557255 = {};
}
else {
for (var key in dest_33557255) { delete dest_33557255[key]; }
}
for (var key in src_33557256) { dest_33557255[key] = src_33557256[key]; }
result_33557266 = dest_33557255;
break;
case 18:
case 17:
if (!((ti_33557257.base == null))) {
result_33557266 = nimCopy(dest_33557255, src_33557256, ti_33557257.base);
}
else {
if ((ti_33557257.kind == 17)) {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {m_type: ti_33557257} : dest_33557255;
}
else {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {} : dest_33557255;
}
}
nimCopyAux(result_33557266, src_33557256, ti_33557257.node);
break;
case 4:
case 16:
if(ArrayBuffer.isView(src_33557256)) {
if(dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new src_33557256.constructor(src_33557256);
} else {
dest_33557255.set(src_33557256, 0);
}
result_33557266 = dest_33557255;
} else {
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
}
break;
case 24:
case 27:
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
break;
case 28:
if (src_33557256 !== null) {
result_33557266 = src_33557256.slice(0);
}
break;
default:
result_33557266 = src_33557256;
break;
}
return result_33557266;
}
function mnewString(len_33556990) {
var result = new Array(len_33556990);
for (var i = 0; i < len_33556990; i++) {result[i] = 0;}
return result;
}
function addInt(a_33557037, b_33557038) {
var result = a_33557037 + b_33557038;
checkOverflowInt(result);
return result;
}
function chckRange(i_33557311, a_33557312, b_33557313) {
var result_33557314 = 0;
BeforeRet: {
if (((a_33557312 <= i_33557311) && (i_33557311 <= b_33557313))) {
result_33557314 = i_33557311;
break BeforeRet;
}
else {
raiseRangeError();
}
};
return result_33557314;
}
function chckIndx(i_33557306, a_33557307, b_33557308) {
var result_33557309 = 0;
BeforeRet: {
if (((a_33557307 <= i_33557306) && (i_33557306 <= b_33557308))) {
result_33557309 = i_33557306;
break BeforeRet;
}
else {
raiseIndexError(i_33557306, a_33557307, b_33557308);
}
};
return result_33557309;
}
function cstrToNimstr(c_33556888) {
var ln = c_33556888.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_33556888.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_33556888.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function toJSStr(s_33556891) {
var result_33556892 = null;
var res_33556933 = newSeq_33556909((s_33556891).length);
var i_33556934 = 0;
var j_33556935 = 0;
Label1: {
Label2: while (true) {
if (!(i_33556934 < (s_33556891).length)) break Label2;
var c_33556936 = s_33556891[i_33556934];
if ((c_33556936 < 128)) {
res_33556933[j_33556935] = String.fromCharCode(c_33556936);
i_33556934 += 1;
}
else {
var helper_33556948 = newSeq_33556909(0);
Label3: {
Label4: while (true) {
if (!true) break Label4;
var code_33556949 = c_33556936.toString(16);
if ((((code_33556949) == null ? 0 : (code_33556949).length) == 1)) {
helper_33556948.push("%0");;
}
else {
helper_33556948.push("%");;
}
helper_33556948.push(code_33556949);;
i_33556934 += 1;
if ((((s_33556891).length <= i_33556934) || (s_33556891[i_33556934] < 128))) {
break Label3;
}
c_33556936 = s_33556891[i_33556934];
}
};
++excHandler;
try {
res_33556933[j_33556935] = decodeURIComponent(helper_33556948.join(""));
--excHandler;
} catch (EXCEPTION) {
var prevJSError = lastJSError;
lastJSError = EXCEPTION;
--excHandler;
res_33556933[j_33556935] = helper_33556948.join("");
lastJSError = prevJSError;
} finally {
}
}
j_33556935 += 1;
}
};
if (res_33556933.length < j_33556935) { for (var i = res_33556933.length ; i < j_33556935 ; ++i) res_33556933.push(null); }
else { res_33556933.length = j_33556935; };
result_33556892 = res_33556933.join("");
return result_33556892;
}
function raiseException(e_33556643, ename_33556644) {
e_33556643.name = ename_33556644;
if ((excHandler == 0)) {
unhandledException(e_33556643);
}
e_33556643.trace = nimCopy(null, rawWriteStackTrace_33556594(), NTI33554449);
throw e_33556643;
}
function mulInt(a_33557045, b_33557046) {
var result = a_33557045 * b_33557046;
checkOverflowInt(result);
return result;
}
function add_33556366(x_33556367, x_33556367_Idx, y_33556368) {
if (x_33556367[x_33556367_Idx] === null) { x_33556367[x_33556367_Idx] = []; }
var off = x_33556367[x_33556367_Idx].length;
x_33556367[x_33556367_Idx].length += y_33556368.length;
for (var i = 0; i < y_33556368.length; ++i) {
x_33556367[x_33556367_Idx][off+i] = y_33556368.charCodeAt(i);
}
}
function isFatPointer_33557246(ti_33557247) {
var result_33557248 = false;
BeforeRet: {
result_33557248 = !((ConstSet1[ti_33557247.base.kind] != undefined));
break BeforeRet;
};
return result_33557248;
}
function nimCopyAux(dest_33557259, src_33557260, n_33557261) {
switch (n_33557261.kind) {
case 0:
break;
case 1:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
break;
case 2:
for (var i = 0; i < n_33557261.sons.length; i++) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i]);
}
break;
case 3:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
for (var i = 0; i < n_33557261.sons.length; ++i) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i][1]);
}
break;
}
}
function raiseRangeError() {
raiseException({message: [118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101], parent: null, m_type: NTI134217751, name: null, trace: [], up: null}, "RangeDefect");
}
function raiseIndexError(i_33556802, a_33556803, b_33556804) {
var Temporary1;
if ((b_33556804 < a_33556803)) {
Temporary1 = [105,110,100,101,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,44,32,116,104,101,32,99,111,110,116,97,105,110,101,114,32,105,115,32,101,109,112,116,121];
}
else {
Temporary1 = ([105,110,100,101,120,32] || []).concat(HEX24_369098760(i_33556802) || [],[32,110,111,116,32,105,110,32] || [],HEX24_369098760(a_33556803) || [],[32,46,46,32] || [],HEX24_369098760(b_33556804) || []);
}
raiseException({message: nimCopy(null, Temporary1, NTI33554449), parent: null, m_type: NTI134217749, name: null, trace: [], up: null}, "IndexDefect");
}
function addChars_301990087(result_301990089, result_301990089_Idx, x_301990090, start_301990091, n_301990092) {
var Temporary1;
var old_301990093 = (result_301990089[result_301990089_Idx]).length;
if (result_301990089[result_301990089_Idx].length < (Temporary1 = chckRange(addInt(old_301990093, n_301990092), 0, 2147483647), Temporary1)) { for (var i = result_301990089[result_301990089_Idx].length; i < Temporary1; ++i) result_301990089[result_301990089_Idx].push(0); }
else {result_301990089[result_301990089_Idx].length = Temporary1; };
Label2: {
var iHEX60gensym4_301990107 = 0;
var i_520093733 = 0;
Label3: {
Label4: while (true) {
if (!(i_520093733 < n_301990092)) break Label4;
iHEX60gensym4_301990107 = i_520093733;
result_301990089[result_301990089_Idx][chckIndx(addInt(old_301990093, iHEX60gensym4_301990107), 0, (result_301990089[result_301990089_Idx]).length - 1)] = x_301990090.charCodeAt(chckIndx(addInt(start_301990091, iHEX60gensym4_301990107), 0, (x_301990090).length - 1));
i_520093733 = addInt(i_520093733, 1);
}
};
};
}
function addChars_301990083(result_301990085, result_301990085_Idx, x_301990086) {
addChars_301990087(result_301990085, result_301990085_Idx, x_301990086, 0, ((x_301990086) == null ? 0 : (x_301990086).length));
}
function addInt_301990108(result_301990109, result_301990109_Idx, x_301990110) {
addChars_301990083(result_301990109, result_301990109_Idx, ((x_301990110) + ""));
}
function addInt_301990126(result_301990127, result_301990127_Idx, x_301990128) {
addInt_301990108(result_301990127, result_301990127_Idx, BigInt(x_301990128));
}
function HEX24_369098760(x_369098761) {
var result_369098762 = [[]];
addInt_301990126(result_369098762, 0, x_369098761);
return result_369098762[0];
}
function auxWriteStackTrace_33556501(f_33556502) {
var result_33556503 = [[]];
var it_33556511 = f_33556502;
var i_33556512 = 0;
var total_33556513 = 0;
var tempFrames_33556514 = arrayConstr(64, {Field0: null, Field1: 0, Field2: null}, NTI33555824);
Label1: {
Label2: while (true) {
if (!(!((it_33556511 == null)) && (i_33556512 <= 63))) break Label2;
tempFrames_33556514[i_33556512].Field0 = it_33556511.procname;
tempFrames_33556514[i_33556512].Field1 = it_33556511.line;
tempFrames_33556514[i_33556512].Field2 = it_33556511.filename;
i_33556512 += 1;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
Label3: {
Label4: while (true) {
if (!!((it_33556511 == null))) break Label4;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
result_33556503[0] = nimCopy(null, [], NTI33554449);
if (!((total_33556513 == i_33556512))) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
result_33556503[0].push.apply(result_33556503[0], HEX24_369098760((total_33556513 - i_33556512)));;
result_33556503[0].push.apply(result_33556503[0], [32,99,97,108,108,115,32,111,109,105,116,116,101,100,41,32,46,46,46,10]);;
}
Label5: {
var j_33556544 = 0;
var colontmp__520093725 = 0;
colontmp__520093725 = (i_33556512 - 1);
var res_520093727 = colontmp__520093725;
Label6: {
Label7: while (true) {
if (!(0 <= res_520093727)) break Label7;
j_33556544 = res_520093727;
result_33556503[0].push.apply(result_33556503[0], cstrToNimstr(tempFrames_33556514[j_33556544].Field2));;
if ((0 < tempFrames_33556514[j_33556544].Field1)) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
addInt_301990126(result_33556503, 0, tempFrames_33556514[j_33556544].Field1);
if (false) {
result_33556503[0].push.apply(result_33556503[0], [44,32]);;
addInt_301990126(result_33556503, 0, 0);
}
result_33556503[0].push.apply(result_33556503[0], [41]);;
}
result_33556503[0].push.apply(result_33556503[0], [32,97,116,32]);;
add_33556366(result_33556503, 0, tempFrames_33556514[j_33556544].Field0);
result_33556503[0].push.apply(result_33556503[0], [10]);;
res_520093727 -= 1;
}
};
};
return result_33556503[0];
}
function rawWriteStackTrace_33556594() {
var result_33556595 = [];
if (!((framePtr == null))) {
result_33556595 = nimCopy(null, ([84,114,97,99,101,98,97,99,107,32,40,109,111,115,116,32,114,101,99,101,110,116,32,99,97,108,108,32,108,97,115,116,41,10] || []).concat(auxWriteStackTrace_33556501(framePtr) || []), NTI33554449);
}
else {
result_33556595 = nimCopy(null, [78,111,32,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,32,97,118,97,105,108,97,98,108,101,10], NTI33554449);
}
return result_33556595;
}
function newSeq_33556909(len_33556911) {
var result_33556912 = [];
result_33556912 = new Array(len_33556911); for (var i = 0 ; i < len_33556911 ; ++i) { result_33556912[i] = null; }
return result_33556912;
}
function unhandledException(e_33556639) {
var buf_33556640 = [[]];
if (!(((e_33556639.message).length == 0))) {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110,58,32]);;
buf_33556640[0].push.apply(buf_33556640[0], e_33556639.message);;
}
else {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110]);;
}
buf_33556640[0].push.apply(buf_33556640[0], [32,91]);;
add_33556366(buf_33556640, 0, e_33556639.name);
buf_33556640[0].push.apply(buf_33556640[0], [93,10]);;
buf_33556640[0].push.apply(buf_33556640[0], rawWriteStackTrace_33556594());;
var cbuf_33556641 = toJSStr(buf_33556640[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_33556641);
}
else {
throw cbuf_33556641;
}
}
function raiseOverflow() {
raiseException({message: [111,118,101,114,45,32,111,114,32,117,110,100,101,114,102,108,111,119], parent: null, m_type: NTI134217743, name: null, trace: [], up: null}, "OverflowDefect");
}
function checkOverflowInt(a_33557035) {
if (a_33557035 > 2147483647 || a_33557035 < -2147483648) raiseOverflow();
}
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
var a_520093702 = 1;
var i_520093703 = 1;
var v_520093704 = nimCopy(null, {Field0: ((mulInt(((i_520093703) | 0), a_520093702)) | 0), Field1: ((mulInt(((i_520093703) | 0), a_520093702)) | 0)}, NTI520093699);
framePtr = F.prev;
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
framePtr = F.prev;
Stats
- Started
2024-03-11T08:44:23
- Finished
2024-03-11T08:44:23
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("K"),
newEmptyNode(),
nnkTupleTy.newTree(
nnkIdentDefs.newTree(
newIdentNode("g"),
newIdentNode("w"),
newIdentNode("int"),
newEmptyNode()
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newIdentNode("int32"),
newLit(1)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("int"),
newLit(1)
),
nnkIdentDefs.newTree(
newIdentNode("v"),
newIdentNode("K"),
nnkTupleConstr.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("i"),
newIdentNode("a")
),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("i"),
newIdentNode("a")
)
)
)
)
)
2.0.2 👎 FAIL
Output
Error: Command failed: nim js -d:nodejs -d:nimExperimentalAsyncjsThen -d:nimExperimentalJsfetch --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(6, 10) Error: type mismatch: got '(int32, int32)' for '(i * a, i * a)' but expected 'K = tuple[g: int, w: int]'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize20.06 Kb (20,545 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI520093699 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI134217749 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217751 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33554435 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI33555824 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33555167 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555175 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33554449 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI33554450 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI33555174 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33555171 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555172 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217741 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217743 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI134217743 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217743.node = NNI134217743;
var NNI134217741 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217741.node = NNI134217741;
var NNI33555172 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555172.node = NNI33555172;
NTI33555174.base = NTI33555171;
NTI33555175.base = NTI33555171;
var NNI33555171 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555174, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI33554450, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI33554449, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI33554449, name: "trace", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI33555175, name: "up", sons: null}]};
NTI33555171.node = NNI33555171;
var NNI33555167 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555167.node = NNI33555167;
NTI33555171.base = NTI33555167;
NTI33555172.base = NTI33555171;
NTI134217741.base = NTI33555172;
NTI134217743.base = NTI134217741;
var NNI33555824 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554450, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null},
{kind: 1, offset: "Field2", len: 0, typ: NTI33554450, name: "Field2", sons: null}]};
NTI33555824.node = NNI33555824;
var NNI134217751 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217751.node = NNI134217751;
NTI134217751.base = NTI33555172;
var NNI134217749 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217749.node = NNI134217749;
NTI134217749.base = NTI33555172;
var NNI520093699 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554435, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null}]};
NTI520093699.node = NNI520093699;
function arrayConstr(len_33557301, value_33557302, typ_33557303) {
var result = new Array(len_33557301);
for (var i = 0; i < len_33557301; ++i) result[i] = nimCopy(null, value_33557302, typ_33557303);
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_33557255, src_33557256, ti_33557257) {
var result_33557266 = null;
switch (ti_33557257.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(isFatPointer_33557246(ti_33557257))) {
result_33557266 = src_33557256;
}
else {
result_33557266 = [src_33557256[0], src_33557256[1]];
}
break;
case 19:
if (dest_33557255 === null || dest_33557255 === undefined) {
dest_33557255 = {};
}
else {
for (var key in dest_33557255) { delete dest_33557255[key]; }
}
for (var key in src_33557256) { dest_33557255[key] = src_33557256[key]; }
result_33557266 = dest_33557255;
break;
case 18:
case 17:
if (!((ti_33557257.base == null))) {
result_33557266 = nimCopy(dest_33557255, src_33557256, ti_33557257.base);
}
else {
if ((ti_33557257.kind == 17)) {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {m_type: ti_33557257} : dest_33557255;
}
else {
result_33557266 = (dest_33557255 === null || dest_33557255 === undefined) ? {} : dest_33557255;
}
}
nimCopyAux(result_33557266, src_33557256, ti_33557257.node);
break;
case 4:
case 16:
if(ArrayBuffer.isView(src_33557256)) {
if(dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new src_33557256.constructor(src_33557256);
} else {
dest_33557255.set(src_33557256, 0);
}
result_33557266 = dest_33557255;
} else {
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
}
break;
case 24:
case 27:
if (src_33557256 === null) {
result_33557266 = null;
}
else {
if (dest_33557255 === null || dest_33557255 === undefined || dest_33557255.length != src_33557256.length) {
dest_33557255 = new Array(src_33557256.length);
}
result_33557266 = dest_33557255;
for (var i = 0; i < src_33557256.length; ++i) {
result_33557266[i] = nimCopy(result_33557266[i], src_33557256[i], ti_33557257.base);
}
}
break;
case 28:
if (src_33557256 !== null) {
result_33557266 = src_33557256.slice(0);
}
break;
default:
result_33557266 = src_33557256;
break;
}
return result_33557266;
}
function mnewString(len_33556990) {
var result = new Array(len_33556990);
for (var i = 0; i < len_33556990; i++) {result[i] = 0;}
return result;
}
function addInt(a_33557037, b_33557038) {
var result = a_33557037 + b_33557038;
checkOverflowInt(result);
return result;
}
function chckRange(i_33557311, a_33557312, b_33557313) {
var result_33557314 = 0;
BeforeRet: {
if (((a_33557312 <= i_33557311) && (i_33557311 <= b_33557313))) {
result_33557314 = i_33557311;
break BeforeRet;
}
else {
raiseRangeError();
}
};
return result_33557314;
}
function chckIndx(i_33557306, a_33557307, b_33557308) {
var result_33557309 = 0;
BeforeRet: {
if (((a_33557307 <= i_33557306) && (i_33557306 <= b_33557308))) {
result_33557309 = i_33557306;
break BeforeRet;
}
else {
raiseIndexError(i_33557306, a_33557307, b_33557308);
}
};
return result_33557309;
}
function cstrToNimstr(c_33556888) {
var ln = c_33556888.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_33556888.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_33556888.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function toJSStr(s_33556891) {
var result_33556892 = null;
var res_33556933 = newSeq_33556909((s_33556891).length);
var i_33556934 = 0;
var j_33556935 = 0;
Label1: {
Label2: while (true) {
if (!(i_33556934 < (s_33556891).length)) break Label2;
var c_33556936 = s_33556891[i_33556934];
if ((c_33556936 < 128)) {
res_33556933[j_33556935] = String.fromCharCode(c_33556936);
i_33556934 += 1;
}
else {
var helper_33556948 = newSeq_33556909(0);
Label3: {
Label4: while (true) {
if (!true) break Label4;
var code_33556949 = c_33556936.toString(16);
if ((((code_33556949) == null ? 0 : (code_33556949).length) == 1)) {
helper_33556948.push("%0");;
}
else {
helper_33556948.push("%");;
}
helper_33556948.push(code_33556949);;
i_33556934 += 1;
if ((((s_33556891).length <= i_33556934) || (s_33556891[i_33556934] < 128))) {
break Label3;
}
c_33556936 = s_33556891[i_33556934];
}
};
++excHandler;
try {
res_33556933[j_33556935] = decodeURIComponent(helper_33556948.join(""));
--excHandler;
} catch (EXCEPTION) {
var prevJSError = lastJSError;
lastJSError = EXCEPTION;
--excHandler;
res_33556933[j_33556935] = helper_33556948.join("");
lastJSError = prevJSError;
} finally {
}
}
j_33556935 += 1;
}
};
if (res_33556933.length < j_33556935) { for (var i = res_33556933.length ; i < j_33556935 ; ++i) res_33556933.push(null); }
else { res_33556933.length = j_33556935; };
result_33556892 = res_33556933.join("");
return result_33556892;
}
function raiseException(e_33556643, ename_33556644) {
e_33556643.name = ename_33556644;
if ((excHandler == 0)) {
unhandledException(e_33556643);
}
e_33556643.trace = nimCopy(null, rawWriteStackTrace_33556594(), NTI33554449);
throw e_33556643;
}
function mulInt(a_33557045, b_33557046) {
var result = a_33557045 * b_33557046;
checkOverflowInt(result);
return result;
}
function add_33556366(x_33556367, x_33556367_Idx, y_33556368) {
if (x_33556367[x_33556367_Idx] === null) { x_33556367[x_33556367_Idx] = []; }
var off = x_33556367[x_33556367_Idx].length;
x_33556367[x_33556367_Idx].length += y_33556368.length;
for (var i = 0; i < y_33556368.length; ++i) {
x_33556367[x_33556367_Idx][off+i] = y_33556368.charCodeAt(i);
}
}
function isFatPointer_33557246(ti_33557247) {
var result_33557248 = false;
BeforeRet: {
result_33557248 = !((ConstSet1[ti_33557247.base.kind] != undefined));
break BeforeRet;
};
return result_33557248;
}
function nimCopyAux(dest_33557259, src_33557260, n_33557261) {
switch (n_33557261.kind) {
case 0:
break;
case 1:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
break;
case 2:
for (var i = 0; i < n_33557261.sons.length; i++) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i]);
}
break;
case 3:
dest_33557259[n_33557261.offset] = nimCopy(dest_33557259[n_33557261.offset], src_33557260[n_33557261.offset], n_33557261.typ);
for (var i = 0; i < n_33557261.sons.length; ++i) {
nimCopyAux(dest_33557259, src_33557260, n_33557261.sons[i][1]);
}
break;
}
}
function raiseRangeError() {
raiseException({message: [118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101], parent: null, m_type: NTI134217751, name: null, trace: [], up: null}, "RangeDefect");
}
function raiseIndexError(i_33556802, a_33556803, b_33556804) {
var Temporary1;
if ((b_33556804 < a_33556803)) {
Temporary1 = [105,110,100,101,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,44,32,116,104,101,32,99,111,110,116,97,105,110,101,114,32,105,115,32,101,109,112,116,121];
}
else {
Temporary1 = ([105,110,100,101,120,32] || []).concat(HEX24_369098760(i_33556802) || [],[32,110,111,116,32,105,110,32] || [],HEX24_369098760(a_33556803) || [],[32,46,46,32] || [],HEX24_369098760(b_33556804) || []);
}
raiseException({message: nimCopy(null, Temporary1, NTI33554449), parent: null, m_type: NTI134217749, name: null, trace: [], up: null}, "IndexDefect");
}
function addChars_301990087(result_301990089, result_301990089_Idx, x_301990090, start_301990091, n_301990092) {
var Temporary1;
var old_301990093 = (result_301990089[result_301990089_Idx]).length;
if (result_301990089[result_301990089_Idx].length < (Temporary1 = chckRange(addInt(old_301990093, n_301990092), 0, 2147483647), Temporary1)) { for (var i = result_301990089[result_301990089_Idx].length; i < Temporary1; ++i) result_301990089[result_301990089_Idx].push(0); }
else {result_301990089[result_301990089_Idx].length = Temporary1; };
Label2: {
var iHEX60gensym4_301990107 = 0;
var i_520093733 = 0;
Label3: {
Label4: while (true) {
if (!(i_520093733 < n_301990092)) break Label4;
iHEX60gensym4_301990107 = i_520093733;
result_301990089[result_301990089_Idx][chckIndx(addInt(old_301990093, iHEX60gensym4_301990107), 0, (result_301990089[result_301990089_Idx]).length - 1)] = x_301990090.charCodeAt(chckIndx(addInt(start_301990091, iHEX60gensym4_301990107), 0, (x_301990090).length - 1));
i_520093733 = addInt(i_520093733, 1);
}
};
};
}
function addChars_301990083(result_301990085, result_301990085_Idx, x_301990086) {
addChars_301990087(result_301990085, result_301990085_Idx, x_301990086, 0, ((x_301990086) == null ? 0 : (x_301990086).length));
}
function addInt_301990108(result_301990109, result_301990109_Idx, x_301990110) {
addChars_301990083(result_301990109, result_301990109_Idx, ((x_301990110) + ""));
}
function addInt_301990126(result_301990127, result_301990127_Idx, x_301990128) {
addInt_301990108(result_301990127, result_301990127_Idx, BigInt(x_301990128));
}
function HEX24_369098760(x_369098761) {
var result_369098762 = [[]];
addInt_301990126(result_369098762, 0, x_369098761);
return result_369098762[0];
}
function auxWriteStackTrace_33556501(f_33556502) {
var result_33556503 = [[]];
var it_33556511 = f_33556502;
var i_33556512 = 0;
var total_33556513 = 0;
var tempFrames_33556514 = arrayConstr(64, {Field0: null, Field1: 0, Field2: null}, NTI33555824);
Label1: {
Label2: while (true) {
if (!(!((it_33556511 == null)) && (i_33556512 <= 63))) break Label2;
tempFrames_33556514[i_33556512].Field0 = it_33556511.procname;
tempFrames_33556514[i_33556512].Field1 = it_33556511.line;
tempFrames_33556514[i_33556512].Field2 = it_33556511.filename;
i_33556512 += 1;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
Label3: {
Label4: while (true) {
if (!!((it_33556511 == null))) break Label4;
total_33556513 += 1;
it_33556511 = it_33556511.prev;
}
};
result_33556503[0] = nimCopy(null, [], NTI33554449);
if (!((total_33556513 == i_33556512))) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
result_33556503[0].push.apply(result_33556503[0], HEX24_369098760((total_33556513 - i_33556512)));;
result_33556503[0].push.apply(result_33556503[0], [32,99,97,108,108,115,32,111,109,105,116,116,101,100,41,32,46,46,46,10]);;
}
Label5: {
var j_33556544 = 0;
var colontmp__520093725 = 0;
colontmp__520093725 = (i_33556512 - 1);
var res_520093727 = colontmp__520093725;
Label6: {
Label7: while (true) {
if (!(0 <= res_520093727)) break Label7;
j_33556544 = res_520093727;
result_33556503[0].push.apply(result_33556503[0], cstrToNimstr(tempFrames_33556514[j_33556544].Field2));;
if ((0 < tempFrames_33556514[j_33556544].Field1)) {
result_33556503[0].push.apply(result_33556503[0], [40]);;
addInt_301990126(result_33556503, 0, tempFrames_33556514[j_33556544].Field1);
if (false) {
result_33556503[0].push.apply(result_33556503[0], [44,32]);;
addInt_301990126(result_33556503, 0, 0);
}
result_33556503[0].push.apply(result_33556503[0], [41]);;
}
result_33556503[0].push.apply(result_33556503[0], [32,97,116,32]);;
add_33556366(result_33556503, 0, tempFrames_33556514[j_33556544].Field0);
result_33556503[0].push.apply(result_33556503[0], [10]);;
res_520093727 -= 1;
}
};
};
return result_33556503[0];
}
function rawWriteStackTrace_33556594() {
var result_33556595 = [];
if (!((framePtr == null))) {
result_33556595 = nimCopy(null, ([84,114,97,99,101,98,97,99,107,32,40,109,111,115,116,32,114,101,99,101,110,116,32,99,97,108,108,32,108,97,115,116,41,10] || []).concat(auxWriteStackTrace_33556501(framePtr) || []), NTI33554449);
}
else {
result_33556595 = nimCopy(null, [78,111,32,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,32,97,118,97,105,108,97,98,108,101,10], NTI33554449);
}
return result_33556595;
}
function newSeq_33556909(len_33556911) {
var result_33556912 = [];
result_33556912 = new Array(len_33556911); for (var i = 0 ; i < len_33556911 ; ++i) { result_33556912[i] = null; }
return result_33556912;
}
function unhandledException(e_33556639) {
var buf_33556640 = [[]];
if (!(((e_33556639.message).length == 0))) {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110,58,32]);;
buf_33556640[0].push.apply(buf_33556640[0], e_33556639.message);;
}
else {
buf_33556640[0].push.apply(buf_33556640[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110]);;
}
buf_33556640[0].push.apply(buf_33556640[0], [32,91]);;
add_33556366(buf_33556640, 0, e_33556639.name);
buf_33556640[0].push.apply(buf_33556640[0], [93,10]);;
buf_33556640[0].push.apply(buf_33556640[0], rawWriteStackTrace_33556594());;
var cbuf_33556641 = toJSStr(buf_33556640[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_33556641);
}
else {
throw cbuf_33556641;
}
}
function raiseOverflow() {
raiseException({message: [111,118,101,114,45,32,111,114,32,117,110,100,101,114,102,108,111,119], parent: null, m_type: NTI134217743, name: null, trace: [], up: null}, "OverflowDefect");
}
function checkOverflowInt(a_33557035) {
if (a_33557035 > 2147483647 || a_33557035 < -2147483648) raiseOverflow();
}
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
var a_520093702 = 1;
var i_520093703 = 1;
var v_520093704 = nimCopy(null, {Field0: ((mulInt(((i_520093703) | 0), a_520093702)) | 0), Field1: ((mulInt(((i_520093703) | 0), a_520093702)) | 0)}, NTI520093699);
framePtr = F.prev;
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
framePtr = F.prev;
Stats
- Started
2024-03-11T08:44:24
- Finished
2024-03-11T08:44:24
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("K"),
newEmptyNode(),
nnkTupleTy.newTree(
nnkIdentDefs.newTree(
newIdentNode("g"),
newIdentNode("w"),
newIdentNode("int"),
newEmptyNode()
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newIdentNode("int32"),
newLit(1)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("int"),
newLit(1)
),
nnkIdentDefs.newTree(
newIdentNode("v"),
newIdentNode("K"),
nnkTupleConstr.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("i"),
newIdentNode("a")
),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("i"),
newIdentNode("a")
)
)
)
)
)
1.6.14 👍 OK
Output
IR
Compiled filesize19.42 Kb (19,885 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI452984835 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33555128 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555130 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33554456 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI33555916 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33555083 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555165 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33554439 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI33554440 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI33555164 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33555112 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555113 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555120 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555122 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI33555122 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555122.node = NNI33555122;
var NNI33555120 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555120.node = NNI33555120;
var NNI33555113 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555113.node = NNI33555113;
NTI33555164.base = NTI33555112;
NTI33555165.base = NTI33555112;
var NNI33555112 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555164, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI33554440, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI33554439, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI33554439, name: "trace", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI33555165, name: "up", sons: null}]};
NTI33555112.node = NNI33555112;
var NNI33555083 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555083.node = NNI33555083;
NTI33555112.base = NTI33555083;
NTI33555113.base = NTI33555112;
NTI33555120.base = NTI33555113;
NTI33555122.base = NTI33555120;
var NNI33555916 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554440, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554456, name: "Field1", sons: null},
{kind: 1, offset: "Field2", len: 0, typ: NTI33554440, name: "Field2", sons: null}]};
NTI33555916.node = NNI33555916;
var NNI33555130 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555130.node = NNI33555130;
NTI33555130.base = NTI33555113;
var NNI33555128 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555128.node = NNI33555128;
NTI33555128.base = NTI33555113;
var NNI452984835 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554456, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI33554456, name: "Field1", sons: null}]};
NTI452984835.node = NNI452984835;
function makeNimstrLit(c_33556801) {
var result = [];
for (var i = 0; i < c_33556801.length; ++i) {
result[i] = c_33556801.charCodeAt(i);
}
return result;
}
function arrayConstr(len_33557179, value_33557180, typ_33557181) {
var result = new Array(len_33557179);
for (var i = 0; i < len_33557179; ++i) result[i] = nimCopy(null, value_33557180, typ_33557181);
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_33557140, src_33557141, ti_33557142) {
var result_33557151 = null;
switch (ti_33557142.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(isFatPointer_33557131(ti_33557142))) {
result_33557151 = src_33557141;
}
else {
result_33557151 = [src_33557141[0], src_33557141[1]];
}
break;
case 19:
if (dest_33557140 === null || dest_33557140 === undefined) {
dest_33557140 = {};
}
else {
for (var key in dest_33557140) { delete dest_33557140[key]; }
}
for (var key in src_33557141) { dest_33557140[key] = src_33557141[key]; }
result_33557151 = dest_33557140;
break;
case 18:
case 17:
if (!((ti_33557142.base == null))) {
result_33557151 = nimCopy(dest_33557140, src_33557141, ti_33557142.base);
}
else {
if ((ti_33557142.kind == 17)) {
result_33557151 = (dest_33557140 === null || dest_33557140 === undefined) ? {m_type: ti_33557142} : dest_33557140;
}
else {
result_33557151 = (dest_33557140 === null || dest_33557140 === undefined) ? {} : dest_33557140;
}
}
nimCopyAux(result_33557151, src_33557141, ti_33557142.node);
break;
case 24:
case 4:
case 27:
case 16:
if (src_33557141 === null) {
result_33557151 = null;
}
else {
if (dest_33557140 === null || dest_33557140 === undefined || dest_33557140.length != src_33557141.length) {
dest_33557140 = new Array(src_33557141.length);
}
result_33557151 = dest_33557140;
for (var i = 0; i < src_33557141.length; ++i) {
result_33557151[i] = nimCopy(result_33557151[i], src_33557141[i], ti_33557142.base);
}
}
break;
case 28:
if (src_33557141 !== null) {
result_33557151 = src_33557141.slice(0);
}
break;
default:
result_33557151 = src_33557141;
break;
}
return result_33557151;
}
function mnewString(len_33556893) {
return new Array(len_33556893);
}
function addInt(a_33556940, b_33556941) {
var result = a_33556940 + b_33556941;
checkOverflowInt(result);
return result;
}
function chckRange(i_33557189, a_33557190, b_33557191) {
var Temporary1;
var result_33557192 = 0;
BeforeRet: do {
if (!(a_33557190 <= i_33557189)) Temporary1 = false; else { Temporary1 = (i_33557189 <= b_33557191); } if (Temporary1) {
result_33557192 = i_33557189;
break BeforeRet;
}
else {
raiseRangeError();
}
} while (false);
return result_33557192;
}
function chckIndx(i_33557184, a_33557185, b_33557186) {
var Temporary1;
var result_33557187 = 0;
BeforeRet: do {
if (!(a_33557185 <= i_33557184)) Temporary1 = false; else { Temporary1 = (i_33557184 <= b_33557186); } if (Temporary1) {
result_33557187 = i_33557184;
break BeforeRet;
}
else {
raiseIndexError(i_33557184, a_33557185, b_33557186);
}
} while (false);
return result_33557187;
}
function cstrToNimstr(c_33556804) {
var ln = c_33556804.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_33556804.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_33556804.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function toJSStr(s_33556807) {
var Temporary5;
var result_33556808 = null;
var res_33556842 = newSeq_33556825((s_33556807).length);
var i_33556843 = 0;
var j_33556844 = 0;
Label1: do {
Label2: while (true) {
if (!(i_33556843 < (s_33556807).length)) break Label2;
var c_33556845 = s_33556807[i_33556843];
if ((c_33556845 < 128)) {
res_33556842[j_33556844] = String.fromCharCode(c_33556845);
i_33556843 += 1;
}
else {
var helper_33556857 = newSeq_33556825(0);
Label3: do {
Label4: while (true) {
if (!true) break Label4;
var code_33556858 = c_33556845.toString(16);
if ((((code_33556858) == null ? 0 : (code_33556858).length) == 1)) {
helper_33556857.push("%0");;
}
else {
helper_33556857.push("%");;
}
helper_33556857.push(code_33556858);;
i_33556843 += 1;
if (((s_33556807).length <= i_33556843)) Temporary5 = true; else { Temporary5 = (s_33556807[i_33556843] < 128); } if (Temporary5) {
break Label3;
}
c_33556845 = s_33556807[i_33556843];
}
} while (false);
++excHandler;
try {
res_33556842[j_33556844] = decodeURIComponent(helper_33556857.join(""));
--excHandler;
} catch (EXCEPTION) {
var prevJSError = lastJSError;
lastJSError = EXCEPTION;
--excHandler;
res_33556842[j_33556844] = helper_33556857.join("");
lastJSError = prevJSError;
} finally {
}
}
j_33556844 += 1;
}
} while (false);
if (res_33556842.length < j_33556844) { for (var i = res_33556842.length ; i < j_33556844 ; ++i) res_33556842.push(null); }
else { res_33556842.length = j_33556844; };
result_33556808 = res_33556842.join("");
return result_33556808;
}
function raiseException(e_33556667, ename_33556668) {
e_33556667.name = ename_33556668;
if ((excHandler == 0)) {
unhandledException(e_33556667);
}
e_33556667.trace = nimCopy(null, rawWriteStackTrace_33556631(), NTI33554439);
throw e_33556667;
}
function mulInt(a_33556948, b_33556949) {
var result = a_33556948 * b_33556949;
checkOverflowInt(result);
return result;
}
function add_33556419(x_33556420, x_33556420_Idx, y_33556421) {
if (x_33556420[x_33556420_Idx] === null) { x_33556420[x_33556420_Idx] = []; }
var off = x_33556420[x_33556420_Idx].length;
x_33556420[x_33556420_Idx].length += y_33556421.length;
for (var i = 0; i < y_33556421.length; ++i) {
x_33556420[x_33556420_Idx][off+i] = y_33556421.charCodeAt(i);
}
}
function isFatPointer_33557131(ti_33557132) {
var result_33557133 = false;
BeforeRet: do {
result_33557133 = !((ConstSet1[ti_33557132.base.kind] != undefined));
break BeforeRet;
} while (false);
return result_33557133;
}
function nimCopyAux(dest_33557144, src_33557145, n_33557146) {
switch (n_33557146.kind) {
case 0:
break;
case 1:
dest_33557144[n_33557146.offset] = nimCopy(dest_33557144[n_33557146.offset], src_33557145[n_33557146.offset], n_33557146.typ);
break;
case 2:
for (var i = 0; i < n_33557146.sons.length; i++) {
nimCopyAux(dest_33557144, src_33557145, n_33557146.sons[i]);
}
break;
case 3:
dest_33557144[n_33557146.offset] = nimCopy(dest_33557144[n_33557146.offset], src_33557145[n_33557146.offset], n_33557146.typ);
for (var i = 0; i < n_33557146.sons.length; ++i) {
nimCopyAux(dest_33557144, src_33557145, n_33557146.sons[i][1]);
}
break;
}
}
function raiseRangeError() {
raiseException({message: makeNimstrLit("value out of range"), parent: null, m_type: NTI33555130, name: null, trace: [], up: null}, "RangeDefect");
}
function raiseIndexError(i_33556754, a_33556755, b_33556756) {
var Temporary1;
if ((b_33556756 < a_33556755)) {
Temporary1 = makeNimstrLit("index out of bounds, the container is empty");
}
else {
Temporary1 = (makeNimstrLit("index ") || []).concat(HEX24_335544323(i_33556754) || [],makeNimstrLit(" not in ") || [],HEX24_335544323(a_33556755) || [],makeNimstrLit(" .. ") || [],HEX24_335544323(b_33556756) || []);
}
raiseException({message: nimCopy(null, Temporary1, NTI33554439), parent: null, m_type: NTI33555128, name: null, trace: [], up: null}, "IndexDefect");
}
function addChars_251658415(result_251658417, result_251658417_Idx, x_251658418, start_251658419, n_251658420) {
var old_251658421 = (result_251658417[result_251658417_Idx]).length;
(result_251658417[result_251658417_Idx].length = chckRange(addInt(old_251658421, n_251658420), 0, 2147483647));
Label1: do {
var iHEX60gensym4_251658435 = 0;
var i_452984861 = 0;
Label2: do {
Label3: while (true) {
if (!(i_452984861 < n_251658420)) break Label3;
iHEX60gensym4_251658435 = i_452984861;
result_251658417[result_251658417_Idx][chckIndx(addInt(old_251658421, iHEX60gensym4_251658435), 0, (result_251658417[result_251658417_Idx]).length - 1)] = x_251658418.charCodeAt(chckIndx(addInt(start_251658419, iHEX60gensym4_251658435), 0, (x_251658418).length - 1));
i_452984861 = addInt(i_452984861, 1);
}
} while (false);
} while (false);
}
function addChars_251658411(result_251658413, result_251658413_Idx, x_251658414) {
addChars_251658415(result_251658413, result_251658413_Idx, x_251658414, 0, ((x_251658414) == null ? 0 : (x_251658414).length));
}
function addInt_251658436(result_251658437, result_251658437_Idx, x_251658438) {
addChars_251658411(result_251658437, result_251658437_Idx, ((x_251658438) + ""));
}
function addInt_251658457(result_251658458, result_251658458_Idx, x_251658459) {
addInt_251658436(result_251658458, result_251658458_Idx, x_251658459);
}
function HEX24_335544323(x_335544324) {
var result_335544325 = [[]];
addInt_251658457(result_335544325, 0, x_335544324);
return result_335544325[0];
}
function auxWriteStackTrace_33556559(f_33556560) {
var Temporary3;
var result_33556561 = [[]];
var it_33556569 = f_33556560;
var i_33556570 = 0;
var total_33556571 = 0;
var tempFrames_33556572 = arrayConstr(64, {Field0: null, Field1: 0, Field2: null}, NTI33555916);
Label1: do {
Label2: while (true) {
if (!!((it_33556569 == null))) Temporary3 = false; else { Temporary3 = (i_33556570 <= 63); } if (!Temporary3) break Label2;
tempFrames_33556572[i_33556570].Field0 = it_33556569.procname;
tempFrames_33556572[i_33556570].Field1 = it_33556569.line;
tempFrames_33556572[i_33556570].Field2 = it_33556569.filename;
i_33556570 += 1;
total_33556571 += 1;
it_33556569 = it_33556569.prev;
}
} while (false);
Label4: do {
Label5: while (true) {
if (!!((it_33556569 == null))) break Label5;
total_33556571 += 1;
it_33556569 = it_33556569.prev;
}
} while (false);
result_33556561[0] = nimCopy(null, [], NTI33554439);
if (!((total_33556571 == i_33556570))) {
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit("("));;
result_33556561[0].push.apply(result_33556561[0], HEX24_335544323((total_33556571 - i_33556570)));;
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit(" calls omitted) ...\x0A"));;
}
Label6: do {
var j_33556602 = 0;
var colontmp__452984853 = 0;
colontmp__452984853 = (i_33556570 - 1);
var res_452984855 = colontmp__452984853;
Label7: do {
Label8: while (true) {
if (!(0 <= res_452984855)) break Label8;
j_33556602 = res_452984855;
result_33556561[0].push.apply(result_33556561[0], cstrToNimstr(tempFrames_33556572[j_33556602].Field2));;
if ((0 < tempFrames_33556572[j_33556602].Field1)) {
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit("("));;
addInt_251658457(result_33556561, 0, tempFrames_33556572[j_33556602].Field1);
if (false) {
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit(", "));;
addInt_251658457(result_33556561, 0, 0);
}
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit(")"));;
}
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit(" at "));;
add_33556419(result_33556561, 0, tempFrames_33556572[j_33556602].Field0);
result_33556561[0].push.apply(result_33556561[0], makeNimstrLit("\x0A"));;
res_452984855 -= 1;
}
} while (false);
} while (false);
return result_33556561[0];
}
function rawWriteStackTrace_33556631() {
var result_33556632 = [];
if (!((framePtr == null))) {
result_33556632 = nimCopy(null, (makeNimstrLit("Traceback (most recent call last)\x0A") || []).concat(auxWriteStackTrace_33556559(framePtr) || []), NTI33554439);
}
else {
result_33556632 = nimCopy(null, makeNimstrLit("No stack traceback available\x0A"), NTI33554439);
}
return result_33556632;
}
function newSeq_33556825(len_33556827) {
var result_33556828 = [];
result_33556828 = new Array(len_33556827); for (var i = 0 ; i < len_33556827 ; ++i) { result_33556828[i] = null; }
return result_33556828;
}
function unhandledException(e_33556663) {
var buf_33556664 = [[]];
if (!(((e_33556663.message).length == 0))) {
buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("Error: unhandled exception: "));;
buf_33556664[0].push.apply(buf_33556664[0], e_33556663.message);;
}
else {
buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("Error: unhandled exception"));;
}
buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit(" ["));;
add_33556419(buf_33556664, 0, e_33556663.name);
buf_33556664[0].push.apply(buf_33556664[0], makeNimstrLit("]\x0A"));;
buf_33556664[0].push.apply(buf_33556664[0], rawWriteStackTrace_33556631());;
var cbuf_33556665 = toJSStr(buf_33556664[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_33556665);
}
else {
throw cbuf_33556665;
}
}
function raiseOverflow() {
raiseException({message: makeNimstrLit("over- or underflow"), parent: null, m_type: NTI33555122, name: null, trace: [], up: null}, "OverflowDefect");
}
function checkOverflowInt(a_33556938) {
if (a_33556938 > 2147483647 || a_33556938 < -2147483648) raiseOverflow();
}
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
var a_452984838 = 1;
var i_452984839 = 1;
var v_452984840 = nimCopy(null, {Field0: mulInt(i_452984839, ((a_452984838) | 0)), Field1: mulInt(i_452984839, ((a_452984838) | 0))}, NTI452984835);
framePtr = F.prev;
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
framePtr = F.prev;
var F = {procname: "module temp", prev: framePtr, filename: "/home/runner/work/Nim/Nim/temp.nim", line: 0};
framePtr = F;
framePtr = F.prev;
Stats
- Started
2024-03-11T08:44:27
- Finished
2024-03-11T08:44:27
- Duration
1.4.8 👍 OK
Output
IR
Compiled filesize15.13 Kb (15,494 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI1852003 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI1188044 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI1380043 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI1194408 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI1194728 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI1188013 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI1188015 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI1194723 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI1194617 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI1194619 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI1194633 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI1194637 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI1194637 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI1194637.node = NNI1194637;
var NNI1194633 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI1194633.node = NNI1194633;
var NNI1194619 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI1194619.node = NNI1194619;
NTI1194723.base = NTI1194617;
NTI1194728.base = NTI1194617;
var NNI1194617 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI1194723, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI1188015, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI1188013, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI1188013, name: "trace", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI1194728, name: "up", sons: null}]};
NTI1194617.node = NNI1194617;
var NNI1194408 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI1194408.node = NNI1194408;
NTI1194617.base = NTI1194408;
NTI1194619.base = NTI1194617;
NTI1194633.base = NTI1194619;
NTI1194637.base = NTI1194633;
var NNI1380043 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI1188015, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI1188044, name: "Field1", sons: null},
{kind: 1, offset: "Field2", len: 0, typ: NTI1188015, name: "Field2", sons: null}]};
NTI1380043.node = NNI1380043;
var NNI1852003 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI1188044, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI1188044, name: "Field1", sons: null}]};
NTI1852003.node = NNI1852003;
function makeNimstrLit(c_1455062) {
var ln = c_1455062.length;
var result = new Array(ln);
for (var i = 0; i < ln; ++i) {
result[i] = c_1455062.charCodeAt(i);
}
return result;
}
function arrayConstr(len_1480067, value_1480068, typ_1480069) {
var result = new Array(len_1480067);
for (var i = 0; i < len_1480067; ++i) result[i] = nimCopy(null, value_1480068, typ_1480069);
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_1470023, src_1470024, ti_1470025) {
var result_1475219 = null;
switch (ti_1470025.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(isFatPointer_1465401(ti_1470025))) {
result_1475219 = src_1470024;
}
else {
result_1475219 = [src_1470024[0], src_1470024[1]];
}
break;
case 19:
if (dest_1470023 === null || dest_1470023 === undefined) {
dest_1470023 = {};
}
else {
for (var key in dest_1470023) { delete dest_1470023[key]; }
}
for (var key in src_1470024) { dest_1470023[key] = src_1470024[key]; }
result_1475219 = dest_1470023;
break;
case 18:
case 17:
if (!((ti_1470025.base == null))) {
result_1475219 = nimCopy(dest_1470023, src_1470024, ti_1470025.base);
}
else {
if ((ti_1470025.kind == 17)) {
result_1475219 = (dest_1470023 === null || dest_1470023 === undefined) ? {m_type: ti_1470025} : dest_1470023;
}
else {
result_1475219 = (dest_1470023 === null || dest_1470023 === undefined) ? {} : dest_1470023;
}
}
nimCopyAux(result_1475219, src_1470024, ti_1470025.node);
break;
case 24:
case 4:
case 27:
case 16:
if (src_1470024 === null) {
result_1475219 = null;
}
else {
if (dest_1470023 === null || dest_1470023 === undefined) {
dest_1470023 = new Array(src_1470024.length);
}
else {
dest_1470023.length = src_1470024.length;
}
result_1475219 = dest_1470023;
for (var i = 0; i < src_1470024.length; ++i) {
result_1475219[i] = nimCopy(result_1475219[i], src_1470024[i], ti_1470025.base);
}
}
break;
case 28:
if (src_1470024 !== null) {
result_1475219 = src_1470024.slice(0);
}
break;
default:
result_1475219 = src_1470024;
break;
}
return result_1475219;
}
function cstrToNimstr(c_1455079) {
var ln = c_1455079.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_1455079.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_1455079.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function toJSStr(s_1455096) {
var Tmp5;
var Tmp7;
var result_1455097 = null;
var res_1455170 = newSeq_1455128((s_1455096).length);
var i_1455172 = 0;
var j_1455174 = 0;
L1: do {
L2: while (true) {
if (!(i_1455172 < (s_1455096).length)) break L2;
var c_1455175 = s_1455096[i_1455172];
if ((c_1455175 < 128)) {
res_1455170[j_1455174] = String.fromCharCode(c_1455175);
i_1455172 += 1;
}
else {
var helper_1455198 = newSeq_1455128(0);
L3: do {
L4: while (true) {
if (!true) break L4;
var code_1455199 = c_1455175.toString(16);
if ((((code_1455199) == null ? 0 : (code_1455199).length) == 1)) {
helper_1455198.push("%0");;
}
else {
helper_1455198.push("%");;
}
helper_1455198.push(code_1455199);;
i_1455172 += 1;
if (((s_1455096).length <= i_1455172)) Tmp5 = true; else { Tmp5 = (s_1455096[i_1455172] < 128); } if (Tmp5) {
break L3;
}
c_1455175 = s_1455096[i_1455172];
}
} while(false);
++excHandler;
Tmp7 = framePtr;
try {
res_1455170[j_1455174] = decodeURIComponent(helper_1455198.join(""));
--excHandler;
} catch (EXC) {
var prevJSError = lastJSError;
lastJSError = EXC;
--excHandler;
framePtr = Tmp7;
res_1455170[j_1455174] = helper_1455198.join("");
lastJSError = prevJSError;
} finally {
framePtr = Tmp7;
}
}
j_1455174 += 1;
}
} while(false);
if (res_1455170.length < j_1455174) { for (var i=res_1455170.length;i<j_1455174;++i) res_1455170.push(null); }
else { res_1455170.length = j_1455174; };
result_1455097 = res_1455170.join("");
return result_1455097;
}
function raiseException(e_1420218, ename_1420219) {
e_1420218.name = ename_1420219;
if ((excHandler == 0)) {
unhandledException(e_1420218);
}
e_1420218.trace = nimCopy(null, rawWriteStackTrace_1410260(), NTI1188013);
throw e_1420218;
}
function mulInt(a_1460455, b_1460456) {
var result = a_1460455 * b_1460456;
checkOverflowInt(result);
return result;
}
function add_1357211(x_1357214, x_1357214_Idx, y_1357215) {
if (x_1357214[x_1357214_Idx] === null) { x_1357214[x_1357214_Idx] = []; }
var off = x_1357214[x_1357214_Idx].length;
x_1357214[x_1357214_Idx].length += y_1357215.length;
for (var i = 0; i < y_1357215.length; ++i) {
x_1357214[x_1357214_Idx][off+i] = y_1357215.charCodeAt(i);
}
}
function isFatPointer_1465401(ti_1465403) {
var result_1465404 = false;
BeforeRet: do {
result_1465404 = !((ConstSet1[ti_1465403.base.kind] != undefined));
break BeforeRet;
} while (false);
return result_1465404;
}
function nimCopyAux(dest_1470028, src_1470029, n_1470031) {
switch (n_1470031.kind) {
case 0:
break;
case 1:
dest_1470028[n_1470031.offset] = nimCopy(dest_1470028[n_1470031.offset], src_1470029[n_1470031.offset], n_1470031.typ);
break;
case 2:
for (var i = 0; i < n_1470031.sons.length; i++) {
nimCopyAux(dest_1470028, src_1470029, n_1470031.sons[i]);
}
break;
case 3:
dest_1470028[n_1470031.offset] = nimCopy(dest_1470028[n_1470031.offset], src_1470029[n_1470031.offset], n_1470031.typ);
for (var i = 0; i < n_1470031.sons.length; ++i) {
nimCopyAux(dest_1470028, src_1470029, n_1470031.sons[i][1]);
}
break;
}
}
function auxWriteStackTrace_1380038(f_1380040) {
var Tmp3;
var result_1380041 = [[]];
var it_1380051 = f_1380040;
var i_1380053 = 0;
var total_1380055 = 0;
var tempFrames_1380062 = arrayConstr(64, {Field0: null, Field1: 0, Field2: null}, NTI1380043);
L1: do {
L2: while (true) {
if (!!((it_1380051 == null))) Tmp3 = false; else { Tmp3 = (i_1380053 <= 63); } if (!Tmp3) break L2;
tempFrames_1380062[i_1380053].Field0 = it_1380051.procname;
tempFrames_1380062[i_1380053].Field1 = it_1380051.line;
tempFrames_1380062[i_1380053].Field2 = it_1380051.filename;
i_1380053 += 1;
total_1380055 += 1;
it_1380051 = it_1380051.prev;
}
} while(false);
L4: do {
L5: while (true) {
if (!!((it_1380051 == null))) break L5;
total_1380055 += 1;
it_1380051 = it_1380051.prev;
}
} while(false);
result_1380041[0] = nimCopy(null, [], NTI1188013);
if (!((total_1380055 == i_1380053))) {
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit("("));;
result_1380041[0].push.apply(result_1380041[0], cstrToNimstr(((total_1380055 - i_1380053))+""));;
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit(" calls omitted) ...\x0A"));;
}
L6: do {
var j_1395236 = 0;
var colontmp__1852045 = 0;
colontmp__1852045 = (i_1380053 - 1);
var res_1852050 = colontmp__1852045;
L7: do {
L8: while (true) {
if (!(0 <= res_1852050)) break L8;
j_1395236 = res_1852050;
result_1380041[0].push.apply(result_1380041[0], cstrToNimstr(tempFrames_1380062[j_1395236].Field2));;
if ((0 < tempFrames_1380062[j_1395236].Field1)) {
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit("("));;
result_1380041[0].push.apply(result_1380041[0], cstrToNimstr((tempFrames_1380062[j_1395236].Field1)+""));;
if (false) {
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit(", "));;
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit("0"));;
}
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit(")"));;
}
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit(" at "));;
add_1357211(result_1380041, 0, tempFrames_1380062[j_1395236].Field0);
result_1380041[0].push.apply(result_1380041[0], makeNimstrLit("\x0A"));;
res_1852050 -= 1;
}
} while(false);
} while(false);
return result_1380041[0];
}
function rawWriteStackTrace_1410260() {
var result_1410262 = [];
if (!((framePtr == null))) {
result_1410262 = nimCopy(null, (makeNimstrLit("Traceback (most recent call last)\x0A") || []).concat(auxWriteStackTrace_1380038(framePtr) || []), NTI1188013);
}
else {
result_1410262 = nimCopy(null, makeNimstrLit("No stack traceback available\x0A"), NTI1188013);
}
return result_1410262;
}
function newSeq_1455128(len_1455131) {
var result_1455133 = [];
result_1455133 = new Array(len_1455131); for (var i=0;i<len_1455131;++i) {result_1455133[i]=null;}
return result_1455133;
}
function unhandledException(e_1415059) {
var buf_1415060 = [[]];
if (!(((e_1415059.message).length == 0))) {
buf_1415060[0].push.apply(buf_1415060[0], makeNimstrLit("Error: unhandled exception: "));;
buf_1415060[0].push.apply(buf_1415060[0], e_1415059.message);;
}
else {
buf_1415060[0].push.apply(buf_1415060[0], makeNimstrLit("Error: unhandled exception"));;
}
buf_1415060[0].push.apply(buf_1415060[0], makeNimstrLit(" ["));;
add_1357211(buf_1415060, 0, e_1415059.name);
buf_1415060[0].push.apply(buf_1415060[0], makeNimstrLit("]\x0A"));;
buf_1415060[0].push.apply(buf_1415060[0], rawWriteStackTrace_1410260());;
var cbuf_1420201 = toJSStr(buf_1415060[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_1420201);
}
else {
throw cbuf_1420201;
}
}
function raiseOverflow() {
raiseException({message: makeNimstrLit("over- or underflow"), parent: null, m_type: NTI1194637, name: null, trace: [], up: null}, "OverflowDefect");
}
function checkOverflowInt(a_1460403) {
if (a_1460403 > 2147483647 || a_1460403 < -2147483648) raiseOverflow();
}
var F={procname:"module temp",prev:framePtr,filename:"/home/runner/work/Nim/Nim/temp.nim",line:0};
framePtr = F;
var a_1852009 = 1;
var i_1852010 = 1;
var v_1852012 = nimCopy(null, {Field0: mulInt(i_1852010, ((a_1852009)|0)), Field1: mulInt(i_1852010, ((a_1852009)|0))}, NTI1852003);
framePtr = F.prev;
var F={procname:"module temp",prev:framePtr,filename:"/home/runner/work/Nim/Nim/temp.nim",line:0};
framePtr = F;
framePtr = F.prev;
var F={procname:"module temp",prev:framePtr,filename:"/home/runner/work/Nim/Nim/temp.nim",line:0};
framePtr = F;
framePtr = F.prev;
Stats
- Started
2024-03-11T08:44:29
- Finished
2024-03-11T08:44:29
- Duration
1.2.18 👍 OK
Output
IR
Compiled filesize4.54 Kb (4,647 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
if (typeof Int8Array === 'undefined') Int8Array = Array;
if (typeof Int16Array === 'undefined') Int16Array = Array;
if (typeof Int32Array === 'undefined') Int32Array = Array;
if (typeof Uint8Array === 'undefined') Uint8Array = Array;
if (typeof Uint16Array === 'undefined') Uint16Array = Array;
if (typeof Uint32Array === 'undefined') Uint32Array = Array;
if (typeof Float32Array === 'undefined') Float32Array = Array;
if (typeof Float64Array === 'undefined') Float64Array = Array;
var NTI143 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI622004 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NNI622004 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI143, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI143, name: "Field1", sons: null}]};
NTI622004.node = NNI622004;
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_240023, src_240024, ti_240025) {
var result_245219 = null;
switch (ti_240025.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(is_fat_pointer_235401(ti_240025))) {
result_245219 = src_240024;
}
else {
result_245219 = [src_240024[0], src_240024[1]];
}
break;
case 19:
if (dest_240023 === null || dest_240023 === undefined) {
dest_240023 = {};
}
else {
for (var key in dest_240023) { delete dest_240023[key]; }
}
for (var key in src_240024) { dest_240023[key] = src_240024[key]; }
result_245219 = dest_240023;
break;
case 18:
case 17:
if (!((ti_240025.base == null))) {
result_245219 = nimCopy(dest_240023, src_240024, ti_240025.base);
}
else {
if ((ti_240025.kind == 17)) {
result_245219 = (dest_240023 === null || dest_240023 === undefined) ? {m_type: ti_240025} : dest_240023;
}
else {
result_245219 = (dest_240023 === null || dest_240023 === undefined) ? {} : dest_240023;
}
}
nimCopyAux(result_245219, src_240024, ti_240025.node);
break;
case 24:
case 4:
case 27:
case 16:
if (src_240024 === null) {
result_245219 = null;
}
else {
if (dest_240023 === null || dest_240023 === undefined) {
dest_240023 = new Array(src_240024.length);
}
else {
dest_240023.length = src_240024.length;
}
result_245219 = dest_240023;
for (var i = 0; i < src_240024.length; ++i) {
result_245219[i] = nimCopy(result_245219[i], src_240024[i], ti_240025.base);
}
}
break;
case 28:
if (src_240024 !== null) {
result_245219 = src_240024.slice(0);
}
break;
default:
result_245219 = src_240024;
break;
}
return result_245219;
}
process.exitCode = 0;
var global_raise_hook_142018 = [null];
var local_raise_hook_142023 = [null];
var out_of_mem_hook_142026 = [null];
var unhandled_exception_hook_142031 = [null];
function is_fat_pointer_235401(ti_235403) {
var result_235404 = false;
BeforeRet: do {
result_235404 = !((ConstSet1[ti_235403.base.kind] != undefined));
break BeforeRet;
} while (false);
return result_235404;
}
function nimCopyAux(dest_240028, src_240029, n_240031) {
switch (n_240031.kind) {
case 0:
break;
case 1:
dest_240028[n_240031.offset] = nimCopy(dest_240028[n_240031.offset], src_240029[n_240031.offset], n_240031.typ);
break;
case 2:
for (var i = 0; i < n_240031.sons.length; i++) {
nimCopyAux(dest_240028, src_240029, n_240031.sons[i]);
}
break;
case 3:
dest_240028[n_240031.offset] = nimCopy(dest_240028[n_240031.offset], src_240029[n_240031.offset], n_240031.typ);
for (var i = 0; i < n_240031.sons.length; ++i) {
nimCopyAux(dest_240028, src_240029, n_240031.sons[i][1]);
}
break;
}
}
var a_622010 = 1;
var i_622011 = 1;
var v_622013 = nimCopy(null, {Field0: (i_622011 * ((a_622010)|0)), Field1: (i_622011 * ((a_622010)|0))}, NTI622004);
Stats
- Started
2024-03-11T08:44:31
- Finished
2024-03-11T08:44:31
- Duration
1.0.10 👍 OK
Output
IR
Compiled filesize4.26 Kb (4,363 bytes)
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
if (typeof Int8Array === 'undefined') Int8Array = Array;
if (typeof Int16Array === 'undefined') Int16Array = Array;
if (typeof Int32Array === 'undefined') Int32Array = Array;
if (typeof Uint8Array === 'undefined') Uint8Array = Array;
if (typeof Uint16Array === 'undefined') Uint16Array = Array;
if (typeof Uint32Array === 'undefined') Uint32Array = Array;
if (typeof Float32Array === 'undefined') Float32Array = Array;
if (typeof Float64Array === 'undefined') Float64Array = Array;
var NTI104 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI43004 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NNI43004 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI104, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI104, name: "Field1", sons: null}]};
NTI43004.node = NNI43004;
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_24827, src_24828, ti_24829) {
var result_25019 = null;
switch (ti_24829.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(is_fat_pointer_24801(ti_24829))) {
result_25019 = src_24828;
}
else {
result_25019 = [src_24828[0], src_24828[1]];
}
break;
case 19:
if (dest_24827 === null || dest_24827 === undefined) {
dest_24827 = {};
}
else {
for (var key in dest_24827) { delete dest_24827[key]; }
}
for (var key in src_24828) { dest_24827[key] = src_24828[key]; }
result_25019 = dest_24827;
break;
case 18:
case 17:
if (!((ti_24829.base == null))) {
result_25019 = nimCopy(dest_24827, src_24828, ti_24829.base);
}
else {
if ((ti_24829.kind == 17)) {
result_25019 = (dest_24827 === null || dest_24827 === undefined) ? {m_type: ti_24829} : dest_24827;
}
else {
result_25019 = (dest_24827 === null || dest_24827 === undefined) ? {} : dest_24827;
}
}
nimCopyAux(result_25019, src_24828, ti_24829.node);
break;
case 24:
case 4:
case 27:
case 16:
if (src_24828 === null) {
result_25019 = null;
}
else {
if (dest_24827 === null || dest_24827 === undefined) {
dest_24827 = new Array(src_24828.length);
}
else {
dest_24827.length = src_24828.length;
}
result_25019 = dest_24827;
for (var i = 0; i < src_24828.length; ++i) {
result_25019[i] = nimCopy(result_25019[i], src_24828[i], ti_24829.base);
}
}
break;
case 28:
if (src_24828 !== null) {
result_25019 = src_24828.slice(0);
}
break;
default:
result_25019 = src_24828;
break;
}
return result_25019;
}
process.exitCode = 0;
var global_raise_hook_18618 = [null];
var local_raise_hook_18623 = [null];
var out_of_mem_hook_18626 = [null];
function is_fat_pointer_24801(ti_24803) {
var result_24804 = false;
BeforeRet: do {
result_24804 = !((ConstSet1[ti_24803.base.kind] != undefined));
break BeforeRet;
} while (false);
return result_24804;
}
function nimCopyAux(dest_24832, src_24833, n_24835) {
switch (n_24835.kind) {
case 0:
break;
case 1:
dest_24832[n_24835.offset] = nimCopy(dest_24832[n_24835.offset], src_24833[n_24835.offset], n_24835.typ);
break;
case 2:
for (var i = 0; i < n_24835.sons.length; i++) {
nimCopyAux(dest_24832, src_24833, n_24835.sons[i]);
}
break;
case 3:
dest_24832[n_24835.offset] = nimCopy(dest_24832[n_24835.offset], src_24833[n_24835.offset], n_24835.typ);
for (var i = 0; i < n_24835.sons.length; ++i) {
nimCopyAux(dest_24832, src_24833, n_24835.sons[i][1]);
}
break;
}
}
var a_43010 = 1;
var i_43011 = 1;
var v_43013 = nimCopy(null, {Field0: (i_43011 * ((a_43010)|0)), Field1: (i_43011 * ((a_43010)|0))}, NTI43004);
Stats
- Started
2024-03-11T08:44:33
- Finished
2024-03-11T08:44:33
- Duration
??? ➡️ 🐛
Diagnostics
The commit that introduced the bug can not be found, but the bug is in the commits:
(Can not find the commit because Nim can not be re-built commit-by-commit to bisect).
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
19.1
- Created
2024-03-11T08:43:53Z
- Comments
3
- Commands
nim js -d:nodejs -d:nimExperimentalAsyncjsThen -d:nimExperimentalJsfetch --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 50 minutes
bisecting 71
commits at 1
commits per second
from nim.
Maybe caused by #20829 and followup PRs, maybe works but not fixed (can be confirmed by trying to pass the tuple to a proc parameter of type K) because of #23228?
from nim.
Confirmed that #20829 causes it locally. However it should be known that this always errored when using int64
on a 64 bit machine and #20829 likely made it consistent between the two.
int32
and int64
are convertible to int
in their respective machines, however convertible matches do not cascade from tuple elements. The example in the issue works on devel due to type inference, this still fails (again, this always failed for int64):
type K = tuple
g, w: int
let
a: int32 = 1
i: int = 1
proc foo(v: K) = discard
foo (i * a, i * a)
from nim.
This never should have compiled.
from nim.
Confirmed that #20829 causes it locally. However it should be known that this always errored when using
int64
on a 64 bit machine and #20829 likely made it consistent between the two.
int32
andint64
are convertible toint
in their respective machines, however convertible matches do not cascade from tuple elements. The example in the issue works on devel due to type inference, this still fails (again, this always failed for int64):type K = tuple g, w: int let a: int32 = 1 i: int = 1 proc foo(v: K) = discard foo (i * a, i * a)
This compiles for me on:
Nim Compiler Version 1.6.20 [Linux: amd64]
Compiled at 2024-03-20
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: 8f9fde0615c686357774736c0bce6f3c2075a94d
active boot switches: -d:release
Nim Compiler Version 2.0.4 [Linux: amd64]
Compiled at 2024-03-20
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: d4b58b0b068475e937e9e25af4f11f649285274c
active boot switches: -d:release
Nim Compiler Version 2.1.1 [Linux: amd64]
Compiled at 2024-03-20
Copyright (c) 2006-2024 by Andreas Rumpf
git hash: 6c4c60eade66e45448a220f4c8a91f866b76baf7
active boot switches: -d:release
on amd64
.
This never should have compiled.
This also seems reasonable, but then it's inconsistent between 32-bit and 64-bit Nim versions, see above.
from nim.
This also seems reasonable, but then it's inconsistent between 32-bit and 64-bit Nim versions, see above.
I don't understand. "This never should have compiled" applies to all bit versions of Nim.
from nim.
Related Issues (20)
- Enum overloading regression HOT 4
- Nimsuggest - Methods marked with {.base.} trigger error on chk HOT 3
- Ref array causing Segfault HOT 4
- osproc.startProcess should support "not following symlinks" HOT 2
- When `move` meets` sink`, `= sink` hook function is not called HOT 4
- [ignore] bisect HOT 7
- Error: type mismatch: got <typedesc[A]>, but expected one of: A = proc (){.closure.}
- Default object values silently override generic types
- Enum Overloading Regression? HOT 4
- async `and` swallows errors
- Async `finally` swallows errors when it contains an `await` wrapped by `try/except`
- The `when nimvm` statement fails to compile when in a file called nimvm.nim HOT 4
- Regression from 2.0 to `devel` with `dirty` template HOT 3
- Async memory leak when raising exception on ORC HOT 1
- unicode.splitWhitespace() and strutils.splitWhitespace() have different results for ASCII string
- Wrong stack trace when exception is raised in template HOT 1
- Error: cannot evaluate at compile time: foo HOT 4
- nim check crashes
- Any differnece between value types and reference types for `=sink` ? HOT 1
- Simple destructor code gives invalid C HOT 4
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.