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 >
