Spur Bootstrap (was: Re: [squeak-dev] The Trunk: Collections.spur-nice.622.mcz)

Levente Uzonyi leves at elte.hu
Tue May 5 10:27:54 UTC 2015


It seems to me that the tool which creates the .spur versions of the 
packages is running in an updated non-spur Trunk image, and it somehow 
added its own version of #isAlphaNumeric to Collections.spur-tfel.623.

The method in Collections.spur-tfel.623 is:

 	isAlphaNumeric
 		"Answer whether the receiver is a letter or a digit."

 		self asInteger > 255 ifFalse: [ ^((ClassificationTable at: self asInteger + 1) bitAnd: AlphaNumericMask) > 0 ].
 		^self encodedCharSet isAlphaNumeric: self

While in Collections-tfel.623 it is:

 	isAlphaNumeric
 		"Answer whether the receiver is a letter or a digit."

 		^self encodedCharSet isAlphaNumeric: self

The version which got patched is from Collections-ul.628 (which merges 
Collections-ul.625):

 	isAlphaNumeric
 		"Answer whether the receiver is a letter or a digit."

 		value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: AlphaNumericMask) > 0 ].
 		^self encodedCharSet isAlphaNumeric: self

If I'm right, then we can work around the problem by updating the current 
methods in Trunk to check whether the AlphaNumericMask is initialized 
(along with DigitBit and LetterMask). Then update the image which creates, 
the .spur versions, and finally recreate the Collections.spur packages 
starting from tfel-623.

Levente

On Mon, 4 May 2015, Eliot Miranda wrote:

> 
> 
> On Mon, May 4, 2015 at 1:55 PM, Levente Uzonyi <leves at elte.hu> wrote:
>       I tried to update an old Spur image, and somehow Character >> #isAlphaNumeric from Collections.spur-ul.628 (which should be loaded by
>       update.spur-ul.311) appeared in the image, while loading Collections.spur-tfel.623 from update.spur-mt.310.
>       Assuming that the load order of the packages is untouched, I suspect that the method got merged in from the non-spur branch of
>       Collections somehow.
> 
> 
> I think the multiple ancestry that one ends up with in Spur packages, e.g. that Collections.spur-abc.123 inherits from
> both Collections.spur-xyz-122 and Collections.abc-123, causes issues for the update merge.  I wonder whether that could be the cause?


More information about the Squeak-dev mailing list