[BUG][Modules] Beware! Pool constants visible globally

Andreas Raab Andreas.Raab at gmx.de
Fri Feb 1 23:31:56 UTC 2002


Folks,

If you run the module updates be _very_ careful about declaring instvars
and temps correctly _before_ you accept a method. It appears that all
globals formerly living in pool dictionaries are now visible globally!
In other words, if you get into a workspace and evaluate
	AmbientAlpha
you'll get the definition from B3DEngineConstants, if you evaluate
	Space
you'll get it from TextConstants, and if you evaluate
	above
you'll get it from WonderlandConstants.

BEWARE! WonderlandConstants has various constants that are _lower_ case.
In other words, if you write a method like

Object>>foo: bar
	above := bar.
	^above

the system will _not_ warn you that above is undeclared but rather
assign to the binding from WonderlandConstants. Ouch!

Anyone having an idea _why_ these are visible? Or even better, how to
fix this problem? I can't imagine that we introduced a module system
just to add _more_ globals... ;-)

Cheers,
  - Andreas





More information about the Squeak-dev mailing list