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

From: Ryan Culpepper (ryanc at ccs.neu.edu)
Date: Wed Jun 26 17:26:40 EDT 2013

On 06/26/2013 02:32 PM, Sam Tobin-Hochstadt wrote:
> [...]
>
> Things that didn't move:
>
> * `mzlib/compile`: This is used in one place in the compiler, and
> should probably be handled differently.  Matthew, any suggestions?
> * `mzlib/unit200`. This is loaded into a new namespace in which code
> is evaluated in `setup/unpack`.  I don't understand what is happening
> there, and thus won't change it.  It's also still used genuinely in
> `file/gzip`.
> * `mzlib/contract`. This is different enough from `racket/contract`
> that I'd prefer to have someone who knows the contract system better
> handle this.  Also, much of the contract system implementation is in
> the `mzlib` directory, which seems odd.
> * `srfi/13`: used in `net/cookie` in a way that's intertwined with
> `srfi/14` and would be hard to remove on its own.
> * `srfi/8`: Used in unmodified srfi code that we probably shouldn't change.
> * Other SRFIs -- used in the `db` collection, or depended on by those that are.

I have a branch where I've split db into the base code and sqlite3 
driver, which stays in racket/lib/collects/db, and the other drivers and 
utils, which move to a package.

After the split, the core db code would no longer depend on srfi/19 or 
json. It doesn't depend on xml now. (The xml and json collections were 
mentioned earlier in the thread.)

The branch isn't quite ready to merge because I might need to update 
lazy-require to work across packages.

Ryan


Posted on the dev mailing list.