[plt-scheme] Version incompatibilities in PLaneT packages
On 3/21/06, Robby Findler <robby at cs.uchicago.edu> wrote:
> PLaneT could indeed act as you want, but early on Jacob and I decided
> to outlaw this one and see how often it came up (this is the first
> report we're hearing, FWIW).
>
> The danger is that there is some state (often this state is in the form
> of define-structs created multiple times but it could be anything) in
> the module that flows from one of the instances of the module back to
> the other one. Without planet, this cannot happen and we didn't want to
> introduce this possibility.
>
> Possibly this could be relaxed to only a single instance per major
> version number, instead of a single instance ever.
I see your point - some modules really want this error message, but in
general any other module can be severely limited by it. Is it
possible to configure this on a per-package basis? By default, a
module would be "safe to duplicate", for the same or different version
numbers, but a version with a declaration like
(do-not-load-multiple-copies-of-me) in it would give the error message
I saw.
I think this kind of error message will creep up over time; it's
fundamentally a problem with legacy code, and putting it in early to
"see how it goes" will result in silently spoiling a lot of old code
that would otherwise be usable in perpetuity. Any code in planet that
links against specific major versions of other code in planet will
become obsolete as soon as its dependencies update.
--
Carl Eastlund
"Cynical, but technically correct."