<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,&nbsp;<div><br><div><div>El 09/11/2011, a las 8:42p.m., Eliot Miranda escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br><div class="gmail_quote">On Wed, Nov 9, 2011 at 2:52 PM, Esteban Lorenzano <span dir="ltr">&lt;<a href="mailto:estebanlm@gmail.com">estebanlm@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Hi,<br>
<br>
Sorry guys, I need some help here :P<br>
<br>
I'm finally taking the task of integrating latest changes from Eliot into my builds (and also, all jenkins builds)... I don't know anything about this, but I'm learning (consider this as a warning: my first integration cycles obviously will have problems)...<br>

Well... right now I merged all the external sources in a way "it seems" to be ok, and I started merge VMMaker.oscog with VMMaker-oscog and it looked more or less straight forward making me suspect that I'm doing something wrong... but ok... I'm trying, isn't? so, let's break things :)<br>

Anyway... once I merged the code, I started with a couple of issues:<br>
<br>
1) headers are being generated with __builtInfo[] which throws an annoying "duplicated definition" error... I suppose with some link flag or something I can skip this problem, but I'm lazy... anyone knows?<br>
</blockquote><div><br></div><div>__buildInfo should be static, e.g.</div><div><br></div><div>src/vm/gcc3x-cointerp.c:static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;</div>
<div>&nbsp;</div></div></blockquote><div><br></div><div>yes, they are... but as they are being generated on .c files and some headers... (like interp.h), I have collisions... again, this is likely because my ignorance of gcc compiler directives...&nbsp;</div><div><br></div><br><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">
<br>
2) This is most important: LargeIntegersPlugins is being generated with an error, here:<br>
<br>
LargeIntegersPlugin&gt;&gt;digitAddLarge:with:<br>
...<br>
 &nbsp; &nbsp; &nbsp; &nbsp;over &gt; 0<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ifTrue:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;["sum := sum growby: 1."<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;interpreterProxy remapOop: sum in: [newSum := interpreterProxy instantiateClass: resClass indexableSize: longLen + 1].<br>
...<br>
<br>
<br>
it complains because as it is using interpreterProxy as receiver of #remapOop:in:, and it does not exists in the struct.<br>
if I replace "interpreterProxy" with just "self" it looks like doing right and compiling...<br>
I think this is a bug introduced in LargeIntegersPlugin because of latest changes... but I'm not sure and maybe is because of my integration.<br>
<br>
welll... tweaking this two issues I'm compiling and opening an image... and pharo tests runs just like before...<br></blockquote><div><br></div><div>LargeIntegersPlugin should be generated with SmartSyntaxPluginCodeGenerator since</div>
<div><br></div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>SmartSyntaxInterpreterPlugin subclass: #LargeIntegersPlugin</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>instanceVariableNames: 'andOpIndex orOpIndex xorOpIndex'</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>classVariableNames: ''</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>poolDictionaries: ''</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>category: 'VMMaker-Plugins'</div></div><div><br></div><div>and in&nbsp;SmartSyntaxPluginCodeGenerator&gt;initializeCTranslationDictionary is</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>#remapOop:in:<span class="Apple-tab-span" style="white-space:pre">                                </span>#generateRemapOopIn:on:indent:</div><div><br></div><div>and&nbsp;SmartSyntaxPluginCodeGenerator&gt;generateRemapOopIn:on:indent: maps&nbsp;remapOop:in: to calls of pushRemappableOop and popRemappableOop.</div></div></blockquote><div><br></div><div>yes... but #remapOOp:in: is defined for the plugin, not for the interpreterProxy (that's what I mean: I need to replace "interpreterProxy remapOop: ... with "self remapOop:", otherwise is not being translated.&nbsp;</div><br><blockquote type="cite"><div class="gmail_quote">
<div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">
<br>
but:<br>
<br>
3) I have an error compiling FFI plugin: &nbsp;it is generating a "halt" function which is already present (as macros). I don't know why it is being generated... I think that it shouldn't, but I don't know how to prevent that.<br>
</blockquote><div><br></div><div>I nuked the macro definition of halt in sqAssert.h in r2490.</div></div></blockquote><div><br></div><div>cool, now It works :)</div></div><br><div>cheers,</div><div>Esteban</div></div></body></html>