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

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Fri Jun 28 17:08:19 EDT 2013

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.

Sam

Posted on the dev mailing list.