Mark H Weaver <mhw@xxxxxxxxxx> writes:
Hi Alex,I see. So it used to be worse --- several millions LOC. Now it is only
Alex Vong <alexvong1995@xxxxxxxxx> writes:
Recently, I've read the chapter on Macros in Guile's manual. The manual
says that Guile's expander originated from that of Chez Scheme's and
that version was portable to other schemes as well. So I search the
Internet and find it. The website states that the expander needs an
expanded version of itself for bootstrapping, i.e. psyntax.ss needs
psyntax.pp for bootstrapping.
After playing for awhile, I realize the relationship of Guile's
psyntax.scm and psyntax-pp.scm is exactly analogus. One needs an
expanded version of psyntax.scm, i.e. psyntax-pp.scm for bootstrapping.
Does this mean Guile is not bootstrappable from source only?
That's correct. psyntax-pp.scm is not source code, and it is needed to
bootstrap Guile. However, I made an effort some years ago to make
psyntax-pp.scm far smaller and more readable than the corresponding file
from upstream psyntax. See:
At this point, I believe it would be quite feasible for a single hackerIt is really good that small change in source --> small change in
to audit our psyntax-pp.scm and compare it to psyntax.scm within a
reasonable time frame. Furthermore, when we make local changes to
psyntax.scm, the corresponding changes to psyntax-pp.scm are localized
and quite easy to audit as well, so the full audit need not be repeated.
Having said this, I agree that it would be better if psyntax.scm wereAgree.
written in such a way that it could be bootstrapped without the use of
itself. Maybe some day we'll rewrite it to make it so.
Description: PGP signature