<div dir="ltr">Hi Esteban,<div><br></div><div>    yes, sorry about that.  I didn&#39;t notice until just now.  I&#39;ve fixed it properly, so will skip your commit.  Forgive me.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 26, 2016 at 4:51 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1869.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1869.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-EstebanLorenzano.1869<br>
Author: EstebanLorenzano<br>
Time: 26 May 2016, 1:49:23.32419 pm<br>
UUID: 6ccd2249-0a2c-4279-90b4-861c39f29859<br>
Ancestors: VMMaker.oscog-eem.1868<br>
<br>
last change breaks cCode: &#39;&#39; (strings).<br>
this commit fixes some, but not all... I don&#39;t know what to do with this (from UnixOSProcessPlugin):<br>
<br>
self cCode: &#39;sigchldHandlerAction.sa_sigaction = reapChildProcess&#39;<br>
<br>
(that dot there...)<br>
<br>
<br>
=============== Diff against VMMaker.oscog-eem.1868 ===============<br>
<br>
Item was changed:<br>
  ----- Method: FloatArrayPlugin&gt;&gt;primitiveLength (in category &#39;arithmetic primitives&#39;) -----<br>
  primitiveLength<br>
<br>
        &quot;Primitive. Compute the length of the argument (sqrt of sum of component squares).&quot;<br>
<br>
        | rcvr rcvrPtr length result |<br>
        &lt;export: true&gt;<br>
        &lt;var: #rcvrPtr type:&#39;float *&#39;&gt;<br>
        &lt;var: #result type:&#39;double &#39;&gt;<br>
        rcvr := interpreterProxy stackObjectValue: 0.<br>
        interpreterProxy failed ifTrue:[^nil].<br>
        interpreterProxy success: (interpreterProxy isWords: rcvr).<br>
        interpreterProxy failed ifTrue:[^nil].<br>
        length := interpreterProxy stSizeOf: rcvr.<br>
        interpreterProxy success: true.<br>
        rcvrPtr := self cCoerce: (interpreterProxy firstIndexableField: rcvr) to: &#39;float *&#39;.<br>
        result := 0.0.<br>
        0 to: length-1 do:[:i|<br>
                result := result + ((self cCoerce: (rcvrPtr at: i) to: &#39;double&#39;) * (self cCoerce: (rcvrPtr at: i) to: &#39;double&#39;)).<br>
        ].<br>
+       result := self cCode: [self sqrt:result] inSmalltalk: [result sqrt].<br>
-       result := self cCode: &#39;sqrt(result)&#39; inSmalltalk: [result sqrt].<br>
        interpreterProxy pop: 1 thenPush: (interpreterProxy floatObjectOf: result)!<br>
<br>
Item was changed:<br>
  ----- Method: FloatArrayPlugin&gt;&gt;primitiveNormalize (in category &#39;arithmetic primitives&#39;) -----<br>
  primitiveNormalize<br>
<br>
        &quot;Primitive. Normalize the argument (A FloatArray) in place.&quot;<br>
<br>
        | rcvr rcvrPtr length len |<br>
        &lt;export: true&gt;<br>
        &lt;var: #rcvrPtr type:&#39;float *&#39;&gt;<br>
        &lt;var: #len type:&#39;double &#39;&gt;<br>
        rcvr := interpreterProxy stackObjectValue: 0.<br>
        interpreterProxy failed ifTrue:[^nil].<br>
        interpreterProxy success: (interpreterProxy isWords: rcvr).<br>
        interpreterProxy failed ifTrue:[^nil].<br>
        length := interpreterProxy stSizeOf: rcvr.<br>
        interpreterProxy success: true.<br>
        rcvrPtr := self cCoerce: (interpreterProxy firstIndexableField: rcvr) to: &#39;float *&#39;.<br>
        len := 0.0.<br>
        0 to: length-1 do:[:i|<br>
                len := len + ((self cCoerce: (rcvrPtr at: i) to: &#39;double&#39;) * (self cCoerce: (rcvrPtr at: i) to: &#39;double&#39;)).<br>
        ].<br>
        interpreterProxy success: (len &gt; 0.0).<br>
        interpreterProxy failed ifTrue:[^nil].<br>
<br>
+       len := self cCode: [self sqrt:len] inSmalltalk: [len sqrt].<br>
-       len := self cCode: &#39;sqrt(len)&#39; inSmalltalk: [len sqrt].<br>
        0 to: length-1 do:[:i|<br>
                rcvrPtr at: i put: ((self cCoerce: (rcvrPtr at: i) to: &#39;double&#39;) / len).<br>
        ].<br>
<br>
        &quot;Leave receiver on the stack.&quot;!<br>
<br>
Item was changed:<br>
  ----- Method: SoundPlugin&gt;&gt;primitiveSoundGetRecordingSampleRate (in category &#39;primitives&#39;) -----<br>
  primitiveSoundGetRecordingSampleRate<br>
        &quot;Return a float representing the actual sampling rate during recording. Fail if not currently recording.&quot;<br>
<br>
        | rate |<br>
        &lt;var: #rate type: &#39;double &#39;&gt;<br>
        self primitive: &#39;primitiveSoundGetRecordingSampleRate&#39;.<br>
+       rate := self snd_GetRecordingSampleRate.  &quot;fail if not recording&quot;<br>
-       rate := self cCode: &#39;snd_GetRecordingSampleRate()&#39;.  &quot;fail if not recording&quot;<br>
        ^rate asFloatObj!<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_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>