Comments (3)
!nim c
type
Head[T] = object
mem: pointer
wasc: bool
proc `=destroy`[T](x: Head[T])=discard
proc `=copy`[T](x: var Head[T], y: Head[T])=
x.wasc = true
proc `=dup`[T](x: Head[T]): Head[T]=
result.wasc = true
proc update(h: var Head)=discard
proc digest(h: sink Head) =
assert h.wasc
proc main()=
var h = Head[int](wasc:false)
h.update()
h.update()
h.digest() # sink h
h.update() # use after sink
main()
from nim.
happens with more common types too unfortunately
proc digest(h: sink seq) = discard
proc main()=
var h = newSeq[int](5)
digest(h)
h[0] = 0
main()
from nim.
🐧 Linux bisect by @Graveflo (contributor)
devel 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim main
/home/runner/work/Nim/Nim/temp.nim digest
/home/runner/.choosenim/toolchains/nim-#devel/lib/std/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-#devel/lib/std/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-#devel/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize93.86 Kb (96,112 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u235)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4397;
extern NIM_THREADVAR TFrame* framePtr__system_u2654;
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_: ;
}
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(void, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u235(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:26
- Finished
2024-07-21T02:59:26
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim main
/home/runner/work/Nim/Nim/temp.nim digest
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/std/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/std/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(682, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize93.82 Kb (96,072 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u270)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot8atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4402;
extern NIM_THREADVAR TFrame* framePtr__system_u4059;
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_: ;
}
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(void, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u270(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot8atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot8atslibatssystemdotnim_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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:30
- Finished
2024-07-21T02:59:31
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim main
/home/runner/work/Nim/Nim/temp.nim digest
/home/runner/.choosenim/toolchains/nim-2.0.4/lib/std/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-2.0.4/lib/std/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-2.0.4/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
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_: ;
}
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(void, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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) {
{
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:34
- Finished
2024-07-21T02:59:34
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim main
/home/runner/work/Nim/Nim/temp.nim digest
/home/runner/.choosenim/toolchains/nim-2.0.0/lib/std/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-2.0.0/lib/std/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-2.0.0/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(664, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389;
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
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_: ;
}
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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:37
- Finished
2024-07-21T02:59:38
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim(5, 1) Error: signature for '=destroy' must be proc[T: object](x: var T)
fatal.nim(54) sysFatal
Error: unhandled exception: options.nim(662, 14) `false` errGenerated [AssertionDefect]
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389;
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
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_: ;
}
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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:41
- Finished
2024-07-21T02:59:41
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim(5, 1) Error: signature for '=destroy' must be proc[T: object](x: var T)
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389;
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
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_: ;
}
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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:43
- Finished
2024-07-21T02:59:43
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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/temp.nim(5, 1) Error: signature for '=destroy' must be proc[T: object](x: var T)
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389;
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
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_: ;
}
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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:46
- Finished
2024-07-21T02:59:46
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
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
/home/runner/work/Nim/Nim/temp.nim(5, 1) Error: signature for '=destroy' must be proc[T: object](x: var T)
IR
Compiled filesize91.78 Kb (93,984 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_Head__c9aKhEXn3jgwt5cU5mmWRcA tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA {
void* mem;
NIM_BOOL wasc;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_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(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0);
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);
static const struct {
NI cap; NIM_CHAR data[51+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 51 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(12, 3) `h.wasc` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {51, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4389;
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
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_: ;
}
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, update__temp_u27)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA* h_p0) {
nimfr_("update", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, digest__temp_u33)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h_p0) {
NIM_BOOL* nimErr_;
nimfr_("digest", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
{
if (!!(h_p0.wasc)) goto LA3_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u55)(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u24)(void) {
tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA h;
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
nimZeroMem((void*)(&h), sizeof(tyObject_Head__c9aKhEXn3jgwt5cU5mmWRcA));
h.wasc = NIM_FALSE;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
digest__temp_u33(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
update__temp_u27((&h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___temp_u55(h);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
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();
main__temp_u24();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-07-21T02:59:48
- Finished
2024-07-21T02:59:48
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Head"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("mem"),
newIdentNode("pointer"),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("wasc"),
newIdentNode("bool"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("copy")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("y"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("dup")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkAsgn.newTree(
nnkDotExpr.newTree(
newIdentNode("result"),
newIdentNode("wasc")
),
newIdentNode("true")
)
)
),
nnkProcDef.newTree(
newIdentNode("update"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkVarTy.newTree(
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkDiscardStmt.newTree(
newEmptyNode()
)
)
),
nnkProcDef.newTree(
newIdentNode("digest"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("h"),
nnkCommand.newTree(
newIdentNode("sink"),
newIdentNode("Head")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("assert"),
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("wasc")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("h"),
newEmptyNode(),
nnkObjConstr.newTree(
nnkBracketExpr.newTree(
newIdentNode("Head"),
newIdentNode("int")
),
nnkExprColonExpr.newTree(
newIdentNode("wasc"),
newIdentNode("false")
)
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("digest")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("h"),
newIdentNode("update")
)
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.4
- Created
2024-07-21T02:58:55Z
- Comments
2
- 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 26 minutes
bisecting 8
commits at 0
commits per second
from nim.
Related Issues (20)
- JS Browser sourcemap support | net::ERR_FILE_NOT_FOUND
- Call operator fails to bind across imports HOT 2
- Compiler infers `sink` in return type from `auto` HOT 5
- Double destroy using proc type alias with a sink HOT 4
- Inheritance of type in generics passes type constraint but fails in execution HOT 2
- Segmentation fault upon compilation with recursive typeclass definitions HOT 2
- Method dispatch doesn't respect privacy HOT 1
- -Warray-bounds when accessing seq with offset positive offset on cpp backend HOT 9
- jsondoc broken in devel HOT 1
- std/random produces different results on c/js[node] with int32
- Nested closure is tagged `{.nimcall.}` when `{.closure.}` is expected HOT 1
- Case object with fields that inherit from RootObj causes SIGSEGV HOT 9
- `removeEventListener` does not work because raw function is not passed HOT 1
- `c_isnan` is not available for objectiveC backend
- type-aliased `seq[T]` get different backend C/C++ pointer type names causing invalid codegen on gcc-14 | g++ | clang++ HOT 3
- VM generates wrong cast for negative enum values HOT 2
- nimsuggest crashes on arraymancer.nim
- `vmopsDanger` for `os.getCurrentDir` errors because of importc check.
- Dynlib does not make symbols accessible in executable builds HOT 1
- passing string to `parseutils.parseFloat(openArray[char],...)` in compile-time leads to inner error `FieldDefect` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nim.