<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br><br></div><div>On Apr 11, 2016, at 2:38 PM, Nicolas Cellier &lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><span></span></div></blockquote><blockquote type="cite"><div><div dir="ltr">Or maybe Cogit should do like SpurMemoryManager with ancillaryClasses:<br></div></div></blockquote><div><br></div>+1<div><br><blockquote type="cite"><div><div dir="ltr">initializeWithOptions: optionsDictionary<br>&nbsp;&nbsp;&nbsp; "SpurMemoryManager initializeWithOptions: Dictionary new"<br><br>&nbsp;&nbsp;&nbsp; {self}, (self ancilliaryClasses: optionsDictionary) do:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [:aSuperclass|<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;aSuperclass withAllSubclasses do:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [:class| class initializationOptions: optionsDictionary]].<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-11 22:57 GMT+02:00 Nicolas Cellier <span dir="ltr">&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">2016-04-06 19:25 GMT+02:00  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1773.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1773.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.1773<br>
Author: eem<br>
Time: 6 April 2016, 10:23:32.090149 am<br>
UUID: 7ff9cf9c-6983-47fc-96f1-c3f11eda1376<br>
Ancestors: VMMaker.oscog-cb.1772<br>
<br>
Cogit:<br>
Follow selectors in the openPICList post Spur become.<br>
<br>
Move the compare constant convenience up.<br>
<br>
=============== Diff against VMMaker.oscog-cb.1772 ===============<br>
<br>
Item was added:<br>
+ ----- Method: CogMethodZone&gt;&gt;followForwardedLiteralsInOpenPICList (in category 'jit - api') -----<br>
+ followForwardedLiteralsInOpenPICList<br>
+&nbsp; &nbsp; &nbsp; &nbsp;&lt;option: #SpurObjectMemory&gt;<br>
+&nbsp; &nbsp; &nbsp; &nbsp;| openPIC |<br>
+&nbsp; &nbsp; &nbsp; &nbsp;&lt;var: #openPIC type: #'CogMethod *'&gt;<br>
+&nbsp; &nbsp; &nbsp; &nbsp;openPIC := openPICList.<br>
+&nbsp; &nbsp; &nbsp; &nbsp;[openPIC notNil] whileTrue:<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[cogit followForwardedLiteralsIn: openPIC.<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; openPIC := self cCoerceSimple: openPIC nextOpenPIC to: #'CogMethod *'.]!<br>
<br></blockquote><div><br></div></span><div>Hi Eliot,<br></div><div>For me, followForwardedLiteralsInOpenPICList is not generated.<br></div><div>I tried tagging &lt;api&gt; but this has no effect.<br></div><div>It sounds like CogMethodZone is not going thru initializeWithOptions: optionsDictionary in buildCodeGeneratorForCogit.<br><br>I would have suggested doing it in<br>buildCodeGeneratorForCogit: cogitClass includeAPIMethods: getAPIMethods initializeClasses: initializeClasses<br>...<br>&nbsp;&nbsp;&nbsp; cogitClasses do: [:cgc| <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (cgc respondsTo: #initializeWithOptions:)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ifTrue: [cgc initializeWithOptions: optionsDictionary].<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cg addClass: cgc].<br>...<br></div><div>But it fails on abstract Cogit class, which tries to initializePrimitiveTableForSqueak, that only a concrete would understand<br></div><div>So I had to protect initializePrimitiveTable with a self = Cogit ifTrue: [^self]...<br><br></div><div>I don't publish because this change makes cog.v3 fail, so you'll probably find a better fix, but wanted to share.<br></div><div>I'm definitely on the bleeding edge ;)</div><div><br></div><div><br></div></div></div></div>
</blockquote></div><br></div>
</div></blockquote></div></body></html>