on master help sign in
Fix some big number primitives
03db88dEdwin Brady
rts/idris_gmp.c+5−5
@@ -231,7 +231,7 @@ VAL idris_bigEq(VM* vm, VAL x, VAL y) {
231 if (ISINT(x) && ISINT(y)) {
231 if (ISINT(x) && ISINT(y)) {
232 return MKINT((i_int)(GETINT(x) == GETINT(y)));
232 return MKINT((i_int)(GETINT(x) == GETINT(y)));
233 } else {
233 } else {
234− return bigEq(vm, x, y);
234+ return bigEq(vm, GETBIG(vm, x), GETBIG(vm, y));
235 }
235 }
236}
236}
237
237
@@ -239,7 +239,7 @@ VAL idris_bigLt(VM* vm, VAL x, VAL y) {
239 if (ISINT(x) && ISINT(y)) {
239 if (ISINT(x) && ISINT(y)) {
240 return MKINT((i_int)(GETINT(x) < GETINT(y)));
240 return MKINT((i_int)(GETINT(x) < GETINT(y)));
241 } else {
241 } else {
242− return bigLt(vm, x, y);
242+ return bigLt(vm, GETBIG(vm, x), GETBIG(vm, y));
243 }
243 }
244}
244}
245
245
@@ -247,7 +247,7 @@ VAL idris_bigLe(VM* vm, VAL x, VAL y) {
247 if (ISINT(x) && ISINT(y)) {
247 if (ISINT(x) && ISINT(y)) {
248 return MKINT((i_int)(GETINT(x) <= GETINT(y)));
248 return MKINT((i_int)(GETINT(x) <= GETINT(y)));
249 } else {
249 } else {
250− return bigLe(vm, x, y);
250+ return bigLe(vm, GETBIG(vm, x), GETBIG(vm, y));
251 }
251 }
252}
252}
253
253
@@ -255,7 +255,7 @@ VAL idris_bigGt(VM* vm, VAL x, VAL y) {
255 if (ISINT(x) && ISINT(y)) {
255 if (ISINT(x) && ISINT(y)) {
256 return MKINT((i_int)(GETINT(x) > GETINT(y)));
256 return MKINT((i_int)(GETINT(x) > GETINT(y)));
257 } else {
257 } else {
258− return bigGt(vm, x, y);
258+ return bigGt(vm, GETBIG(vm, x), GETBIG(vm, y));
259 }
259 }
260}
260}
261
261
@@ -263,7 +263,7 @@ VAL idris_bigGe(VM* vm, VAL x, VAL y) {
263 if (ISINT(x) && ISINT(y)) {
263 if (ISINT(x) && ISINT(y)) {
264 return MKINT((i_int)(GETINT(x) >= GETINT(y)));
264 return MKINT((i_int)(GETINT(x) >= GETINT(y)));
265 } else {
265 } else {
266− return bigGe(vm, x, y);
266+ return bigGe(vm, GETBIG(vm, x), GETBIG(vm, y));
267 }
267 }
268}
268}
269
269