Giter VIP home page Giter VIP logo

Comments (2)

juancarlospaco avatar juancarlospaco commented on July 22, 2024 1

!nim c

type
  X[T, E] = object
    m: T
  B = X[culonglong, cstring]
  S = ref object of RootObj

proc j[T, E](m: X[T, E]): T = discard
proc n(T: typedesc[SomeUnsignedInt]): X[T, cstring] = discard
method call(client: S): uint64 {.base.} =
  discard j(n(uint64))

from nim.

github-actions avatar github-actions commented on July 22, 2024
🐧 Linux bisect by @juancarlospaco (collaborator)
devel 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__temp_u20’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:123:27: error: incompatible type for argument 1 of ‘j__temp_u29’
  123 |         T2_ = j__temp_u29(T1_);
      |                           ^~~
      |                           |
      |                           tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw
/home/runner/work/Nim/Nim/@mtemp.nim.c:81:81: note: expected ‘tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw’ but argument is of type ‘tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw’
   81 | N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3 -pthread   -I'/home/runner/.choosenim/toolchains/nim-#devel/lib' -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1


assertions.nim(34)       raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ;
typedef struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw;
typedef struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw;
struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw {
 unsigned long long m;
};
struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw {
 NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0);
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4613)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
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_u2654;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4397;
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u2654 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u2654).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u2654;
 framePtr__system_u2654 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4613();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2654 = (*framePtr__system_u2654).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4397);
 return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 }BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void) {
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw T1_;
 NU64 T2_;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 T1_ = n__temp_u23();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 T2_ = (NU64)0;
 T2_ = j__temp_u29(T1_);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 (void)(T2_);
 }BeforeRet_: ;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u53)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 result = call__temp_u20(client_p0);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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) {
{
 nimTestErrorFlag();
}
}

Stats

  • Started 2024-06-27T12:33:45
  • Finished 2024-06-27T12:33:46
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
stable 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__temp_u20’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:123:27: error: incompatible type for argument 1 of ‘j__temp_u29’
  123 |         T2_ = j__temp_u29(T1_);
      |                           ^~~
      |                           |
      |                           tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw
/home/runner/work/Nim/Nim/@mtemp.nim.c:81:81: note: expected ‘tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw’ but argument is of type ‘tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw’
   81 | N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3 -pthread   -I/home/runner/.choosenim/toolchains/nim-2.0.6/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1


assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(682, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ;
typedef struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw;
typedef struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw;
struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw {
 unsigned long long m;
};
struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw {
 NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0);
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4620)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot6atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern NIM_THREADVAR TFrame* framePtr__system_u4059;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4402;
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u4059 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u4059).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u4059;
 framePtr__system_u4059 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4620();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u4059 = (*framePtr__system_u4059).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4402);
 return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 }BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void) {
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw T1_;
 NU64 T2_;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 T1_ = n__temp_u23();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 T2_ = (NU64)0;
 T2_ = j__temp_u29(T1_);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 (void)(T2_);
 }BeforeRet_: ;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u53)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = call__temp_u20(client_p0);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot6atslibatssystemdotnim_Init000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot6atslibatssystemdotnim_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) {
{
 nimTestErrorFlag();
}
}

Stats

  • Started 2024-06-27T12:33:46
  • Finished 2024-06-27T12:33:47
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
2.0.4 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__temp_u20’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:123:27: error: incompatible type for argument 1 of ‘j__temp_u29’
  123 |         T2_ = j__temp_u29(T1_);
      |                           ^~~
      |                           |
      |                           tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw
/home/runner/work/Nim/Nim/@mtemp.nim.c:81:81: note: expected ‘tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw’ but argument is of type ‘tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw’
   81 | N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3 -pthread   -I/home/runner/.choosenim/toolchains/nim-2.0.4/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1


assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ;
typedef struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw;
typedef struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw;
struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw {
 unsigned long long m;
};
struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw {
 NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0);
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u4020;
 framePtr__system_u4020 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4621();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4403);
 return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 }BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void) {
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw T1_;
 NU64 T2_;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 T1_ = n__temp_u23();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 T2_ = (NU64)0;
 T2_ = j__temp_u29(T1_);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 (void)(T2_);
 }BeforeRet_: ;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u53)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = call__temp_u20(client_p0);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 0
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 (*inner)();
#else
 PreMain();
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimTestErrorFlag();
}
}

Stats

  • Started 2024-06-27T12:33:50
  • Finished 2024-06-27T12:33:50
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
2.0.0 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__temp_u20’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:124:27: error: incompatible type for argument 1 of ‘j__temp_u29’
  124 |         T2_ = j__temp_u29(T1_);
      |                           ^~~
      |                           |
      |                           tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw
/home/runner/work/Nim/Nim/@mtemp.nim.c:81:81: note: expected ‘tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw’ but argument is of type ‘tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw’
   81 | N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3 -pthread   -I/home/runner/.choosenim/toolchains/nim-2.0.0/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1


assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(664, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ;
typedef struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw;
typedef struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw;
struct tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw {
 unsigned long long m;
};
struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw {
 NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0);
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_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);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
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(NU64, j__temp_u29)(tyObject_X__9bxT9cLWUZzoAs7ZlDBbKYBw m_p0) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (NIM_BOOL*)0;
 result = (&nimInErrorMode__system_u4389);
 return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 }BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void) {
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw T1_;
 NU64 T2_;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 T1_ = n__temp_u23();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 T2_ = (NU64)0;
 T2_ = j__temp_u29(T1_);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 (void)(T2_);
 }BeforeRet_: ;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u53)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client_p0) {
 NU64 result;
NIM_BOOL* nimErr_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 result = (NU64)0;
 result = call__temp_u20(client_p0);
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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) {
{
 nimTestErrorFlag();
}
}

Stats

  • Started 2024-06-27T12:33:53
  • Finished 2024-06-27T12:33:54
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
1.6.20 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__temp_u20’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:107:27: error: incompatible type for argument 1 of ‘j__temp_u29’
  107 |         T2_ = j__temp_u29(T1_);
      |                           ^~~
      |                           |
      |                           tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw
/home/runner/work/Nim/Nim/@mtemp.nim.c:77:81: note: expected ‘tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw’ but argument is of type ‘tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw’
   77 | N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw m) {
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3   -I/home/runner/.choosenim/toolchains/nim-1.6.20/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1


fatal.nim(54)            sysFatal
Error: unhandled exception: options.nim(662, 14) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ;
typedef struct tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw;
typedef struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw;
struct tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw {
unsigned long long m;
};
struct tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw {
NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client);
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw m);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u2997)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__system_u2564;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__system_u2564 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__system_u2564).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__system_u2564;
 framePtr__system_u2564 = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__system_u2997();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2564 = (*framePtr__system_u2564).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__temp_u29)(tyObject_X__9a17RSvHziOoIyKRBB7Mq9cw m) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__systemZmemory_u7(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw, n__temp_u23)(void) {
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u20)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client) {
 NU64 result;
 tyObject_X__kx3RxK9ah9a9axs4ulh9cdDSMw T1_;
 NU64 T2_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 T1_ = n__temp_u23();
 T2_ = (NU64)0;
 T2_ = j__temp_u29(T1_);
 (void)(T2_);
 popFrame();
 return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__temp_u43)(tyObject_ScolonObjectType___B3SHSrdFXvjxk9bKAp8ArxQ* client) {
 NU64 result;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{	result = (NU64)0;
 result = call__temp_u20(client);
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_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) {
{
}
}

Stats

  • Started 2024-06-27T12:33:56
  • Finished 2024-06-27T12:33:57
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
1.4.8 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__v36VS9br88QDiLYu9cM1mj5w’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:128:43: error: incompatible type for argument 1 of ‘j__Imd1mTdZ9aihAMHG0r9cEjZQ’
  128 |         T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
      |                                           ^~~
      |                                           |
      |                                           tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw
/home/runner/work/Nim/Nim/@mtemp.nim.c:98:95: note: expected ‘tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ’ but argument is of type ‘tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw’
   98 | N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
Error: execution of an external compiler program 'gcc -c  -w -fmax-errors=3   -I/home/runner/.choosenim/toolchains/nim-1.4.8/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ;
typedef struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ;
typedef struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw;
struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ {
unsigned long long m;
};
struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw {
NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client);
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void) {
 tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {
 NU64 result;
 tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw T1_;
 NU64 T2_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 T1_ = n__29b7BEWoBPUP01Sy8VzCX9cA();
 T2_ = (NU64)0;
 T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
 (void)(T2_);
 popFrame();
 return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__BaCc1O83Ne3QBLG4X3sUmQ)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {
 NU64 result;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{	result = (NU64)0;
 result = call__v36VS9br88QDiLYu9cM1mj5w(client);
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
}
}

Stats

  • Started 2024-06-27T12:34:00
  • Finished 2024-06-27T12:34:00
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
1.2.18 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__v36VS9br88QDiLYu9cM1mj5w’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:114:43: error: incompatible type for argument 1 of ‘j__Imd1mTdZ9aihAMHG0r9cEjZQ’
  114 |         T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
      |                                           ^~~
      |                                           |
      |                                           tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw
/home/runner/work/Nim/Nim/@mtemp.nim.c:84:95: note: expected ‘tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ’ but argument is of type ‘tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw’
   84 | N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
Error: execution of an external compiler program 'gcc -c  -w   -I/home/runner/.choosenim/toolchains/nim-1.2.18/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ;
typedef struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ;
typedef struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw;
struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ {
unsigned long long m;
};
struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw {
NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client);
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {
 NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void) {
 tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {
 NU64 result;
 tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw T1_;
 NU64 T2_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 T1_ = n__29b7BEWoBPUP01Sy8VzCX9cA();
 T2_ = (NU64)0;
 T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
 (void)(T2_);
 popFrame();
 return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__BaCc1O83Ne3QBLG4X3sUmQ)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {
 NU64 result;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{	result = (NU64)0;
 result = call__v36VS9br88QDiLYu9cM1mj5w(client);
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 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) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
}
}

Stats

  • Started 2024-06-27T12:34:03
  • Finished 2024-06-27T12:34:03
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
1.0.10 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: execution of an external compiler program 'gcc -c  -w  -I/home/runner/.choosenim/toolchains/nim-1.0.10/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1

/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘call__v36VS9br88QDiLYu9cM1mj5w’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:110:43: error: incompatible type for argument 1 of ‘j__Imd1mTdZ9aihAMHG0r9cEjZQ’
  110 |         T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
      |                                           ^~~
      |                                           |
      |                                           tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw
/home/runner/work/Nim/Nim/@mtemp.nim.c:85:95: note: expected ‘tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ’ but argument is of type ‘tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw’
   85 | N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {      NU64 result;
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

IR

Compiled filesize 0 (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ;
typedef struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ;
typedef struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw;
struct tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ {
unsigned long long m;
};
struct tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw {
NU64 m;
};
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client);
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {	NI T1_;
 T1_ = (NI)0;
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
  T1_ = ((NI) 0);
 }
 goto LA2_;
 LA4_: ;
 {
  T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
 }
 LA2_: ;
 (*s).calldepth = ((NI16) (T1_));
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA9_: ;
}
static N_INLINE(void, popFrame)(void) {	framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(NU64, j__Imd1mTdZ9aihAMHG0r9cEjZQ)(tyObject_X__OprfyvD7Gq45Ut7GxSEZRQ m) {	NU64 result;
 nimfr_("j", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {	void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw, n__29b7BEWoBPUP01Sy8VzCX9cA)(void) {	tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw result;
 nimfr_("n", "/home/runner/work/Nim/Nim/temp.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw));
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__v36VS9br88QDiLYu9cM1mj5w)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {	NU64 result;
 tyObject_X__Okq1I8cM9cYZst9a1fRcQhRw T1_;
 NU64 T2_;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
 result = (NU64)0;
 T1_ = n__29b7BEWoBPUP01Sy8VzCX9cA();
 T2_ = (NU64)0;
 T2_ = j__Imd1mTdZ9aihAMHG0r9cEjZQ(T1_);
 (void)(T2_);
 popFrame();
 return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {	nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE N_NIMCALL(NU64, call__BaCc1O83Ne3QBLG4X3sUmQ)(tyObject_ScolonObjectType___mfMAkYueFxPIYxcSL9bSGzQ* client) {	NU64 result;
 nimfr_("call", "/home/runner/work/Nim/Nim/temp.nim");
{	result = (NU64)0;
 result = call__v36VS9br88QDiLYu9cM1mj5w(client);
 goto BeforeRet_;
 }BeforeRet_: ;
 popFrame();
 return result;
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
}
}

Stats

  • Started 2024-06-27T12:34:05
  • Finished 2024-06-27T12:34:05
  • Duration

AST

nnkStmtList.newTree(
  nnkTypeSection.newTree(
    nnkTypeDef.newTree(
      newIdentNode("X"),
      nnkGenericParams.newTree(
        nnkIdentDefs.newTree(
          newIdentNode("T"),
          newIdentNode("E"),
          newEmptyNode(),
          newEmptyNode()
        )
      ),
      nnkObjectTy.newTree(
        newEmptyNode(),
        newEmptyNode(),
        nnkRecList.newTree(
          nnkIdentDefs.newTree(
            newIdentNode("m"),
            newIdentNode("T"),
            newEmptyNode()
          )
        )
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("B"),
      newEmptyNode(),
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("culonglong"),
        newIdentNode("cstring")
      )
    ),
    nnkTypeDef.newTree(
      newIdentNode("S"),
      newEmptyNode(),
      nnkRefTy.newTree(
        nnkObjectTy.newTree(
          newEmptyNode(),
          nnkOfInherit.newTree(
            newIdentNode("RootObj")
          ),
          newEmptyNode()
        )
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("j"),
    newEmptyNode(),
    nnkGenericParams.newTree(
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        newIdentNode("E"),
        newEmptyNode(),
        newEmptyNode()
      )
    ),
    nnkFormalParams.newTree(
      newIdentNode("T"),
      nnkIdentDefs.newTree(
        newIdentNode("m"),
        nnkBracketExpr.newTree(
          newIdentNode("X"),
          newIdentNode("T"),
          newIdentNode("E")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("n"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("X"),
        newIdentNode("T"),
        newIdentNode("cstring")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("T"),
        nnkBracketExpr.newTree(
          newIdentNode("typedesc"),
          newIdentNode("SomeUnsignedInt")
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkMethodDef.newTree(
    newIdentNode("call"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newIdentNode("uint64"),
      nnkIdentDefs.newTree(
        newIdentNode("client"),
        newIdentNode("S"),
        newEmptyNode()
      )
    ),
    nnkPragma.newTree(
      newIdentNode("base")
    ),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        nnkCall.newTree(
          newIdentNode("j"),
          nnkCall.newTree(
            newIdentNode("n"),
            newIdentNode("uint64")
          )
        )
      )
    )
  )
)
Stats
  • GCC 11.4.0
  • Clang 14.0.0
  • NodeJS 20.3
  • Created 2024-06-27T12:27:16Z
  • Comments 1
  • Commands nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

🤖 Bug found in 24 minutes bisecting 8 commits at 0 commits per second

from nim.

Related Issues (20)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.