Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Inline::C and Packaged Distributions

by demerphq (Chancellor)
on Sep 30, 2005 at 20:34 UTC ( #496513=note: print w/replies, xml ) Need Help??


in reply to Re: Inline::C and Packaged Distributions
in thread Inline::C and Packaged Distributions

Yep, thats pretty much what I do. I tend to do Inline::C only as a dev stage because I found using Inline::C for installable modules to be unreliable. Inline::MakeMaker doesnt seem to do the job very well. But the XS produced by Inline::C will install fine, although there are a few nits, but they are easy to work around.

Another reason in favour of distrubuting XS and not the Inline original is that places like ActiveState can then make a PPM that will install fine on Windows boxes that dont have compilers handy. Being able to get somebody else to provide binaries for you is pretty handy.

A last minor comment: there is actually nothing but convention (and respect for the mirrors) preventing you from including the required precompiled binaries for the platforms where they might be needed directly in the CPAN distro. So for instance you can build a CPAN distro that contains only the .dll and not the XS. Of course this has the disadvantage that if the user is not on the version of perl that you built the binary for that it wont work. But still its an option worth considering, especially if you are releasing inhouse or whatever.

---
$world=~s/war/peace/g

  • Comment on Re^2: Inline::C and Packaged Distributions

Replies are listed 'Best First'.
Re^3: Inline::C and Packaged Distributions
by tlm (Prior) on Oct 04, 2005 at 12:57 UTC

    I'm curious about the mechanics of your procedure. It sounds like, right before packaging your distribution you must remove or comment-out the Inline::C-related code from your modules. Have I got this right? If so, have you automatated this step?

    the lowliest monk

      Yeah, I comment out the inline stuff and do it all by hand. And no i havent automated the process as Ive not needed to use it that often. Basically the idea is to use Inline as a bridge to help you grok XS, and once thats done you just use XS because its easier to distribute.

      IOW: Inline::C is easier to develop, but XS is easier to deploy.

      ---
      $world=~s/war/peace/g

        My problem is that, for reasons I don't yet understand, my Inline::C does not generate *.xs files.

        the lowliest monk

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://496513]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2020-01-25 16:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?