develooper Front page | perl.perl6.compiler | Postings from September 2009

[rakudo] split up compilation of the setting

Thread Next
Moritz Lenz
September 5, 2009 05:30
[rakudo] split up compilation of the setting
Message ID:

I pushed a branch named 'split-gen-setting-2' to the rakudo repository
on github, aiming to speed up the compilation process.

Currently all the *.pm files of the setting are simply concatenated, and
the resulting file is compiled down to PIR. This has two disadvantages:
it takes long and can't be parallelized, and it means that errors from
the setting are reported with a fairly generic file name
(src/ or something like that).

In the branch I mentioned above every .pm from the setting is compiled
on its own, and the PIR files are then concatenated, getting rid of both

However there is a problem which prevents it from building: some classes
(namely Rat and IO::*) are defined only in the setting, and then used
later on in other setting files. Since type names must be known at parse
time, this causes parse errors in the files that use such types but
don't declare them.

I have no idea what the best solution is; some ideas are:

1) define all classes in PIR, and augment them in setting
2) introduce dependencies between the setting files, and manually import
the dependent types
3) have a file in the setting which contains all the class definitions
on which the others depend, compile that first, and make (at least
notionally) every other setting file depend on that.

Somehow they look all wrong (and 2 and 3 complicated) to me - any better


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About