[racket-dev] Things we could move out of the core

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Jun 28 17:17:31 EDT 2013

At Fri, 28 Jun 2013 17:08:19 -0400, Sam Tobin-Hochstadt wrote:
> On Fri, Jun 28, 2013 at 5:02 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > At Fri, 28 Jun 2013 14:38:03 -0400, Sam Tobin-Hochstadt wrote:
> >> On Thu, Jun 27, 2013 at 8:45 PM, Robby Findler
> >> <robby at eecs.northwestern.edu> wrote:
> >> > Did you consider moving "#lang mzscheme" out as well?
> >>
> >> I've now created another pull request that does this, here:
> >> https://github.com/plt/racket/pull/377
> >>
> >> There's one remaining question.  The `make-base-namespace` procedure
> >> provided by `mzscheme` attaches the `mzscheme` module.  But this pull
> >> request removes that module, so it can't be attached or required in
> >> this code.  The alternatives are:
> >>
> >> 1. Just attach/require `scheme/mzscheme`.  Slightly incompatible in
> >> some corner cases.
> >> 2. Don't remove `mzscheme` from the core.
> >> 3. Remove `make*-namespace` from `scheme/mzscheme` and implement them
> >> in the `mzscheme` collection in the `mzscheme` package.
> >>
> >> I'm currently leaning toward 3 but I'd appreciate anyone else's thoughts.
> >
> > Is there some reason that `scheme/mzscheme' can't move to the
> > "mzscheme" package (along with `racket/private/stxmz-body')?
> 
> Because large portions of the core are written in the `mzscheme`
> language (or `scheme/mzscheme`, after my patch), some of which feature
> evaluating code in mzscheme-like namespaces.  If we can somehow get
> around the latter problem, then the former is a Small Matter of
> Programming, but it'll take a little while.

Ah --- I had not actually looked at 9587a2f.

I guess I'm confused on the goal, since I don't see changing `mzscheme'
to `scheme/mzscheme' as a step forward. Can you say more about the
intent of changing `mzscheme' to `scheme/mzscheme'?

Meanwhile, I worry that options 1 and 3 can create subtle and confusing
bugs/incompatibilities. (I've spent a lot of time on problems that
happened due to accidentally choosing similar options in the past.)


Posted on the dev mailing list.