Patrick Rein uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-pre.1105.mcz ==================== Summary ==================== Name: Kernel-pre.1105 Author: pre Time: 19 May 2017, 2:22:29.00196 pm UUID: 7e22498c-7586-584c-a2a9-81331c572590 Ancestors: Kernel-pre.1104 Removes a redundancy in CompiledCode. =============== Diff against Kernel-nice.1103 =============== Item was changed: ----- Method: CompiledCode class>>headerFlagForEncoder: (in category 'method encoding') ----- headerFlagForEncoder: anEncoder - anEncoder class == PrimaryBytecodeSetEncoderClass ifTrue: - [^0]. - anEncoder class == SecondaryBytecodeSetEncoderClass ifTrue: - [^SmallInteger minVal]. "This allows subclasses for compiler variants such as the ScriptEncoder in EToys to continue to function." + (anEncoder isKindOf: PrimaryBytecodeSetEncoderClass) ifTrue: - (anEncoder class inheritsFrom: PrimaryBytecodeSetEncoderClass) ifTrue: [^0]. + (anEncoder isKindOf: SecondaryBytecodeSetEncoderClass) ifTrue: - (anEncoder class inheritsFrom: SecondaryBytecodeSetEncoderClass) ifTrue: [^SmallInteger minVal]. self error: 'The encoder is not one of the two installed bytecode sets'! Item was added: + ----- Method: Number>>** (in category 'mathematical functions') ----- + ** aNumber + + ^ self raisedTo: aNumber! |
2017-05-19 14:22 GMT+02:00 <[hidden email]>: Patrick Rein uploaded a new version of Kernel to project The Trunk: Then why not send a message back to anEncoder? Way more efficient than testing classes sequentially and recursively... Item was added: Above change can't both be waiting in inbox and be commited to trunk |
Regarding the headerFlagForEncoder: method: I only wanted to make the code easier to understand. I have no experience with the CompiledCode and Encoder classes and did not want to break anything there.
Regarding the two commits: I should have ignored the change... I have now moved the commit in the Inbox to the Treated Inbox. The change is still open for discussion though :)
From: Squeak-dev <[hidden email]> on behalf of Nicolas Cellier <[hidden email]>
Sent: Friday, May 19, 2017 14:32 To: The general-purpose Squeak developers list Subject: Re: [squeak-dev] The Trunk: Kernel-pre.1105.mcz 2017-05-19 14:22 GMT+02:00 <[hidden email]>:
Patrick Rein uploaded a new version of Kernel to project The Trunk: Then why not send a message back to anEncoder?
Way more efficient than testing classes sequentially and recursively...
Item was added: Above change can't both be waiting in inbox and be commited to trunk
|
2017-05-19 15:16 GMT+02:00 Rein, Patrick <[hidden email]>:
Nevermind, I overlooked the code. There is no other way than isKindOf: because PrimaryBytecodeSetEncoderClass is a class variable that can be changed dynamically to point to another BytecodeEncoder class. If we would want to support doing it by message sending, it would mean compiling and installing/uninstalling messages like isPrimaryEncoderClass dynamically. Overkill.
I have this selector in all my images for 30 years or so, if we think of biased as disqualified, I'm disqualified ;)
|
Hi Nicolas,
- whenever the bytecode encoder classes are changed - whenever a subclass of BytecodeEncoder is added the variable is updated. Better would be for the accessor to be lazy. Then when a different t encoder class is installed all we do is flush the inst var in BytecodeEncoder and all its subclasses. I do hate isKindOf: :-) I have this selector in all my images for 30 years or so, if we think of biased as disqualified, I'm disqualified ;)
|
Free forum by Nabble | Edit this page |