# New Ticket Created by Zoffix Znet
# Please include the string: [perl #131149]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=131149 >
This appears to be a regression happened since last release, so would be
beneficial to fix this before the release:
13:02 c: 2017.03,HEAD class { has uint $.x }.new: :x(2**64-1)
13:02 committable6 Zoffix, ¦2017.03: «» ¦HEAD(fbc6697): «Cannot unbox 64
bit wide bigint into native integer in block <unit> at /tmp/EY1TW4ElM7 line
1 «exit code = 1»»
13:02 Zoffix That's got broken innit? 2*64-1 fits into uint?
13:03 m: uint.Range.max.say
13:03 camelia rakudo-moar fbc669: OUTPUT: «18446744073709551615»
13:03 Zoffix m: say 2**64-1
13:03 camelia rakudo-moar fbc669: OUTPUT: «18446744073709551615»
At first glance, the issue appears to be due to calling mp_count_bits on an
mp_int that contains the uint value. That should either be changed
to mp_uint, if there is such a thing, or the counted bits check should be
adjusted for the uint-in-a-int difference.
13:08 Zoffix Is there mp_uint?
13:08 * dogbert17 will now try with 'better-fsa'
13:08 Zoffix m: class { has uint $.x }.new: :x(2**64-1)
13:08 camelia rakudo-moar fbc669: OUTPUT: «Cannot unbox 64 bit wide bigint
into native integer in block <unit> at <tmp> line 1»
13:09 Zoffix This used to work in last release. And in this commit, we're
calling count bits function on an mp_int, so it blows up:
https://github.com/MoarVM/MoarVM/commit/66dd8c9#diff-7c76a26bfc12243d0362c1b3478553a8R38