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

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Sun Oct 24 20:04:07 EDT 2010

The main problem I'm having is that the code has been around awhile and
hasn't been fully converted to Racket - in particular it uses the scheme
language (instead of the racket language) and uses (require (lib contract)).
All of that seems to mean that I can't just add #:flat? #t - I get a message
that vector-of doesn't accept keyword arguments. And, the case-> contracts
use ->r, which apparently isn't supported anymore. All that means that I
can't just switch to the racket language and new contracts.  So, I have some
conversion work to do.

On the case-> problem, it seems it no longer supports anything but ->.  Is
there something I am missing there?

Doug

On Sun, Oct 24, 2010 at 8:53 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:

> At Fri, 22 Oct 2010 21:31:43 -0600, Doug Williams wrote:
> > Matthew, would it make more sense to have unsafe-vector-ref (and related
> > functions) be the more general function and unsafe-vector*-ref be the one
> > that doesn't work  on chaperoned vectors? That is just swap the
> definitions.
> > That way user code that is already using unsafe-vector-ref (etc) will
> > continue to work.
> >
> > As it stands, existing code that has unsafe-vector-ref (etc) will often
> > still work (in the sense of not getting any error or crashing), but just
> > gives the wrong results. For example, if you run science-test.ss from the
> > examples directory in the science collection, there are no errors. But,
> some
> > of the answers are wrong - for example the very first one, the gamma
> > function. [In other cases, like the FFT routines, there are either
> run-time
> > errors or crashes.]
> >
> > Anyway, if it isn't too late, I think swapping the definitions would make
> > more sense and be safer.
>
> I've gone back and forth. I agree that it would be safer, but
> `vector-ref' is safer still, and I think of the job of `unsafe-X' as
> providing the lowest possible overhead over `X'. It seems nicer to me
> to have `*' mean "somewhere in between" rather than "even faster". Then
> again, it seems bad that `vector?' (plus index bounds) isn't enough to
> guard `unsafe-vector-ref'.
>
> Overall, at this point in the release cycle, I'm inclined to leave
> things where they are (i.e., it may be too late). But let's hear more
> opinions from those who use `unsafe-vector-ref' and
> unsafe-vector*-ref'.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20101024/3ddb21a9/attachment.html>

Posted on the dev mailing list.