[squeak-dev] The Trunk: Collections.spur-nice.622.mcz
Eliot Miranda
eliot.miranda at gmail.com
Thu May 7 20:19:57 UTC 2015
On Thu, May 7, 2015 at 10:10 AM, Eliot Miranda <eliot.miranda at gmail.com>
wrote:
> Hi Levente,
>
> On Thu, May 7, 2015 at 9:34 AM, Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
>
>> Hi Levente,
>>
>> 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.
>>
>>
>> Yes. I see this. The bootstrap is clearly broken. I'll look at this
>> right away.
>>
>
> Ah, MCMethodDefinition class>>className: classString
> classIsMeta: metaBoolean
> selector: selectorString
> category: catString
> timeStamp: timeString
> source: sourceString
> ^ self instanceLike:
> (self new initializeWithClassName: classString
> classIsMeta: metaBoolean
> selector: selectorString
> category: catString
> timeStamp: timeString
> source: sourceString)
>
> this will share definitions, and given that I'm modifying definitions as
> part of the patch process I guess I could end up modifying a definition
> that was inadvertently shared. I'm rewriting to avoid use of shared
> instances. i.e. I will use MCMethodDefinition new initializeWithClassName
> ... instead of MCMethodDefinition className: ...
>
Ah, the issue is only that the bootstrap is confused by two packages with
the same version number, i.e. Collections.spur-ul.624
and Collections.spur-tfel.624. Stupidly I didn't check before uploading
new versions of the Spur packages. Forgive the noise. But at least I know
what to fix now.
>
>
>>
>>>
>>>
>>> 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
>>
>
>
>
> --
> best,
> Eliot
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150507/23ef0677/attachment-0001.htm
More information about the Squeak-dev
mailing list
|