The following snippet ...
$ cat b.imc
.sub main @MAIN
.local pmc b
b = new BigInt
b = 1e10
if b > 4 goto ok
... shows that the implementation of some compare opcodes is wrong:
$ ./parrot b.imc
bigint_get_long: number too big
in file 'b.imc' near line 4
The C<gt> opcode calls VTABLE_get_integer on the PMC which isn't correct
in that case.
We need either a MMD_CMP_INT functions defined in vtable.tbl or less
efficiently promote the integer constant to an Integer PMC.