http://qs1969.pair.com?node_id=11138302


in reply to Re: XS, raspberry pi, and a hundred bucks
in thread XS, raspberry pi, and a hundred bucks

Inline::C is a very nice way to introduce compiled libs, if you're doing C stuff. It handles a lot of situations including presenting interface to shared libraries, if needed. There are other FFIs out there, and XS is also the most fundamental option.
  • Comment on Re^2: XS, raspberry pi, and a hundred bucks

Replies are listed 'Best First'.
Re^3: XS, raspberry pi, and a hundred bucks
by stevieb (Canon) on Nov 01, 2021 at 17:37 UTC

    I usually use Inline::C for initial prototypes and quick one-off tests before I write an actual XS module. I never want a user to have to require Inline.

      Check out Inline::Module. It lets you develop using Inline and then package it in a way that all the Inline compilation happens during Makefile.PL and then the resulting installed module doesn't require Inline.

      It's a bit of effort to learn, but I got it working in OpenGL::Sandbox, even packaged up with Dist::Zilla!

      That seems fair - mind explaining why? I am only asking for my own edification. I've written exactly one XS module on CPAN, and I had a lot of help; but I can say for sure that any use of Inline::C has not been for anything I plan to distribute broadly. That said, the one difference I can see between the 2 is that XS modules are compiled once on install; Inline::C run the risk of being recompiled if the cache goes away - usually at an inopportune time.
        Indeed Inline::C generates an xs distribution, you only have to use it once to bootstrap an xs module
Re^3: XS, raspberry pi, and a hundred bucks
by ikegami (Patriarch) on Nov 02, 2021 at 15:12 UTC