QA in Squeak (was: Re: [Bug][Fix] Setting copy/paste-key preference under Windowsdoesnot work)

Andreas Raab andreas.raab at gmx.de
Mon Dec 6 18:55:05 UTC 2004


Folks,

Sometimes I really don't know whether to laugh or to cry when it comes to 
the random eye-ball principle of reviewing fixes.

Lex wrote (in an entirely unrelated thread):
> Anyway, I agree on the change to the last line, that #true should be
> true.  Doh!  Someone should do an image scan for every true, false, or
> nil that is in a literal array....

The change that we're looking at here is was made in update 
5736nilTrueFalseInLiteralArray-avi which resulted from a discussion about 
whether nil, true and false in literal arrays should be compiled as symbols 
or not. While I don't mind the decision being made that these should be 
compiled to the literal objects instead of the symbols it really drives me 
crazy that not a single of the reviewers of that change to a low-level, 
high-impact area (we're talking about Scanner here mind you; this is even 
lower-level than a syntax change!) spent half a second to think about what 
this change means to the existing system, e.g., what might break because of 
it.

It's not hard to find out you know - simply browsing the "senders" of nil, 
true and false and checking where they are used in the existing system gives 
you a perfect idea what parts might be affected. I will show you a few here:

ClassBuilder>>reservedNames
Player>>acceptableScriptNameFrom:forScriptCurrentlyNamed:
StandardScriptingSystem>>acceptableSlotNameFrom:forSlotCurrentlyNamed:asSlotNameIn:world:
ColorType>>updatingTileForTarget:partName:getter:setter:
DataType>>updatingTileForTarget:partName:getter:setter:
EToyVectorVocabulary>>eToyVectorTable
ExternalData>>fields
Win32Handle>>fields
X11Drawable>>fields
X11GC>>fields

In other words, if you think about the implications for two seconds and just 
briefly scan over the affected places you can see that the change has a good 
chance of breaking just about THREE major parts of Squeak: Recompilation of 
all classes, eToys, FFI. And this doesn't even include the parts it already 
potentially DID break, such as everything in external packages.

It seems to me that changes with such major implications ought to be a 
little more carefully looked at than by just say "(et) works for me". I am 
MAJORLY pissed off that we start doing these random eye-ball reviews in 
parts of Squeak that will affect its suitability for everyone - how posting 
a GC, or method lookup changes and have a few people who understand next to 
nothing about the VM and the implications of such a change say "works for 
me"?

I am *really* pissed off. I am pissed off to the point that I am proposing a 
change in the current reviewing and approval policies in a way that certain 
areas (which coincidentally include compiler and vm) can ONLY be reviewed 
and approved by people who have shown their qualification in this area. NOT 
by Joe Blow "works for me (et)".

Regards,
  - Andreas




More information about the Squeak-dev mailing list