Hi Evan,

sorry for the delay in replying, but the broader the question, the
harder to answer it. :)


Quite frankly, I can not provide a full description of how PAR works.
That'd be quite a story.

First of all, let me say that PAR can be used in many different ways for
software deployment. The mode you're interested in is probably the
"create-standalone-executable-including-all-perl-dependencies"
packaging. For a moderately in-depth overview, consider having a look at
the slides of my YAPC::EU talk on PAR:
http://steffen-mueller.net/talks/appdeployment

Essentially, you do
pp -o app.exe app.pl
to generate the stand-alone executable. Dependency scanning will be done
for you. The generated binary should work on any moderately similar system.

When packaging an application of any meaningful size, you will
undoubtedly realize that it's not as simple as the above command
suggests. The module dependency scanning isn't perfect. Sometimes is
misses stuff, usually it packages waaaay too much. However, what it
can't do *at all* is find dependencies on Perl-external libraries such
as system shared libraries (so's/dll's) or -- as in your case -- R
libraries. You can use the -l option to include shared libraries such as
libR, or whatever that one's called, but that won't include your R code yet.

The contents of the executable will be extracted to a temporary
directory on execution. That includes any files added with the -a option
to pp. So maybe that's a start for using PAR to package your Perl+R
hybrid application.

> Will I be able to distribute the software and make it easily
> downloadable to anyone who wants to use it? (This is my goal)

If
a) you manage to get R into the picture and
b) you produce a binary for every platform you want to support
then I see no reason you shouldn't be able to provide single-file
downloads. Note that PAR is not an *installer* generator. The generated
executables do not need an installed perl.

Hope this helps,
Steffen

Reply via email to