[squeak-dev] The Trunk: Kernel-pre.1105.mcz

Eliot Miranda eliot.miranda at gmail.com
Mon May 22 18:42:13 UTC 2017


Hi Nicolas,


> On May 22, 2017, at 5:04 AM, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> 
> 
> 
> 2017-05-19 15:16 GMT+02:00 Rein, Patrick <Patrick.Rein at hpi.de>:
>> 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.
>> 
>> 
> 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.
> 
>> 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 :)​
>> 

One alternative would be to add a class instance variable to BytecodeEncoder and arrange that 
- 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 ;) 
>> From: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> on behalf of Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
>> 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 <commits at source.squeak.org>:
>>> 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'!
>>> 
>> Then why not send a message back to anEncoder?
>> Way more efficient than testing classes sequentially and recursively...
>>  
>>> Item was added:
>>> + ----- Method: Number>>** (in category 'mathematical functions') -----
>>> + ** aNumber
>>> +
>>> +       ^ self raisedTo: aNumber!
>>> 
>> Above change can't both be waiting in inbox and be commited to trunk 
>> 
>> 
>> 
>> 
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170522/ab5af6ee/attachment.html>


More information about the Squeak-dev mailing list