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

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon Apr 11 21:38:00 UTC 2016


Or maybe Cogit should do like SpurMemoryManager with ancillaryClasses:

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/7908e082/attachment-0001.htm


More information about the Vm-dev mailing list