nim-lang / Nim

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

Spurious `XCannotRaiseY` hint when using generics #22792

Open etan-status opened 1 year ago

etan-status commented 1 year ago

Description

When using generics, XCannotRaiseY hints are triggered when only some but not all supported types raise.

{.push hint[XCannotRaiseY]:on.}

proc foo(f: int) {.raises: [].} =
  discard

proc foo(f: float) {.raises: [IOError].} =
  raise newException(IOError, "Test")

proc bar(f: int | float) {.raises: [IOError].} =
  foo(f)

bar(42)

or, also, without the extra procs:

{.push hint[XCannotRaiseY]:on.}

proc bar(f: int | float) {.raises: [IOError].} =
  when f is int:
    discard
  else:
    raise newException(IOError, "Test")

bar(42)

Nim Version

Nim Compiler Version 2.0.1 [MacOSX: amd64]
Compiled at 2023-10-03
Copyright (c) 2006-2023 by Andreas Rumpf

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

Current Output

/Users/etan/Documents/Repos/nimbus-eth2/test.nim(3, 37) Hint: 'bar' cannot raise 'IOError' [XCannotRaiseY]

Expected Output

No hint, if at least one synthesized implementation actually raises

Possible Solution

No response

Additional Information

No response

juancarlospaco commented 1 year ago

!nim c --hintaserror:XCannotRaiseY

{.push hint[XCannotRaiseY]:on.}

proc bar(f: int | float) {.raises: [IOError].} =
  when f is int:
    discard
  else:
    raise newException(IOError, "Test")

bar(42)
github-actions[bot] commented 1 year ago
:window: Windows bisect by @juancarlospaco (collaborator)
devel :+1: OK

Output

``` ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4632)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatsexitprocsdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatssynciodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatssynciodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4019; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4416; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4019 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4019).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4019; framePtr__system_u4019 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4632(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4019 = (*framePtr__system_u4019).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (&nimInErrorMode__system_u4416); return result; } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatsexitprocsdotnim_Init000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatssynciodotnim_Init000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { #if 0 void (*volatile inner)(void); inner = PreMainInner; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000(); (*inner)(); #else atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:06:16
  • Finished 2023-10-05T11:06:27
  • Duration 11 minutes
stable :+1: OK

Output

``` ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #define NIM_INTBITS 64 #include "nimbase.h" #define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); #define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); #define nimln_(n) \ FR_.line = n; #define nimlf_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw tySequence__Fe2YmKTLIMr06AO9bt0WIlw; typedef struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content; typedef struct tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg; struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw { NI len; tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content* p; }; typedef NU8 tyEnum_FunKind__4WvJRK0A3t9bpd9cXsgto78Q; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; typedef N_NOCONV_PTR(void, tyProc__vhjNbzH0Mvv2fTvoe1717Q) (void); struct tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg { tyEnum_FunKind__4WvJRK0A3t9bpd9cXsgto78Q kind; union{ tyProc__HzVCwACFYM9cx9aV62PdjtuA fun1; tyProc__vhjNbzH0Mvv2fTvoe1717Q fun2; }; }; struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content { NI cap; tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4581)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZexitprocs_u301)(tySequence__Fe2YmKTLIMr06AO9bt0WIlw dest_p0); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatsexitprocsdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u3980; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4363; extern tySequence__Fe2YmKTLIMr06AO9bt0WIlw gFuns__stdZexitprocs_u15; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u3980 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u3980).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u3980; framePtr__system_u3980 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4581(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u3980 = (*framePtr__system_u3980).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4363); return result; } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatsexitprocsdotnim_Init000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_Init000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { #if 0 void (*volatile inner)(void); inner = PreMainInner; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___stdZexitprocs_u301(gFuns__stdZexitprocs_u15); BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:06:50
  • Finished 2023-10-05T11:06:52
  • Duration 2 minutes
2.0.0 :+1: OK

Output

``` ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #define NIM_INTBITS 64 #include "nimbase.h" #define nimfr_(proc, file) \ TFrame FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_); #define nimfrs_(proc, file, slots, length) \ struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \ FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_); #define nimln_(n) \ FR_.line = n; #define nimlf_(n, file) \ FR_.line = n; FR_.filename = file; typedef struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw tySequence__Fe2YmKTLIMr06AO9bt0WIlw; typedef struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content; typedef struct tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg; struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw { NI len; tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content* p; }; typedef NU8 tyEnum_FunKind__4WvJRK0A3t9bpd9cXsgto78Q; typedef struct { N_NIMCALL_PTR(void, ClP_0) (void* ClE_0); void* ClE_0; } tyProc__HzVCwACFYM9cx9aV62PdjtuA; typedef N_NOCONV_PTR(void, tyProc__vhjNbzH0Mvv2fTvoe1717Q) (void); struct tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg { tyEnum_FunKind__4WvJRK0A3t9bpd9cXsgto78Q kind; union{ tyProc__HzVCwACFYM9cx9aV62PdjtuA fun1; tyProc__vhjNbzH0Mvv2fTvoe1717Q fun2; }; }; struct tySequence__Fe2YmKTLIMr06AO9bt0WIlw_Content { NI cap; tyObject_Fun__UxsXZ9aeog4o6DSEgg32Akg data[SEQ_DECL_SIZE]; }; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4581)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZexitprocs_u301)(tySequence__Fe2YmKTLIMr06AO9bt0WIlw dest_p0); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatsexitprocsdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u3980; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4363; extern tySequence__Fe2YmKTLIMr06AO9bt0WIlw gFuns__stdZexitprocs_u15; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u3980 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u3980).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u3980; framePtr__system_u3980 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4581(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u3980 = (*framePtr__system_u3980).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4363); return result; } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatsexitprocsdotnim_Init000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_Init000(); } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { #if 0 void (*volatile inner)(void); inner = PreMainInner; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatsstdatssynciodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___stdZexitprocs_u301(gFuns__stdZexitprocs_u15); BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:06:52
  • Finished 2023-10-05T11:06:54
  • Duration 2 minutes
1.6.14 :+1: OK

Output

``` ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2999)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__system_2566 == ((TFrame*) NIM_NIL))) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__system_2566).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__system_2566; framePtr__system_2566 = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__system_2999(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_2566 = (*framePtr__system_2566).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000(); } 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; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_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) { { nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:07:17
  • Finished 2023-10-05T11:07:19
  • Duration 2 minutes
1.4.8 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:D:\a\Nim\Nim --out:D:\a\Nim\Nim/temp D:\a\Nim\Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2999)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__system_2566 == ((TFrame*) NIM_NIL))) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__system_2566).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__system_2566; framePtr__system_2566 = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__system_2999(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_2566 = (*framePtr__system_2566).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000(); } 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; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_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) { { nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:07:41
  • Finished 2023-10-05T11:07:41
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.2.18 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:D:\a\Nim\Nim --out:D:\a\Nim\Nim/temp D:\a\Nim\Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2999)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__system_2566 == ((TFrame*) NIM_NIL))) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__system_2566).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__system_2566; framePtr__system_2566 = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__system_2999(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_2566 = (*framePtr__system_2566).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000(); } 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; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_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) { { nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:07:59
  • Finished 2023-10-05T11:08:00
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.0.10 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:D:\a\Nim\Nim --out:D:\a\Nim\Nim/temp D:\a\Nim\Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 0 bytes (0 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2999)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; extern TFrame* framePtr__system_2566; static N_INLINE(void, nimFrame)(TFrame* s) { { if (!(framePtr__system_2566 == ((TFrame*) NIM_NIL))) goto LA3_; (*s).calldepth = ((NI16) 0); } goto LA1_; LA3_: ; { (*s).calldepth = (NI16)((*framePtr__system_2566).calldepth + ((NI16) 1)); } LA1_: ; (*s).prev = framePtr__system_2566; framePtr__system_2566 = s; { if (!((*s).calldepth == ((NI16) 2000))) goto LA8_; callDepthLimitReached__system_2999(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_2566 = (*framePtr__system_2566).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "D:\\a\\Nim\\Nim\\temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_Init000(); } 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; atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystematsiodotnim_DatInit000(); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmCatcatsUsersatsrunneradminatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_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) { { nimfr_("temp", "D:\\a\\Nim\\Nim\\temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:08:16
  • Finished 2023-10-05T11:08:16
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
Stats
  • GCC 12.2.0
  • Clang 16.0.6
  • NodeJS 18.0
  • Created 2023-10-05T11:04:11Z
  • Comments 1
  • Commands nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:D:\a\Nim\Nim --out:D:\a\Nim\Nim/temp D:\a\Nim\Nim/temp.nim

:robot: Bug found in 49 minutes bisecting 7 commits at 0 commits per second

github-actions[bot] commented 1 year ago
:apple: macOS bisect by @juancarlospaco (collaborator)
devel :+1: OK

Output

``` ```

IR

Compiled filesize 109.63 Kb (112,256 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4658)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4045; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4442; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4045 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4045).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4045; framePtr__system_u4045 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4658(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4045 = (*framePtr__system_u4045).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (&nimInErrorMode__system_u4442); return result; } 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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:15:35
  • Finished 2023-10-05T11:15:48
  • Duration 13 minutes
stable :+1: OK

Output

``` ```

IR

Compiled filesize 109.63 Kb (112,256 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4607)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4006; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4006 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4006).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4006; framePtr__system_u4006 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4607(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4006 = (*framePtr__system_u4006).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4389); return result; } 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; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:15:49
  • Finished 2023-10-05T11:15:50
  • Duration 1 minutes
2.0.0 :+1: OK

Output

``` ```

IR

Compiled filesize 109.63 Kb (112,256 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4607)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4006; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4006 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4006).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4006; framePtr__system_u4006 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4607(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4006 = (*framePtr__system_u4006).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4389); return result; } 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; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:15:50
  • Finished 2023-10-05T11:15:52
  • Duration 1 minutes
1.6.14 :+1: OK

Output

``` ```

IR

Compiled filesize 110.34 Kb (112,984 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:23:10
  • Finished 2023-10-05T11:23:11
  • Duration 1 minutes
1.4.8 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/Users/runner/work/Nim/Nim --out:/Users/runner/work/Nim/Nim/temp /Users/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 110.34 Kb (112,984 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:27:18
  • Finished 2023-10-05T11:27:18
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.2.18 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/Users/runner/work/Nim/Nim --out:/Users/runner/work/Nim/Nim/temp /Users/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 110.34 Kb (112,984 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:30:58
  • Finished 2023-10-05T11:30:58
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.0.10 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/Users/runner/work/Nim/Nim --out:/Users/runner/work/Nim/Nim/temp /Users/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 110.34 Kb (112,984 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/Users/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/Users/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:34:45
  • Finished 2023-10-05T11:34:45
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
??? :arrow_right: :bug:

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 14.0.0
  • Clang 14.0.0
  • NodeJS 18.0
  • Created 2023-10-05T11:04:11Z
  • Comments 1
  • Commands nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/Users/runner/work/Nim/Nim --out:/Users/runner/work/Nim/Nim/temp /Users/runner/work/Nim/Nim/temp.nim

:robot: Bug found in 24 minutes bisecting 326 commits at 13 commits per second

github-actions[bot] commented 1 year ago
:penguin: Linux bisect by @juancarlospaco (collaborator)
devel :+1: OK

Output

``` ```

IR

Compiled filesize 93.02 Kb (95,256 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4658)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4045; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4442; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4045 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4045).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4045; framePtr__system_u4045 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4658(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4045 = (*framePtr__system_u4045).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (&nimInErrorMode__system_u4442); return result; } 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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:04:48
  • Finished 2023-10-05T11:04:50
  • Duration 1 minutes
stable :+1: OK

Output

``` ```

IR

Compiled filesize 90.75 Kb (92,928 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4607)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4006; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4006 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4006).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4006; framePtr__system_u4006 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4607(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4006 = (*framePtr__system_u4006).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4389); return result; } 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; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:04:50
  • Finished 2023-10-05T11:04:51
  • Duration
2.0.0 :+1: OK

Output

``` ```

IR

Compiled filesize 90.75 Kb (92,928 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0); static N_INLINE(void, nimFrame)(TFrame* s_p0); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4607)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); extern NIM_THREADVAR TFrame* framePtr__system_u4006; extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389; static N_INLINE(void, nimFrame)(TFrame* s_p0) { { if (!(framePtr__system_u4006 == ((TFrame*) NIM_NIL))) goto LA3_; (*s_p0).calldepth = ((NI16)0); } goto LA1_; LA3_: ; { (*s_p0).calldepth = (NI16)((*framePtr__system_u4006).calldepth + ((NI16)1)); } LA1_: ; (*s_p0).prev = framePtr__system_u4006; framePtr__system_u4006 = s_p0; { if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_; callDepthLimitReached__system_u4607(); } LA8_: ; } static N_INLINE(void, popFrame)(void) { framePtr__system_u4006 = (*framePtr__system_u4006).prev; } N_LIB_PRIVATE N_NIMCALL(void, bar__temp_u4)(NI f_p0) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_u4389); return result; } 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; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000(); (*inner)(); #else atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) { { NIM_BOOL* nimErr_; nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); nimErr_ = nimErrorFlag(); bar__temp_u4(((NI)42)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; BeforeRet_: ; nimTestErrorFlag(); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:04:51
  • Finished 2023-10-05T11:04:52
  • Duration
1.6.14 :+1: OK

Output

``` ```

IR

Compiled filesize 95.38 Kb (97,664 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:04:56
  • Finished 2023-10-05T11:04:57
  • Duration
1.4.8 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 95.38 Kb (97,664 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:05:00
  • Finished 2023-10-05T11:05:00
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.2.18 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 95.38 Kb (97,664 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:05:03
  • Finished 2023-10-05T11:05:03
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
1.0.10 :-1: FAIL

Output

``` Error: Command failed: nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim command line(1, 2) Error: invalid command line option: '--hintaserror' ```

IR

Compiled filesize 95.38 Kb (97,664 bytes) ```cpp #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; N_LIB_PRIVATE N_NIMCALL(void, bar__temp_4)(NI f); static N_INLINE(void, nimFrame)(TFrame* s); N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void); static N_INLINE(void, popFrame)(void); static N_INLINE(void, initStackBottomWith)(void* locals); N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void); N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void); N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void); 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, 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 N_NIMCALL(void, bar__temp_4)(NI f) { nimfr_("bar", "/home/runner/work/Nim/Nim/temp.nim"); popFrame(); } static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals); } N_LIB_PRIVATE void PreMainInner(void) { } N_LIB_PRIVATE int cmdCount; N_LIB_PRIVATE char** cmdLine; N_LIB_PRIVATE char** gEnv; N_LIB_PRIVATE void PreMain(void) { void (*volatile inner)(void); inner = PreMainInner; atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000(); initStackBottomWith((void *)&inner); atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000(); (*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) { { nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim"); bar__temp_4(((NI) 42)); popFrame(); } } ```

Stats

  • Started 2023-10-05T11:05:05
  • Finished 2023-10-05T11:05:05
  • Duration

AST

```nim nnkStmtList.newTree( nnkPragma.newTree( newIdentNode("push"), nnkExprColonExpr.newTree( nnkBracketExpr.newTree( newIdentNode("hint"), newIdentNode("XCannotRaiseY") ), newIdentNode("on") ) ), nnkProcDef.newTree( newIdentNode("bar"), newEmptyNode(), newEmptyNode(), nnkFormalParams.newTree( newEmptyNode(), nnkIdentDefs.newTree( newIdentNode("f"), nnkInfix.newTree( newIdentNode("|"), newIdentNode("int"), newIdentNode("float") ), newEmptyNode() ) ), nnkPragma.newTree( nnkExprColonExpr.newTree( newIdentNode("raises"), nnkBracket.newTree( newIdentNode("IOError") ) ) ), newEmptyNode(), nnkStmtList.newTree( nnkWhenStmt.newTree( nnkElifBranch.newTree( nnkInfix.newTree( newIdentNode("is"), newIdentNode("f"), newIdentNode("int") ), nnkStmtList.newTree( nnkDiscardStmt.newTree( newEmptyNode() ) ) ), nnkElse.newTree( nnkStmtList.newTree( nnkRaiseStmt.newTree( nnkCall.newTree( newIdentNode("newException"), newIdentNode("IOError"), newLit("Test") ) ) ) ) ) ) ), nnkCall.newTree( newIdentNode("bar"), newLit(42) ) ) ```
??? :arrow_right: :bug:

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 18.0
  • Created 2023-10-05T11:04:11Z
  • Comments 1
  • Commands nim c --hintaserror:XCannotRaiseY --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

:robot: Bug found in 54 minutes bisecting 326 commits at 6 commits per second

juancarlospaco commented 1 year ago

Works in devel ?. 🤔

etan-status commented 1 year ago

Also have the spurious XCannotRaiseY in devel:

Nim Compiler Version 2.1.1 [MacOSX: amd64]
Compiled at 2023-10-05
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: 1a6ca0c6047ac1f1489f2b45e4966ddca1f40e46
active boot switches: -d:release
image