Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1005.mcz ==================== Summary ==================== Name: Kernel-eem.1005 Author: eem Time: 8 March 2016, 1:16:26.313983 pm UUID: e11ad532-fefb-4f2e-836a-dc40b7d93447 Ancestors: Kernel-bf.1004 Add a script to make sure that a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun. =============== Diff against Kernel-bf.1004 =============== Item was removed: - (PackageInfo named: 'Kernel') preamble: '((Mutex allInstances allSatisfy: [:m| (m instVarNamed: ''owner'') isNil]) - and: [Monitor allInstances allSatisfy: [:m| (m instVarNamed: ''ownerProcess'') isNil]]) ifFalse: - [self error: ''Some Mutexes and/or Monitors are owned. Cannot safely mutate. ABort load and resolve this before loading for safety.'']'! Item was changed: + (PackageInfo named: 'Kernel') postscript: '"below, add code to be run after the loading of this package" + + "Make sure that + a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and + b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun." + (Array someInstance size = 1024 + and: [(Array someInstance allSatisfy: [:e| e == nil or: [e isBehavior]]) + and: [(Array someInstance first: 17) asSet = {nil. SmallInteger. Character. Array} asSet]]) ifTrue: + [| firstClassTablePage clone | + firstClassTablePage := Array someInstance. + self assert: (firstClassTablePage allSatisfy: [:e| e == nil or: [e isBehavior]]). + self assert: (firstClassTablePage first: 17) asSet = {nil. SmallInteger. Character. Array} asSet. + firstClassTablePage at: 4 put: SmallFloat64. + SmallFloat64 tryPrimitive: 161 withArgs: #(3). + clone := Array shallowCopy. + Array adoptInstance: clone. + clone tryPrimitive: 161 withArgs: #(16). + clone tryPrimitive: 160 withArgs: {firstClassTablePage}. + self assert: SmallFloat64 identityHash = 3. + self assert: (firstClassTablePage first: 4) = {nil. SmallInteger. Character. SmallFloat64}]'! - (PackageInfo named: 'Kernel') postscript: 'Smalltalk removeFromStartUpList: DateAndTime.'! |
Hi All,
a grovelling apology. I have committed a serious blunder in Kernel-eem.1005.mcz. Rather than potentially corrupt images (although this is unlikely) I have chosen to delete Kernel-eem.1005.mcz. This will break updates until I commit a corrected version. But it's too late at night here for me to fix it now. I'll fix it asap tomorrow am. I could do with a good nights sleep ;-) _,,,^..^,,,_ (phone) > On Mar 8, 2016, at 7:19 PM, [hidden email] wrote: > > Eliot Miranda uploaded a new version of Kernel to project The Trunk: > http://source.squeak.org/trunk/Kernel-eem.1005.mcz > > ==================== Summary ==================== > > Name: Kernel-eem.1005 > Author: eem > Time: 8 March 2016, 1:16:26.313983 pm > UUID: e11ad532-fefb-4f2e-836a-dc40b7d93447 > Ancestors: Kernel-bf.1004 > > Add a script to make sure that > a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and > b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun. > > =============== Diff against Kernel-bf.1004 =============== > > Item was removed: > - (PackageInfo named: 'Kernel') preamble: '((Mutex allInstances allSatisfy: [:m| (m instVarNamed: ''owner'') isNil]) > - and: [Monitor allInstances allSatisfy: [:m| (m instVarNamed: ''ownerProcess'') isNil]]) ifFalse: > - [self error: ''Some Mutexes and/or Monitors are owned. Cannot safely mutate. ABort load and resolve this before loading for safety.'']'! > > Item was changed: > + (PackageInfo named: 'Kernel') postscript: '"below, add code to be run after the loading of this package" > + > + "Make sure that > + a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and > + b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun." > + (Array someInstance size = 1024 > + and: [(Array someInstance allSatisfy: [:e| e == nil or: [e isBehavior]]) > + and: [(Array someInstance first: 17) asSet = {nil. SmallInteger. Character. Array} asSet]]) ifTrue: > + [| firstClassTablePage clone | > + firstClassTablePage := Array someInstance. > + self assert: (firstClassTablePage allSatisfy: [:e| e == nil or: [e isBehavior]]). > + self assert: (firstClassTablePage first: 17) asSet = {nil. SmallInteger. Character. Array} asSet. > + firstClassTablePage at: 4 put: SmallFloat64. > + SmallFloat64 tryPrimitive: 161 withArgs: #(3). > + clone := Array shallowCopy. > + Array adoptInstance: clone. > + clone tryPrimitive: 161 withArgs: #(16). > + clone tryPrimitive: 160 withArgs: {firstClassTablePage}. > + self assert: SmallFloat64 identityHash = 3. > + self assert: (firstClassTablePage first: 4) = {nil. SmallInteger. Character. SmallFloat64}]'! > - (PackageInfo named: 'Kernel') postscript: 'Smalltalk removeFromStartUpList: DateAndTime.'! > > |
On Wed, Mar 09, 2016 at 02:05:27AM -0800, Eliot Miranda wrote:
> Hi All, > > a grovelling apology. I have committed a serious blunder in Kernel-eem.1005.mcz. Rather than potentially corrupt images (although this is unlikely) I have chosen to delete Kernel-eem.1005.mcz. This will break updates until I commit a corrected version. But it's too late at night here for me to fix it now. I'll fix it asap tomorrow am. I could do with a good nights sleep ;-) > No worries, nothing is broken. Trunk is still working fine and the update stream is working normally. For your own image, you will probably have to delete Kernel-eem.1005.mcz from your local package cache and do "MCFileBasedRepository flushAllCaches". Aside from that, all is well. Dave |
In reply to this post by Eliot Miranda-2
Eliot, PLEASE do not include 1005 in the ancestry then.
Thank you. On Wed, Mar 9, 2016 at 4:05 AM, Eliot Miranda <[hidden email]> wrote: > Hi All, > > a grovelling apology. I have committed a serious blunder in Kernel-eem.1005.mcz. Rather than potentially corrupt images (although this is unlikely) I have chosen to delete Kernel-eem.1005.mcz. This will break updates until I commit a corrected version. But it's too late at night here for me to fix it now. I'll fix it asap tomorrow am. I could do with a good nights sleep ;-) > > _,,,^..^,,,_ (phone) > >> On Mar 8, 2016, at 7:19 PM, [hidden email] wrote: >> >> Eliot Miranda uploaded a new version of Kernel to project The Trunk: >> http://source.squeak.org/trunk/Kernel-eem.1005.mcz >> >> ==================== Summary ==================== >> >> Name: Kernel-eem.1005 >> Author: eem >> Time: 8 March 2016, 1:16:26.313983 pm >> UUID: e11ad532-fefb-4f2e-836a-dc40b7d93447 >> Ancestors: Kernel-bf.1004 >> >> Add a script to make sure that >> a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and >> b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun. >> >> =============== Diff against Kernel-bf.1004 =============== >> >> Item was removed: >> - (PackageInfo named: 'Kernel') preamble: '((Mutex allInstances allSatisfy: [:m| (m instVarNamed: ''owner'') isNil]) >> - and: [Monitor allInstances allSatisfy: [:m| (m instVarNamed: ''ownerProcess'') isNil]]) ifFalse: >> - [self error: ''Some Mutexes and/or Monitors are owned. Cannot safely mutate. ABort load and resolve this before loading for safety.'']'! >> >> Item was changed: >> + (PackageInfo named: 'Kernel') postscript: '"below, add code to be run after the loading of this package" >> + >> + "Make sure that >> + a) SmallFloat64 has identityHash 3 and occupies the 4th (3rd, zero-relative) slot of the first class table page, and >> + b) that the first class table page is hidden by ensuring its class index is 16, the Array class index pun." >> + (Array someInstance size = 1024 >> + and: [(Array someInstance allSatisfy: [:e| e == nil or: [e isBehavior]]) >> + and: [(Array someInstance first: 17) asSet = {nil. SmallInteger. Character. Array} asSet]]) ifTrue: >> + [| firstClassTablePage clone | >> + firstClassTablePage := Array someInstance. >> + self assert: (firstClassTablePage allSatisfy: [:e| e == nil or: [e isBehavior]]). >> + self assert: (firstClassTablePage first: 17) asSet = {nil. SmallInteger. Character. Array} asSet. >> + firstClassTablePage at: 4 put: SmallFloat64. >> + SmallFloat64 tryPrimitive: 161 withArgs: #(3). >> + clone := Array shallowCopy. >> + Array adoptInstance: clone. >> + clone tryPrimitive: 161 withArgs: #(16). >> + clone tryPrimitive: 160 withArgs: {firstClassTablePage}. >> + self assert: SmallFloat64 identityHash = 3. >> + self assert: (firstClassTablePage first: 4) = {nil. SmallInteger. Character. SmallFloat64}]'! >> - (PackageInfo named: 'Kernel') postscript: 'Smalltalk removeFromStartUpList: DateAndTime.'! >> >> > |
Free forum by Nabble | Edit this page |