Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
November 04, 2013 Is there any prior art of calling D functions in Perl? | ||||
---|---|---|---|---|
| ||||
Perl has a method to call functions from C code or libraries directly in Perl code, called XS. This works via a macro language that wraps around C and DTRT. Has anyone done something like this with D in Perl before? Failing that, is there prior art of calling D code from C? |
November 04, 2013 Re: Is there any prior art of calling D functions in Perl? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christian Walde | On Monday, 4 November 2013 at 18:10:58 UTC, Christian Walde wrote: > Perl has a method to call functions from C code or libraries directly in Perl code, called XS. This works via a macro language that wraps around C and DTRT. > > Has anyone done something like this with D in Perl before? > > Failing that, is there prior art of calling D code from C? http://dlang.org/interfaceToC.html |
November 04, 2013 Re: Is there any prior art of calling D functions in Perl? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christian Walde | On Monday, 4 November 2013 at 18:10:58 UTC, Christian Walde wrote:
> Perl has a method to call functions from C code or libraries directly in Perl code, called XS. This works via a macro language that wraps around C and DTRT.
>
> Has anyone done something like this with D in Perl before?
>
> Failing that, is there prior art of calling D code from C?
to get the ABI right, just use extern(C) on the relevant D functions.
however, if the perl interface needs to write wrapper functions based on C headers you will have to write a C header containing the relevant function declarations.
|
November 05, 2013 Re: Is there any prior art of calling D functions in Perl? | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | > to get the ABI right, just use extern(C) on the relevant D functions. Wow, ok, that was well hidden. I'd strongly suggest that block in http://dlang.org/interfaceToC.html get its own heading. > however, if the perl interface needs to write wrapper functions based on C headers you will have to write a C header containing the relevant function declarations. Yeah, that was what i suspected, but hoped to avoid by reusing someone else's efforts. :) |
November 06, 2013 Re: Is there any prior art of calling D functions in Perl? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christian Walde Attachments:
| On 5 November 2013 14:41, Christian Walde <walde.christian@gmail.com> wrote: > to get the ABI right, just use extern(C) on the relevant D functions. >> > > Wow, ok, that was well hidden. I'd strongly suggest that block in http://dlang.org/interfaceToC.html get its own heading. > > > however, if the perl interface needs to write wrapper functions based on >> C headers you will have to write a C header containing the relevant function declarations. >> > > Yeah, that was what i suspected, but hoped to avoid by reusing someone else's efforts. :) > I made a small start some time ago for a proof of concept package (in a little over 150 lines of code). http://iainbuclaw.wordpress.com/2010/06/22/d-perlembed -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; |
Copyright © 1999-2021 by the D Language Foundation