<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 4, 2015 at 1:41 PM, Levente Uzonyi <span dir="ltr"><<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, 4 May 2015, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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<br>
those of you using Spur please *don't* update until I've fixed the bootstrap.<br>
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<br>
cycles. At least I am.<br>
</blockquote>
<br></span>
Multilingual-ul.209 should be loaded before Collections-ul.627, and only then should Collections-ul.628 be loaded.<br></blockquote><div><br></div><div>Thanks, that got me unblocked.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
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).</blockquote><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
<br>
Levente</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Mon, May 4, 2015 at 10:46 AM, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br>
Eliot Miranda uploaded a new version of Collections to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Collections.spur-nice.622.mcz" target="_blank">http://source.squeak.org/trunk/Collections.spur-nice.622.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Collections.spur-nice.622<br>
Author: eem<br>
Time: 4 May 2015, 10:45:05.244 am<br>
UUID: 02450614-82e9-4d33-95fd-3fede06790d2<br>
Ancestors: Collections-nice.622, Collections.spur-mt.621<br>
<br>
Collections-nice.622 patched for Spur by SpurBootstrapMonticelloPackagePatcher Cog-eem.262<br>
<br>
#toBraceStack: is not used for compiling { } for so long that it's really time to get rid of it.<br>
<br>
Symbol>>numArgs: does not need to copy self into a temp var.<br>
<br>
=============== Diff against Collections-nice.622 ===============<br>
<br>
Item was changed:<br>
----- Method: Array>>elementsExchangeIdentityWith: (in category 'converting') -----<br>
elementsExchangeIdentityWith: otherArray<br>
+ "This primitive performs a bulk mutation, causing all pointers to the elements of the<br>
+ receiver to be replaced by pointers to the corresponding elements of otherArray.<br>
+ At the same time, all pointers to the elements of otherArray are replaced by<br>
+ pointers to the corresponding elements of this array. The identityHashes remain<br>
+ with the pointers rather than with the objects so that objects in hashed structures<br>
+ should still be properly indexed after the mutation."<br>
- "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<br>
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<br>
objects in hashed structures should still be properly indexed after the mutation."<br>
<br>
+ <primitive: 128 error: ec><br>
+ ec == #'bad receiver' ifTrue:<br>
+ [^self error: 'receiver must be of class Array'].<br>
+ ec == #'bad argument' ifTrue:<br>
+ [^self error: (otherArray class == Array<br>
+ ifTrue: ['arg must be of class Array']<br>
+ ifFalse: ['receiver and argument must have the same size'])].<br>
+ ec == #'inappropriate operation' ifTrue:<br>
+ [^self error: 'can''t become immediates such as SmallIntegers or Characters'].<br>
+ ec == #'no modification' ifTrue:<br>
+ [^self error: 'can''t become immutable objects'].<br>
+ ec == #'object is pinned' ifTrue:<br>
+ [^self error: 'can''t become pinned objects'].<br>
+ ec == #'insufficient object memory' ifTrue:<br>
+ [Smalltalk garbageCollect < 1048576 ifTrue:<br>
+ [Smalltalk growMemoryByAtLeast: 1048576].<br>
+ ^self elementsExchangeIdentityWith: otherArray].<br>
+ self primitiveFailed!<br>
- <primitive: 128><br>
- otherArray class == Array ifFalse: [^ self error: 'arg must be array'].<br>
- self size = otherArray size ifFalse: [^ self error: 'arrays must be same size'].<br>
- (self anySatisfy: [:obj | obj class == SmallInteger]) ifTrue: [^ self error: 'can''t become SmallIntegers'].<br>
- (otherArray anySatisfy: [:obj | obj class == SmallInteger]) ifTrue: [^ self error: 'can''t become SmallIntegers'].<br>
- self with: otherArray do:[:a :b| a == b ifTrue:[^self error:'can''t become yourself']].<br>
-<br>
- "Must have failed because not enough space in forwarding table (see ObjectMemory-prepareForwardingTableForBecoming:with:twoWay:). Do GC and try again only once"<br>
- (Smalltalk bytesLeft: true) = Smalltalk primitiveGarbageCollect<br>
- ifTrue: [^ self primitiveFailed].<br>
- ^ self elementsExchangeIdentityWith: otherArray!<br>
<br>
Item was changed:<br>
----- Method: Array>>elementsForwardIdentityTo: (in category 'converting') -----<br>
elementsForwardIdentityTo: otherArray<br>
+ "This primitive performs a bulk mutation, causing all pointers to the elements of the<br>
+ receiver to be replaced by pointers to the corresponding elements of otherArray.<br>
+ The identityHashes remain with the pointers rather than with the objects so that<br>
+ the objects in this array should still be properly indexed in any existing hashed<br>
+ structures after the mutation."<br>
+ <primitive: 72 error: ec><br>
- "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<br>
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."<br>
- <primitive: 72><br>
self primitiveFailed!<br>
<br>
Item was changed:<br>
----- Method: Array>>elementsForwardIdentityTo:copyHash: (in category 'converting') -----<br>
elementsForwardIdentityTo: otherArray copyHash: copyHash<br>
+ "This primitive performs a bulk mutation, causing all pointers to the elements of the<br>
+ receiver to be replaced by pointers to the corresponding elements of otherArray.<br>
+ If copyHash is true, the identityHashes remain with the pointers rather than with the<br>
+ objects so that the objects in the receiver should still be properly indexed in any<br>
+ existing hashed structures after the mutation. If copyHash is false, then the hashes<br>
+ of the objects in otherArray remain unchanged. If you know what you're doing this<br>
+ may indeed be what you want."<br>
+ <primitive: 249 error: ec><br>
- "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<br>
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."<br>
- <primitive: 249><br>
self primitiveFailed!<br>
<br>
Item was changed:<br>
==== ERROR ===<br>
<br>
Error: Unrecognized class type<br>
<br>
4 May 2015 5:47:40.493 pm<br>
<br>
VM: unix - a SmalltalkImage<br>
Image: Squeak3.11alpha [latest update: #8824]<br>
<br>
SecurityManager state:<br>
Restricted: false<br>
FileAccess: true<br>
SocketAccess: true<br>
Working Dir /home/squeaksource<br>
Trusted Dir /home/squeaksource/secure<br>
Untrusted Dir /home/squeaksource/My Squeak<br>
<br>
MCClassDefinition(Object)>>error:<br>
Receiver: a MCClassDefinition(Character)<br>
Arguments and temporary variables:<br>
aString: 'Unrecognized class type'<br>
Receiver's instance variables:<br>
name: #Character<br>
superclassName: #Magnitude<br>
variables: an OrderedCollection(a MCClassVariableDefinition(CharacterTable) a M...etc...<br>
category: 'Collections-Strings'<br>
type: #immediate<br>
comment: 'I represent a character by storing its associated Unicode as an unsig...etc...<br>
commentStamp: 'eem 8/12/2014 14:53'<br>
traitComposition: nil<br>
classTraitComposition: nil<br>
<br>
MCClassDefinition>>kindOfSubclass<br>
Receiver: a MCClassDefinition(Character)<br>
Arguments and temporary variables:<br>
<br>
Receiver's instance variables:<br>
name: #Character<br>
superclassName: #Magnitude<br>
variables: an OrderedCollection(a MCClassVariableDefinition(CharacterTable) a M...etc...<br>
category: 'Collections-Strings'<br>
type: #immediate<br>
comment: 'I represent a character by storing its associated Unicode as an unsig...etc...<br>
commentStamp: 'eem 8/12/2014 14:53'<br>
traitComposition: nil<br>
classTraitComposition: nil<br>
<br>
MCClassDefinition>>printDefinitionOn:<br>
Receiver: a MCClassDefinition(Character)<br>
Arguments and temporary variables:<br>
stream: a WriteStream<br>
Receiver's instance variables:<br>
name: #Character<br>
superclassName: #Magnitude<br>
variables: an OrderedCollection(a MCClassVariableDefinition(CharacterTable) a M...etc...<br>
category: 'Collections-Strings'<br>
type: #immediate<br>
comment: 'I represent a character by storing its associated Unicode as an unsig...etc...<br>
commentStamp: 'eem 8/12/2014 14:53'<br>
traitComposition: nil<br>
classTraitComposition: nil<br>
<br>
[] in MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:<br>
Receiver: a MCDiffyTextWriter<br>
Arguments and temporary variables:<br>
definition: a WriteStream<br>
s: a MCClassDefinition(Character)<br>
Receiver's instance variables:<br>
stream: a WriteStream<br>
initStream: nil<br>
<br>
<br>
--- The full stack ---<br>
MCClassDefinition(Object)>>error:<br>
MCClassDefinition>>kindOfSubclass<br>
MCClassDefinition>>printDefinitionOn:<br>
[] in MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:<br>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
String class(SequenceableCollection class)>>new:streamContents:<br>
String class(SequenceableCollection class)>>streamContents:<br>
MCDiffyTextWriter(MCTextWriter)>>chunkContents:<br>
MCDiffyTextWriter(MCStWriter)>>writeClassDefinition:<br>
MCDiffyTextWriter(MCStWriter)>>visitClassDefinition:<br>
MCClassDefinition>>accept:<br>
[] in MCDiffyTextWriter(MCTextWriter)>>visitInFork:<br>
String class(SequenceableCollection class)>>new:streamContents:<br>
String class(SequenceableCollection class)>>streamContents:<br>
MCDiffyTextWriter(MCTextWriter)>>visitInFork:<br>
MCDiffyTextWriter>>writePatchFrom:to:<br>
MCDiffyTextWriter>>writeModification:<br>
[] in MCDiffyTextWriter>>writePatch:<br>
SortedCollection(OrderedCollection)>>do:<br>
MCDiffyTextWriter>>writePatch:<br>
SSDiffyTextWriter>>writePatch:<br>
[] in SSDiffyTextWriter>>writeVersion:for:<br>
BlockClosure>>on:do:<br>
SSDiffyTextWriter>>writeVersion:for:<br>
[] in SSEMailSubscription>>versionAdded:to:<br>
BlockClosure>>on:do:<br>
SSEMailSubscription>>versionAdded:to:<br>
[] in [] in SSProject>>versionAdded:<br>
[] in BlockClosure>>newProcess<br>
<br>
<br>
<br>
<br>
--<br>
best,Eliot<br>
<br>
</blockquote>
</div></div><br><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>