FFI | How to declare pointer to external structure in #fields?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: FFI | How to declare pointer to external structure in #fields?

K K Subbu
On 19/05/20 1:26 am, Nicolas Cellier wrote:
> 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...

If you are on a Unix/Linux box, you could use groff/nroff man macros
with tbl (tables) and pic (vector diagrams). man macros are convenient
for writing library guides and references. You also have converters from
man to html/ps/pdf etc. The Squeak man page on Unix ports is written
this way.

E.g.
$ nroff -man platforms/unix/doc/squeak.1

HTH .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: FFI | How to declare pointer to external structure in #fields?

David T. Lewis
In reply to this post by Ben Coman
Thanks Ben. I don't follow the topic closely, and this is a very helpful
and concise summary.

Dave

On Tue, May 19, 2020 at 10:53:17PM +0800, Ben Coman wrote:

> On Tue, 19 May 2020 at 03:33, Levente Uzonyi <[hidden email]> wrote:
>
> > 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).
> >
>
> Think of UFFI as a front-end for original-FFI.  IIUC although Igor's
> NativeBoost was a super fast alternative FFI,
> it wasn't portable and wasn't compatible with Spur, so Pharo had to throw
> NativeBoost away.
> But they kept the nice signature style as a layer over FFI.
>
> Ronie wrote a paper on the reasons for UFFI in Pharo...
> https://users.dcc.uchile.cl/~rsalgado/uffi-fourth-draft.pdf
>
> Here is a shorter presentation...
> http://www.esug.org/data/ESUG2016/05-Friday/1145-1230%20UnifiedFFI/ESUG2016%20-%20UFFI.pdf
>
>
> Here are some usage references...
> https://www.slideshare.net/FASTPresentations/pharo-foreign-function-interface-ffi-by-example-by-esteban-lorenzano
>
> http://books.pharo.org/booklet-uffi/pdf/2020-02-12-uFFI-V1.0.1
>
> I never used FFI before UFFI, but I find UFFI very friendly to use.
>
> I believe Ronie's Lowcode was designed to be another backend for UFFI, but
> I don't know the status of state.
>
> cheers -ben

>


Reply | Threaded
Open this post in threaded view
|

Re: FFI | How to declare pointer to external structure in #fields?

Squeak - Dev mailing list
In reply to this post by Nicolas Cellier
Wow, this is incroyable.

/—————————————————————/
For encrypted mail use [hidden email] - Free account at ProtonMail.com
Web: https://objectnets.net and https://objectnets.org
https://datascilv.com https://datascilv.org


On May 18, 2020, at 12:56, Nicolas Cellier <[hidden email]> wrote:


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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>:
>
>       On Mon, May 18, 2020 at 7:05 AM Marcel Taeumel <[hidden email]> 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 - 
>
>
>
>
<The Squeak Foreign Function Interface and its implementation demystified.pdf>



12