summaryrefslogtreecommitdiff
path: root/module/scripts
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-12-02 17:29:32 +0100
committerAndy Wingo <wingo@pobox.com>2019-12-02 17:32:34 +0100
commit0f61d8d797f085df3e566147c22d1581b4d00a49 (patch)
tree16d33f46680bfe88dafb8a48276d39816ec69a57 /module/scripts
parent82127b3ad90ae01c0eb14fedf65a1233d41d9927 (diff)
downloadguile-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')
-rw-r--r--module/scripts/compile.scm25
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