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

Levente Uzonyi leves at elte.hu
Mon May 4 20:41:53 UTC 2015


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