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