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

Eliot Miranda eliot.miranda at gmail.com
Mon May 4 21:08:15 UTC 2015


On Mon, May 4, 2015 at 1:41 PM, Levente Uzonyi <leves at elte.hu> 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.
>

Thanks, that got me unblocked.


>
> 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).


The Monticello package patching part of the bootstrap creates corresponding
update.spur updates.  Which specific update is the one that ensures
safety?  I may have missed it through a bug.

BTW, 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.


>
> 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
>>
>>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150504/4841ac0b/attachment-0001.htm


More information about the Squeak-dev mailing list