On Mon, May 6, 2013 at 6:52 AM, Matthew Flatt <mfl...@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 my/library).) 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 -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 _________________________ Racket Developers list: http://lists.racket-lang.org/dev