On Fri, Feb 28, 2003 at 04:26:05PM -0500, Barry Jaspan wrote: > I am porting a product that uses perl from Win32 to Mac OS X. On > Windows, I use ActiveState's perlapp to make a stand-alone executable. > I've been looking for a solution for OS X, and PAR seems to be it. Of > course, OS X comes with perl pre-installed, so I can always just ship > my scripts, but I'd prefer a single-executable format for a variety of > reasons. I'm happy to depend on the pre-installed libperl.so, though.
That sounds like the exact case that PAR is designed for. Since the
function to bundle libperl.so with the executable hadn't been written,
I'm happy that you don't consider this a problem.
> Is PAR ready for this task, or is it not yet reliable enough?
I've been put PAR under quite extensive use on FreeBSD for deploying
libaries and applications to my clients; I'd say it is reliable
enough (especially the 0.64 that just came out) now.
However PAR is (and will remain) free software with absolutely No
Warranty, so if it breaks... you get to keep both pieces. :)
> I ran "pp -o myapp myapp.pl" and it generated an executable. I've
> testd it a little bit, and it seems to work perfectly. I haven't
> hammered on it yet.
It is also worth noting that you are free to pack whatever (XS-
and non-XS-) modules inside the executable; they will only be
extracted the first time the program require()'ed them.
Also, Compress::Zlib, IO::File and other modules are bundled
with the executable, so the client machines does not need to
install them. (This is replying to your thread on [EMAIL PROTECTED])
Another common use case is for multiple executables to share
similar library requirements. On Unix systems capable of 'ln'
this is easily achived by:
% pp -o prog.out prog_a.pl prog_b.pl prog_c.pl
% ln prog.out prog_a
% ln prog.out prog_b
% ln prog.out prog_c
% ./prog_a # runs the original prog_a.pl
% ./prog_b # runs the original prog_b.pl
> Is this too good to be true, or do I owe Autrijus a major "Thank-You!"?
Well, test it and decide for yourself. :-) Bugs reports are always
welcome -- I'll try resolving it as timely as possible.
Thanks,
/Autrijus/
pgp00000.pgp
Description: PGP signature
