FFI syntax (was: Re: [Vm-dev] Re: testing MT and reentrant)

Levente Uzonyi leves at elte.hu
Thu Mar 24 18:35:04 UTC 2011


On Thu, 24 Mar 2011, Eliot Miranda wrote:

(pine can't quote your mail, sorry)

"I have some image-level changes that I'll try and commit asap, or at 
least give you as some inbox packages
- parsing FFI method annotations to discover the #threaded keyword that 
sets the "go ahead and thread this call" bit in an FFI spec
- an additional inst var in ExternalFunction (IIRC) that allows the VM to 
record how much stack space to reserve when marshalling an FFI call
- the new callback marshalling machinery that provides 
platform-independence

I just need to fid the time to push the code to you.

Now on testing I use
a) an image with a "listener" that reads and writes from/to stdin/out 
while allowing one to interact with the image
b) a native Mac OS file dialog that uses a threaded call to invoke without 
blocking the image and threaded callbacks to determine which files to
show (filter callback) and what the accept action is.  I've of course lost 
my workspace containing this and so have to ferret out the doits from my
changes file (I feel such a fool!).  Alas this will need work as it used 
an extension to a Teleplace native file dialog plugin.  But posting it to
FFI will be good; it will test the FFI further.
c) a threaded version of the ODBC connect that hasn't really been tested

etting you and others to start pounding on these would be fantastic.  Just 
a matter of finding time.  f you're happy for me to push inbox packages,
changesets, workspace contents then I can provide something quickly.  If 
you want me to commit canges that I've made sure are backward compatible
and don't break trunk I'm going ot be much slower.

best regards (albeit feeling a little frazzled :-) ),
Eliot"

Isn't it the best time to migrate the syntax of FFI calls to Pragmas? 
I know it takes some time to implement the pragma support, but IIRC Lukas 
did that a few years ago, so dusting it off and adding support for 
threaded calls (which I didn't see yet) shouldn't be that hard.
Both formats could be supported for a while, then we could leave the 
current format behind and simplify the parsers/compilers, etc.


Levente


More information about the Vm-dev mailing list