[squeak-dev] The Trunk: Monticello-dtl.674.mcz

David T. Lewis lewis at mail.msen.com
Thu Dec 28 06:17:18 UTC 2017


Hi Eliot,


On Wed, Dec 27, 2017 at 09:41:49PM -0800, Eliot Miranda wrote:
> Hi David,
> 
> 
> > On Dec 27, 2017, at 9:37 PM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> > 
> > Hi David,
> > 
> >    compiledCodeClassNames  is a mistake.  There are no restrictions on the number of subclasses of CompiledCode.  What tells us if a class is that if code is its format which is expressed in the type information in its class definition, /not/ its name.
> > 
> > _,,,^..^,,,_ (phone)
> 
> If your intent is to ease moving Code between Spur and prior versions then
> a) provide some special case for importing prior code, but do not impose that restriction on the current versions. 
> 
> b) Both the prior version and Spur express the compiled codeness of a class in the class's format, with the name being merely incidental.  One can back port the work to express that through the class definition.
> 

The failure occurs when reading an MCZ into a V3 image, when MCStReader>>classDefinitionFrom: 
creates a new MCClassDefinition from the information provided in a PseudoClass instance. The
PseudoClass does not contain the necessary information about compiled codeness.

This code path does not seem to be followed in a Spur image, I'm not entirely sure why.

> Restricting the code loader by recognizing specific class names puts toad blicks in the way of future code.  It is worse than isKindOf:
>

I agree but don't have a better solution to offer. It would be possible to
use to the actual class to which the PseudoClass refers, but I fear this
would not work in the case of a MCClassDefinition for a class that does not
yet exist in the image.

Dave
 


More information about the Squeak-dev mailing list