~ chicken-r7rs (master) 091911d32921985c940ed24814049a8b7840617e
commit 091911d32921985c940ed24814049a8b7840617e
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Tue Apr 26 10:09:08 2016 +1200
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Tue Apr 26 10:09:12 2016 +1200
Fix expansion of `include-library-declarations`
Previously, it would incorrectly splice a "##core#begin" into the
expansion.
Also, drop the unnecessary "##core#begin" from the "##core#module" forms
that result from `define-library` expansions.
diff --git a/r7rs-compile-time.scm b/r7rs-compile-time.scm
index b18a51e..1cc707b 100644
--- a/r7rs-compile-time.scm
+++ b/r7rs-compile-time.scm
@@ -146,7 +146,7 @@
,(parse-decls more)))
((('include-library-declarations fnames ...) . more)
`(##core#begin
- ,@(process-include-decls fnames)
+ ,(process-include-decls fnames)
,(parse-decls more)))
((('cond-expand decls ...) . more)
`(##core#begin
@@ -157,17 +157,16 @@
,@code
,(parse-decls more)))
(decl (syntax-error 'define-library "invalid library declaration" decl))))
- `(##core#begin
- (##core#module
- ,real-name ((,dummy-export))
- ;; gruesome hack: we add a dummy export for adding indirect exports
- (##core#define-syntax ,dummy-export (##core#lambda _ '(##core#undefined)))
- ;; Another gruesome hack: provide feature so "use" works properly
- (##sys#provide (##core#quote ,real-name))
- ;; Set up an R7RS environment for the module's body.
- (import-for-syntax r7rs) ; overwrites "syntax-rules"
- (import r7rs) ; overwrites existing "import" and "import-for-syntax"
- ,(parse-decls decls)))))
+ `(##core#module
+ ,real-name ((,dummy-export))
+ ;; gruesome hack: we add a dummy export for adding indirect exports
+ (##core#define-syntax ,dummy-export (##core#lambda _ '(##core#undefined)))
+ ;; Another gruesome hack: provide feature so "use" works properly
+ (##sys#provide (##core#quote ,real-name))
+ ;; Set up an R7RS environment for the module's body.
+ (import-for-syntax r7rs) ; overwrites "syntax-rules"
+ (import r7rs) ; overwrites existing "import" and "import-for-syntax"
+ ,(parse-decls decls))))
(_ (syntax-error 'define-library "invalid library definition" form))))
(define (register-r7rs-module name)
Trap