[Vm-dev] VM Maker: VMMaker.oscog-eem.1773.mcz

Eliot Miranda eliot.miranda at gmail.com
Tue Apr 12 01:14:46 UTC 2016



> On Apr 11, 2016, at 2:38 PM, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> 
> Or maybe Cogit should do like SpurMemoryManager with ancillaryClasses:

+1

> initializeWithOptions: optionsDictionary
>     "SpurMemoryManager initializeWithOptions: Dictionary new"
> 
>     {self}, (self ancilliaryClasses: optionsDictionary) do:
>         [:aSuperclass|
>          aSuperclass withAllSubclasses do:
>             [:class| class initializationOptions: optionsDictionary]].
> 
> 2016-04-11 22:57 GMT+02:00 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
>> 
>> 
>> 2016-04-06 19:25 GMT+02:00 <commits at source.squeak.org>:
>>> 
>>> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>>> http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1773.mcz
>>> 
>>> ==================== Summary ====================
>>> 
>>> Name: VMMaker.oscog-eem.1773
>>> Author: eem
>>> Time: 6 April 2016, 10:23:32.090149 am
>>> UUID: 7ff9cf9c-6983-47fc-96f1-c3f11eda1376
>>> Ancestors: VMMaker.oscog-cb.1772
>>> 
>>> Cogit:
>>> Follow selectors in the openPICList post Spur become.
>>> 
>>> Move the compare constant convenience up.
>>> 
>>> =============== Diff against VMMaker.oscog-cb.1772 ===============
>>> 
>>> Item was added:
>>> + ----- Method: CogMethodZone>>followForwardedLiteralsInOpenPICList (in category 'jit - api') -----
>>> + followForwardedLiteralsInOpenPICList
>>> +       <option: #SpurObjectMemory>
>>> +       | openPIC |
>>> +       <var: #openPIC type: #'CogMethod *'>
>>> +       openPIC := openPICList.
>>> +       [openPIC notNil] whileTrue:
>>> +               [cogit followForwardedLiteralsIn: openPIC.
>>> +                openPIC := self cCoerceSimple: openPIC nextOpenPIC to: #'CogMethod *'.]!
>> 
>> Hi Eliot,
>> For me, followForwardedLiteralsInOpenPICList is not generated.
>> I tried tagging <api> but this has no effect.
>> It sounds like CogMethodZone is not going thru initializeWithOptions: optionsDictionary in buildCodeGeneratorForCogit.
>> 
>> I would have suggested doing it in
>> buildCodeGeneratorForCogit: cogitClass includeAPIMethods: getAPIMethods initializeClasses: initializeClasses
>> ...
>>     cogitClasses do: [:cgc| 
>>             (cgc respondsTo: #initializeWithOptions:)
>>                 ifTrue: [cgc initializeWithOptions: optionsDictionary].
>>             cg addClass: cgc].
>> ...
>> But it fails on abstract Cogit class, which tries to initializePrimitiveTableForSqueak, that only a concrete would understand
>> So I had to protect initializePrimitiveTable with a self = Cogit ifTrue: [^self]...
>> 
>> I don't publish because this change makes cog.v3 fail, so you'll probably find a better fix, but wanted to share.
>> I'm definitely on the bleeding edge ;)
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160411/03db7ea1/attachment.htm


More information about the Vm-dev mailing list