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

Eliot Miranda eliot.miranda at gmail.com
Mon May 4 18:13:31 UTC 2015


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.

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150504/75b5f264/attachment-0001.htm


More information about the Squeak-dev mailing list