Eliot Miranda uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-eem.1139.mcz
==================== Summary ====================
Name: Kernel-eem.1139 Author: eem Time: 10 January 2018, 5:37:26.591853 pm UUID: 54bd97b7-0152-4647-b109-78c294afc74e Ancestors: Kernel-eem.1138
Add CompiledBlock>>pragmaAt:. Make the accessors that defer to the home mehtod use homeMehtod instaed of chaining through outerCode. The stack depth is one less as a result.
=============== Diff against Kernel-eem.1138 ===============
Item was changed: ----- Method: CompiledBlock>>encoderClass (in category 'accessing') ----- encoderClass "Answer the encoder class that encoded the bytecodes in this method. The sign flag bit is used by the VM to select a bytecode set. This formulation may seem odd but this has to be fast, so no property probe unless needed."
^self header >= 0 ifTrue: [PrimaryBytecodeSetEncoderClass] ifFalse: [PrimaryBytecodeSetEncoderClass == SecondaryBytecodeSetEncoderClass ifTrue: "Support for testing prior to installing another set" + [(self homeMethod propertyValueAt: #encoderClass) ifNil: [SecondaryBytecodeSetEncoderClass]] - [(self outerCode propertyValueAt: #encoderClass) ifNil: [SecondaryBytecodeSetEncoderClass]] ifFalse: [SecondaryBytecodeSetEncoderClass]]!
Item was changed: ----- Method: CompiledBlock>>holdsTempNames (in category 'source code management') ----- holdsTempNames + ^self homeMethod holdsTempNames! - ^self outerCode holdsTempNames!
Item was changed: ----- Method: CompiledBlock>>methodClass (in category 'accessing') ----- methodClass "Answer the class that I am installed in." + ^self homeMethod methodClass! - | outerCodeOrMethodClassAssoc | - outerCodeOrMethodClassAssoc := self outerCode. - outerCodeOrMethodClassAssoc isVariableBinding ifTrue: - [self assert: outerCodeOrMethodClassAssoc value isBehavior. - ^outerCodeOrMethodClassAssoc value]. - ^outerCodeOrMethodClassAssoc methodClass!
Item was changed: ----- Method: CompiledBlock>>methodForDecompile (in category 'decompiling') ----- methodForDecompile + ^self homeMethod methodForDecompile! - ^self outerCode methodForDecompile!
Item was changed: ----- Method: CompiledBlock>>methodNode (in category 'accessing') ----- methodNode + ^ self homeMethod methodNode! - ^ self outerCode methodNode!
Item was added: + ----- Method: CompiledBlock>>pragmaAt: (in category 'accessing-pragmas & properties') ----- + pragmaAt: aKey + "Answer the pragma with selector aKey, or nil if none." + ^self homeMethod pragmaAt: aKey!
Item was changed: ----- Method: CompiledBlock>>selector (in category 'accessing') ----- selector + ^ self homeMethod selector! - ^ self outerCode selector!
packages@lists.squeakfoundation.org