AW: AW: [modules] Top 10 ways in which the modules system sucks

Andreas Raab Andreas.Raab at gmx.de
Fri Feb 1 00:11:52 UTC 2002


Henrik,

> > Object subclass: #MumbleObject
> > instanceVariableNames: ''
> > classVariableNames: 'MumbleClassVar'
> > poolDictionaries: 'TextConstants'
> > category:'Foo-Bar'!
> 
> My guess is that this is because Pools don't exist any longer 
> :-/ because they are unnecessary and Modules can do the same thing
> in a better way. TextConstants, and the other pools, are now Modules.
> You can send the messages.

Okay, thanks for the clarification. If so, then I need to report two
bugs and ask a question. First bug is that some classes still use pool
dictionaries (oops) and I believe that the conversion process didn't
quite get them right. How do we fix those in particular considering that
custom images may contain many classes that may reference pools?! The
other bug is that apparently the set of dictionary messages sent from
the compiler is not understood by modules. I don't think they should be
understood (modules are _no_ dictionaries) or at least in a rather
limited way (through their exported names?!). But we need to fix those
users of dictionary access messages and the above exposes one of them.

The question is: What do we do about backward compatibility?! In my
case, the above was just a very simple example of a CS that I was
actually filing in, which used TextConstants and was _supposed_ to just
work. I think we need to aim at backward compatibility at the point of
just filing in classes - it should not be required that in order to just
file in an old bit of Squeak which (for instance) happens to use pool
dicts we need to rewrite all the references in the old code.


> Now you don't really need to have TextConstants as a pool 
> var, do you? ;-)

See above. It's been old code and, yes, I needed it.

> 1. Send messages to TextConstants to get the definitions: 
> "NewYork" --> TextConstants NewYork, or 2. In the preamble
> to your file, create your module and declare TextConstants
> as an external module.

See above. It's been old code and, no, I really don't want to be forced
to do this.

> > I'll fix that if you can give me a few hints at what to look for.
> 
> Alice and Wonderlands use pool variable names that are 
> *lowercase* and they insist that the names should be Strings,
> not Symbols. The first will work anyway, but I did not want to
> hack in support for the second one, so this
> will probably just break some things.


Okay, I'll look what I can do - I think I know how to fix this.

Cheers,
  - Andreas





More information about the Squeak-dev mailing list