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/Thread Previous | Thread Next