XS Fun
Any XS guru will tell you XS is easy. I've heard this many times. While it may be true, I realized one thing: XS can be scary.
The purpose of this guide is to make XS fun. Yes, fun. Try it out, if you won't feel as exhilarated as I do as you make your way up the stairs of XS knowledge, I will fully reimburse your tuition.
Ground rules
- We use a template instead of
h2xs
. - We do not bundle an additional C library.
- We assume you have at least Perl 5.14.2.
These are the best bits of advice I've received so far and they've proven to be crucial.
h2xs
is old and crufty, and thus far seems more like a hurdle. Instead,
this guide includes a skeleton for each exercise that you can copy and use
each time you start a new project.
Bundling additional C libraries requires hacks with ExtUtils::MakeMaker
(which is a war in and of itself), including tab character nightmares and
additional recursive Makefiles. One way around the obvious "you need to have
this library installed" problem is to provide an Alien
package. This guide
might go over it at some point but makes no promises.
Eliminating the use of h2xs
and bundling any C libraries we use (that
we haven't written by ourselves) removes a lot of needless complexity.
Perl 5.14.2 is prevalent enough to consider it a starting ground, though at this point it is not yet necessarily important.
Relevant resources
More advanced or specialized resources
- General index
- perlxstypemap (
perldoc perlxstypemap
) - perlhack (
perldoc perlhack
) - perlhacktips (
perldoc perlhacktips
) - perlhacktut (
perldoc perlhacktut
) - perlguts (
perldoc perlguts
) - perlintern (
perldoc perlintern
) - perlinterp (
perldoc perlinterp
) - perlcall (
perldoc perlcall
) - perlsource (
perldoc perlsource
)