[racket-dev] `compatibility' (was: [plt] Push #25038: master branch updated)

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Jul 30 15:10:28 EDT 2012

At Fri, 20 Jul 2012 16:33:54 -0400, Vincent St-Amour wrote:
> How about having a `compatibility' collect, which would include this and
> things like `racket/package' (compatibility with Chez) and `racket/mpair'
> (compatibility with Scheme)? It would be harder to confuse these things
> with blessed Racket features.

Sorry that I'm so late to this thread.

I think a "compatibility" collection is a good idea, and it's a fine
place for `defmacro'. I don't think `racket/...' libraries should move
there, though.

When the next big language shift comes, we should leave out some
libraries that are now in "racket", and then it may make sense to add
some left-out ones to "compatibility". As long as they stick around in
"racket" though (for compatibility!), I think there's little advantage
in adding them to "compatibility". 

FWIW, the `package' form wasn't even intended for compatibility. It was
intended to support namespace management --- possibly as an expansion
target for macros --- and to work in contexts other than module top
levels. It hasn't turned out to be useful, though.

Posted on the dev mailing list.