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

PCL/Standalone applications (the adventure continues...)

More follow-up on PCL compilation and standalone applications:

Sean Doyle ("XRAY::RSTARSEAN" <rstarsean%xray.decnet@mghccc.harvard.edu>) 

> > From: alms@cambridge.apple.com (Andrew L. M. Shalit)
> > My guess is that PCL calls the compiler at run-time to compile
> > effective methods which haven't already been compiled and cached.  The
> > compiler isn't available in stand-alone applications.
> Yep.  That's what's happening.
> There appear to be two solutions.  Andrew pointed out the first: 
> > I'm not too familiar with PCL, but you might be able to run
> > the application for a while (before calling SAVE-APPLICATION).
> > This would get all the effective methods computed and cached.
> > Then call SAVE-APPLICATION.  Of course, if you miss just one
> > effective method, you'll lose at run time.

I posted a message to the PCL mail-list asking if there was something
already in PCL to help out with this, and here's the response I got:

>     From: george@huntsai.boeing.com (George Williams)
>     I've been told that the "Rainy Day (beta 3)" version of PCL doesn't
>     actually compile the methods until they are used.  In some
>     implementations, such as Mac Allegro CL, when we're trying to build
>     stand alone applications, the compiler is not present in the
>     generated application.
> Yes, PCL doesn't compile the effective (often called combined) methods
> until they are used.
>     Is there a mechanism to compile all of the methods that have been
>     defined, but not referenced, so that when the (stand-alone)
>     application is generated all of the methods will be present?
> PCL has a feeble mechanism called (precompile-random-code-segments).  In
> order for it to work you must have, at some point, run your application
> through enough of its paces that all the combined methods will be used.
> It is pretty easy to do something better, which just generates and
> compiles the methods.  This is one of the many things I plan to leave to
> the vendors to do.  I believe that at this point, at least one of them
> has done it.  Perhaps someone can send out some portable code that does
> this.

How about some help from somebody who has been mucking around in the
internals of PCL?  Any volunteers?

George Williams
E-Mail: george@huntsai.boeing.com   Phone: 205+461-2597   BTN: 861-2597
USMail: Boeing Computer Services, POBox 240002, JA-74, Huntsville AL 35824-6402