<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="">yes… weird because I loaded VMMaker and just add the option… anyway… committing a version with correct comment.<div class=""><br class=""></div><div class="">Esteban<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 28 Jan 2016, at 18:41, Clément Bera &lt;<a href="mailto:bera.clement@gmail.com" class="">bera.clement@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I think you reintroduced the old comment that does not make sense any more as the NewSpeak ABI plugin was merged into the Smalltalk one now that immutability is in the main VM.<div class=""><br class=""></div><div class=""><font face="monospace, monospace" class=""><span style="font-size:12.8px" class="">+ !IA32ABIPlugin commentStamp: '&lt;historical&gt;' prior: 0!</span><br style="font-size:12.8px" class=""><span style="font-size:12.8px" class="">+ This plugin implements the Alien foreign-function interface, a small elaboration on the Strongtalk FFI.&nbsp; This version of the plugin differs from the NewsqueakIA32ABIPlugin in not supporting immutability.</span><br style="font-size:12.8px" class=""><span style="font-size:12.8px" class="">- !IA32ABIPlugin commentStamp: 'eem 1/25/2016 11:59' prior: 0!</span><br style="font-size:12.8px" class=""><span style="font-size:12.8px" class="">- This plugin implements the Alien foreign-function interface, a small elaboration on the Strongtalk FFI.</span></font><br class=""></div><div class=""><span style="font-size:12.8px" class=""><br class=""></span></div><div class=""><span style="font-size:12.8px" class="">==&gt; not correct.</span></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">2016-01-28 17:44 GMT+01:00  <span dir="ltr" class="">&lt;<a href="mailto:commits@source.squeak.org" target="_blank" class="">commits@source.squeak.org</a>&gt;</span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="">
Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:<br class="">
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1672.mcz" rel="noreferrer" target="_blank" class="">http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1672.mcz</a><br class="">
<br class="">
==================== Summary ====================<br class="">
<br class="">
Name: VMMaker.oscog-EstebanLorenzano.1672<br class="">
Author: EstebanLorenzano<br class="">
Time: 28 January 2016, 5:38:59.720208 pm<br class="">
UUID: 3ed1ee79-ae66-44d8-8366-67899098dfab<br class="">
Ancestors: VMMaker.oscog-eem.1671<br class="">
<br class="">
added an option for #primDrainOSEventQueue because it just have sense for NewspeakVM (and it makes Windows build fails if present).<br class="">
<br class="">
=============== Diff against VMMaker.oscog-eem.1671 ===============<br class="">
<br class="">
Item was changed:<br class="">
&nbsp; InterpreterPlugin subclass: #IA32ABIPlugin<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; instanceVariableNames: ''<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; classVariableNames: ''<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; poolDictionaries: 'VMBasicConstants'<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; category: 'VMMaker-Plugins-Alien'!<br class="">
<br class="">
+ !IA32ABIPlugin commentStamp: '&lt;historical&gt;' prior: 0!<br class="">
+ This plugin implements the Alien foreign-function interface, a small elaboration on the Strongtalk FFI.&nbsp; This version of the plugin differs from the NewsqueakIA32ABIPlugin in not supporting immutability.<br class="">
- !IA32ABIPlugin commentStamp: 'eem 1/25/2016 11:59' prior: 0!<br class="">
- This plugin implements the Alien foreign-function interface, a small elaboration on the Strongtalk FFI.<br class="">
<br class="">
&nbsp; Call-outs are performed by a small number of primitives, one each for the four different kinds of return linkage on x86.&nbsp; The primitives are var-args.&nbsp; Each primitive has a signature something like:<br class="">
&nbsp; primFFICall: functionAddress &lt;Alien&gt; result: result &lt;Alien&gt; with: firstArg &lt;Alien&gt; ... with: lastArg &lt;Alien&gt;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &lt;primitive: 'primCallOutIntegralReturn' module: 'IA32ABI'&gt;<br class="">
&nbsp; which arranges to call-out supplying the arguments to the function pointed to by functionAddress, copying its return value into result.&nbsp; The call-out primitives are as follows:<br class="">
<br class="">
&nbsp; primCallOutIntegralReturn call a function which returns up to 8 bytes in %eax &amp; %edx, taking up to the first 4 bytes from %eax.&nbsp; i.e. if the sizeof(result) is 4 or less only bytes from %eax will be returned, but if more then the first 4 bytes of result will be assigned with %eax and subsequent bytes with %edx, up to a total of 8 bytes.<br class="">
<br class="">
&nbsp; primCallOutPointerReturn call a function which returns a pointer in %eax.&nbsp; Assign sizeof(result) bytes from this pointer into the result.<br class="">
<br class="">
&nbsp; primCallOutFloatReturn call a function which returns a 4 byte single-precision float in %f0, assigning the 4 bytes of %f0 into result.<br class="">
<br class="">
&nbsp; primCallOutDoubleReturn call a function which returns an 8 byte double-precision float in %f0, assigning the 8 bytes of %f0 into result.<br class="">
<br class="">
&nbsp; !<br class="">
<br class="">
Item was changed:<br class="">
&nbsp; ----- Method: IA32ABIPlugin&gt;&gt;primDrainOSEventQueue (in category 'primitives-Windows-VM-specific') -----<br class="">
&nbsp; primDrainOSEventQueue<br class="">
+&nbsp; &nbsp; &nbsp; &nbsp;&lt;option: #NewspeakVM&gt;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &lt;export: true&gt;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; self ioDrainEventQueue!<br class="">
<br class="">
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></body></html>