<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 13 Sep 2015, at 00:07, Nicolai Hess &lt;<a href="mailto:nicolaihess@web.de" class="">nicolaihess@web.de</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">2015-05-21 20:35 GMT+02:00 Nicolai Hess <span dir="ltr" class="">&lt;<a href="mailto:nicolaihess@web.de" target="_blank" class="">nicolaihess@web.de</a>&gt;</span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote"><div class=""><div class="h5">2015-05-06 0:11 GMT+02:00 Nicolai Hess <span dir="ltr" class="">&lt;<a href="mailto:nicolaihess@web.de" target="_blank" class="">nicolaihess@web.de</a>&gt;</span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class="">We have a failing test case for NB<br class=""></div>NBInterpreterProxyTest&gt;&gt;#testStackPointer<br class=""></div>it fails because <br class="">NativeBoost loadSymbol: 'stackPointerAddress' fromModule: NativeBoost VMModule<br class=""></div>returns nil<br class=""><br class="">This works for the linux vm!<br class=""><br class=""></div><div class="">There are other methods that can be loaded, for example:<br class="">(NativeBoost loadSymbol: 'primitiveAllObjects' fromModule: NativeBoost VMModule)<br class=""></div>-&gt; returns an address.<br class=""><br class=""></div>This stopped working for the windows pharo vm around june 2014. The source that<br class=""></div>changed is cointerp.h, the prior version had EXPORT(...) declarations around all<br class=""></div>functions in cointerp.h, the current version not.<br class=""><br class=""></div>Three questions:<br class=""><br class=""></div>1. Why does this still work on linux? Does it export all functions declared in<br class=""></div>&nbsp;&nbsp;&nbsp; a header?<br class=""></div>2. why was it changed? (I could not found the change in the code generator, maybe we<br class=""></div>&nbsp;&nbsp; exported all functions with pragma #api and now only those with pragma #export ?<br class=""></div>3. do we need this function to be exported? Apart from this testcases, this method is<br class=""></div><div class="">&nbsp;called the on image startup, but the nil return does not harm.<br class="">&nbsp;It seems it is not part of the main vm api (like the interpreter proxy functions callable from external modules) and I didn't see code thet depend on this.<br class=""></div><div class=""><br class="">There are similiar functions for which we load the function address on startup:<br class="">&nbsp;cStackPointerAddress and cFramePointerAddress, this seems to work, but I don't know if the&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expected result is different.<br class=""><br class="">In NBInterpreterProxy&gt;&gt;#initialize, we try to load all fourmethods:<br class="">stackPointerAddress/framePointerAddress -&gt; nil<br class="">cStackPointerAddress / cFramePointerAddress -&gt; not nil<span class=""><font color="#888888" class=""><br class=""><br class=""></font></span></div><span class=""><font color="#888888" class=""><div class=""><br class=""><br class=""></div>nicolai<br class=""><br class=""></font></span></div></blockquote><div class=""><br class=""><br class=""></div></div></div><div class="">Anyone knows why the exports changed on windows?<br class=""></div><div class="">Or if we need the stackPointerAddress/framePointerAddress methods?<span class="HOEnZb"><font color="#888888" class=""><br class=""><br class=""></font></span></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">Maybe I'll just close the issue as won't fix. On the other hand, we now have this <br class=""></div><div class="">failing test (skipped for windows), so maybe I will remove the test.<br class=""><br class=""></div><div class="">But still, I would like to know if this change was by accident or on purpose. If it<br class=""></div><div class="">was on purpose, maybe there is a way to make this test succeed on windows too?<br class=""></div></div></div></div></div></blockquote><div><br class=""></div><div>I think you can safely close it.&nbsp;</div><div>I don’t know if change was or not on purpose, but since ASMJIT (and NB FFI implementation) will go away with Spur, fixing this is a lose of time.&nbsp;</div><div><br class=""></div><div>Esteban</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><span class="HOEnZb"><font color="#888888" class=""><br class=""></font></span></div><span class="HOEnZb"><font color="#888888" class=""><div class="">nicolai <br class=""></div></font></span></div><br class=""></div></div>
</blockquote></div><br class=""></div></div>
</div></blockquote></div><br class=""></body></html>