<div dir="ltr">Hi Eliot,<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Can you describe what a Locoed callback is in relation to Alien 
callback machinery?  Does the Locoed callback come in through thunkEntry
 or by another route?</div></blockquote><div></div><div>I am using the standard Alien Callback machinery. I have not started to debug completely this problem, but I have my suspicious: The full sequence is something like this:<br><br></div><div>- Smalltalk method with a ffi callout<br></div><div>- Argument marshalling using Lowcode<br></div><div>- Actual callout: Switch from the Smalltalk Stack to the C stack via a special trampoline. The trampoline is used for storing the return instruction pointer. Probably I am also adding a reverse trampoline. This is the part where I have my suspicious<br></div><div>- Some C code that invokes the callback in some time<br></div><div>- The smalltalk callback<br><br></div><div>During the rest of the week I will try to fix this problem. However, my priority right now is in supporting 64 bits with Lowcode.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>The build directly names break the naming convention.  Since the 
VMs below are Spur perhaps we should call them pharo.cog.spur.lowcode? 
 e.g. when I build immutability VMs I call the directory e.g. 
squeak.cog.spur.immutability.  So maybe we can use some convention like 
dialect.[sista|cog|stack].[<wbr>spur|v3].[option1+...optionN].<wbr>  Or, if lowcode always implies Sista support then pharo.lowcode.spur would work.</div></blockquote><div>Fixed. pharo.cog.spur.lowcode . The actual Sista Cogit is not mandatory for supporting Lowcode. Only StackToRegisterMappingCogit with the LowcodeVM and the SistaVM flags is required. Probably, I should try to remove the requirement on the SistaVM option.<br><br></div><div>Best regards,<br></div><div>Ronie<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-01-11 13:36 GMT-03:00 Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div dir="ltr">Hi Ronie,<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 11, 2017 at 12:12 AM, Ronie Salgado <span dir="ltr"><<a href="mailto:notifications@github.com" target="_blank">notifications@github.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p>Fixing Lowcode to work in 32 bits Linux, OS X and Windows.</p>
<p>This pull request includes the adaptation of normal OpenSmalltalk VM building scripts to build some Pharo VMs with the Lowcode inline primitives in Linux and OS X. In Windows I failed to build a Pharo VM due to the dependencies, so I tested using a Squeak VM with the Lowcode instructions and a Pharo image ( <a href="http://ronie.cl/files/images/Pharo-lowcode.zip" target="_blank">http://ronie.cl/files/images/P<wbr>haro-lowcode.zip</a> ).</p>
<p>What is changed:</p>
<ul>
<li>More build scripts</li>
<li>Fixing the LowcodeFFI callout interpreter trampolines for building in OS X and Windows</li>
<li>Some missing memory accessors.</li>
</ul>
<p>What is working with these changes:</p>
<ul>
<li>All WodenMath tests are passing. WodenMath uses the Lowcode type system for generating Lowcode instructions at compile time.</li>
<li>UnifiedFFI callouts using Lowcode (Need to install the Lowcode uFFI backend by calling LowcodeFFICalloutAPI install, otherwise the SqueakFFI backend will be used).</li></ul></blockquote><div>Woot!</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><ul>
</ul>
<p>What is not working(yet):</p>
<ul>
<li>UnifiedFFI callbacks using Lowcode. Crashing immediately in Windows. In Linux, does not crash all of the time, which seems to be some difference between the Interpreter and the Cogit</li></ul></blockquote><div><br></div><div>Can you describe what a Locoed callback is in relation to Alien callback machinery?  Does the Locoed callback come in through thunkEntry or by another route?</div><div><br></div><div><br></div><div>and below...</div><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/111" target="_blank">https://github.com/OpenSmall<wbr>talk/opensmalltalk-vm/pull/111</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>I am adding some building scripts for Pharo with Lowcode.</li>
  <li>Newer version of the Lowcode callout trampoline.</li>
  <li>Building scripts for a pharo VM with Lowcode.</li>
  <li>Missing premissions from the latest commit.</li>
  <li>Oops</li>
  <li>I added the building scripts for a Pharo Lowcode VM in OS X.</li>
  <li>Oops, missing permissions from the last commit.</li>
  <li>Adding the generated Lowcode sources.</li>
  <li>Build scripts for the Lowcode Pharo VM in Windows.</li>
  <li>More building scripts for the Windows Lowcode VM.</li>
  <li>Adding missing accessors for Lowcode.</li>
  <li>Merge branch 'LowcodeFixup' of github.com:ronsaldo/opensmallt<wbr>alk-vm into LowcodeFixup</li>
  <li>Merge branch 'LowcodeFixup' of github.com:ronsaldo/opensmallt<wbr>alk-vm into LowcodeFixup</li>
  <li>Trying to fix GCC crash when building a Lowcode VM in Windows.</li>
  <li>Merge branch 'LowcodeFixup' of github.com:ronsaldo/opensmallt<wbr>alk-vm into LowcodeFixup</li>
  <li>Newer version of the Lowcode sources.</li>
  <li>Merge branch 'LowcodeFixup' of github.com:ronsaldo/opensmallt<wbr>alk-vm into LowcodeFixup</li>
  <li>Minor changes to the Lowcode build scripts for Windows.</li>
  <li>Merge branch 'Cog' into LowcodeFixup</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/111/files#diff-0" target="_blank">build.linux32x86/pharo.cog.low<wbr>code/build.assert.itimerheartb<wbr>eat/mvm</a>
    (37)</li></ul></blockquote><div><br></div><div>The build directly names break the naming convention.  Since the VMs below are Spur perhaps we should call them pharo.cog.spur.lowcode?  e.g. when I build immutability VMs I call the directory e.g. squeak.cog.spur.immutability.  So maybe we can use some convention like dialect.[sista|cog|stack].[<wbr>spur|v3].[option1+...optionN].<wbr>  Or, if lowcode always implies Sista support then pharo.lowcode.spur would work.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><ul></ul></blockquote><div>[snip]</div><div><br></div></div><div class="m_-631587141620898311gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>
<br></blockquote></div><br></div>