[squeak-dev] The Trunk: Collections.spur-nice.622.mcz
Eliot Miranda
eliot.miranda at gmail.com
Mon May 4 21:08:58 UTC 2015
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?
>
> 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
>>>
>>>
>
>
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150504/d29cf565/attachment.htm
More information about the Squeak-dev
mailing list
|