On 04/02/12 00:54, Carl Mäsak (via RT) wrote:
# New Ticket Created by "Carl Mäsak"
# Please include the string: [perl #109740]
# in the subject line of all future correspondence about this issue.
#<URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=109740>
<grondilu> nom: my ($x, $y) = (2**30, 1); printf "%32b\n", +^$x +& $y;
what is unary +^ I can only find binary +^ bitwise xor
<p6eval> nom acbec8:
OUTPUT«1111000000000000000000000000000000000000000000000000000000000001»
<grondilu> where do those four bits come from??
<grondilu> niecza: my ($x, $y) = (2**30, 1); printf "%32b", +^$x +& $y;
<p6eval> niecza v13-389-g852f0ff: OUTPUT« 1»
<moritz> grondilu: I just realized, libtommath (which we use for
storing bigints) uses 28bit "digits"
<moritz> grondilu: so there might indeed a bug in there somewhere
<grondilu> oh, this explains a lot
<moritz> grondilu: feel free to submit as rakudobug (or even fix if you want
:-)
<grondilu> I don't know how to. Someone please do it.
* masak submits rakudobug
<moritz> libtommath stores sign separately from the rest of the bits,
which is why we need to emulate 2's complement math
<moritz> and that part might be buggy
--
.~. In my life God comes first....
/V\ but Linux is pretty high after that :-D
/( )\ Francis (Grizzly) Smit
^^-^^ http://www.smit.id.au/