Re: [MacPerl-Porters] Status of RuntimeBuilder?

[email protected] (Axel Rose) Thu, 22 Nov 2001 17:23:18 +0100
Newsgroups perl.macperl.porters
Message-ID <p04330108b822d0eefb4b@[172.16.172.241]>
Hello Morbus,

Um 10:49 Uhr -0500 22.11.2001, fragtest Du:
>Where are you at with it? What's left to be done?

attached you'll find the latest version.

Keitarou started with an OO scheme, developed cRuntimeBuilder
plus Mac::ResFork and made adaptions for MacJPerl.

I tried to stay with Michael Ziege's original version.
Bart Lateur fixed a few things there.

Now I found that both schemes did not resolve
dependencies through several hierarchies, like
# file1.pl
require "file2.pl";
# file2.pl
require "file3.pl";
# file3.pl
use SomeModule;

They work by finding "require" and/or "use" lines,
evaluing them and watch the growth of %INC. I found
this to be time and resource consuming and hard to
grasp.

Now I thought I first write a "ModuleFinder" which recursively
goes through the files referenced by "use"/"require" lines.
This is more or less complete. The conceptual problem with this
idea is that it never can be perfect. I'm using a lot of regexp
to find a potential runtime module but for obvious reasons
cannot parse the full Perl syntax. (a Perl precompiler could
solve this issue)

Help is needed here to check the regexp and perhaps teach
them to check multiline "use" syntax.

A good test case btw is CPAN which needs more than 200 modules
at runtime.

After I have the list of modules now I'm going to use
Keitarou's cRuntimeBuilder package which needs some
corrections for the planned use.

To help I would be happy to get a code review by an
experienced Perl programmer, corrections, comments of any kind,
test results, cleanups, documentation, etc.

I not sure whether many people will make use of the resulting
standalone builder and I really wonder if I'm making to much
fuzz about it here...


Thanks for your understanding,
Axel.
%ModuleFinder.pl.011122.sit (application/applefile, 554 B) - not displayed
ModuleFinder.pl.011122.sit (application/octet-stream, 12.1 KB) - not displayed