It would be great to see an example of how to call a sub in the shared library
I haven't seen such example of code, but I attended a talk by Will Braswell a few months ago, and asked whether it is feasible, and Will answered that it is possible. So you could have your CPU intensive nested loops or other computations in a RPerl module, and the rest in a regular Perl program. This looks very interesting to me, because it seems easier to write a RPerl module than an XS module.
| [reply] |
Please excuse my ignorance, but wouldn't this imply having two runtime environments for Perl communicating via sub calls?
| [reply] |
I'm not sure how this would work exactly, but my understanding (I could be wrong) was that RPerl components are compiled to binaries (after a translation phase to C++) and probably don't need a specific runtime environment. So you would only need to include the proper modules in your Perlrapper.
| [reply] |
$RPerl::Inline::ARGS{libs} = '-lgmpxx -lgmp';
| [reply] [d/l] |
Interesting, so instead of converting the Perl code to a shared library, one could convert it to a .cpp source file instead which is then included into the main Perl script using gcc and Inline::CPP ? Alternatively, write a wrapper .cpp file that links with the generated shared library by giving a libs parameter to Inline::CPP ? It would still be great if someone could present a simple working (tutorial-type) example.. :)
| [reply] [d/l] [select] |
| [reply] |