[racket-dev] Release for v5.0.2 has begun

From: Vincent St-Amour (stamourv at ccs.neu.edu)
Date: Wed Oct 20 15:23:13 EDT 2010

At Wed, 20 Oct 2010 11:36:58 -0600,
Doug Williams wrote:
> I'm not sure I understand what you're saying Matthew.
> On Wed, Oct 20, 2010 at 8:56 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > Overall, keep in mind that changes to vector contracts mean that
> > vectors can be wrapped with chaperones. That's why `unsafe-vector-ref'
> > may need to change to `unsafe-vector*-ref', and it may explain
> > performance differences in general.

Contracted vectors are now wrapped in chaperones. unsafe-vector-ref
works only on raw vectors, not on chaperoned vectors. Therefore, if
you use unsafe-vector-ref on a contracted vector, bad things happen.

unsafe-vector*-ref and other procedures have been introduced to work
on both plain vectors and chaperoned vectors. Since they have to check
for chaperones, they're a bit slower than unsafe-vector-ref, but
they're still faster than plain vector-ref.


Posted on the dev mailing list.