The Trunk: Kernel-eem.1139.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-eem.1139.mcz

commits-2
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!