Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: XS, raspberry pi, and a hundred bucks

by perlfan (Vicar)
on Nov 01, 2021 at 16:21 UTC ( #11138302=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2022-08-09 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?