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

2009-11-17 Thread Carl Eastlund
On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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 have built the PLT tree with PLTADDONDIR set (which put scribble
files in the custom add-on directory), run `planet show' (which
constructed and queried a planet cache in the custom add-on
directory), and run $PLTHOME/collects/tests/run-automated-tests.ss
(which succeeded).  All of this was on Mac OS X.

Does anyone object if I move this to the trunk?  Is there anything I
need to do first (e.g. testing on other platforms)?  I have attached
the relevant patch for the trunk if anyone wants to try this change
without grabbing the whole branch.

--Carl


plt+addon-dir.diff
Description: Binary data
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-19 Thread Eli Barzilay
On Nov 17, Carl Eastlund wrote:
> On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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// and ~/.plt-scheme/planet/300// ?

   Or maybe go the other way -- make the default addon-dir include the
   version (so on linux it becomes ~/.plt-scheme/), 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!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread Carl Eastlund
On Tue, Nov 17, 2009 at 4:55 PM, Carl Eastlund  wrote:
> On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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 have built the PLT tree with PLTADDONDIR set (which put scribble
> files in the custom add-on directory), run `planet show' (which
> constructed and queried a planet cache in the custom add-on
> directory), and run $PLTHOME/collects/tests/run-automated-tests.ss
> (which succeeded).  All of this was on Mac OS X.
>
> Does anyone object if I move this to the trunk?  Is there anything I
> need to do first (e.g. testing on other platforms)?  I have attached
> the relevant patch for the trunk if anyone wants to try this change
> without grabbing the whole branch.

An update -- Matthew has agreed to take over this code and to
(eventually) add a corresponding command line option to control the
"addon-dir".  I have repeated the test steps above with the latest
changes from the trunk, and merged my changes onto the trunk.

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread Eli Barzilay
On Nov 30, Carl Eastlund wrote:
> On Tue, Nov 17, 2009 at 4:55 PM, Carl Eastlund  wrote:
> > On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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 have built the PLT tree with PLTADDONDIR set (which put scribble
> > files in the custom add-on directory), run `planet show' (which
> > constructed and queried a planet cache in the custom add-on
> > directory), and run $PLTHOME/collects/tests/run-automated-tests.ss
> > (which succeeded).  All of this was on Mac OS X.
> >
> > Does anyone object if I move this to the trunk?  Is there anything I
> > need to do first (e.g. testing on other platforms)?  I have attached
> > the relevant patch for the trunk if anyone wants to try this change
> > without grabbing the whole branch.
> 
> An update -- Matthew has agreed to take over this code and to
> (eventually) add a corresponding command line option to control the
> "addon-dir".  I have repeated the test steps above with the latest
> changes from the trunk, and merged my changes onto the trunk.

I missed this, and I already undid it.  I will re-commit later tonight
with a command line option, and with reading the environment variable
once.  (Which means that your C-side commit will be split into a
separate piece that will read the variable.)

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Robby Findler
The "300" in the planet cache path contains stuff that is common to
all 3xx and 4.x versions (cached copies of the uninstalled .plt
files... maybe that's all?).

Robby

On Fri, Nov 20, 2009 at 1:36 AM, Eli Barzilay  wrote:
> On Nov 17, Carl Eastlund wrote:
>> On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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// and ~/.plt-scheme/planet/300// ?
>
>   Or maybe go the other way -- make the default addon-dir include the
>   version (so on linux it becomes ~/.plt-scheme/), 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!
> _
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 2:36 AM, Eli Barzilay  wrote:
> On Nov 17, Carl Eastlund wrote:
>> On Wed, Nov 4, 2009 at 4:44 PM, Carl Eastlund  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.)

You forgot $PLTPLANETDIR.

I would be happy to try to simplify this to a single environment
variable, but I think that means adding PLTADDONDIR and letting it
replace PLTCOLLECTS and PLTPLANETDIR (not to mention the purely
hypothetical PLTSCRIBBLEDIR).  I'm not sure whether breaking
compatibility for anyone who uses PLTCOLLECTS or PLTPLANETDIR is worth
it for the amount of simplification.

>   So, I think that a command-line argument would be better.  It might
>   even make sense to use `+U'.

Then I have to type it every time I run the command, though.  I want
something I can, for the most part, set and forget.  And I need the
command that runs 'mzscheme' to be 'mzscheme', for instance (not
'mzscheme-4.2.2') so that scripts that call 'mzscheme' always get the
one that I have chosen as recently built and fully functional.

> 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.

That sounds like a complaint about find-system-path, regardless of
this environment variable.

> 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// and ~/.plt-scheme/planet/300// ?

I run into this problem every single day when I update my PLT trunk
checkout.  I either have to spend the duration of a complete build
(including all documentation, installed planet packages, and recovery
from any build errors) unable to run any PLT Scheme code of any
variety -- essentially unable to work -- or I need some way to have
two PLT Scheme installations of the same version that don't "share"
compiled planet code.

>   Or maybe go the other way -- make the default addon-dir include the
>   version (so on linux it becomes ~/.plt-scheme/), 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.)

Maybe we need two settings -- PLTADDONIR and PLTVERSION.  The
PLTADDONDIR would then be static (I'd have no need to set it more than
once -- and if I don't mind the default, not at all), and have a
subdirectory for each version, plus one for a shared planet cache.
Then I could set PLTVERSION for separate installations, which would
override the version string *only* for the purposes of choosing a
subdirectory of PLTADDONDIR.  The directory tree would look like this:

$PLTADDONDIR/
  planet-cache/
  4.2.2/
collects/
planet/
scribblings/
  4.2.2.1/
collects/
planet/
scribblings/
  ...and so forth...

This would be a significant change to the way things are layed out,
though.  My current patch doesn't break any existing setup or change
any existing directory structure.  Furthermore it is already written.

--Carl
___

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

2009-11-20 Thread Carl Eastlund
Pardon my pre-morning-coffee thinking.  There were a few mistakes here:

On Fri, Nov 20, 2009 at 8:35 AM, Carl Eastlund  wrote:
>> 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// and ~/.plt-scheme/planet/300// ?
>
> I run into this problem every single day when I update my PLT trunk
> checkout.  I either have to spend the duration of a complete build
> (including all documentation, installed planet packages, and recovery
> from any build errors) unable to run any PLT Scheme code of any
> variety -- essentially unable to work -- or I need some way to have
> two PLT Scheme installations of the same version that don't "share"
> compiled planet code.

The above describes the problem I run into in general, much of which
is alleviated by PLTPLANETDIR.  I still have the problem of clashing
docs, so I can't run Help Desk in the interim and I'm stuck with the
newest version afterword.  However I am able to run mzscheme,
drscheme, planet, setup-plt, etc.

>>   Or maybe go the other way -- make the default addon-dir include the
>>   version (so on linux it becomes ~/.plt-scheme/), 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.)
>
> Maybe we need two settings -- PLTADDONIR and PLTVERSION.  The
> PLTADDONDIR would then be static (I'd have no need to set it more than
> once -- and if I don't mind the default, not at all), and have a
> subdirectory for each version, plus one for a shared planet cache.
> Then I could set PLTVERSION for separate installations, which would
> override the version string *only* for the purposes of choosing a
> subdirectory of PLTADDONDIR.  The directory tree would look like this:
>
> $PLTADDONDIR/
>  planet-cache/
>  4.2.2/
>    collects/
>    planet/
>    scribblings/
>  4.2.2.1/
>    collects/
>    planet/
>    scribblings/
>  ...and so forth...

Moving PLTCOLLECTS here is odd because that's usually a user
directory, much like planet development links.  So I'm not sure if the
collects/ subdirectory should be there.  And perhaps the preferences
file should be there (at the same level as planet-cache).  Since this
part is all hypothetical, the structure is up for debate anyway.

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Robby Findler
On Fri, Nov 20, 2009 at 7:50 AM, Carl Eastlund  wrote:
> Pardon my pre-morning-coffee thinking.  There were a few mistakes here:
>
> On Fri, Nov 20, 2009 at 8:35 AM, Carl Eastlund  wrote:
>>> 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// and ~/.plt-scheme/planet/300// ?
>>
>> I run into this problem every single day when I update my PLT trunk
>> checkout.  I either have to spend the duration of a complete build
>> (including all documentation, installed planet packages, and recovery
>> from any build errors) unable to run any PLT Scheme code of any
>> variety -- essentially unable to work -- or I need some way to have
>> two PLT Scheme installations of the same version that don't "share"
>> compiled planet code.
>
> The above describes the problem I run into in general, much of which
> is alleviated by PLTPLANETDIR.  I still have the problem of clashing
> docs, so I can't run Help Desk in the interim and I'm stuck with the
> newest version afterword.  However I am able to run mzscheme,
> drscheme, planet, setup-plt, etc.

Not to be contrarian, but pre-relase docs are probably close enough
usually, right?

Robby
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 9:05 AM, Robby Findler
 wrote:
> On Fri, Nov 20, 2009 at 7:50 AM, Carl Eastlund  wrote:
>> Pardon my pre-morning-coffee thinking.  There were a few mistakes here:
>>
>> On Fri, Nov 20, 2009 at 8:35 AM, Carl Eastlund  wrote:
 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// and ~/.plt-scheme/planet/300// ?
>>>
>>> I run into this problem every single day when I update my PLT trunk
>>> checkout.  I either have to spend the duration of a complete build
>>> (including all documentation, installed planet packages, and recovery
>>> from any build errors) unable to run any PLT Scheme code of any
>>> variety -- essentially unable to work -- or I need some way to have
>>> two PLT Scheme installations of the same version that don't "share"
>>> compiled planet code.
>>
>> The above describes the problem I run into in general, much of which
>> is alleviated by PLTPLANETDIR.  I still have the problem of clashing
>> docs, so I can't run Help Desk in the interim and I'm stuck with the
>> newest version afterword.  However I am able to run mzscheme,
>> drscheme, planet, setup-plt, etc.
>
> Not to be contrarian, but pre-relase docs are probably close enough
> usually, right?

Unfortunately, the new docs invariably lack planet packages (both
downloaded and development linked).  I spend a lot of time programming
with planet code, and looking up documentation for it, and without
up-to-date local documentation I wind up having to go to
planet.plt-scheme.org and lookup documentation by browsing specific
versions of each package, without the benefit of Help Desk's search
page.

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Eli Barzilay
On Nov 20, Carl Eastlund wrote:
> 
> I would be happy to try to simplify this to a single environment
> variable, but I think that means adding PLTADDONDIR and letting it
> replace PLTCOLLECTS and PLTPLANETDIR (not to mention the purely
> hypothetical PLTSCRIBBLEDIR).  I'm not sure whether breaking
> compatibility for anyone who uses PLTCOLLECTS or PLTPLANETDIR is
> worth it for the amount of simplification.

I don't think that it's possible to make a single variable as powerful
as all three.  In any case, and as is usually the case with
environment variables, changing things is very painful, since these
things are stuck in all kinds of places.


> >   So, I think that a command-line argument would be better.  It
> >   might even make sense to use `+U'.
> 
> Then I have to type it every time I run the command, though.

Why?  If you know how to use them, then you should be able to use a
script.


> I want something I can, for the most part, set and forget.  And I
> need the command that runs 'mzscheme' to be 'mzscheme', for instance
> (not 'mzscheme-4.2.2') so that scripts that call 'mzscheme' always
> get the one that I have chosen as recently built and fully
> functional.

I don't get this.  Translating an environment variable into a
command-line argument is trivial.  In this case, if there is a `+U'
and no environment variable, I can still get it with:

  #!/bin/sh
  if [ "x$PLTADDONDIR" = "" ]; then exec /path/to/plt/bin/mzscheme "$@"
  else exec /path/to/plt/bin/mzscheme +S "$PLTADDONDIR" "$@"
  fi

Or, since you want the addons to be in the PLT tree, then here's a
version that uses a PLTHOME variable:

  #!/bin/sh
  exec "$PLTHOME/plt/bin/mzscheme" +S "$PLTHOME/addons" "$@"

Now you just need to set PLTHOME and get everything -- and you don't
even need to specify the path to the right mzscheme to run.  You can
even call it `mz', making it even easier to start.

[FWIW, this is exactly how I run mzscheme -- I have a script that
chooses a binary based on PLTHOME, and I have a convenient shell alias
to toggle between the released version and the nightly build, and in
the case of the released version in my home directory I have this
script choose the right binary because I'm using a single directory
with binaries for all platforms.]

Look, the story with environment variables vs command-line flags is
esentially the same one as with keyword arguments vs parameters.
Parameters are more convenient in ways that make them lead to
potentially more mess, like forgetting that the code goes through some
dynamic context that changes it.  In your patch for example, you fetch
the environment variable dynamically, which means that things can get
interesting with code that uses `putenv'.  Fixing that wouldn't be
hard, and it would get a bit closer to just a command-line flag.

Another problem with environment variables is that they get passed on
in strange ways.  I've seen people hopelessly confused on Windows,
since changing the environment is done in an awkward way.  I've also
seen cases where people had scripts that would set the variable
somewhere on the way, in a place that they didn't see, leading to very
confusing bugs where things are just not right no matter what you do.
It's like the usual problem with parameters being dynamic, with the
added fun bit of doing so cross-language (from shells to the process),
and/or weird places where you get to set your environment variables.

This is why I'm saying that personally I like them -- I work in a way
that makes them very obvious (a traditional shell, basically).  But
that's not true for probably somewhere around 95% of the users.  (You
can see that in one of the many emails about PLTCOLLECTS -- it uses
the colon convention which just makes a lot of sense, and is used in
several places -- so I thought it would be much more known than it
turns out to be (=> roughly zero people knew about it).)


> I run into this problem every single day when I update my PLT trunk
> checkout.  I either have to spend the duration of a complete build
> (including all documentation, installed planet packages, and recovery
> from any build errors)

That goes back to the nightly build -- why not use it?  It *is*
happenning every day, and the results are packaged in about 200
different ways.  (Yes, you still need planet, in case the version or
some interface changed, but most of the work is done if you use the
nightly build.)

> unable to run any PLT Scheme code of any variety -- essentially
> unable to work -- [...]

Or the least you can do if you really don't want to use the nightly
build is run it during the night in a cron job.


On Nov 20, Carl Eastlund wrote:
> On Fri, Nov 20, 2009 at 9:05 AM, Robby Findler
>  wrote:
> >
> > Not to be contrarian, but pre-relase docs are probably close enough
> > usually, right?
> 
> Unfortunately, the new docs invariably lack planet packages (both
> downloaded and development linked).  I spend a lot of time
> programming with planet code, and looking u

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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 3:51 PM, Eli Barzilay  wrote:
> On Nov 20, Carl Eastlund wrote:
>>
>> I would be happy to try to simplify this to a single environment
>> variable, but I think that means adding PLTADDONDIR and letting it
>> replace PLTCOLLECTS and PLTPLANETDIR (not to mention the purely
>> hypothetical PLTSCRIBBLEDIR).  I'm not sure whether breaking
>> compatibility for anyone who uses PLTCOLLECTS or PLTPLANETDIR is
>> worth it for the amount of simplification.
>
> I don't think that it's possible to make a single variable as powerful
> as all three.  In any case, and as is usually the case with
> environment variables, changing things is very painful, since these
> things are stuck in all kinds of places.
>
>
>> >   So, I think that a command-line argument would be better.  It
>> >   might even make sense to use `+U'.
>>
>> Then I have to type it every time I run the command, though.
>
> Why?  If you know how to use them, then you should be able to use a
> script.
>
>
>> I want something I can, for the most part, set and forget.  And I
>> need the command that runs 'mzscheme' to be 'mzscheme', for instance
>> (not 'mzscheme-4.2.2') so that scripts that call 'mzscheme' always
>> get the one that I have chosen as recently built and fully
>> functional.
>
> I don't get this.  Translating an environment variable into a
> command-line argument is trivial.  In this case, if there is a `+U'
> and no environment variable, I can still get it with:
>
>  #!/bin/sh
>  if [ "x$PLTADDONDIR" = "" ]; then exec /path/to/plt/bin/mzscheme "$@"
>  else exec /path/to/plt/bin/mzscheme +S "$PLTADDONDIR" "$@"
>  fi
>
> Or, since you want the addons to be in the PLT tree, then here's a
> version that uses a PLTHOME variable:
>
>  #!/bin/sh
>  exec "$PLTHOME/plt/bin/mzscheme" +S "$PLTHOME/addons" "$@"
>
> Now you just need to set PLTHOME and get everything -- and you don't
> even need to specify the path to the right mzscheme to run.  You can
> even call it `mz', making it even easier to start.
>
> [FWIW, this is exactly how I run mzscheme -- I have a script that
> chooses a binary based on PLTHOME, and I have a convenient shell alias
> to toggle between the released version and the nightly build, and in
> the case of the released version in my home directory I have this
> script choose the right binary because I'm using a single directory
> with binaries for all platforms.]
>
> Look, the story with environment variables vs command-line flags is
> esentially the same one as with keyword arguments vs parameters.
> Parameters are more convenient in ways that make them lead to
> potentially more mess, like forgetting that the code goes through some
> dynamic context that changes it.  In your patch for example, you fetch
> the environment variable dynamically, which means that things can get
> interesting with code that uses `putenv'.  Fixing that wouldn't be
> hard, and it would get a bit closer to just a command-line flag.
>
> Another problem with environment variables is that they get passed on
> in strange ways.  I've seen people hopelessly confused on Windows,
> since changing the environment is done in an awkward way.  I've also
> seen cases where people had scripts that would set the variable
> somewhere on the way, in a place that they didn't see, leading to very
> confusing bugs where things are just not right no matter what you do.
> It's like the usual problem with parameters being dynamic, with the
> added fun bit of doing so cross-language (from shells to the process),
> and/or weird places where you get to set your environment variables.
>
> This is why I'm saying that personally I like them -- I work in a way
> that makes them very obvious (a traditional shell, basically).  But
> that's not true for probably somewhere around 95% of the users.  (You
> can see that in one of the many emails about PLTCOLLECTS -- it uses
> the colon convention which just makes a lot of sense, and is used in
> several places -- so I thought it would be much more known than it
> turns out to be (=> roughly zero people knew about it).)
>
>
>> I run into this problem every single day when I update my PLT trunk
>> checkout.  I either have to spend the duration of a complete build
>> (including all documentation, installed planet packages, and recovery
>> from any build errors)
>
> That goes back to the nightly build -- why not use it?  It *is*
> happenning every day, and the results are packaged in about 200
> different ways.  (Yes, you still need planet, in case the version or
> some interface changed, but most of the work is done if you use the
> nightly build.)
>
>> unable to run any PLT Scheme code of any variety -- essentially
>> unable to work -- [...]
>
> Or the least you can do if you really don't want to use the nightly
> build is run it during the night in a cron job.
>
>
> On Nov 20, Carl Eastlund wrote:
>> On Fri, Nov 20, 2009 at 9:05 AM, Robby Findler
>>  wrote:
>> >
>> > Not to be contrarian, but pre-relase docs are probabl

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

2009-11-20 Thread Eli Barzilay
On Nov 20, Carl Eastlund wrote:
> 
> Re: command line argument vs environment variable:
> 
> You are right, it works either way.  Since we already have
> environment variables to control this kind of thing, I went with
> another environment variable.  I don't think having two things
> controlled via enviroment and one via command line is going to be
> somehow less confusing than having three environment variables.  If,
> some day, we overhaul this configuration system, I have no problem
> with going to all command line arguments (or just one switch, as a
> command line argument).

The general good direction, IMO, is to avoid environment variables as
much as possible.  So if you want to add a new knob, doing that with a
command line argument has better chances of being useful and of
staying around.  Do you have any *concrete* point for preferring an
environment variable over a command-line argument?


> First, do we want to redesign our local configuration system,
> addressing issues of how directory trees are laid out, what options
> users have, and how users express choices.  This will take careful
> design, time to implement, and a decision of how to deal with the
> fact that it will almost certainly break existing configurations.

This was mostly done, with the new command line arguments and with
changes that happened in the past.  PLTCOLLECTS might be more
difficult to pull out, but I won't cry when this is done.


> Re: nightly build:
> 
> This doesn't solve my problem, because nightly builds do not include
> planet packages,

Of course, but I talked about building the PLT tree itself, which is a
conserable chunk of work that you don't need to do.


> and a new nightly build will still clobber the local planet and
> scribble files of an older one with the same version.

How?

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 4:32 PM, Eli Barzilay  wrote:
> On Nov 20, Carl Eastlund wrote:
>>
>> Re: command line argument vs environment variable:
>>
>> You are right, it works either way.  Since we already have
>> environment variables to control this kind of thing, I went with
>> another environment variable.  I don't think having two things
>> controlled via enviroment and one via command line is going to be
>> somehow less confusing than having three environment variables.  If,
>> some day, we overhaul this configuration system, I have no problem
>> with going to all command line arguments (or just one switch, as a
>> command line argument).
>
> The general good direction, IMO, is to avoid environment variables as
> much as possible.  So if you want to add a new knob, doing that with a
> command line argument has better chances of being useful and of
> staying around.  Do you have any *concrete* point for preferring an
> environment variable over a command-line argument?

I am preferring consistency over inconsistency.  Betamax was better
than VHS, but once 90% of the world was VHS there was no sense in
making Betamax any more.  People are using our VHS options already, so
why not give them more VHS, even if Betamax is better?

That *was* my argument.  I think my point that "users only have to use
the old way or the new way, not both" undermines it.  If users use
*either* the PLTPLANETDIR environment variable *or* a command line
option for add-on directories, it becomes easier to justify the
inconsistency.

However, since I am using the same kind of script as you for calling
PLT executables -- the command line approach is only easy to use if we
make sure every PLT executable can accept the same argument.  Do we
have a single point of control for that?  Or will we have to edit
several programs to make sure they accept this new option?

>> First, do we want to redesign our local configuration system,
>> addressing issues of how directory trees are laid out, what options
>> users have, and how users express choices.  This will take careful
>> design, time to implement, and a decision of how to deal with the
>> fact that it will almost certainly break existing configurations.
>
> This was mostly done, with the new command line arguments and with
> changes that happened in the past.  PLTCOLLECTS might be more
> difficult to pull out, but I won't cry when this is done.

What new command line arguments do we have for this?  The only ones I
see are for collections; I don't see any for planet, scribble, or
preferences -- any of the Mz/DrScheme generated files.

>> Re: nightly build:
>>
>> This doesn't solve my problem, because nightly builds do not include
>> planet packages,
>
> Of course, but I talked about building the PLT tree itself, which is a
> conserable chunk of work that you don't need to do.

But that's the part that also doesn't clobber anything, and thus isn't
a problem for me.

>> and a new nightly build will still clobber the local planet and
>> scribble files of an older one with the same version.
>
> How?

How else would it work?  Where will it put these things, other than
right where the previous build did?

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Eli Barzilay
On Nov 20, Carl Eastlund wrote:
> On Fri, Nov 20, 2009 at 4:32 PM, Eli Barzilay  wrote:
> >
> > The general good direction, IMO, is to avoid environment variables
> > as much as possible.  So if you want to add a new knob, doing that
> > with a command line argument has better chances of being useful
> > and of staying around.  Do you have any *concrete* point for
> > preferring an environment variable over a command-line argument?
> 
> I am preferring consistency over inconsistency.

Right, and my point is that moving *consistently* to command-line
flags is good.  Otherwise, why would -X and -S get added in v4?


> However, since I am using the same kind of script as you for calling
> PLT executables -- the command line approach is only easy to use if
> we make sure every PLT executable can accept the same argument.  Do
> we have a single point of control for that?

If I had a use for such a flag, then I'd add it in my scripts.


> > This was mostly done, with the new command line arguments and with
> > changes that happened in the past.  PLTCOLLECTS might be more
> > difficult to pull out, but I won't cry when this is done.
> 
> What new command line arguments do we have for this?

`-S' and `-X'.  And `-U', which is going to interact in a funny way
with a PLTADDON option.


> The only ones I see are for collections; I don't see any for planet,
> scribble, or preferences -- any of the Mz/DrScheme generated files.

I'm talking about adding these through a command line argument instead
of an environment variable.  If we had arguments for these, then there
wouldn't be an issue to talk about?


> >> and a new nightly build will still clobber the local planet and
> >> scribble files of an older one with the same version.
> >
> > How?
> 
> How else would it work?  Where will it put these things, other than
> right where the previous build did?

It has only things from the PLT tree, it cannot clobber anything in
your local directories.

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 4:55 PM, Eli Barzilay  wrote:
>
> Right, and my point is that moving *consistently* to command-line
> flags is good.  Otherwise, why would -X and -S get added in v4?

Sorry, I gotcha now.  Yes, if PLTCOLLECTS has been supplanted by
command line arguments, then PLTPLANETDIR and PLTADDONDIR should be
too.

>> >> and a new nightly build will still clobber the local planet and
>> >> scribble files of an older one with the same version.
>> >
>> > How?
>>
>> How else would it work?  Where will it put these things, other than
>> right where the previous build did?
>
> It has only things from the PLT tree, it cannot clobber anything in
> your local directories.

The act of unpacking the nightly build will not do so, but the
inevitable subsequent act of installing planet packages will.  Thus
I'm not sure what the nightly build will save me, in terms of allowing
separate copies of PLT Scheme to coexist.

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Eli Barzilay
On Nov 20, Carl Eastlund wrote:
> >> >> and a new nightly build will still clobber the local planet and
> >> >> scribble files of an older one with the same version.
> >> >
> >> > How?
> >>
> >> How else would it work?  Where will it put these things, other
> >> than right where the previous build did?
> >
> > It has only things from the PLT tree, it cannot clobber anything
> > in your local directories.
> 
> The act of unpacking the nightly build will not do so, but the
> inevitable subsequent act of installing planet packages will.  Thus
> I'm not sure what the nightly build will save me, in terms of
> allowing separate copies of PLT Scheme to coexist.

Yes, you have to do the planet part yourself either way.  (But I don't
see how controlling the addons directory will help there.)

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Carl Eastlund
On Fri, Nov 20, 2009 at 5:14 PM, Eli Barzilay  wrote:
>>
>> The act of unpacking the nightly build will not do so, but the
>> inevitable subsequent act of installing planet packages will.  Thus
>> I'm not sure what the nightly build will save me, in terms of
>> allowing separate copies of PLT Scheme to coexist.
>
> Yes, you have to do the planet part yourself either way.  (But I don't
> see how controlling the addons directory will help there.)

The same way it will help anywhere else.  By directing one nightly
build to install stuff in a different place than the other.  Am I
missing something obvious here about your point?  Because you seem to
be contradicting my original premise, without coming out and saying
so.

Re: command line versus environment, a quick test showed me that, for
instance, mzscheme accepts -X but plt-help does not.  So a "run PLT
executables via script based on $PLTHOME" solution suddenly has to
special case different options for each command.  The nice thing about
environment variables is that the same set works for every command;
extra ones are ignored.

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-20 Thread Eli Barzilay
On Nov 20, Carl Eastlund wrote:
> On Fri, Nov 20, 2009 at 5:14 PM, Eli Barzilay  wrote:
> >>
> >> The act of unpacking the nightly build will not do so, but the
> >> inevitable subsequent act of installing planet packages
> >> will.  Thus I'm not sure what the nightly build will save me, in
> >> terms of allowing separate copies of PLT Scheme to coexist.
> >
> > Yes, you have to do the planet part yourself either way.  (But I
> > don't see how controlling the addons directory will help there.)
> 
> The same way it will help anywhere else.

My question is how -- what's this "same way"?


> By directing one nightly build to install stuff in a different place
> than the other.  Am I missing something obvious here about your
> point?  Because you seem to be contradicting my original premise,
> without coming out and saying so.

I'm not making any point -- I might be missing something about either
the problem or the suggested solution, and I just didn't ask about it
so far.  If you're still planning to run a build every day, then what
is exactly the problem?  My best guess is that you're trying to avoid
the wait while a build is happening -- it's only a guess, but if this
is the case then how about using the ultimate parameter:

  mkdir ~/plt-build
  HOME=~/plt-build ...build everything...
  move directories from ~/plt-build to where they usually live


> Re: command line versus environment, a quick test showed me that,
> for instance, mzscheme accepts -X but plt-help does not.  So a "run
> PLT executables via script based on $PLTHOME" solution suddenly has
> to special case different options for each command.  The nice thing
> about environment variables is that the same set works for every
> command; extra ones are ignored.

You're right, that's a general problem that already exists with `-X'
and the rest.

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-21 Thread Matthew Flatt
At Fri, 20 Nov 2009 15:51:19 -0500, Eli Barzilay wrote:
> Look, the story with environment variables vs command-line flags is
> esentially the same one as with keyword arguments vs parameters.

I completely agree. But how does this lead you to the conclusion that
environment variables are bad?


At the Scheme level, we always prefer to use function arguments instead
of parameters. But threading some configuration information everywhere
(such as the current output port) is a huge pain. So we have
parameters, and various functions accept an optional argument whose
default value is drawn from a parameter.

Similarly, the -X and -S arguments were not added to `mzscheme' because
environment variables are an inherently bad idea. They were added
because it's better to supply those configurations directly when
practical. But the environment variables stayed, because it's not
always practical to thread a command-line argument through a chain of
scripts.

> Another problem with environment variables is that they get passed on
> in strange ways.  I've seen people hopelessly confused on Windows,
> since changing the environment is done in an awkward way.

The same with parameters, but we'd have a hard time getting by without
them.


It looks to me like a PLTADDONDIR environment variable is appropriate,
and `mzscheme' should also accept a command-line flag to override it.

_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-21 Thread Eli Barzilay
On Nov 21, Matthew Flatt wrote:
> At Fri, 20 Nov 2009 15:51:19 -0500, Eli Barzilay wrote:
> > Look, the story with environment variables vs command-line flags
> > is esentially the same one as with keyword arguments vs
> > parameters.
> 
> I completely agree. But how does this lead you to the conclusion
> that environment variables are bad?

There's no conclusion that they're automatically bad -- just that they
should be avoided if possible.  The problem with `plt-help' is an
indication that an environment variable would be more convenient than
to find a way to thread command-line flags through applications.
Given this, having both a command-line flag and an environment
variable is a good solution, and the fact that if both are specified
then the flag should override the variable is a good indication that
the variable lookup should happen once on startup rather than every
time.  BTW, the problem that I said already exists is not with `-X'
and `-S', it's `-U' which is a problem in that plt-help doesn't accept
it.

But there's another potential problem: the addon-dir is used for code,
which means that the two settings are dependent, so it would have been
nice if there was a way to do them both in PLTCOLLECTS.

Also, speaking about using environment variables -- how about another
for the preference, and respecting HOME when set on Windows possible
with some `expand-user-path*' that will work on Windows too?  The
latter two are especially annoying for writing cross-platform scripts,
where I often need to edit code to use (getenv "HOME") for it to work
on my (windows) laptop.


> > Another problem with environment variables is that they get passed
> > on in strange ways.  I've seen people hopelessly confused on
> > Windows, since changing the environment is done in an awkward way.
> 
> The same with parameters, but we'd have a hard time getting by
> without them.

They're not the same -- parameters are in the scheme world, so they're
uniform like all other code.  But environment variables are set in
very different ways and in different places.  For example, at some
point the debian distribution arranged for PLTCOLLECTS to be set in
the default user environment (at least IIRC), on windows you have
several ways to change them, and finally trying to control environment
variables in deployed applications is very easy on unix/osx, and very
difficult on Windows (which is what lead to the need for `path-up').

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread Sam TH
On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay  wrote:
>> An update -- Matthew has agreed to take over this code and to
>> (eventually) add a corresponding command line option to control the
>> "addon-dir".  I have repeated the test steps above with the latest
>> changes from the trunk, and merged my changes onto the trunk.
>
> I missed this, and I already undid it.  I will re-commit later tonight
> with a command line option, and with reading the environment variable
> once.  (Which means that your C-side commit will be split into a
> separate piece that will read the variable.)

I really don't think that this is a good way to manage our project -
dueling commits and reverts.  Once something is discussed and decided
upon, one person shouldn't just unilaterally undo it.  If something
needs changing, it should be discussed.  Everyone overwriting everyone
else's changes just leads to chaos.

-- 
sam th
sa...@ccs.neu.edu
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread John Clements


On Nov 30, 2009, at 7:34 PM, Sam TH wrote:

On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay   
wrote:

An update -- Matthew has agreed to take over this code and to
(eventually) add a corresponding command line option to control the
"addon-dir".  I have repeated the test steps above with the latest
changes from the trunk, and merged my changes onto the trunk.


I missed this, and I already undid it.  I will re-commit later  
tonight

with a command line option, and with reading the environment variable
once.  (Which means that your C-side commit will be split into a
separate piece that will read the variable.)


I really don't think that this is a good way to manage our project -
dueling commits and reverts.  Once something is discussed and decided
upon, one person shouldn't just unilaterally undo it.  If something
needs changing, it should be discussed.  Everyone overwriting everyone
else's changes just leads to chaos.


If there's an exception to this, it's Eli.  That is, I think the  
"buildmaster" is the one person you have to trust to make any change,  
anywhere in the tree.


John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread Jay McCarthy
+1

On Mon, Nov 30, 2009 at 8:42 PM, John Clements
 wrote:
>
> On Nov 30, 2009, at 7:34 PM, Sam TH wrote:
>
>> On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay  wrote:

 An update -- Matthew has agreed to take over this code and to
 (eventually) add a corresponding command line option to control the
 "addon-dir".  I have repeated the test steps above with the latest
 changes from the trunk, and merged my changes onto the trunk.
>>>
>>> I missed this, and I already undid it.  I will re-commit later tonight
>>> with a command line option, and with reading the environment variable
>>> once.  (Which means that your C-side commit will be split into a
>>> separate piece that will read the variable.)
>>
>> I really don't think that this is a good way to manage our project -
>> dueling commits and reverts.  Once something is discussed and decided
>> upon, one person shouldn't just unilaterally undo it.  If something
>> needs changing, it should be discussed.  Everyone overwriting everyone
>> else's changes just leads to chaos.
>
> If there's an exception to this, it's Eli.  That is, I think the
> "buildmaster" is the one person you have to trust to make any change,
> anywhere in the tree.
>
> John
>
>
> _
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
>



-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-11-30 Thread Robby Findler
+1.

(altho in this particular case, if Eli had emailed again, that would
probably have been better.)

Robby

On Mon, Nov 30, 2009 at 9:52 PM, Jay McCarthy  wrote:
> +1
>
> On Mon, Nov 30, 2009 at 8:42 PM, John Clements
>  wrote:
>>
>> On Nov 30, 2009, at 7:34 PM, Sam TH wrote:
>>
>>> On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay  wrote:
>
> An update -- Matthew has agreed to take over this code and to
> (eventually) add a corresponding command line option to control the
> "addon-dir".  I have repeated the test steps above with the latest
> changes from the trunk, and merged my changes onto the trunk.

 I missed this, and I already undid it.  I will re-commit later tonight
 with a command line option, and with reading the environment variable
 once.  (Which means that your C-side commit will be split into a
 separate piece that will read the variable.)
>>>
>>> I really don't think that this is a good way to manage our project -
>>> dueling commits and reverts.  Once something is discussed and decided
>>> upon, one person shouldn't just unilaterally undo it.  If something
>>> needs changing, it should be discussed.  Everyone overwriting everyone
>>> else's changes just leads to chaos.
>>
>> If there's an exception to this, it's Eli.  That is, I think the
>> "buildmaster" is the one person you have to trust to make any change,
>> anywhere in the tree.
>>
>> John
>>
>>
>> _
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>>
>>
>
>
>
> --
> Jay McCarthy 
> Assistant Professor / Brigham Young University
> http://teammccarthy.org/jay
>
> "The glory of God is Intelligence" - D&C 93
> _
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-12-01 Thread Matthias Felleisen


Eli, people don't commit random stuff to the trunk. What's going in -- 
especially into the base of 'remote' people -- is done in a responsible manner. 
I am sure that if you were around and accessible Carl and Ryan and Sam and 
Stevie and everyone would ask you on how to proceed. As it is, Carl asked me 
and I said 'propose X to Matthew' and Matthew agreed to some variant. So when 
you see such an unusual commit, PLEASE ask the committer on what's going on and 
don't just undo things. If/when the nature of the developer community changes, 
we will entrust you with more enforcement (especially rejection) power. Until 
then, let's navigate this in a friendlier manner -- Matthias

_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-12-01 Thread Eli Barzilay
On Nov 30, Sam TH wrote:
> On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay  wrote:
> >
> > I missed this, and I already undid it. [...]
> 
> [...] Once something is discussed and decided upon, one person
> shouldn't just unilaterally undo it.  [...]

Yes, this was discussed, one decision was (a) it should be added with
a flag, and another "decision" (for lack of any objections) was to not
make it re-use the environment variable on each use of
`find-system-path'.  Due to these decisions, I assumed that Carl would
do the necessary work before committing on the trunk -- and when I saw
a commit that didn't include that, it was easier for me to revert and
re-do.

If the commit message had indicated that this is known to be broken
wrt to these decisions and that Matthew intends to fix it, I wouldn't
have reversed it and probably wouldn't have done the work myself.
Same goes for the explanation email that came after the commit, which
I only saw after I started my work.

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-12-01 Thread Eli Barzilay
(And to clarify this point: this was not rejection, it was
"volunteering" to finish the work.)


On Dec  1, Matthias Felleisen wrote:
> 
> Eli, people don't commit random stuff to the trunk. What's going in
> -- especially into the base of 'remote' people -- is done in a
> responsible manner. I am sure that if you were around and accessible
> Carl and Ryan and Sam and Stevie and everyone would ask you on how
> to proceed. As it is, Carl asked me and I said 'propose X to
> Matthew' and Matthew agreed to some variant. So when you see such an
> unusual commit, PLEASE ask the committer on what's going on and
> don't just undo things. If/when the nature of the developer
> community changes, we will entrust you with more enforcement
> (especially rejection) power. Until then, let's navigate this in a
> friendlier manner -- Matthias

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-12-01 Thread Robby Findler
Thanks, Eli. Its nice to see you pitching in on stuff like that.

Robby

On Tue, Dec 1, 2009 at 9:23 AM, Eli Barzilay  wrote:
> (And to clarify this point: this was not rejection, it was
> "volunteering" to finish the work.)
>
>
> On Dec  1, Matthias Felleisen wrote:
>>
>> Eli, people don't commit random stuff to the trunk. What's going in
>> -- especially into the base of 'remote' people -- is done in a
>> responsible manner. I am sure that if you were around and accessible
>> Carl and Ryan and Sam and Stevie and everyone would ask you on how
>> to proceed. As it is, Carl asked me and I said 'propose X to
>> Matthew' and Matthew agreed to some variant. So when you see such an
>> unusual commit, PLEASE ask the committer on what's going on and
>> don't just undo things. If/when the nature of the developer
>> community changes, we will entrust you with more enforcement
>> (especially rejection) power. Until then, let's navigate this in a
>> friendlier manner -- Matthias
>
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
> _
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev


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

2009-12-01 Thread Carl Eastlund
On Tue, Dec 1, 2009 at 10:19 AM, Eli Barzilay  wrote:
> On Nov 30, Sam TH wrote:
>> On Mon, Nov 30, 2009 at 9:17 PM, Eli Barzilay  wrote:
>> >
>> > I missed this, and I already undid it. [...]
>>
>> [...] Once something is discussed and decided upon, one person
>> shouldn't just unilaterally undo it.  [...]
>
> Yes, this was discussed, one decision was (a) it should be added with
> a flag, and another "decision" (for lack of any objections) was to not
> make it re-use the environment variable on each use of
> `find-system-path'.  Due to these decisions, I assumed that Carl would
> do the necessary work before committing on the trunk -- and when I saw
> a commit that didn't include that, it was easier for me to revert and
> re-do.

The problem here is that we have no policy about who makes decisions
about the trunk.  I find this process very frustrating -- I put lots
of effort into making sure what I committed was acceptable and
addressed all necessary issues, so that my commit would not be wasted.
 Despite all my effort (a long thread on plt-dev, consulting Matthias,
consulting Matthew, multiple rounds of merging changes from the trunk,
rebuilding, and testing), it wasn't good enough.  The code needed to
be taken out immediately for a rewrite some time later.

I'm sure Eli finds it frustrating, too -- he contributed a lot to that
thread on plt-dev, only to see a commit that didn't live up to what he
thought had been decided about the feature.  I doubt he wanted to
spend his Monday night rewriting my code, and I appreciate his efforts
to do so.

What is our policy on committing code to the trunk?  How do I know
when something is good enough?  Who decides?  I have no idea, and it
makes me very reluctant to put my time into anything else that goes
into the trunk if I have no way of predicting that it might be kept or
not.

(I recognize that, in this case, the feature was kept.  However, if
the details had been only slightly different, it might not have been.
Furthermore, since Eli had to take out my code and rewrite it, none of
my code itself was kept, and the effort I made to write and test it
did not pay off.)

--Carl
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev