Opened 12 years ago
Closed 10 years ago
#1060 closed enhancement (fixed)
reexport doesn't reexport implicit syntax exports
| 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.
Change History (6)
comment:1 Changed 12 years ago by
| Description: | modified (diff) |
|---|
comment:3 Changed 12 years ago by
| Cc: | Shawn Rutledge added |
|---|
comment:4 Changed 12 years ago by
| Milestone: | 4.9.0 → 4.10.0 |
|---|---|
| Priority: | major → minor |
| Type: | defect → enhancement |
Given that automatic export of implicitly referenced identifiers is an undocumented feature of the module system as of now, this ticket should be considered a feature request instead.
comment:5 Changed 10 years ago by
| Milestone: | 4.10.0 → 4.11.0 |
|---|
comment:6 Changed 10 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
This seems to work now. Probably due to the fix for #1149.
Note: See
TracTickets for help on using
tickets.

Fixed the example program.