[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

Re: [MacPerl] Making a runtime script



At 10.41 1998.04.09, nobroin@esoc.esa.de wrote:
>I presume that a runtime Perl program (given its size) is simply a copy of
>the interpreter slightly modified to run a copy of the script embedded in
>it ? Does it have to compile the script every time or is it the parse tree
>etc. which is saved with the intrepreter (not a current concern, just an
>idle query) ?

It is basically as you say at the beginning.  The script itself is just
saved as an editable TEXT resource in the runtime and is compiled as any
MacPerl script is on execution.


>However, it now looks like I'll have to distribute the runtime and this lib
>folder I've made, which is much messier than I'd like. One thought which
>occurs is to simply build one big source file and which I replace all "use
>modules" by simply merging in the Perl code from the module files. Before I
>try that (because it strikes me as a lot of manual editing) I'm asking the
>list because I feel there must be a better way (and because I don't even
>know if that will work).

Seriously, by the time you are done, it is almost always best to just
install MacPerl.  You won't save much disk space, and installation couldn't
be easier.

But if you really want to do it, there is a droplet called ExtractModules
that can do a big part of what you ask.  Basically, it takes the text of
the modules needed (getting them recursively) and puts them in the resource
fork of the runtime.  You lose them each time you re-save the runtime.

Two major problems:

1.  It does not get autoload files (which can usually be fixed by removing
the __END__ part of the offending module, even by going into the resource
fork manually and doing that).  Or you can manually add those missing
autoload files to the resource fork.  I've done both.

2.  It does not work with shared libraries.  Your choices here are twofold:
  a.  Get the shared libraries and include those
  b.  Use a 68K (NOT FAT, just 68K) version of the BigMacPerl app, which
has the libraries statically linked in

The latter should work with any Mac, but it will not work with any shared
libraries not built in statically (such as MD5 and Storable, that I have
built and put on CPAN and on my web site).


>BTW has anyone tried Malcolm Beattie's compiler yet with MacPerl ?

Not I!

--
Chris Nandor          mailto:pudge@pobox.com         http://pudge.net/
%PGPKey=('B76E72AD',[1024,'0824 090B CE73 CA10  1FF7 7F13 8180 B6B6'])
#==               New Book:  MacPerl: Power and Ease               ==#
#==    Publishing Date: Early 1998. http://www.ptf.com/macperl/    ==#



***** Want to unsubscribe from this list?
***** Send mail with body "unsubscribe" to mac-perl-request@iis.ee.ethz.ch