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

[rakudo] split up compilation of the setting

Thread Next
From:
Moritz Lenz
Date:
September 5, 2009 05:30
Subject:
[rakudo] split up compilation of the setting
Message ID:
4AA259BA.2000805@faui2k3.org
Hi,

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/gen_setting.pm 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
disadvantages.

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
or
2) introduce dependencies between the setting files, and manually import
the dependent types
or
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
ideas?

Cheers,
Moritz

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About