INTRODUCTION: Inline.pm - Write Perl subroutines in other programming languages. Inline lets you write Perl subroutines in other programming languages like C. You don't need to compile anything. All the details are handled transparently so you can just run your Perl script like normal. Example: use Inline C => <<'END'; SV* JAxH(char* x) { return newSVpvf ("Just Another %s Hacker",x); } END print JAxH('Inline'), "\n"; When run, this complete program prints: Just Another Inline Hacker The one line version is: perl -le 'use Inline C=>q{SV*JAxH(char*x){return newSVpvf("Just Another %s Hacker",x);}};print JAxH+Inline' ------------------------------------------------------------------------------- FEATURES: Inline version 0.33 is a minor upgrade with the following changes: + Support for Inline::Struct and Inline::Filters + Added ENABLE and DISABLE configuration modifiers. + C installation is optional + Test harness reworked. Faster testing. + Fixed all reported (and some unreported) bugs. + Documentation enhancements. Inline version 0.32 is a minor upgrade with the following changes: + Addition of UNTAINT, SAFEMODE, GLOBAL_LOAD, MAKE, and LDDLFLAGS configuration options. + Fixed all reported (and some unreported) bugs. + Documentation enhancements. Inline version 0.31 is a minor upgrade with the following changes: + "use Inline C;" is now a synonym for "use Inline C => DATA;" + Default build/install directory changed from "blib_I/" to ".Inline/" + Build/Install directory structure simplified. + Short install paths. + Build areas in ".Inline/build/" subdirectory. + Added 'CC', 'CCFLAGS', 'LD', and 'LDFLAGS' config options to C. + More recipes in Cookbook. Inline version 0.30 is a major upgrade from previous verions. It includes: + Integrated support for typemap files in C. + All the recognized types now come *only* from typemaps. + The default types come from the default typemap installed with core Perl. + Typemaps are used to modify the Parse::RecDescent grammar for parsing C. + This means you can easily use your existing typemaps. + Language support completely separated from base Inline code. + Beta supoort for C (Inline::C, included) + Alpha support for C++ (Inline::CPP, available separately) + Alpha support for Python (Inline::Python, available separately) + Support for 'embedding' Perl in C with my new programming language, CPR. (Inline::CPR, available separately) This one may warp your mind :^) + Simple API for adding your own language support. + Write your own Inline::Foo + Write your own implementation of Inline::C, or just modify Inline::C::grammar. + Support for interpreted languages in addition to compiled ones. + Autodetection of new Inline language modules. + Much easier and more powerful configuration syntax. + More XS and MakeMaker features exposed for configuration (for C and C++). + Flexible new syntax for specifying source code. + Use DATA section for AutoLoader, Inline, and POD simultaneously. + Support for using Inline 'with' other modules. + "use Inline with 'Event';" lets Event.pm pass config info to Inline.pm. + Event.pm 0.80 has built in support for Inline.pm 0.30 and higher. + Write Event callbacks in C with extreme ease. + More documentation + perldoc Inline + perldoc Inline-FAQ + perldoc Inline-API + perldoc Inline::C + perldoc Inline::C-Cookbook + Better error messages and easier debugging. + Mailing list: inline@perl.org Other features of Inline.pm include: = Automatically compiles your source code and caches the shared object. = Automatically DynaLoads the shared object and binds it to Perl. = Recompiles only when the C code changes. = Changing the Perl code will not cause a recompile of the C code. = Support for writing extension modules, suitable for distributing to the CPAN. = Support for generating and binding Inline subs at run time. = Works on all Unix and MS Windows configurations. ------------------------------------------------------------------------------- INSTALLATION: This module requires the Digest::MD5 and Parse::RecDescent modules. It also requires the appropriate C compiler. (Where appropriate means the one referred to in your Config.pm) To install Inline do this: perl Makefile.PL make make test make install On ActivePerl for MSWin32, use nmake instead of make. Or just use: ppm install Inline For convenience, Inline::C is packaged with Inline, and will be automatically installed as well. ------------------------------------------------------------------------------- INFORMATION: = For more information on Inline, see 'perldoc Inline' and 'perldoc Inline-FAQ' = For information about Inline::, see 'perldoc Inline::C' and 'perldoc Inline::C-Cookbook' = For information on writing your own Inline extension see 'perldoc Inline-API' = For information about the Perl5 internal C API, see 'perldoc perlapi' or try http://www.perldoc.com/perl5.6/pod/perlapi.html = The Fall 2000 edition of The Perl Journal has an article about Inline The Inline.pm mailing list is inline@perl.org. Send email to inline-subscribe@perl.org to subscribe. Please send questions and comments to "Brian Ingerson" Copyright (c) 2001, Brian Ingerson. All Rights Reserved.