[squeak-dev] The Trunk: Collections.spur-nice.622.mcz

Levente Uzonyi leves at elte.hu
Mon May 4 20:55:05 UTC 2015


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.

Levente

On Mon, 4 May 2015, Levente Uzonyi wrote:

> On Mon, 4 May 2015, Eliot Miranda wrote:
>
>> This breaks my image, dumping it into the emergency evaluator, I *think* 
>> because the new LetterMask, AlphaNumbericMask and DigitBit variables are 
>> not handledf correctly by the Spur bootstrap.  Sigh.  So for
>> those of you using Spur please *don't* update until I've fixed the 
>> bootstrap.
>> You know, by /not/ releasing, we are delaying because now I am fixing the 
>> bootstrap to keep up with development, instead of us having released, and 
>> being able to freely commit on Spur.  We are now wasting
>> cycles.  At least I am.
>
> Multilingual-ul.209 should be loaded before Collections-ul.627, and only then 
> should Collections-ul.628 be loaded.
>
> In the regular Trunk, I added an update map which loads Multilingual-ul.209 
> and Collections-ul.627 first. (Multilingual was before Collections in the 
> map, so the load order was already guaranteed).
>
> Levente
>
>> 
>> On Mon, May 4, 2015 at 10:46 AM, <commits at source.squeak.org> wrote:
>>       Eliot Miranda uploaded a new version of Collections to project The 
>> Trunk:
>>       http://source.squeak.org/trunk/Collections.spur-nice.622.mcz
>>
>>       ==================== Summary ====================
>>
>>       Name: Collections.spur-nice.622
>>       Author: eem
>>       Time: 4 May 2015, 10:45:05.244 am
>>       UUID: 02450614-82e9-4d33-95fd-3fede06790d2
>>       Ancestors: Collections-nice.622, Collections.spur-mt.621
>>
>>       Collections-nice.622 patched for Spur by 
>> SpurBootstrapMonticelloPackagePatcher Cog-eem.262
>>
>>       #toBraceStack: is not used for compiling { } for so long that it's 
>> really time to get rid of it.
>>
>>       Symbol>>numArgs: does not need to copy self into a temp var.
>>
>>       =============== Diff against Collections-nice.622 ===============
>>
>>       Item was changed:
>>         ----- Method: Array>>elementsExchangeIdentityWith: (in category 
>> 'converting') -----
>>         elementsExchangeIdentityWith: otherArray
>>       +       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of the
>>       +        receiver to be replaced by pointers to the corresponding 
>> elements of otherArray.
>>       +        At the same time, all pointers to the elements of otherArray 
>> are replaced by
>>       +        pointers to the corresponding elements of this array.  The 
>> identityHashes remain
>>       +        with the pointers rather than with the objects so that 
>> objects in hashed structures
>>       +        should still be properly indexed after the mutation."
>>       -       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of this array to be replaced by pointers to the 
>> corresponding elements of otherArray.  At the same time, all
>>       pointers to the elements of otherArray are replaced by pointers to 
>> the corresponding elements of this array.  The identityHashes remain with 
>> the pointers rather than with the objects so that
>>       objects in hashed structures should still be properly indexed after 
>> the mutation."
>>
>>       +       <primitive: 128 error: ec>
>>       +       ec == #'bad receiver' ifTrue:
>>       +               [^self error: 'receiver must be of class Array'].
>>       +       ec == #'bad argument' ifTrue:
>>       +               [^self error: (otherArray class == Array
>>       +                                               ifTrue: ['arg must be 
>> of class Array']
>>       +                                               ifFalse: ['receiver 
>> and argument must have the same size'])].
>>       +       ec == #'inappropriate operation' ifTrue:
>>       +               [^self error: 'can''t become immediates such as 
>> SmallIntegers or Characters'].
>>       +       ec == #'no modification' ifTrue:
>>       +               [^self error: 'can''t become immutable objects'].
>>       +       ec == #'object is pinned' ifTrue:
>>       +               [^self error: 'can''t become pinned objects'].
>>       +       ec == #'insufficient object memory' ifTrue:
>>       +               [Smalltalk garbageCollect < 1048576 ifTrue:
>>       +                       [Smalltalk growMemoryByAtLeast: 1048576].
>>       +                ^self elementsExchangeIdentityWith: otherArray].
>>       +       self primitiveFailed!
>>       -       <primitive: 128>
>>       -       otherArray class == Array ifFalse: [^ self error: 'arg must 
>> be array'].
>>       -       self size = otherArray size ifFalse: [^ self error: 'arrays 
>> must be same size'].
>>       -       (self anySatisfy: [:obj | obj class == SmallInteger]) ifTrue: 
>> [^ self error: 'can''t become SmallIntegers'].
>>       -       (otherArray anySatisfy: [:obj | obj class == SmallInteger]) 
>> ifTrue: [^ self error: 'can''t become SmallIntegers'].
>>       -       self with: otherArray do:[:a :b| a == b ifTrue:[^self 
>> error:'can''t become yourself']].
>>       -
>>       -       "Must have failed because not enough space in forwarding 
>> table (see ObjectMemory-prepareForwardingTableForBecoming:with:twoWay:).  
>> Do GC and try again only once"
>>       -       (Smalltalk bytesLeft: true) = Smalltalk 
>> primitiveGarbageCollect
>>       -               ifTrue: [^ self primitiveFailed].
>>       -       ^ self elementsExchangeIdentityWith: otherArray!
>>
>>       Item was changed:
>>         ----- Method: Array>>elementsForwardIdentityTo: (in category 
>> 'converting') -----
>>         elementsForwardIdentityTo: otherArray
>>       +       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of the
>>       +        receiver to be replaced by pointers to the corresponding 
>> elements of otherArray.
>>       +        The identityHashes remain with the pointers rather than with 
>> the objects so that
>>       +        the objects in this array should still be properly indexed 
>> in any existing hashed
>>       +        structures after the mutation."
>>       +       <primitive: 72 error: ec>
>>       -       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of this array to be replaced by pointers to the 
>> corresponding elements of otherArray.  The identityHashes
>>       remain with the pointers rather than with the objects so that the 
>> objects in this array should still be properly indexed in any existing 
>> hashed structures after the mutation."
>>       -       <primitive: 72>
>>               self primitiveFailed!
>>
>>       Item was changed:
>>         ----- Method: Array>>elementsForwardIdentityTo:copyHash: (in 
>> category 'converting') -----
>>         elementsForwardIdentityTo: otherArray copyHash: copyHash
>>       +       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of the
>>       +        receiver to be replaced by pointers to the corresponding 
>> elements of otherArray.
>>       +        If copyHash is true, the identityHashes remain with the 
>> pointers rather than with the
>>       +        objects so that the objects in the receiver should still be 
>> properly indexed in any
>>       +        existing hashed structures after the mutation.  If copyHash 
>> is false, then the hashes
>>       +        of the objects in otherArray remain unchanged.  If you know 
>> what you're doing this
>>       +        may indeed be what you want."
>>       +       <primitive: 249 error: ec>
>>       -       "This primitive performs a bulk mutation, causing all 
>> pointers to the elements of this array to be replaced by pointers to the 
>> corresponding elements of otherArray.  The identityHashes
>>       remain with the pointers rather than with the objects so that the 
>> objects in this array should still be properly indexed in any existing 
>> hashed structures after the mutation."
>>       -       <primitive: 249>
>>               self primitiveFailed!
>>
>>       Item was changed:
>>       ==== ERROR ===
>>
>>       Error: Unrecognized class type
>>
>>       4 May 2015 5:47:40.493 pm
>>
>>       VM: unix - a SmalltalkImage
>>       Image: Squeak3.11alpha [latest update: #8824]
>>
>>       SecurityManager state:
>>       Restricted: false
>>       FileAccess: true
>>       SocketAccess: true
>>       Working Dir /home/squeaksource
>>       Trusted Dir /home/squeaksource/secure
>>       Untrusted Dir /home/squeaksource/My Squeak
>>
>>       MCClassDefinition(Object)>>error:
>>               Receiver: a MCClassDefinition(Character)
>>               Arguments and temporary variables:
>>                       aString:        'Unrecognized class type'
>>               Receiver's instance variables:
>>                       name:   #Character
>>                       superclassName:         #Magnitude
>>                       variables:      an OrderedCollection(a 
>> MCClassVariableDefinition(CharacterTable) a M...etc...
>>                       category:       'Collections-Strings'
>>                       type:   #immediate
>>                       comment:        'I represent a character by storing 
>> its associated Unicode as an unsig...etc...
>>                       commentStamp:   'eem 8/12/2014 14:53'
>>                       traitComposition:       nil
>>                       classTraitComposition:  nil
>>
>>       MCClassDefinition>>kindOfSubclass
>>               Receiver: a MCClassDefinition(Character)
>>               Arguments and temporary variables:
>>
>>               Receiver's instance variables:
>>                       name:   #Character
>>                       superclassName:         #Magnitude
>>                       variables:      an OrderedCollection(a 
>> MCClassVariableDefinition(CharacterTable) a M...etc...
>>                       category:       'Collections-Strings'
>>                       type:   #immediate
>>                       comment:        'I represent a character by storing 
>> its associated Unicode as an unsig...etc...
>>                       commentStamp:   'eem 8/12/2014 14:53'
>>                       traitComposition:       nil
>>                       classTraitComposition:  nil
>>
>>       MCClassDefinition>>printDefinitionOn:
>>               Receiver: a MCClassDefinition(Character)
>>               Arguments and temporary variables:
>>                       stream:         a WriteStream
>>               Receiver's instance variables:
>>                       name:   #Character
>>                       superclassName:         #Magnitude
>>                       variables:      an OrderedCollection(a 
>> MCClassVariableDefinition(CharacterTable) a M...etc...
>>                       category:       'Collections-Strings'
>>                       type:   #immediate
>>                       comment:        'I represent a character by storing 
>> its associated Unicode as an unsig...etc...
>>                       commentStamp:   'eem 8/12/2014 14:53'
>>                       traitComposition:       nil
>>                       classTraitComposition:  nil
>>
>>       [] in MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:
>>               Receiver: a MCDiffyTextWriter
>>               Arguments and temporary variables:
>>                       definition:     a WriteStream
>>                       s:      a MCClassDefinition(Character)
>>               Receiver's instance variables:
>>                       stream:         a WriteStream
>>                       initStream:     nil
>> 
>>
>>       --- The full stack ---
>>       MCClassDefinition(Object)>>error:
>>       MCClassDefinition>>kindOfSubclass
>>       MCClassDefinition>>printDefinitionOn:
>>       [] in MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:
>>        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>       String class(SequenceableCollection class)>>new:streamContents:
>>       String class(SequenceableCollection class)>>streamContents:
>>       MCDiffyTextWriter(MCTextWriter)>>chunkContents:
>>       MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:
>>       MCDiffyTextWriter(MCStWriter)>>visitClassDefinition:
>>       MCClassDefinition>>accept:
>>       [] in MCDiffyTextWriter(MCTextWriter)>>visitInFork:
>>       String class(SequenceableCollection class)>>new:streamContents:
>>       String class(SequenceableCollection class)>>streamContents:
>>       MCDiffyTextWriter(MCTextWriter)>>visitInFork:
>>       MCDiffyTextWriter>>writePatchFrom:to:
>>       MCDiffyTextWriter>>writeModification:
>>       [] in MCDiffyTextWriter>>writePatch:
>>       SortedCollection(OrderedCollection)>>do:
>>       MCDiffyTextWriter>>writePatch:
>>       SSDiffyTextWriter>>writePatch:
>>       [] in SSDiffyTextWriter>>writeVersion:for:
>>       BlockClosure>>on:do:
>>       SSDiffyTextWriter>>writeVersion:for:
>>       [] in SSEMailSubscription>>versionAdded:to:
>>       BlockClosure>>on:do:
>>       SSEMailSubscription>>versionAdded:to:
>>       [] in [] in SSProject>>versionAdded:
>>       [] in BlockClosure>>newProcess
>> 
>> 
>> 
>> 
>> --
>> best,Eliot
>> 
>


More information about the Squeak-dev mailing list