The Trunk: Kernel-eem.1088.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.1088.mcz

commits-2
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1088.mcz

==================== Summary ====================

Name: Kernel-eem.1088
Author: eem
Time: 5 April 2017, 11:40:44.087587 pm
UUID: 6e4c7ee7-23f2-4db0-93ff-ee8728d4231e
Ancestors: Kernel-eem.1087

Have the setter for the preferred bytecode set attempt to install a set if required and if possible.

=============== Diff against Kernel-eem.1087 ===============

Item was changed:
  ----- Method: CompiledCode class>>preferredBytecodeSetEncoderClass: (in category 'preferences') -----
+ preferredBytecodeSetEncoderClass: aBytecodeEncoderSubclass
+ "Set the class that determines the bytecode set used to compile methods with.
+ [| nPrimary nSecondary |
+ nPrimary := nSecondary := 0.
+ self allSubInstancesDo:
+ [:cm|
+ cm header >= 0
+ ifTrue: [nPrimary := nPrimary + 1]
+ ifFalse: [nSecondary := nSecondary + 1]].
+ {nPrimary. nSecondary}]"
+ | nPrimary nSecondary |
+ self assert: (aBytecodeEncoderSubclass includesBehavior: BytecodeEncoder).
+ (aBytecodeEncoderSubclass == PrimaryBytecodeSetEncoderClass
+ or: [aBytecodeEncoderSubclass == SecondaryBytecodeSetEncoderClass]) ifTrue:
+ [PreferredBytecodeSetEncoderClass := aBytecodeEncoderSubclass.
+ ^self].
+ nPrimary := nSecondary := 0.
+ self allSubInstancesDo:
+ [:cm|
+ cm header >= 0
+ ifTrue: [nPrimary := nPrimary + 1]
+ ifFalse: [nSecondary := nSecondary + 1]].
+ nPrimary = 0 ifTrue:
+ [self installPrimaryBytecodeSet: aBytecodeEncoderSubclass.
+ ^self preferredBytecodeSetEncoderClass: aBytecodeEncoderSubclass].
+ nSecondary = 0 ifTrue:
+ [self installSecondaryBytecodeSet: aBytecodeEncoderSubclass.
+ ^self preferredBytecodeSetEncoderClass: aBytecodeEncoderSubclass].
+ self error: 'Cannot set preferred bytecode set.  Both of the current sets appear to be in use.'!
- preferredBytecodeSetEncoderClass: aClass
- "Set the class that determines the bytecoce set used to compile methods with."
- self assert: (aClass includesBehavior: BytecodeEncoder).
- PreferredBytecodeSetEncoderClass := aClass!