Comments (3)
!nim c
type
DisInt = distinct int
proc `[]`[N: static int](a: array[N, int]; i: DisInt): int =
a[i.int]
proc `[]`[N: static int](a: var array[N, int]; i: DisInt): var int =
a[i.int]
var
a = [1, 2]
i = 1.DisInt
echo a[i]
a[i] += 3
echo a[i]
from nim.
🐧 Linux bisect by @ringabout (member)
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
assertions.nim(34) raiseAssert
Error: unhandled exception: int128.nim(69, 11) `arg.sdata(3) == 0` out of range [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2023-12-05T03:57:30
- Finished
2023-12-05T03:57:30
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("DisInt"),
newEmptyNode(),
nnkDistinctTy.newTree(
newIdentNode("int")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkVarTy.newTree(
newIdentNode("int")
),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newEmptyNode(),
nnkBracket.newTree(
newLit(1),
newLit(2)
)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
nnkDotExpr.newTree(
newLit(1),
newIdentNode("DisInt")
)
)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
),
nnkInfix.newTree(
newIdentNode("+="),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
),
newLit(3)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
)
)
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
assertions.nim(34) raiseAssert
Error: unhandled exception: int128.nim(69, 11) `arg.sdata(3) == 0` out of range [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2023-12-05T03:57:30
- Finished
2023-12-05T03:57:31
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("DisInt"),
newEmptyNode(),
nnkDistinctTy.newTree(
newIdentNode("int")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkVarTy.newTree(
newIdentNode("int")
),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newEmptyNode(),
nnkBracket.newTree(
newLit(1),
newLit(2)
)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
nnkDotExpr.newTree(
newLit(1),
newIdentNode("DisInt")
)
)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
),
nnkInfix.newTree(
newIdentNode("+="),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
),
newLit(3)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
)
)
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
assertions.nim(34) raiseAssert
Error: unhandled exception: int128.nim(69, 11) `arg.sdata(3) == 0` out of range [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2023-12-05T03:57:31
- Finished
2023-12-05T03:57:31
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("DisInt"),
newEmptyNode(),
nnkDistinctTy.newTree(
newIdentNode("int")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkVarTy.newTree(
newIdentNode("int")
),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newEmptyNode(),
nnkBracket.newTree(
newLit(1),
newLit(2)
)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
nnkDotExpr.newTree(
newLit(1),
newIdentNode("DisInt")
)
)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
),
nnkInfix.newTree(
newIdentNode("+="),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
),
newLit(3)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
)
)
1.6.14 👎 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
fatal.nim(54) sysFatal
Error: unhandled exception: int128.nim(71, 11) `arg.sdata(3) == 0` out of range [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2023-12-05T03:57:34
- Finished
2023-12-05T03:57:34
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("DisInt"),
newEmptyNode(),
nnkDistinctTy.newTree(
newIdentNode("int")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkVarTy.newTree(
newIdentNode("int")
),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newEmptyNode(),
nnkBracket.newTree(
newLit(1),
newLit(2)
)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
nnkDotExpr.newTree(
newLit(1),
newIdentNode("DisInt")
)
)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
),
nnkInfix.newTree(
newIdentNode("+="),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
),
newLit(3)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
)
)
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
fatal.nim(49) sysFatal
Error: unhandled exception: int128.nim(71, 11) `arg.sdata(3) == 0` out of range [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2023-12-05T03:57:36
- Finished
2023-12-05T03:57:36
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("DisInt"),
newEmptyNode(),
nnkDistinctTy.newTree(
newIdentNode("int")
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("[]")
),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
nnkVarTy.newTree(
newIdentNode("int")
),
nnkIdentDefs.newTree(
newIdentNode("a"),
nnkVarTy.newTree(
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newIdentNode("DisInt"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkDotExpr.newTree(
newIdentNode("i"),
newIdentNode("int")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("a"),
newEmptyNode(),
nnkBracket.newTree(
newLit(1),
newLit(2)
)
),
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
nnkDotExpr.newTree(
newLit(1),
newIdentNode("DisInt")
)
)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
),
nnkInfix.newTree(
newIdentNode("+="),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
),
newLit(3)
),
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("i")
)
)
)
1.2.18 👍 OK
Output
2
5
IR
Compiled filesize91.91 Kb (94,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, file) \
FR_.line = n; FR_.filename = file;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef NI tyArray__HU7qaqKu9czJLT84iCBJnsA[2];
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___a066eQNpGX1XHyQCfLONOA)(NI* a, NI i);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
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(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE tyArray__HU7qaqKu9czJLT84iCBJnsA a__pmzNoNHAcaDPxnGmV0hjXA = {((NI) 1),
((NI) 2)}
;
N_LIB_PRIVATE NI i__Vuap9ai8jfbvRhF5w5oYzTw = ((NI) 1);
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, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA8_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___a066eQNpGX1XHyQCfLONOA)(NI* a, NI i) {
NI* result;
nimfr_("[]", "/home/runner/work/Nim/Nim/temp.nim");
result = (NI*)0;
if ((NU)(i) > (NU)(1)){ raiseIndexError2(i, 1); }
result = (&a[(i)- 0]);
popFrame();
return result;
}
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();
(*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) {
{
tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
NI* T2_;
NI* T3_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
tyArray__nHXaesL0DJZHyVS07ARPRA T4_;
NI* T5_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T2_ = (NI*)0;
T2_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
T1_[0] = nimIntToStr((*T2_));
echoBinSafe(T1_, 1);
T3_ = (NI*)0;
T3_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
if (nimAddInt((*T3_), ((NI) 3), &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
(*T3_) = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2);
nimZeroMem((void*)T4_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T5_ = (NI*)0;
T5_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
T4_[0] = nimIntToStr((*T5_));
echoBinSafe(T4_, 1);
popFrame();
}
}
Stats
- Started
2023-12-05T03:57:38
- Finished
2023-12-05T03:57:39
- Duration
1.0.10 👍 OK
Output
2
5
IR
Compiled filesize87.10 Kb (89,192 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
# define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
# define nimfrs_(proc, file, slots, length) \
struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
# define nimln_(n, file) \
FR_.line = n; FR_.filename = file;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef NI tyArray__HU7qaqKu9czJLT84iCBJnsA[2];
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___a066eQNpGX1XHyQCfLONOA)(NI* a, NI i);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
tyArray__HU7qaqKu9czJLT84iCBJnsA a__pmzNoNHAcaDPxnGmV0hjXA;
NI i__Vuap9ai8jfbvRhF5w5oYzTw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
NIM_CONST tyArray__HU7qaqKu9czJLT84iCBJnsA TM__SRd76hP9cMfCzdUO857UhQQ_2 = {((NI) 1),
((NI) 2)}
;
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) { void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) { void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(void, nimFrame)(TFrame* s) { NI T1_;
T1_ = (NI)0;
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
T1_ = ((NI) 0);
}
goto LA2_;
LA4_: ;
{
T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
}
LA2_: ;
(*s).calldepth = ((NI16) (T1_));
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
}
LA9_: ;
}
static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___a066eQNpGX1XHyQCfLONOA)(NI* a, NI i) { NI* result;
nimfr_("[]", "/home/runner/work/Nim/Nim/temp.nim");
result = (NI*)0;
if ((NU)(i) > (NU)(1)) raiseIndexError2(i, 1);
result = (&a[(i)- 0]);
popFrame();
return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) { NI result;
{ result = (NI)0;
result = (NI)((NU64)(a) + (NU64)(b));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = (((NI) 0) <= (NI)(result ^ a));
if (T3_) goto LA4_;
T3_ = (((NI) 0) <= (NI)(result ^ b));
LA4_: ;
if (!T3_) goto LA5_;
goto BeforeRet_;
}
LA5_: ;
raiseOverflow();
}BeforeRet_: ;
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
(*inner)();
}
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
NI* T2_;
NI* T3_;
NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
tyArray__nHXaesL0DJZHyVS07ARPRA T4_;
NI* T5_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimCopyMem((void*)a__pmzNoNHAcaDPxnGmV0hjXA, (NIM_CONST void*)TM__SRd76hP9cMfCzdUO857UhQQ_2, sizeof(tyArray__HU7qaqKu9czJLT84iCBJnsA));
i__Vuap9ai8jfbvRhF5w5oYzTw = ((NI) 1);
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T2_ = (NI*)0;
T2_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
T1_[0] = nimIntToStr((*T2_));
echoBinSafe(T1_, 1);
T3_ = (NI*)0;
T3_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
TM__SRd76hP9cMfCzdUO857UhQQ_3 = addInt((*T3_), ((NI) 3));
(*T3_) = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
nimZeroMem((void*)T4_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T5_ = (NI*)0;
T5_ = X5BX5D___a066eQNpGX1XHyQCfLONOA(a__pmzNoNHAcaDPxnGmV0hjXA, i__Vuap9ai8jfbvRhF5w5oYzTw);
T4_[0] = nimIntToStr((*T5_));
echoBinSafe(T4_, 1);
popFrame();
}
}
Stats
- Started
2023-12-05T03:57:41
- Finished
2023-12-05T03:57:41
- Duration
#d11933ad9 ➡️ 🐛
Diagnostics
jcosborn introduced a bug at 2020-08-27 05:56:38 -0500
on commit #d11933ad9 with message:
fix some issues overloading with generics and inheritance (#15211)
* fix some issues overloading with generics and inheritance
* fix passing procs with subtype matches
The bug is in the files:
compiler/sigmatch.nim
tests/overload/toverload_various.nim
The bug can be in the commits:
(Diagnostics sometimes off-by-one).
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
18.2
- Created
2023-12-05T03:57:01Z
- Comments
1
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
🤖 Bug found in 59 minutes
bisecting 4773
commits at 81
commits per second
from nim.
it works fine with openArray
from nim.
Related Issues (20)
- osproc.startProcess should support "not following symlinks" HOT 2
- When `move` meets` sink`, `= sink` hook function is not called HOT 4
- [ignore] bisect HOT 7
- Error: type mismatch: got <typedesc[A]>, but expected one of: A = proc (){.closure.}
- Default object values silently override generic types
- Enum Overloading Regression? HOT 4
- async `and` swallows errors
- Async `finally` swallows errors when it contains an `await` wrapped by `try/except`
- The `when nimvm` statement fails to compile when in a file called nimvm.nim HOT 4
- Regression from 2.0 to `devel` with `dirty` template HOT 3
- Async memory leak when raising exception on ORC HOT 1
- unicode.splitWhitespace() and strutils.splitWhitespace() have different results for ASCII string
- Wrong stack trace when exception is raised in template HOT 1
- Error: cannot evaluate at compile time: foo HOT 4
- nim check crashes
- Any differnece between value types and reference types for `=sink` ? HOT 1
- Simple destructor code gives invalid C HOT 4
- Compiler crashes with infinite recursion for nested generic instantiation with static[int]
- The stdout.write doesn't print to terminal until new line symbol is sent HOT 1
- Gc_ref(x: string) and Gc_ref[T](x: seq[T]) doesn't exists anymore ? 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.