2016-04-06 19:25 GMT+02:00 commits@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 ;)
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@gmail.com>:
2016-04-06 19:25 GMT+02:00 commits@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 ;)
On Apr 11, 2016, at 2:38 PM, Nicolas Cellier nicolas.cellier.aka.nice@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@gmail.com:
2016-04-06 19:25 GMT+02:00 commits@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 ;)
vm-dev@lists.squeakfoundation.org