[bootstrappable] Can Guile be bootstrapped from source without psyntax-pp.scm?

  • From: Alex Vong <alexvong1995@xxxxxxxxx>
  • To: guile-user@xxxxxxx, bootstrappable@xxxxxxxxxxxxx
  • Date: Thu, 06 Jul 2017 23:24:14 +0800

Hello,


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[0]. 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? I've tried
to compile Guile 2.2.2 with psyntax-pp.scm removed and I get a
segfault[1]. It seems the interpreter relies on psyntax-pp.scm to
function properly. I don't know if I should bring this discussion to
guix-devel. Free to do so if you think it is on topic.


Cheers,
Alex


[0]: https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
[1]:

  GEN      guile-procedures.texi
Uncaught exception:
Backtrace:
/bin/bash: line 1:  4113 Broken pipe             cat alist.doc array-handle.doc 
array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc 
bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc 
debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc 
eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc 
filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc 
generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc 
guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc 
keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc 
numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc 
procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc 
scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc 
srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc 
stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc 
syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc 
variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc 
weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
      4114 Segmentation fault      | GUILE_AUTO_COMPILE=0 ../meta/build-env 
guild snarf-check-and-output-texi > guile-procedures.texi
make[3]: *** [Makefile:3909: guile-procedures.texi] Error 1
make[3]: Leaving directory '/home/alexvong1995/scm/guile-2.2.2/libguile'
make[2]: *** [Makefile:2299: all] Error 2
make[2]: Leaving directory '/home/alexvong1995/scm/guile-2.2.2/libguile'
make[1]: *** [Makefile:1857: all-recursive] Error 1
make[1]: Leaving directory '/home/alexvong1995/scm/guile-2.2.2'
make: *** [Makefile:1743: all] Error 2

Attachment: signature.asc
Description: PGP signature

Other related posts: