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