On Sep 18, 2007, at 12:29 AM, Allison Randal wrote:


I would like to have the option of making some configuration failures fatal. The lack of a working C compiler is a good example, but I imagine we will find others as we go along.

I would also like the option of telling Configure to ignore failures that would usually be fatal and carry on through the process. Getting a full report of all failures is useful for automated smoke testing, or other cases when the build is running in a scripted way rather than an interactive way.

It seems we can have the best of both worlds if runstep() reports success or failure, and the configuration harness (or a package variable for each step) keeps track of which steps should be fatal.


I can think of two revisions which would be relatively simple to implement and which would move us in the direction you suggest.

1. Analogous to our current Configure.pl option '--verbose-step=', create an '--abort-step' option which permits the user to specify on the command-line *one* configuration step whose failure should, in that user's opinion, cause configuration as a whole fail. This would be of benefit to a Parrot developer who is refactoring a particular config step and wants immediate feedback on how the process works up through that step. (Once we have a file-based configuration system as an alternative to a command-line-option-based system, it will easy to check off the config steps which you want as either --verbose-step or --abort-step.)

2. The current configuration system is a harness, so let's make it perform as a slightly better harness. Let's have it keep a simple log of config steps which failed and then report those failures instead of the current ever-cheery message from that use Parrot::Configure::Messages::print_conclusion().



On which are fatal, I'm happy to start with just the C compiler check, and maybe the MANIFEST check, and then review the other steps on a case-by-case.


The suggestions above would permit individual Parrot hackers to experiment with having overall configuration fail based on the result of one step. We could use reports on those experiments as data to decide in the future whether to make particular steps always mandatory.

If these revisions seem reasonable I will open up RT tickets for each tonight, then begin working on them, probably first in the reconfigure/ branch before proposing for commit to trunk.

kid51

Reply via email to