diff options
author | Andy Wingo <wingo@pobox.com> | 2019-12-02 17:29:32 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2019-12-02 17:32:34 +0100 |
commit | 0f61d8d797f085df3e566147c22d1581b4d00a49 (patch) | |
tree | 16d33f46680bfe88dafb8a48276d39816ec69a57 /module/scripts/compile.scm | |
parent | 82127b3ad90ae01c0eb14fedf65a1233d41d9927 (diff) | |
download | guile-0f61d8d797f085df3e566147c22d1581b4d00a49.tar.gz |
Add --r6rs and --r7rs options to "guild compile"
* module/scripts/compile.scm (%options, compile): Add --r6rs and --r7rs
options.
* doc/ref/api-evaluation.texi (Compilation): Add docs.
Diffstat (limited to 'module/scripts/compile.scm')
-rw-r--r-- | module/scripts/compile.scm | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm index d86f2f2bc..045817e71 100644 --- a/module/scripts/compile.scm +++ b/module/scripts/compile.scm @@ -68,6 +68,12 @@ (if (assoc-ref result 'output-file) (fail "`-o' option cannot be specified more than once") (alist-cons 'output-file arg result)))) + (option '("r6rs") #f #f + (lambda (opt name arg result) + (alist-cons 'install-r6rs? #t result))) + (option '("r7rs") #f #f + (lambda (opt name arg result) + (alist-cons 'install-r7rs? #t result))) (option '(#\x) #t #f (lambda (opt name arg result) (set! %load-extensions (cons arg %load-extensions)) @@ -192,9 +198,8 @@ There is NO WARRANTY, to the extent permitted by law.~%")) (input-files (assoc-ref options 'input-files)) (output-file (assoc-ref options 'output-file)) (load-path (assoc-ref options 'load-path))) - (if (or help? (null? input-files)) - (begin - (format #t "Usage: compile [OPTION] FILE... + (when (or help? (null? input-files)) + (format #t "Usage: compile [OPTION] FILE... Compile each Guile source file FILE into a Guile object. -h, --help print this help message @@ -208,6 +213,11 @@ Compile each Guile source file FILE into a Guile object. -O, --optimize=OPT specify optimization passes to run; use `-Ohelp' for a list of available optimizations + --r6rs, --r7rs compile in an environment whose default bindings, + reader options, and load paths are adapted for + specific Scheme standards; see \"R6RS Support\" + and \"R7RS Support\" in the manual, for full details + -f, --from=LANG specify a source language other than `scheme' -t, --to=LANG specify a target language other than `bytecode' -T, --target=TRIPLET produce bytecode for host TRIPLET @@ -215,8 +225,13 @@ Compile each Guile source file FILE into a Guile object. Note that auto-compilation will be turned off. Report bugs to <~A>.~%" - %guile-bug-report-address) - (exit 0))) + %guile-bug-report-address) + (exit 0)) + + (when (assoc-ref options 'install-r6rs?) + (install-r6rs!)) + (when (assoc-ref options 'install-r7rs?) + (install-r7rs!)) ;; Load FROM and TO before we have changed the load path. That way, when ;; cross-compiling Guile itself, we can be sure we're loading our own |