Coder Social home page Coder Social logo

Comments (3)

ringabout avatar ringabout commented on May 30, 2024 1

!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.

github-actions avatar github-actions commented on May 30, 2024
🐧 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 filesize 0 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 filesize 0 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 filesize 0 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 filesize 0 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 filesize 0 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 filesize 91.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 filesize 87.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.

hamidb80 avatar hamidb80 commented on May 30, 2024

it works fine with openArray

from nim.

Related Issues (20)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.