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 |
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, <[hidden email]> wrote: Eliot Miranda uploaded a new version of Collections to project The Trunk: best,
Eliot |
On Mon, May 4, 2015 at 1:13 PM, Eliot Miranda <[hidden email]> 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. I was having a similar thought just today because I needed an up-to-date Spur image and thought about asking whether you'd like someone to set that up as an automatic job, then realized, we just need to release. Which, we are. We are not "not releasing", we _are_ releasing, its just taking a bit longer than expected because there are still some bugs and loose ends (unrelated to Marcel's work) still needing tied up. Maintaining the separate branch and the bootstrap is a hassle, but it shouldn't be much longer. |
2015-05-04 20:24 GMT+02:00 Chris Muller <[hidden email]>: On Mon, May 4, 2015 at 1:13 PM, Eliot Miranda <[hidden email]> wrote: I failed to sea why historical compilation of brace construct would cause such grief, but I understand now, these are the changes of Levente relative to Character classification... > You know, by /not/ releasing, we are delaying because now I am fixing the |
2015-05-04 21:14 GMT+02:00 Nicolas Cellier <[hidden email]>:
hem, I see my English improving every day, but it's a long road...
|
In reply to this post by Eliot Miranda-2
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, <[hidden email]> 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 > > |
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. 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, <[hidden email]> 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 >> > |
In reply to this post by Levente Uzonyi-2
On Mon, May 4, 2015 at 1:41 PM, Levente Uzonyi <[hidden email]> wrote: On Mon, 4 May 2015, Eliot Miranda wrote: Thanks, that got me unblocked.
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.
best,
Eliot |
In reply to this post by Levente Uzonyi-2
On Mon, May 4, 2015 at 1:55 PM, Levente Uzonyi <[hidden email]> 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. 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?
best,
Eliot |
In reply to this post by Chris Muller-3
On 04.05.2015, at 20:24, Chris Muller <[hidden email]> wrote: > On Mon, May 4, 2015 at 1:13 PM, Eliot Miranda <[hidden email]> 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. > > I was having a similar thought just today because I needed an > up-to-date Spur image and thought about asking whether you'd like > someone to set that up as an automatic job, then realized, we just > need to release. > > Which, we are. We are not "not releasing", we _are_ releasing, its > just taking a bit longer than expected because there are still some > bugs and loose ends (unrelated to Marcel's work) still needing tied > up. Maintaining the separate branch and the bootstrap is a hassle, > but it shouldn't be much longer. Just to mention: http://build.squeak.org/job/SqueakTrunk/ tells us that a) we have 15 tests failing. KernelTests.Numbers.LargePositiveIntegerTest.testReciprocalModulo Tests.Dependencies.PackageDependencyTest.testToolBuilder Tests.Compiler.DecompilerTests.testDecompilerInClassesSAtoSM Tests.Compiler.ClosureCompilerTest.testSourceRangeAccessForBlueBookInjectInto Tests.Compiler.DecompilerTests.testDecompilerInClassesFNtoFZ Tests.Compiler.DecompilerTests.testDecompilerInClassesLAtoLM Tests.Exceptions.ExceptionTests.testHandlerFromActio Tests.Dependencies.PackageDependencyTest.testNetwork Tests.Dependencies.PackageDependencyTest.testPreferenceBrowser Tests.Release.ReleaseTest.testNoObsoleteClasses ToolsTests.Browser.BrowserTest.testSelectClassNamedPreservesPlace MultilingualTests.Display.FontTest.testParagraph MultilingualTests.Display.FontTest.testParagraphFallback SqueakSSL.Tests.SqueakSSLTest.testYahooOpenID CollectionsTests.Text.TextAttributesScanningTest.testPluggableTextAttribute b) sometimes the current cog vm runs into a crash when executing TraitMethodDescriptionTest>>#testCategories (see http://build.squeak.org/job/SqueakTrunk/1413/console ) I'd rather have this to be the metric for the release… Best regards -Tobias |
On Mon, May 4, 2015 at 3:10 PM, Tobias Pape <[hidden email]> wrote:
and how can we get to zero defects if we keep on developing?
best,
Eliot |
In reply to this post by Eliot Miranda-2
It seems to me that the tool which creates the .spur versions of the
packages is running in an updated non-spur Trunk image, and it somehow added its own version of #isAlphaNumeric to Collections.spur-tfel.623. The method in Collections.spur-tfel.623 is: isAlphaNumeric "Answer whether the receiver is a letter or a digit." self asInteger > 255 ifFalse: [ ^((ClassificationTable at: self asInteger + 1) bitAnd: AlphaNumericMask) > 0 ]. ^self encodedCharSet isAlphaNumeric: self While in Collections-tfel.623 it is: isAlphaNumeric "Answer whether the receiver is a letter or a digit." ^self encodedCharSet isAlphaNumeric: self The version which got patched is from Collections-ul.628 (which merges Collections-ul.625): isAlphaNumeric "Answer whether the receiver is a letter or a digit." value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: AlphaNumericMask) > 0 ]. ^self encodedCharSet isAlphaNumeric: self If I'm right, then we can work around the problem by updating the current methods in Trunk to check whether the AlphaNumericMask is initialized (along with DigitBit and LetterMask). Then update the image which creates, the .spur versions, and finally recreate the Collections.spur packages starting from tfel-623. Levente On Mon, 4 May 2015, Eliot Miranda wrote: > > > On Mon, May 4, 2015 at 1:55 PM, Levente Uzonyi <[hidden email]> 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? |
Hi Eliot,
The workaround is in the Trunk, so if you think that it may help, then please update your image (which creates the .spur versions), and recreate the .spur versions starting from at least Collections.spur-tfel.623 (or the .mcm which contains it). Levente On Tue, 5 May 2015, Levente Uzonyi wrote: > It seems to me that the tool which creates the .spur versions of the packages > is running in an updated non-spur Trunk image, and it somehow added its own > version of #isAlphaNumeric to Collections.spur-tfel.623. > > The method in Collections.spur-tfel.623 is: > > isAlphaNumeric > "Answer whether the receiver is a letter or a digit." > > self asInteger > 255 ifFalse: [ ^((ClassificationTable at: > self asInteger + 1) bitAnd: AlphaNumericMask) > 0 ]. > ^self encodedCharSet isAlphaNumeric: self > > While in Collections-tfel.623 it is: > > isAlphaNumeric > "Answer whether the receiver is a letter or a digit." > > ^self encodedCharSet isAlphaNumeric: self > > The version which got patched is from Collections-ul.628 (which merges > Collections-ul.625): > > isAlphaNumeric > "Answer whether the receiver is a letter or a digit." > > value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) > bitAnd: AlphaNumericMask) > 0 ]. > ^self encodedCharSet isAlphaNumeric: self > > If I'm right, then we can work around the problem by updating the current > methods in Trunk to check whether the AlphaNumericMask is initialized (along > with DigitBit and LetterMask). Then update the image which creates, the .spur > versions, and finally recreate the Collections.spur packages starting from > tfel-623. > > Levente > > On Mon, 4 May 2015, Eliot Miranda wrote: > >> >> >> On Mon, May 4, 2015 at 1:55 PM, Levente Uzonyi <[hidden email]> 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? |
I tried loading these changes manually but my image just crashes hard. If I try to add instance variable 'value' to Character I just get a debugger and no option to continue. Karl On Wed, May 6, 2015 at 8:31 PM, Levente Uzonyi <[hidden email]> wrote: Hi Eliot, |
On 07.05.2015, at 14:01, karl ramberg <[hidden email]> wrote: > I tried loading these changes manually but my image just crashes hard. > > If I try to add instance variable 'value' to Character I just get a debugger and no option to continue. > > This may be because Character cannot have instance variables in Spur, IIRC… |
Then the Character changes must be changed Instance variable value was added in Collections.spur-ul.584.mcz it seems like On Thu, May 7, 2015 at 2:03 PM, Tobias Pape <[hidden email]> wrote:
|
Before Spur Character has always had an instance variable named value.
Characters are immediate in Spur, so the Character class has no instance variables there. If you browse Collections.spur-ul.584.mcz, you'll find the following definition: Magnitude immediateSubclass: #Character instanceVariableNames: '' classVariableNames: 'CharacterTable ClassificationTable DigitValues LetterBits LowercaseBit UppercaseBit' poolDictionaries: '' category: 'Collections-Strings' Levente On Thu, 7 May 2015, karl ramberg wrote: > Then the Character changes must be changedInstance variable value was added in Collections.spur-ul.584.mcz it seems like > > On Thu, May 7, 2015 at 2:03 PM, Tobias Pape <[hidden email]> wrote: > > On 07.05.2015, at 14:01, karl ramberg <[hidden email]> wrote: > > > I tried loading these changes manually but my image just crashes hard. > > > > If I try to add instance variable 'value' to Character I just get a debugger and no option to continue. > > > > > > This may be because Character cannot have instance variables in Spur, IIRC… > > > > |
Does that mean that current Spur update process is not robust to a further change of Character class definition? (like adding a class var for example)
2015-05-07 15:56 GMT+02:00 Levente Uzonyi <[hidden email]>: Before Spur Character has always had an instance variable named value. Characters are immediate in Spur, so the Character class has no instance variables there. If you browse Collections.spur-ul.584.mcz, you'll find the following definition: |
On Thu, May 7, 2015 at 8:48 AM, Nicolas Cellier <[hidden email]> wrote:
The Monticello package patcher is robust for class var and pool dictionary changes. I think the image bootstrap is too. But checking that it is is timeconsuming. That's one major motivation behind the feature freeze. I want to stop wasting cyclers on the bootstrap and progress to the full release where we're free to modify definitions as we see fit.
best,
Eliot |
In reply to this post by Levente Uzonyi-2
Hi Levente,
On Mon, May 4, 2015 at 1:55 PM, Levente Uzonyi <[hidden email]> 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. Yes. I see this. The bootstrap is clearly broken. I'll look at this right away.
best,
Eliot |
Free forum by Nabble | Edit this page |