OK, the lightbulb is now on in my head
and I got it wrong the first time
.
The reason that the
defined class instance variable is referenced directly is exactly so as not to need the prereq. The reference is always in #loaded/#removing methods which should only be present in development images or ICs, never reduced-runtime images. EmImageSupport is in the Kernel IC, so all is good in an IC'ed runtime. If EmImageSupport was prereq'ed, at least some part of it would be brought into every reduced-runtime image (where it is not needed).
So, the right answer is to do exactly what the SST apps do, reference the
defined class instance variable directly. Of course, it would be nice to have a comment somewhere (maybe in the #defined method) explaining this.
John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.