Windows FFI

Michael Walter michael.walter at gmail.com
Wed Nov 3 21:20:12 PST 2004


I think it's pretty nice anyway.

Is there currently a FFI for Linux, btw?

Cheers,
Michael


On Thu, 4 Nov 2004 03:28:49 -0800, Lee Salzman <lsalzman1 at cox.net> wrote:
> Honestly, right now I don't think it's appropriate to dig to deep into
> Windows specific features given that VC can't even properly compile
> Slate at all. I'd rather wait till I can generate actual stubs rather
> than having to go through C before this is messed with.
> 
> Lee
> 
> 
> 
> On Wed, Nov 03, 2004 at 02:03:59AM -0500, Todd Fleming wrote:
> > Hello. I started toying with Slate yesterday and decided to try adding
> > FFI support for Windows. I can now do the following:
> >
> > [| l f |
> >  l: (ExternalLibrary newNamed: 'User32').
> >  f: (l lookup: 'MessageBoxA').
> >  f argumentsFormat:
> >  {
> >    ExternalMethod ArgumentFormat Int.
> >    ExternalMethod ArgumentFormat Bytes.
> >    ExternalMethod ArgumentFormat Bytes.
> >    ExternalMethod ArgumentFormat Int.
> >  }.
> >  f callFormat: ExternalMethod CallFormat Std.
> >  (f applyTo: {0 'Hello from Slate!\0' 'My Dialog\0' 0}).
> > ] do.
> >
> > Woohoo!
> >
> > As is, the FFI works with __cdecl functions. I added the ability to call
> > __stdcall ones. Here is how you set the calling convention:
> >
> >   "For the Win32 API"
> >   f callFormat: ExternalMethod CallFormat Std.
> >
> >   "For normal C functions; the default"
> >   f callFormat: ExternalMethod CallFormat C.
> >
> > I attached the patch to this message. It also includes some (!untested!)
> > fixes to windows/directory.c needed to compile. Warning: I added an
> > empty readDirectory() because I was too lazy to write a real one.
> >
> > The patch requires regenerating both the vm and the image.
> >
> > Todd
> >
> 
>




More information about the Slate mailing list