Opened 15 years ago
Closed 15 years ago
#131 closed defect (fixed)
check for defined exports may be confused by renaming
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | major | Milestone: | 4.5.0 |
Component: | expander | Version: | 4.2.x |
Keywords: | modules | Cc: | |
Estimated difficulty: |
Description
If a macro expands into a module-definition, the check for missing export definitions appears not to take renaming into account:
(define-syntax testm (syntax-rules () ((_) (module foo (bar) (import scheme) (define bar 1)))))
gives an "unresolved module" error.
Possibly, these tests using assq
are incorrect and should lookup the id first (##sys#finalize-module
in expand.scm
):
(let ((def (assq id dlist))) (if (and def (symbol? (cdr def))) (cdr def) (let ((a (assq id (##sys#current-environment))))
Change History (3)
comment:1 Changed 15 years ago by
Milestone: | 4.3.0 → 4.4.0 |
---|
comment:3 Changed 15 years ago by
Milestone: | → 4.5.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed in be4ec378a6f47a94805652b6f126e95967cbb805 (experimental). Module forms are now completely stripped before being processed by the interpreter or compiler.
Note: See
TracTickets for help on using
tickets.
This is a major bug, but can be postponed for a later release.