<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, 30 Oct 2018 at 20:22, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div dir="auto">Hi Ben,<div dir="ltr"><br>On Oct 30, 2018, at 4:57 AM, Ben Coman <<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>> wrote:<br><br></div><blockquote type="cite"><div dir="ltr"><span></span></div></blockquote><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div dir="ltr">I'm sure this was explained somewhere before (even recently), <div>but I forget, and can't find anything in my usual search places.<div><br><div class="gmail_quote"><div dir="ltr">On Tue, 30 Oct 2018 at 09:02, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2479.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2479.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.2479<br>
Author: eem<br>
Time: 29 October 2018, 6:00:57.748695 pm<br>
UUID: b191888c-6777-483b-82b4-121103743ebf<br>
Ancestors: VMMaker.oscog-eem.2478<br>
<br>
Plugins:<br>
Fix slip in primitiveDirectoryDelimitor.<br>
Eliminate cCode:inSmalltalk:'s from the B3DAcceleratorPlugin<br>
<br>
=============== Diff against VMMaker.oscog-eem.2478 ===============<br><snip><br>
Item was changed:<br>
  ----- Method: B3DAcceleratorPlugin>>primitiveAllocateTexture (in category 'primitives-textures') -----<br>
  primitiveAllocateTexture<br>
        | h w d result renderer |<br>
        <export: true><br>
        interpreterProxy methodArgumentCount = 4<br>
                ifFalse:[^interpreterProxy primitiveFail].<br>
        h := interpreterProxy stackIntegerValue: 0.<br>
        w := interpreterProxy stackIntegerValue: 1.<br>
        d := interpreterProxy stackIntegerValue: 2.<br>
        renderer := interpreterProxy stackIntegerValue: 3.<br>
        interpreterProxy failed ifTrue:[^nil].<br>
+       result := self b3dxAllocateTexture: renderer _: w _: h _: d.<br>
-       result := self cCode:'b3dxAllocateTexture(renderer, w, h, d)' inSmalltalk:[-1].<br>
        result = -1 ifTrue:[^interpreterProxy primitiveFail].<br>
        interpreterProxy pop: 5. "args+rcvr"<br>
        ^interpreterProxy pushInteger: result.!<br></blockquote><div><br></div><div><br class="m_8335347200747766042gmail-Apple-interchange-newline">What is the mechanism that allows cCode:inSmalltalk:'s to be replaced like above?</div><div>I half expected  "b3dxAllocateTexture:_:_:_:"</div><div>to be newly defined somewhere else in that commit.</div></div></div></div></div></div></div></blockquote><div><br></div>Those implementations can come later.  Right now the plugin doesn’t simulate anyway.  You’re right I could have written them then and there, but I would rather do real o es than simple failing stubs.  If I find that I can’t simulate without stubs I’ll add them.  Feel free to provide them if you’re motivated.  I should have just fixed the digitCompare: issue but got carried away...</div></blockquote><div><br></div><div>I'm still missing something basic, but guessing... the "inSmalltalk:" part is what is performed by the simulator?</div><div><br></div><div>and the "cCode:" is generated into a C-code-call that expects that function linked in from a library?</div><div><br></div><div>and now there is no simulation and "b3dxAllocateTexture:_:_:_:" is generated to C-code-call?</div><div><br></div><div>So is there a mechanism that any unknown message (i.e. "b3dxAllocateTexture:_:_:_:") is generated to a C-code-call?</div><div><br></div><div>cheers -ben</div><div><br></div></div></div>