[plt-dev] Re: Generated files and co-existing copies of DrScheme
On Nov 17, Carl Eastlund wrote:
> On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund <cce at ccs.neu.edu> wrote:
> > That's a bunch of issues, and three proposals: (1) set up PLTUSERDIR
> > to control placement of Planet and Scribble generated files, (2) pick
> > a conventional place in the PLT tree for users to store it who can and
> > wish to do so, and (3) longer term, think about a way to fit
> > development link code into this story. So -- what do the rest of you
> > developer folks think?
>
> I did #1 and #2 on a branch
> (http://svn.plt-scheme.org/plt/branches/cce/plt+addon-dir). I
> updated the C implementation of (find-system-path 'addon-dir) to
> first check the PLTADDONDIR environment variable; Planet and
> Scribble both use the addon-dir, so it seems to be the right point
> of control. I also updated the Scribble documentation for
> find-system-path, and added an svn:ignore property for
> $PLTHOME/add-on as a canonical place for in-tree add-on directories.
I see several issues with this:
1. As much as I personally like environment variables, it seems that
they're generally confusing. Doing this change as another variable
means that now the exact collection search is determined by:
- $PLTCOLLECTS
- Uses of `-S', `-X', and `-U'
- $PLTADDONDIR
- Any dynamic changes to the search path
The first is a good source of complaints and confusion, and adding
another environment variable seems like it will make things worse.
(It doesn't help that Windows and even OSX users find it difficult
to control them.)
So, I think that a command-line argument would be better. It might
even make sense to use `+U'.
2. There is a potential problem with code that uses `find-system-path'
with 'addon-dir where 'pref-dir should have been used. But at
least on my system I don't see anything that would break.
3. IIUC, the only problem that this solves is using several different
installations with the same version number, is this true? Is that
problem *so* common? If so, then maybe have instead a way to use
your own additional suffix to the version part that gets used in
~/.plt-scheme/<here>/ and ~/.plt-scheme/planet/300/<here>/ ?
Or maybe go the other way -- make the default addon-dir include the
version (so on linux it becomes ~/.plt-scheme/<version>), and have
no version directory for the local collects (so they end up in
exactly the same place), planet can drop the version directory too
(and the redundantly outdated "300" part). Then it makes more
sense to have a command line flag or environment variable move
everything, without getting a second level of version-dependant
directories. (The only problem that I see here is that the planet
"cache" is less of a cache than it is now.)
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!