[plt-scheme] backwards compatibility and planet libraries
> Well, unless the linkage table gets cleared (planet -U). There should
> be a way to remove any linkage that points TO a particular package
> (ie, anyone who uses this package can upgrade to the latest available
> on the system), but I haven't implemented that yet.
Ah, that's exactly one of things I was wishing for. Blowing away all
linkages is swatting flies with a bazooka.
> Clear the linkage table and you should be okay. Why do you need to
> rerun setup-plt?
I was getting weird errors about the zos, that they weren't providing
required names. Rerunning setup-plt seemed to fix this. I'll pay more
attention next time it happens to see if I can give you more
information about what's happening.
On Wednesday, March 9, 2005, at 02:54 PM, Robby Findler wrote:
> At Wed, 09 Mar 2005 13:46:03 -0600, Jacob Matthews wrote:
>> When I initially started talking about PLaneT it was a major concern
>> of
>> several people who are familiar with current packaging systems that
>> these magic upgrades not happen; thus the linkage table.
>
> In fact, this is apparently the true problem of DLL Hell, according to
> Anders Hejlsberg (a C# / .Net guy):
>
> http://www.artima.com/intv/interop.html
A-ha. They immediately address my first quibble, which was "if a client
is relying on something that isn't in the contract, then the *client*
is at fault." But in practice, you often need to rely on a bug for
temporary workarounds. Allowing multiple version gives the client time
to safely upgrade their own code before switching to the fixed code (or
in bleaker situations, allows old, rotting clients to rely permanently
on the old version). I'm convinced. Thank you both.
So I suspect that perhaps I've been abusing the system by not
specifying a minor version number in my `require's. Should it even be
allowed at all to leave out the minor version?
In my case, it's just to save me from having to update all the client
modules every time I fix a bug in one planet package. Here's a thought:
it's often the case that all the modules in planet package A.plt
require the same version of planet package B.plt. If I could specify in
the info.ss of A.plt which version of B.plt I'm using, then I could
require B.plt without any version specified, and I'd only have to
update the version number in one place when there are new version of
B.plt.
Thank you both,
Dave