Yes, that's an optimizer bug. The optimizer sees that `unbox` is
applied to a known box, so it converts the call to `unsafe-unbox`.
Unfortunately, the optimizer also miscategorizes some unsafe
operations, including `unsafe-unbox`, as independent of side effects.
One workaround is to add `(set! data data)` to your program, since that
defeats the optimizer's tracking of the value of `data`.
Meanwhile, I've pushed a repair. Thanks very much for the report!
> --
> 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/ff3a8778-98db-45c7-b870-bd8f43422b
> 02%
40googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.