Hi Alistair

This is my mistake! I introduced this bug when I transformed
theMetaClass to classSide
Now I was paying super attention and I did not touch theMetaClass even
when class would have been far enough.
So do you have a scenario? So that I can try to have a look.
Unfortunately I was away from home and lab since a week and I may have
problem to allocate concentrated time.
But I will try.
Tx for reporting this!

Stef


On Sun, Feb 25, 2018 at 3:48 PM, Alistair Grant <[email protected]> wrote:
> Hi Everyone,
>
> I'm working on integrating the file attribute primitives in to the main
> code during bootstrap.
>
> Class methods for FileAttributesPluginPrims are written out as:
>
>
>
> !FileAttributesPluginPrims classSide methodsFor: 'initialize' stamp: 'nil'!
> reset
> "Reload the masks"
>
> Default := nil.! !
>
>
> As you can see, the class name is written with "classSide" instead of
> "class", resulting in the method quietly being ignored during file in.
>
> This comes about in:
>
>
> MCStWriter>>writeMethodPreamble: definition
>     self chunkContents: [:str |
>         stream bang.
>         str nextPutAll: definition fullClassName;
>             nextPutAll: ' methodsFor: ';
>             nextPutAll: definition category asString printString;
>             nextPutAll: ' stamp: ';
>             nextPutAll: definition timeStamp asString printString
>         ]
>
>
> which calls:
>
>
> MCMethodDefinition>>fullClassName
> "Using #class selector for classes for backwards compatibility"
>
>     ^ self classIsMeta
>         ifFalse: [self className]
>         ifTrue: [
>             (self actualClass isNil or: [ self actualClass isTrait ])
>                 ifFalse: [self className, ' class']
>                 ifTrue: [self className, ' classSide']]
>
>
>
> Because FileAttributesPluginPrims doesn't exist in the image (the code
> is read in from the git repository and being written out to a .st file),
> #actualClass returns nil, resulting in "classSide" being used instead of
> "class".
>
> I've never seen "classSide" used in chunk format.  Is there any time
> "classSide" is valid, and any suggestions on how this should be fixed?
> (My first thought is to just change MCStWriter>>writeMethodPreamble: to
> only write "class").
>
>
>
> Thanks,
> Alistair
>

Reply via email to