std/nre replace with maxSplit is broken
Description
The nre.replace doesn't takes into account maxsplit = 1 and splits into 3 parts, play
import std/nre
echo "1.2.3".split(re"\.", maxsplit = 1) # => @["1", "2", "3"] error
echo "1.2.3".split(re"\.", maxsplit = 2) # => @["1", "2.3"]
Nim Version
Nim Compiler Version 1.6.12 [MacOSX: amd64] Compiled at 2023-03-10 Copyright (c) 2006-2023 by Andreas Rumpf
active boot switches: -d:release -d:nimUseLinenoise
Current Output
@["1", "2", "3"]
@["1", "2.3"]
Expected Output
@["1.2.3"]
@["1", "2.3"]
Possible Solution
No response
Additional Information
No response
Just use strscans, it's soo much better than regexes.
Thanks, will check it out.
I'm closing this ticket, I think std/[re, nre] regex library needs serious API redesign anyway, and maybe even moved to third-party library.
It's a valid bug regardless. And there is nim-regex as a third-party solution.
!nim c
import std/nre
doAssert "1.2.3".split(re"\.", maxsplit=1) == @["1.2.3"]
@juancarlospaco (contributor)devel :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/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(2, 1) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:16 - Finished
2023-07-06T22:15:17 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#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_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_Pcre__vDdW0dXeygSPQfmanCz3QA tyObject_Pcre__vDdW0dXeygSPQfmanCz3QA;
typedef struct tyObject_ExtraData__56auKn4I6KPftSM4fRpQ6g tyObject_ExtraData__56auKn4I6KPftSM4fRpQ6g;
typedef struct tyObject_Table__bbKE9bhac6tU6u29aV1MRpkw tyObject_Table__bbKE9bhac6tU6u29aV1MRpkw;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
NI len; tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content* p;
};
struct tyObject_Table__bbKE9bhac6tU6u29aV1MRpkw {
tySequence__pUxI6Ljo6IKKHXKOZkQ7Og data;
NI counter;
};
struct tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw {
NimStringV2 pattern;
tyObject_Pcre__vDdW0dXeygSPQfmanCz3QA* pcreObj;
tyObject_ExtraData__56auKn4I6KPftSM4fRpQ6g* pcreExtra;
tyObject_Table__bbKE9bhac6tU6u29aV1MRpkw captureNameToId;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringV2 Field1;
NI Field2;
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content { NI cap; tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_u6)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ x_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ y_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, split__impureZnre_u7712)(NimStringV2 str_p0, tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw* pattern_p1, NI maxSplit_p2, NI start_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw*, re__impureZnre_u7140)(NimStringV2 pattern_p0);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u3715)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___impureZnre_u1773)(tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw* dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4483)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatswrappersatspcredotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[5+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 5 | NIM_STRLIT_FLAG, "1.2.3" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {5, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[2+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 2 | NIM_STRLIT_FLAG, "\\." };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {2, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_6 = {5, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[93+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_7 = { 93 | NIM_STRLIT_FLAG, "/home/runner/work/Nim/Nim/temp.nim(2, 1) `\"1.2.3\".split(re\"\\.\", maxsplit = 1) == @[\"1.2.3\"]` " };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_8 = {93, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_7};
extern NIM_BOOL nimInErrorMode__system_u4265;
extern TFrame* framePtr__system_u3877;
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_u4265);
return result;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u3877 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u3877).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u3877;
framePtr__system_u3877 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4483();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u3877 = (*framePtr__system_u3877).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 0
void (*volatile inner)(void);
inner = PreMainInner;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatswrappersatspcredotnim_DatInit000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatswrappersatspcredotnim_DatInit000();
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) {
{
tyObject_RegexcolonObjectType___sCQz139cZFlMPsrdarXB9aUw* colontmpD_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ colontmpD__2;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ colontmpD__3;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
colontmpD_ = NIM_NIL;
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
{
NIM_BOOL T4_;
colontmpD_ = re__impureZnre_u7140(TM__SRd76hP9cMfCzdUO857UhQQ_5);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmpD__2 = split__impureZnre_u7712(TM__SRd76hP9cMfCzdUO857UhQQ_3, colontmpD_, ((NI)1), ((NI)0));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmpD__3.len = 1; colontmpD__3.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(1, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
colontmpD__3.p->data[0] = TM__SRd76hP9cMfCzdUO857UhQQ_6;
T4_ = (NIM_BOOL)0;
T4_ = eqeq___temp_u6(colontmpD__2, colontmpD__3);
if (!!(T4_)) goto LA5_;
failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_8);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA5_: ;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___system_u3715(colontmpD__3);
eqdestroy___system_u3715(colontmpD__2);
eqdestroy___impureZnre_u1773(colontmpD_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
stable :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(2, 10) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:17 - Finished
2023-07-06T22:15:18 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
# 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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_RegexcolonObjectType___jYxy8fBRdUbXmjhKMZtWmQ tyObject_RegexcolonObjectType___jYxy8fBRdUbXmjhKMZtWmQ;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q;
typedef struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg;
typedef struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ;
typedef struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg;
typedef struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g;
typedef struct tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA;
typedef struct tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A;
typedef struct tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA;
typedef struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw;
typedef struct tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg;
typedef struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg;
typedef struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw;
typedef struct tyTuple__6nVTvmjorcAWafHl9cWGFuA tyTuple__6nVTvmjorcAWafHl9cWGFuA;
typedef struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg;
typedef struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA;
typedef struct tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ kind;
tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w;
struct TNimNode {
tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg {
void* bottom;
};
struct tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg {
NI len;
NI cap;
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q** d;
};
typedef tyObject_SmallChunk__sj9b0POpZpf2pwHAngQ4iuA* tyArray__VYTQW7wK07xvH5Z4opKI1w[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* tyArray__YkUf1j9c9b6JzhUdDj7S3KQA[32];
typedef tyArray__YkUf1j9c9b6JzhUdDj7S3KQA tyArray__MQbMf9bcijUF9a14VvUbfzqg[24];
typedef tyObject_Trunk__N5u9b3R0O3g59awa8B9bs6qyg* tyArray__sCQfOQF0EdBvLpqvNeg1Mg[256];
struct tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw {
tyArray__sCQfOQF0EdBvLpqvNeg1Mg data;
};
typedef tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw[2];
struct tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg {
tyArray__Wt2k1c1BbnQ6Nj3SrdvfCw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__6nVTvmjorcAWafHl9cWGFuA {
tyObject_BigChunk__n43IpccPD6dfYiSGXsXF0A* Field0;
NI Field1;
};
typedef tyTuple__6nVTvmjorcAWafHl9cWGFuA tyArray__yUjlcLC9c9aIvr4MhTCDBnnA[30];
struct tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw {
NI len;
tyArray__yUjlcLC9c9aIvr4MhTCDBnnA chunks;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw* next;
};
struct tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g {
NI minLargeObj;
NI maxLargeObj;
tyArray__VYTQW7wK07xvH5Z4opKI1w freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__MQbMf9bcijUF9a14VvUbfzqg matrix;
tyObject_LLChunk__EAcyYaYsVdVpPDOJNXsVvA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__BjiVv2xFwTJmbeWeHvjYQw chunkStarts;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* root;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* deleted;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* last;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__OVssjMzF9b6dF0OdhUI9bjqg bottomData;
tyObject_HeapLinks__vrDr51n9cXj8aHnS73vhJqw heapLinks;
};
struct tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA {
NI counter;
NI max;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ* head;
tyObject_PageDesc__i0uwYov8PyHfnx0dx0lOMQ** data;
};
struct tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ {
tyObject_GcStack__kyxCHsHBs9aixKn7J6EMoKg stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg zct;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg decStack;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg tempStack;
NI recGcLock;
tyObject_MemRegion__kTihTuGP022tKEZ5qSTY4g region;
tyObject_GcStat__yGmLruPXMhFV80y1jxAtjg stat;
tyObject_CellSet__9co1sTf9aTPixSgG0AQ20mAA marked;
tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg additionalRoots;
NI gcThreadId;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
TGenericSeq Sup;
NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___temp_6)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, split__impureZnre_5938)(NimStringDesc* str, tyObject_RegexcolonObjectType___jYxy8fBRdUbXmjhKMZtWmQ* pattern, NI maxSplit, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___jYxy8fBRdUbXmjhKMZtWmQ*, re__impureZnre_5580)(NimStringDesc* pattern);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef__system_5346)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5344)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5295)(tyObject_CellSeq__8bh1syZiHlRn5s9cNSwuRKg* s, tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c);
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5301)(void* usr);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatswrappersatspcredotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatspureatsoptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatsimpureatsnredotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_2, "1.2.3", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "\\.", 2);
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_4, "/home/runner/work/Nim/Nim/temp.nim(2, 10) `\"1.2.3\".split(re\"\\.\", maxsplit = 1) == @[\"1.2.3\"]` ", 94);
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern tyObject_GcHeap__TNN37TDOIST9cBHBYNA9bZrQ gch__system_5248;
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_2564;
framePtr__system_2564 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__system_2997();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_2564 = (*framePtr__system_2564).prev;
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
NI result;
nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
NIM_BOOL result;
nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/comparisons.nim");
result = (NIM_BOOL)0;
result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT__system_5344)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
addZCT__system_5295((&gch__system_5248.zct), c);
popFrame();
}
static N_INLINE(void, decRef__system_5346)(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* c) {
nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
if (!T3_) goto LA4_;
rtlAddZCT__system_5344(c);
}
LA4_: ;
popFrame();
}
static N_INLINE(tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*, usrToCell__system_5301)(void* usr) {
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* result;
NI T1_;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
result = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T1_ = (NI)0;
T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
result = ((tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*) (T1_));
popFrame();
return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q* T1_;
nimfr_("nimGCunrefNoCycle", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/gc.nim");
T1_ = (tyObject_Cell__vT0lLseQRZ19aq7BbaJzO4Q*)0;
T1_ = usrToCell__system_5301(p);
decRef__system_5346(T1_);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000();
initStackBottomWith((void *)&inner);
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatswrappersatspcredotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatspureatsoptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatsimpureatsnredotnim_DatInit000();
(*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
{
tyObject_RegexcolonObjectType___jYxy8fBRdUbXmjhKMZtWmQ* T3_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T4_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T5_;
NimStringDesc* T6_;
NIM_BOOL T7_;
T3_ = NIM_NIL;
T3_ = re__impureZnre_5580(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3));
T4_ = NIM_NIL;
T4_ = split__impureZnre_5938(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2), T3_, ((NI) 1), ((NI) 0));
T5_ = NIM_NIL;
T5_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
T6_ = NIM_NIL;
T6_ = T5_->data[0]; T5_->data[0] = copyStringRC1(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2));
if (T6_) nimGCunrefNoCycle(T6_);
T7_ = (NIM_BOOL)0;
T7_ = eqeq___temp_6(T4_, T5_);
if (!!(T7_)) goto LA8_;
failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_4));
}
LA8_: ;
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
1.6.0 :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(2, 10) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:21 - Finished
2023-07-06T22:15:22 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
# 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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
TGenericSeq Sup;
NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__temp_6)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
static N_INLINE(void*, seqToPtr_temp_21)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached_system_2997)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, split_impureZnre_5920)(NimStringDesc* str, tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* pattern, NI maxSplit, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*, re_impureZnre_5562)(NimStringDesc* pattern);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef_system_5344)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, minuspercent__system_716)(NI x, NI y);
static N_INLINE(NIM_BOOL, ltpercent__system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT_system_5342)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_system_5293)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_system_5299)(void* usr);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_systemZassertions_56)(NimStringDesc* msg);
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, stdlib_pcreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_optionsDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_4, "1.2.3", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_5, "\\.", 2);
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "/home/runner/work/Nim/Nim/temp.nim(2, 10) `\"1.2.3\".split(re\"\\.\", maxsplit = 1) == @[\"1.2.3\"]` ", 94);
extern TFrame* framePtr_system_2564;
extern TFrame* framePtr_system_2564;
extern TFrame* framePtr_system_2564;
extern TFrame* framePtr_system_2564;
extern TFrame* framePtr_system_2564;
extern TFrame* framePtr_system_2564;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch_system_5246;
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr_system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr_system_2564).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr_system_2564;
framePtr_system_2564 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached_system_2997();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr_system_2564 = (*framePtr_system_2564).prev;
}
static N_INLINE(void*, seqToPtr_temp_21)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x) {
void* result;
nimfr_("seqToPtr", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/comparisons.nim");
result = (void*)0;
result = ((void*) (x));
popFrame();
return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
int result;
result = (int)0;
result = memcmp(a, b, ((size_t) (size)));
return result;
}
static N_INLINE(NIM_BOOL, equalMem_system_1735)(void* a, void* b, NI size) {
NIM_BOOL result;
int T1_;
result = (NIM_BOOL)0;
T1_ = (int)0;
T1_ = nimCmpMem(a, b, size);
result = (T1_ == ((NI32) 0));
return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
NIM_BOOL result;
NI alen;
NI blen;
nimfr_("eqStrings", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/strmantle.nim");
{ result = (NIM_BOOL)0;
alen = (a ? a->Sup.len : 0);
blen = (b ? b->Sup.len : 0);
{
if (!(alen == blen)) goto LA3_;
{
if (!(alen == ((NI) 0))) goto LA7_;
result = NIM_TRUE;
goto BeforeRet_;
}
LA7_: ;
result = equalMem_system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
popFrame();
return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__temp_6)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y) {
NIM_BOOL result;
nimfr_("==", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/comparisons.nim");
{ result = (NIM_BOOL)0;
{
void* T3_;
void* T4_;
T3_ = (void*)0;
T3_ = seqToPtr_temp_21(x);
T4_ = (void*)0;
T4_ = seqToPtr_temp_21(y);
if (!(T3_ == T4_)) goto LA5_;
result = NIM_TRUE;
goto BeforeRet_;
}
LA5_: ;
{
NI T9_;
NI T10_;
T9_ = (x ? x->Sup.len : 0);
T10_ = (y ? y->Sup.len : 0);
if (!!((T9_ == T10_))) goto LA11_;
result = NIM_FALSE;
goto BeforeRet_;
}
LA11_: ;
{
NI i;
NI colontmp_;
NI T14_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
NI res;
i = (NI)0;
colontmp_ = (NI)0;
T14_ = (x ? x->Sup.len : 0);
if (nimSubInt(T14_, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
colontmp_ = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
res = ((NI) 0);
{
while (1) {
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
if (!(res <= colontmp_)) goto LA16;
i = res;
{
if ((NU)(i) >= (NU)(x ? x->Sup.len : 0)){ raiseIndexError2(i,(x ? x->Sup.len : 0)-1); }
if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)){ raiseIndexError2(i,(y ? y->Sup.len : 0)-1); }
if (!!(eqStrings(x->data[i], y->data[i]))) goto LA19_;
result = NIM_FALSE;
goto BeforeRet_;
}
LA19_: ;
if (nimAddInt(res, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
res = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
} LA16: ;
}
}
result = NIM_TRUE;
goto BeforeRet_;
}BeforeRet_: ;
popFrame();
return result;
}
static N_INLINE(NI, minuspercent__system_716)(NI x, NI y) {
NI result;
nimfr_("-%", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/arithmetics.nim");
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
popFrame();
return result;
}
static N_INLINE(NIM_BOOL, ltpercent__system_1005)(NI x, NI y) {
NIM_BOOL result;
nimfr_("<%", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/comparisons.nim");
result = (NIM_BOOL)0;
result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
popFrame();
return result;
}
static N_INLINE(void, rtlAddZCT_system_5342)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
nimfr_("rtlAddZCT", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/gc.nim");
addZCT_system_5293((&gch_system_5246.zct), c);
popFrame();
}
static N_INLINE(void, decRef_system_5344)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
nimfr_("decRef", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/gc.nim");
(*c).refcount = minuspercent__system_716((*c).refcount, ((NI) 8));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = ltpercent__system_1005((*c).refcount, ((NI) 8));
if (!T3_) goto LA4_;
rtlAddZCT_system_5342(c);
}
LA4_: ;
popFrame();
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_system_5299)(void* usr) {
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
NI T1_;
nimfr_("usrToCell", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/gc.nim");
result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
T1_ = (NI)0;
T1_ = minuspercent__system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
popFrame();
return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
nimfr_("nimGCunrefNoCycle", "/home/runner/.choosenim/toolchains/nim-1.6.0/lib/system/gc.nim");
T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
T1_ = usrToCell_system_5299(p);
decRef_system_5344(T1_);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
stdlib_pcreDatInit000();
stdlib_optionsDatInit000();
stdlib_nreDatInit000();
(*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
{
tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* T3_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T4_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T5_;
NimStringDesc* T6_;
NIM_BOOL T7_;
T3_ = (tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*)0;
T3_ = re_impureZnre_5562(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_5));
T4_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
T4_ = split_impureZnre_5920(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_4), T3_, ((NI) 1), ((NI) 0));
T5_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
T5_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
T6_ = (NimStringDesc*)0;
T6_ = T5_->data[0]; T5_->data[0] = copyStringRC1(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_4));
if (T6_) nimGCunrefNoCycle(T6_);
T7_ = (NIM_BOOL)0;
T7_ = eqeq__temp_6(T4_, T5_);
if (!!(T7_)) goto LA8_;
failedAssertImpl_systemZassertions_56(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6));
}
LA8_: ;
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
1.4.0 :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-1.4.0/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(2, 10) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:26 - Finished
2023-07-06T22:15:27 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
# 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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
TGenericSeq Sup;
NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___jpeT21MusP66x4kcP9cZuag)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, split__YQRC2CuIgcyDL5xmareNSA)(NimStringDesc* str, tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* pattern, NI maxSplit, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*, re__7ePTapx9arvifOx9a2qXkLlA)(NimStringDesc* pattern);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_pcreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_tablesDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_optionsDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_2, "1.2.3", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "\\.", 2);
static NIM_CONST struct {
TGenericSeq Sup;
NimStringDesc* data[1];
} TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{1, 1 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2)}};
static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "/home/runner/work/Nim/Nim/temp.nim(2, 10) `\"1.2.3\".split(re\"\\.\""
", maxsplit = 1) == @[\"1.2.3\"]` ", 94);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
stdlib_nreInit000();
}
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();
stdlib_pcreDatInit000();
stdlib_tablesDatInit000();
stdlib_optionsDatInit000();
stdlib_nreDatInit000();
(*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
{
tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* T3_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T4_;
NIM_BOOL T5_;
T3_ = (tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*)0;
T3_ = re__7ePTapx9arvifOx9a2qXkLlA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3));
T4_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
T4_ = split__YQRC2CuIgcyDL5xmareNSA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2), T3_, ((NI) 1), ((NI) 0));
T5_ = (NIM_BOOL)0;
T5_ = eqeq___jpeT21MusP66x4kcP9cZuag(T4_, TM__SRd76hP9cMfCzdUO857UhQQ_4);
if (!!(T5_)) goto LA6_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6));
}
LA6_: ;
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
1.2.0 :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/.choosenim/toolchains/nim-1.2.0/lib/system/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-1.2.0/lib/system/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-1.2.0/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(2, 10) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:42 - Finished
2023-07-06T22:15:43 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
# 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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
TGenericSeq Sup;
NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___jpeT21MusP66x4kcP9cZuag)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, split__YQRC2CuIgcyDL5xmareNSA)(NimStringDesc* str, tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* pattern, NI maxSplit, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*, re__7ePTapx9arvifOx9a2qXkLlA)(NimStringDesc* pattern);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_pcreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_tablesDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_optionsDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_2, "1.2.3", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "\\.", 2);
static NIM_CONST struct {
TGenericSeq Sup;
NimStringDesc* data[1];
} TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{1, 1 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2)}};
static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "/home/runner/work/Nim/Nim/temp.nim(2, 10) `\"1.2.3\".split(re\"\\.\""
", maxsplit = 1) == @[\"1.2.3\"]` ", 94);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA8_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE void PreMainInner(void) {
stdlib_nreInit000();
}
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();
stdlib_pcreDatInit000();
stdlib_tablesDatInit000();
stdlib_optionsDatInit000();
stdlib_nreDatInit000();
(*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
{
tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* T3_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T4_;
NIM_BOOL T5_;
T3_ = (tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*)0;
T3_ = re__7ePTapx9arvifOx9a2qXkLlA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3));
T4_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
T4_ = split__YQRC2CuIgcyDL5xmareNSA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2), T3_, ((NI) 1), ((NI) 0));
T5_ = (NIM_BOOL)0;
T5_ = eqeq___jpeT21MusP66x4kcP9cZuag(T4_, TM__SRd76hP9cMfCzdUO857UhQQ_4);
if (!!(T5_)) goto LA6_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6));
}
LA6_: ;
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
1.0.0 :-1: FAIL
Output
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/.choosenim/toolchains/nim-1.0.0/lib/system/assertions.nim failedAssertImpl
/home/runner/.choosenim/toolchains/nim-1.0.0/lib/system/assertions.nim raiseAssert
/home/runner/.choosenim/toolchains/nim-1.0.0/lib/system/fatal.nim sysFatal
Error: unhandled exception: /home/runner/work/Nim/Nim/temp.nim(2, 10) `"1.2.3".split(re"\.", maxsplit = 1) == @["1.2.3"]` [AssertionError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
Stats
- Created
2023-07-06T22:14:45Z - Started
2023-07-06T22:15:55 - Finished
2023-07-06T22:15:56 - Duration
1 minute - Commands
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
IR
#define NIM_INTBITS 64
#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
# 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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
TGenericSeq Sup;
NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___jpeT21MusP66x4kcP9cZuag)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, split__YQRC2CuIgcyDL5xmareNSA)(NimStringDesc* str, tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* pattern, NI maxSplit, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*, re__7ePTapx9arvifOx9a2qXkLlA)(NimStringDesc* pattern);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_pcreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_tablesDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_optionsDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, stdlib_nreInit000)(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;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_2, "1.2.3", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_3, "\\.", 2);
NIM_CONST struct {
TGenericSeq Sup;
NimStringDesc* data[1];
} TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{1, 1 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2)}};
NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__SRd76hP9cMfCzdUO857UhQQ_4 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__SRd76hP9cMfCzdUO857UhQQ_5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "/home/runner/work/Nim/Nim/temp.nim(2, 10) `\"1.2.3\".split(re\"\\.\""
", maxsplit = 1) == @[\"1.2.3\"]` ", 94);
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
NI T1_;
T1_ = (NI)0;
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
T1_ = ((NI) 0);
}
goto LA2_;
LA4_: ;
{
T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
}
LA2_: ;
(*s).calldepth = ((NI16) (T1_));
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA9_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
void PreMainInner(void) {
stdlib_nreInit000();
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
stdlib_pcreDatInit000();
stdlib_tablesDatInit000();
stdlib_optionsDatInit000();
stdlib_nreDatInit000();
(*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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
{
tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw* T3_;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T4_;
NIM_BOOL T5_;
T3_ = (tyObject_RegexcolonObjectType___ULxINHgL1NYel7wmacOU9aw*)0;
T3_ = re__7ePTapx9arvifOx9a2qXkLlA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_3));
T4_ = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
T4_ = split__YQRC2CuIgcyDL5xmareNSA(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_2), T3_, ((NI) 1), ((NI) 0));
T5_ = (NIM_BOOL)0;
T5_ = eqeq___jpeT21MusP66x4kcP9cZuag(T4_, TM__SRd76hP9cMfCzdUO857UhQQ_4);
if (!!(T5_)) goto LA6_;
failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6));
}
LA6_: ;
popFrame();
}
}
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("nre")
)
),
nnkCommand.newTree(
newIdentNode("doAssert"),
nnkInfix.newTree(
newIdentNode("=="),
nnkCall.newTree(
nnkDotExpr.newTree(
newLit("1.2.3"),
newIdentNode("split")
),
nnkCallStrLit.newTree(
newIdentNode("re"),
newLit("\\.")
),
nnkExprEqExpr.newTree(
newIdentNode("maxsplit"),
newLit(1)
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("1.2.3")
)
)
)
)
)
44 minutes bisecting 6 commits at 0 commits per second.