[squeak-dev] FFI | How to declare pointer to external structure in #fields?

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon May 18 19:56:22 UTC 2020


Hi all,
I started to write a documentation of FFI implementation two or three
months ago, I don't remember exactly, it's an eternity. The lock down did
not give me an opportunity to continue. I want to publish with some liberal
CC license, but I don't have chosen a support format yet. On one side, I
wanted to focus on contents more than on the format. But on the other side,
I want some graphical illustrations accurate enough. I wrote in Word
because it was easy for me to include tables and graphics, but it's kinda
stupid, especially because Word make you focus on format more than contents
! LaTeX is not general enough, it would rather be a backend nowadays. I
contemplated using pandoc which has good support, or the much more limited
Pilar, which at least is Smalltalk based...
The structure is not well established and the work is very preliminary, but
since there is some demand, I give a pdf copy here as is, I hope it's not
too big for the list. This probably should better be continued as a
collaborative work anyway.

Le lun. 18 mai 2020 à 21:33, Levente Uzonyi <leves at caesar.elte.hu> a écrit :

> How does UFFI come here? AFAIK it's nothing but a different image-side
> code using the VM's FFI implementation along with the signature notion
> Igor used in NativeBoost (which is great btw because it's "as you would
> write it in C" and doesn't require language changes).
>
>
> Levente
>
> On Mon, 18 May 2020, Jakob Reschke wrote:
>
> > Do we even have UFFI in Squeak? This was the thing I meant is missing to
> reuse Pharo's libgit2 bindings, in the vm-dev thread.
> >
> > Marcel Taeumel <marcel.taeumel at hpi.de> schrieb am Mo., 18. Mai 2020,
> 20:07:
> >       Hi Vanessa,
> > > I don't have the code in front of me but there is the parser you could
> check ;)
> >
> > I tried. I suspect that the generator cannot do it but I have to wrap it
> manually. But I am not sure. Reverse engineering UnifiedFFI did not help
> yet either. Have to put more time into it. :-)
> >
> > Best,
> > Marcel
> >
> >       Am 18.05.2020 20:00:16 schrieb Vanessa Freudenberg <
> vanessa at codefrau.net>:
> >
> >       On Mon, May 18, 2020 at 7:05 AM Marcel Taeumel <
> marcel.taeumel at hpi.de> wrote:
> >       Hi, there!
> >
> > In the #fields method of a new ExternalStructure, how can I express a
> pointer to another external structure?
> >
> > First, non-pointer works as expected:
> > ^ #( (other MyStruct) )
> >
> > Second, this just treats it as a void*, which returns a generic
> ExternalData:
> > ^ #( (other 'MyStruct*') )
> >
> > Third, this gives me a debugger:
> > ^ #( (other MyStruct *) )
> >
> >
> > I don't have the code in front of me but there is the parser you could
> check ;)
> >
> > It might be *MyStruct.
> >
> >  - Vanessa -
> >
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200518/0dd0d31c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: The Squeak Foreign Function Interface and its implementation demystified.pdf
Type: application/pdf
Size: 460244 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200518/0dd0d31c/attachment-0001.pdf>


More information about the Squeak-dev mailing list