Code Monkey home page Code Monkey logo

Comments (9)

metagn avatar metagn commented on June 4, 2024 1

!nim c

type K = tuple
  g, w: int

let
  a: int32 = 1
  i: int = 1
  v: K = (i * a, i * a)

from nim.

metagn avatar metagn commented on June 4, 2024 1

!nim js

type K = tuple
  g, w: int

let
  a: int32 = 1
  i: int = 1
  v: K = (i * a, i * a)

from nim.

github-actions avatar github-actions commented on June 4, 2024
🐧 Linux bisect by @metagn (collaborator)
devel 👍 OK

Output


IR

Compiled filesize 92.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 filesize 90.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 filesize 90.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 filesize 95.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 filesize 91.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 filesize 87.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 filesize 86.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.

github-actions avatar github-actions commented on June 4, 2024
🐧 Linux bisect by @metagn (collaborator)
devel 👍 OK

Output


IR

Compiled filesize 20.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 filesize 20.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 filesize 20.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 filesize 19.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 filesize 15.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 filesize 4.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 filesize 4.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.

metagn avatar metagn commented on June 4, 2024

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.

metagn avatar metagn commented on June 4, 2024

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.

Araq avatar Araq commented on June 4, 2024

This never should have compiled.

from nim.

tersec avatar tersec commented on June 4, 2024

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)

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.

Araq avatar Araq commented on June 4, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.