<div dir="ltr">Hi Alistair,<br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 15, 2018 at 9:48 AM Alistair Grant <<a href="mailto:akgrant0710@gmail.com">akgrant0710@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>
Hi Eliot,<br>
<br>
<br>
On Mon, 15 Oct 2018 at 16:46, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br>
><br>
><br>
> Hi Ben,<br>
><br>
> On Oct 15, 2018, at 5:28 AM, Ben Coman <<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>> wrote:<br>
><br>
> On Mon, 15 Oct 2018 at 07:21, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br>
>><br>
>><br>
>> But too do that we would need a derived pointer type<br>
><br>
><br>
> My usual searches... "define derived pointer" and "what is derived pointer" are not being helpful.<br>
> All results seem to be pointers to C++ derived classes, which I guess is not directly what your referring to.<br>
> Can you educate me on this...?<br>
><br>
><br>
> By “derived” I mean a pointer to some point inside an object, not a pointer to the start of an object.  When one passes eg a ByteArray through the FFI to a reference parameter  the marshaling code ends up passing a pointer to the start of the object.  That won’t work if what we want to do is simulate passing a pointer to the start of a simulation object that actually lives at an offset inside the large ByteArray that constitutes the entire heap in the simulation.  So we need to be able to express a ByteArray, offset pair and pass that through the FFI to a reference parameter and have the marshaling code end up passing the derived a pointer that is the start of the ByteArray plus the offset, and hence end up passing a pointer to the start of the simulation object in the large ByteArray that constitutes the entire heap.<br>
<br>
As a first step to get things going, couldn't we just copy the<br>
ByteArray's to and from the simulation memory?  It would obviously be<br>
much less efficient, but would reduce the number of pre-requisites to<br>
get started.<br></blockquote><div><br></div><div>Maybe, but I expect it is a very small change to marshaling to spurt this and has high value to the FFI in general (think of trying to pass a field embedded in a struct; that's not yet possible; with derived pointers it is; the facility is generally useful).  IME if one can find a simple more general solution to a problem than some other, then pursue that, even if its initial cost maybe higher because it will pay off better in the long run.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Cheers,<br>
Alistair<br>
</blockquote></div><div><br></div><div dir="ltr" class="gmail_signature" data-smartmail="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>