2009Q3 Grant Proposal: Creating a ctypes-Like Interface for Perl to External Subroutines

Category: Grants

Comments (6)


This project will lower the bar for extending Perl to low level languages, while improving performance of modules that take advantage of it. This would be an awesome improvement to Perl 5.

Please fund this project!


XS seems terrifying to the average Perl programmer, and even highly skilled programmers try to avoid its hassle.

Having ctypes-like system for Perl would allow any Perl programmer to interact with shared libraries without the issues of XS.

I would have to say 2-3 months is little time to an average programmer but Shlomi Fish is indeed a very capable and prolific programmer, who contributes quite a lot to CPAN, Perl and Open Source communities, who could definitely get it done, and get it done right.

There is nothing I would like to see more than being able to use ANY shared library without fearing XS or (even) SWIG.


How exactly does what your proposing differ from the existing P5NCI module?


What is the difference between this and http://search.cpan.org/dist/FFI/ ??


Why not start from Win32::API? While it is IA32-only, a lot of the code should be easy to port to Linux/Mac, and it would be easier/quicker than starting from scratch (or from ctypes).


Yes, yes, a thousand times, yes.

A huge stumbling block is the difficulty in using third party libraries in Perl, where it's easy to do in Python. There are libraries out there to assist with this, but they only work well on a few platforms, or still require a significant amount of boilerplate to get started. Something like this would make bindings far easier to deal with in Perl, and enable Perl to flourish in new platforms like Maemo or Haiku.


Sign in to add comment