[racket-dev] Things we could move out of the core
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