[racket-dev] else clauses: possible change to match?

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Mon May 6 09:02:47 EDT 2013

On Mon, May 6, 2013 at 6:52 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>> 3. And a side-comment: I hope that there will be something better
>>    than actual `racket2' used in code...
> Suggestions are welcome.
>>    Maybe rename the current one
>>    to `racket1' and possibly have code in packages use that unless
>>    it's declared new somehow?
> Surely the meaning of `#lang racket' shouldn't depend on its context
> --- otherwise we're moving back toward the world where no fragment of
> code has a useful meaning unless you know its full context.

The meaning of "#lang racket" currently depends on its context because
we make incompatible changes of any kind. (Even adding a single
binding is incompatible with some uses like (require racket

I think that it is fine for #lang racket to continue to change in this
way. The problem I see us as needing to solve is how to help people
deal with incompatible changes. One idea is to create a system whereby
(require v5.2.1/racket/list) is the interface to racket/list from
5.2.1 and #lang v5.2.1/racket is the racket from that version. Most of
these versions would just be about hiding some bindings, but it lays
the framework for more exhaustive changes. I think it would be easy to
maintain these, because most deltas are small. But as they become more
complex and less used, we can spin them out to packages to keep the
main repo clean.


Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University

"The glory of God is Intelligence" - D&C 93

Posted on the dev mailing list.