[squeak-dev] The Trunk: Kernel-eem.1005.mcz
Eliot Miranda
eliot.miranda at gmail.com
Wed Mar 9 10:05:27 UTC 2016
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, commits at source.squeak.org 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.'!
>
>
More information about the Squeak-dev
mailing list
|