<div dir="ltr">Hi Esteban,<div><br></div><div> yes, sorry about that. I didn't notice until just now. I'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"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></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: '' (strings).<br>
this commit fixes some, but not all... I don't know what to do with this (from UnixOSProcessPlugin):<br>
<br>
self cCode: 'sigchldHandlerAction.sa_sigaction = reapChildProcess'<br>
<br>
(that dot there...)<br>
<br>
<br>
=============== Diff against VMMaker.oscog-eem.1868 ===============<br>
<br>
Item was changed:<br>
----- Method: FloatArrayPlugin>>primitiveLength (in category 'arithmetic primitives') -----<br>
primitiveLength<br>
<br>
"Primitive. Compute the length of the argument (sqrt of sum of component squares)."<br>
<br>
| rcvr rcvrPtr length result |<br>
<export: true><br>
<var: #rcvrPtr type:'float *'><br>
<var: #result type:'double '><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: 'float *'.<br>
result := 0.0.<br>
0 to: length-1 do:[:i|<br>
result := result + ((self cCoerce: (rcvrPtr at: i) to: 'double') * (self cCoerce: (rcvrPtr at: i) to: 'double')).<br>
].<br>
+ result := self cCode: [self sqrt:result] inSmalltalk: [result sqrt].<br>
- result := self cCode: 'sqrt(result)' inSmalltalk: [result sqrt].<br>
interpreterProxy pop: 1 thenPush: (interpreterProxy floatObjectOf: result)!<br>
<br>
Item was changed:<br>
----- Method: FloatArrayPlugin>>primitiveNormalize (in category 'arithmetic primitives') -----<br>
primitiveNormalize<br>
<br>
"Primitive. Normalize the argument (A FloatArray) in place."<br>
<br>
| rcvr rcvrPtr length len |<br>
<export: true><br>
<var: #rcvrPtr type:'float *'><br>
<var: #len type:'double '><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: 'float *'.<br>
len := 0.0.<br>
0 to: length-1 do:[:i|<br>
len := len + ((self cCoerce: (rcvrPtr at: i) to: 'double') * (self cCoerce: (rcvrPtr at: i) to: 'double')).<br>
].<br>
interpreterProxy success: (len > 0.0).<br>
interpreterProxy failed ifTrue:[^nil].<br>
<br>
+ len := self cCode: [self sqrt:len] inSmalltalk: [len sqrt].<br>
- len := self cCode: 'sqrt(len)' inSmalltalk: [len sqrt].<br>
0 to: length-1 do:[:i|<br>
rcvrPtr at: i put: ((self cCoerce: (rcvrPtr at: i) to: 'double') / len).<br>
].<br>
<br>
"Leave receiver on the stack."!<br>
<br>
Item was changed:<br>
----- Method: SoundPlugin>>primitiveSoundGetRecordingSampleRate (in category 'primitives') -----<br>
primitiveSoundGetRecordingSampleRate<br>
"Return a float representing the actual sampling rate during recording. Fail if not currently recording."<br>
<br>
| rate |<br>
<var: #rate type: 'double '><br>
self primitive: 'primitiveSoundGetRecordingSampleRate'.<br>
+ rate := self snd_GetRecordingSampleRate. "fail if not recording"<br>
- rate := self cCode: 'snd_GetRecordingSampleRate()'. "fail if not recording"<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>