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

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon Apr 11 20:57:11 UTC 2016


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/98309b9b/attachment.htm


More information about the Vm-dev mailing list