Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

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

by perlfan (Vicar)
on Nov 01, 2021 at 16:21 UTC ( [id://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.

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?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-03-29 13:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found