[plt-scheme] Jane Street Summer Project 2009

From: Richard Cobbe (cobbe at ccs.neu.edu)
Date: Tue Feb 3 21:48:12 EST 2009

On Tue, Feb 03, 2009 at 08:11:08PM -0600, Robby Findler wrote:
> On Tue, Feb 3, 2009 at 7:35 PM, Henk Boom <lunarc.lists at gmail.com> wrote:
> > 2009/2/3 Richard Cobbe <cobbe at ccs.neu.edu>:
> >> But this particular set of dependencies suggests to me that A should not be
> >> "in" either project 1 or project 2, but should rather be a library external
> >> to both projects.
> >>
> >> This breaks down, of course, because I haven't yet found a good way to
> >> manage these sorts of "external libraries," especially when they're not
> >> suitable for Planet submissions, for whatever reason.
> >
> > Would this be a good situation to use mzscheme's -S option? (I'm not
> > sure if drscheme has an equivalent setting somewhere)
> The module language has a setting for that (using that setting your
> program gets different collects than drscheme itself, which can be
> tricky if you're not careful). Or you can set the PLTCOLLECTS
> environment variable, of course.
> I don't know that that will help with the problem at hand, tho.

It doesn't, although one wouldn't know that from my original message.

The problem is not so much file management as interface management,
although it may be a consequence of my personal development style more than
anything else.

I'll often find myself hacking along on a project that uses one of these
external libraries that I've written myself.  If I'm in the zone, and I
discover that the library needs a non-backward-compatible change, I don't
want to put my original project on hold while I make the change to the
library and issue a new "release" (whatever that means).  I'm more likely
to decide that producing a new major version isn't worth the effort, so I
just make the change in-place and break other clients of the library.

Alternatively (and this is usually what I do for LaTeX), I just copy the
library directly into the project and make the change locally.  So existing
clients continue to work, but I get lots of copies of the library hanging
around, so I have to make bug fixes and improvements in multiple places.
(Using my version control's merging capability helps a bit here, but it too
is not a perfect solution.)

*That's* the problem I don't have a good solution for.  I think the right
strategy is to make issuing releases and managing multiple versions easier.
I have *no* idea how to go about that, though.  Planet dev links might help
here, at least in the case of PLT Scheme, but I'd like a more general
solution.  There's no LaTeX equivalent to Planet dev links, for instance.


Posted on the users mailing list.