Opened 11 years ago
Closed 9 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 11 years ago by
Description: | modified (diff) |
---|
comment:3 Changed 11 years ago by
Cc: | Shawn Rutledge added |
---|
comment:4 Changed 11 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 9 years ago by
Milestone: | 4.10.0 → 4.11.0 |
---|
comment:6 Changed 9 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.