Do you have any guess why the resulting numbers vary so much?

On Thursday, October 13, 2016 at 7:20:47 PM UTC+2, mflatt wrote:
>
> Thanks for the report! 
>
> This is a bug in the optimizer's handling of `bitwise-and`, where I 
> made it assume a fixnum result if either argument is a fixnum. That's 
> obviously not correct if the fixnum is negative. I'll push a repair. 
>
> The difference you see when running in a module is because the 
> optimizer constant-folds the calculation, so there's no `bitwise-and` 
> call left to make incorrect assumptions about. 
>
> At Thu, 13 Oct 2016 09:17:52 -0700 (PDT), [email protected] 
> <javascript:> wrote: 
> > Hi all, 
> > 
> > I get a weird behavior when using bitwise-ior and bitwise-and with large 
> > numbers. Tested on 2 machines (racket 6.6, Ubuntu 16.04 and 14.04): 
> > 
> > Here is the test example: 
> > 
> > #lang racket 
> > (define num #xffffffffffffffff) ;; remove one f, and the results are 
> fine 
> > in both cases 
> > (for ([i 5]) 
> >   (printf "~a~n" (bitwise-ior (bitwise-and num -2) 0))) 
> > 
> > 
> > When run from DrRacket using ctr+r, it works properly: 
> > 18446744073709551614 
> > 18446744073709551614 
> > 18446744073709551614 
> > 18446744073709551614 
> > 18446744073709551614 
> > 
> > When pasted into DrRacket's REPL (or run from command line via "racket 
> > random-bug.rkt"), the code does not only produce wrong result, but also 
> > seems to be counting something :) 
> > 70112357026588 
> > 70112357038692 
> > 70112357043588 
> > 70112357048576 
> > 70112357053344 
> > 
> > Removing one "f" from the test number results in correct behavior in 
> both 
> > cases. 
> > Very large numbers are are reduced to the same range (around 54 bits). 
> > Replacing the expression (bitwise-and num -2) by the corresponding 
> number 
> > it computes results in correct behavior. 
> > 
> > Cheers, 
> > Peter 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Racket Developers" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to [email protected] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <javascript:>. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/racket-dev/d0310d90-0d88-4902-b430-0069b310d7
>  
> > a3%40googlegroups.com. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/c4b51560-736a-4a19-9b9f-0b28f4de66cb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to