Opened 12 years ago
Last modified 10 years ago
#1060 closed enhancement
reexport doesn't reexport implicit syntax exports — at Version 1
| Reported by: | Moritz Heidkamp | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | 4.11.0 |
| Component: | expander | Version: | 4.8.x |
| Keywords: | Cc: | Shawn Rutledge | |
| Estimated difficulty: |
Description (last modified by )
Given a module that exports some syntax which expands to an identifier which isn't explicilty exported, that syntax will not work if it is reexported by another module. Example:
;;; foo.scm
(module foo
(some-syntax)
(import scheme)
(define-syntax some-implicitly-used-syntax
(syntax-rules ()
((_ x) x)))
(define-syntax some-syntax
(syntax-rules ()
((_ x)
(some-implicitly-used-syntax 'x))))
)
;;; bar.scm
(module bar
()
(reexport foo)
)
To trigger the bug:
$ csc -s -J foo.scm $ csc -s -J bar.scm $ csi -R foo -p '(some-syntax bar)' bar $ csi -R bar -p '(some-syntax bar)' Error: unbound variable: some-implicitly-used-syntax
This was tested with version 4.8.0.5 only so far.
Note: See
TracTickets for help on using
tickets.

Fixed the example program.