Those numbers look like pointers interpreted as fixnums.

So my guess as to why they differ so much is that between each
operation, you call `printf`, which allocates enough to claim the
addresses between, e.g., 70112357026588 and 70112357038692. So that next
time around the loop, the result of the `bitwise-and` lives at
70112357038692.

Just a guess, though.

Vincent



On Fri, 14 Oct 2016 01:11:56 -0500,
peter.sama...@gmail.com wrote:
> 
> 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), peter....@gmail.com 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 racket-dev+...@googlegroups.com. 
>     > To post to this group, send email to racke...@googlegroups.com. 
>     > 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 racket-dev+unsubscr...@googlegroups.com.
> To post to this group, send email to racket-dev@googlegroups.com.
> 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.

-- 
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 racket-dev+unsubscr...@googlegroups.com.
To post to this group, send email to racket-dev@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/m2d1j3yuj4.wl-stamourv%40eecs.northwestern.edu.
For more options, visit https://groups.google.com/d/optout.

Reply via email to