[plt-dev] Re: Generated files and co-existing copies of DrScheme

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Nov 20 02:36:50 EST 2009

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:
   - Uses of `-S', `-X', and `-U'
   - 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!

Posted on the dev mailing list.