I can move mzlib/contract after you get done with other stuff.<div><br></div><div>Robby<br><br>On Wednesday, June 26, 2013, Sam Tobin-Hochstadt wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Jun 25, 2013 at 4:32 PM, Sam Tobin-Hochstadt <<a href="javascript:;" onclick="_e(event, 'cvml', 'samth@ccs.neu.edu')">samth@ccs.neu.edu</a>> wrote:<br>
> While moving some files around between packages, I realized that there<br>
> are a number of things that could be moved out of the core and into<br>
> packages. Here's a partial list of things that I think are not needed<br>
> at all by the rest of the core:<br>
<br>
I've now done the first step of this work. You can see the results<br>
here: <a href="https://github.com/plt/racket/pull/373" target="_blank">https://github.com/plt/racket/pull/373</a><br>
<br>
This works to the degree that the core still compiles. No other<br>
testing has happened yet -- that's the next step. A number of packages<br>
will need additional dependencies.<br>
<br>
I'd like to get feedback on exactly how this is organized. In<br>
particular, a bunch of things are now in a `compatibility-lib`<br>
collection:<br>
<br>
* almost all of `mzlib`<br>
* `compatibility/*`<br>
* `racket/mpair` and `racket/mlist`<br>
<br>
There's also the following new packages: `errortrace-lib`,<br>
`errortrace-doc`, `unstable-contract-lib`, `unstable-options-lib`,<br>
`sandbox-lib`, `data-lib`, `rackunit`.<br>
<br>
The `help` collection moved to `scribble/lib`.<br>
<br>
Where there isn't a new documentation package, libraries are mostly<br>
documented in `unstable` or `racket-doc`.<br>
<br>
Things that didn't move:<br>
<br>
* `mzlib/compile`: This is used in one place in the compiler, and<br>
should probably be handled differently. Matthew, any suggestions?<br>
* `mzlib/unit200`. This is loaded into a new namespace in which code<br>
is evaluated in `setup/unpack`. I don't understand what is happening<br>
there, and thus won't change it. It's also still used genuinely in<br>
`file/gzip`.<br>
* `mzlib/contract`. This is different enough from `racket/contract`<br>
that I'd prefer to have someone who knows the contract system better<br>
handle this. Also, much of the contract system implementation is in<br>
the `mzlib` directory, which seems odd.<br>
* `srfi/13`: used in `net/cookie` in a way that's intertwined with<br>
`srfi/14` and would be hard to remove on its own.<br>
* `srfi/8`: Used in unmodified srfi code that we probably shouldn't change.<br>
* Other SRFIs -- used in the `db` collection, or depended on by those that are.<br>
<br>
Sam<br>
_________________________<br>
Racket Developers list:<br>
<a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</blockquote></div>