develooper Front page | perl.perl5.porters | Postings from February 2012

Re: XS Typemap documentation and related changes

Thread Previous | Thread Next
From:
Steffen Mueller
Date:
February 2, 2012 22:36
Subject:
Re: XS Typemap documentation and related changes
Message ID:
4F2B805E.2010402@cpan.org
Hi Craig,

On 02/03/2012 02:21 AM, Craig A. Berry wrote:
> On Thu, Feb 2, 2012 at 1:21 AM, Steffen Mueller<smueller@cpan.org>  wrote:
>> Pushed a change to disable these tests.
>
> I reverted that change and pushed the following, which builds and
> passes on  VMS and OS X:
>
> commit 08d5d1db9586f83ed261965aabe8db9e99502648
> Author: Craig A. Berry<craigberry@mac.com>
> Date:   Thu Feb 2 18:50:44 2012 -0600
>
>      Resurrect PerlIO-related typemap tests.

Wooh! Thanks for that!

> I have no idea and could not (easily) figure out how xsubpp converts
> something such as InputStream to an actual C typedef (presumably
> "PerlIO *").  But thanks to Steffen for starting to swat at the
> cobwebs.

With mixed success it seems :P

As for the typedef, it seems these don't come with Perl and the user has 
to know about them and include them in their XS code:

~/bleadperl/perl-ssh$ git grep InputStream
cpan/Digest-MD5/MD5.xs:typedef PerlIO* InputStream;
dist/IO/IO.xs:typedef PerlIO * InputStream;
dist/IO/IO.xs:typedef FILE * InputStream;
dist/Storable/Storable.xs:#define InputStream           PerlIO *
ext/B/B.xs:typedef PerlIO * InputStream;
ext/B/B.xs:typedef FILE * InputStream;

Irrelevant hits not included. If typemaps had an 
out-of-XSUB-do-not-include-this-bit-of-C-more-than-once-globally kind of 
mechanism, then this could be solved more elegantly AND we could make 
typemaps re-usable as functions and/or make them ship auxiliary functions.

Cheers,
Steffen

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About