[squeak-dev] Re: worst crash yet trying to load stuff from Packages Universe in 3.10.2....

Andreas Raab andreas.raab at gmx.de
Tue Dec 16 05:00:30 UTC 2008


Greg A. Woods; Planix, Inc. wrote:
>> Puck would like to know exactly how to recreate this failure.
>> (So he can try it out on some of his "friends" :).
> 
> Looks like all I had to do was try to load SmallDEVS from the default 
> package universe.

No surprise. Polymorph as a class called LabelMorph. SmallDEVS has a 
class called LabelMorph. They don't agree. So much for not having name 
spaces.

>> Test coverage in squeak is a recent thought.
> 
> Perhaps, but I didn't have anywhere near this much trouble with 2.8 or 
> 3.0.  Squeak's QA has completely disintegrated, at least if you consider 
> the default PU button to be a part of Squeak.

Well, that's both true and not. A thing to keep in mind here is there 
wasn't even remotely as much stuff available at your fingertips in those 
days. SqueakMap did not exist in 2.8, neither did Universes. There were 
a few better known projects that you could easily find, everything else 
was basically inaccessible. And with variety come all the packaging and 
scaling problems that were never addressed in Squeak.

>> First time heavy users find the integration bugs.
>> That would be you.
> 
> Hah!  If I'm a "heavy user" then I can't imagine how you would describe 
> someone who really wants to dive into Squeak and do something major.  
> I'm still just learning here.  I'm not even interested in doing any of 
> the really fancy database, web, or image maker stuff.

There are misunderstandings on both ends here. As a first-time user you 
naturally expect those things to "just work" so calling you a "heavy 
user" is not a good characterization for what you're doing. I would call 
this "exploratory loading" of packages which is probably the worst kind 
for integrators to deal with unless they have automated tools for 
detecting those package conflicts.

As for doing something major: The first thing you leave at home is the 
idea of loading random untested code from the net and expect it to work 
in your project. You start with a nice stable base image that you expect 
to use for several years and build on top of that.

When you need something, you look at the options, see if one suits your 
task, review the code to see whether it's good enough to reuse or 
whether you're better off rewriting it from scratch, and then you port 
it into your environment. I've done this many times and if you start 
with the expectation that you *will* have to actually port this into 
your environment you know that this will be a sizable investment but 
that at the end of the process you have something that works and that 
you can support over time.

I have done this many times. It works quite well if you are realistic 
about the investment you are making.

>> Oldtimers, by instinct born of experience, tend to treat squeak tenderly.
>> As if they are walking on eggs that might break at any instant
>> and give off a rotten stentch.
> 
> Having played with 2.8 and 3.0 in days gone by I'd have to say that a 
> great deal of this stench is quite recent.

I think yours is a bit of a case of selective memory ;-) I've been 
playing in those days too and I do not recall even five projects that 
one could easily find on the net.

While I agree that there is some completely needless recent breakage 
that makes things significantly worse than they have to be, I would say 
that the majority of the problems you are seeing are the result of 
having more options available at your fingertips.

And the best way I can think about addressing them would be by having 
automated tests which can be run all the time and which test which 
packages load together and which ones fail. This information could then 
be used to inform the user about the conflict and avoid random crashes.

Cheers,
   - Andreas



More information about the Squeak-dev mailing list