An uncomfortable question
Colin Putney
cputney at whistler.com
Thu Oct 31 09:38:14 UTC 2002
Daniel Joyce wrote the following in reference to Dean Swan's post :
> He's implying we'll end up with the equivalent of DLL Hell that Windows
> ( and to a lesser extent ) windows have.
>
> Linux survives in the fact that diff versions of the same libs can live
> together happily by using symbolic links, and ld. Simple, and works
> better than windows registry pain....
>
> Modules MUST support version dependency, and different versions of the
> same modules living on the host system if this is to work...
I agree that packages should be versioned, and that dependencies should
include version information. But I also think that having multiple
versions of a package installed in a single image would not be a good
idea. The benefits are not worth the complexity it would require.
Consider that images are not the same as operating systems. Linux can
have multiple versions of a library installed and allow different
executables to link against the versions they require. But you can't
have two different versions of a library linked into the same process
space. The Squeak parallel would be to have multiple versions of a
package available on SqueakMap and have different versions installed in
different images.
Now consider the complexity supporting this would introduce to Squeak.
The VM would have to take dependencies into account during method
lookups. You'd have to have separate namespaces for globals. The
Browser would have to present multiple versions of methods to the user,
the Compiler would have to store compiled methods in the right
namespace etc. That's all possible of course, but it's a low-level,
far-reaching change with deep implications.
And then there's the complexity cost at the user/developer level. Can
you imaging debugging in an image where there are different versions of
the same method floating around and the version that actually gets
execcuted depends on the class of the sender? Dear God!
Colin
More information about the Squeak-dev
mailing list
|