[racket-dev] moving directories again: "collects", "pkgs", "lib" vs. "share"

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Jul 19 09:20:04 EDT 2013

To support Unix-style installations that distinguish "lib" from
"share", I'm moving some of the directories (again) under the "racket"
directory. This change should also help with creating a source bundle
that includes pre-built core collections and packages, since the source
bundle can simply discard "lib" while keeping "share".

One consequence of the change is that `make' will complain when you try
to update an old build (after I push the change). Delete the
"config.rktd" file that it complains about and try again.

The "lib" directory is for platform-specific files, and the "share"
directory is for platform-independent files. So, "collects" and "pkgs"
(along with "doc") belong in "share" in a Unix-style installation,
and that's now where they go by default.

Instead of moving "collects" from "lib" to "share", I'm moving it back
to where it was: immediately within "racket" in the repository, and at
the top level of an in-place install.

When I moved "collects" to "lib", I thought it would be nicer to have
it in a more similar place for in-place and Unix-style installs. Now
that I've tried it, though, I think it works better the old way. The
similarity turned out to be weak, since a Unix-style install puts
"collects" under "share/racket", not just "share". Also, keeping
"collects" out of "lib" and "share" means that those directories
contain only items generated by a build (i.e., neither directory shows
up in the git repository).

Posted on the dev mailing list.