Opened 11 years ago

Last modified 9 years ago

#1060 closed enhancement

reexport doesn't reexport implicit syntax exports — at Initial Version

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

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:

;;; example.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))))

)

(module bar

()

(reexport foo)

)

To trigger the bug:

$ csc -s -J example.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 (0)

Note: See TracTickets for help on using tickets.