Ticket #816 (closed defect: fixed)
hygiene problem using `map' with prefixed `scheme' import
| Reported by: | syn | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | 4.9.0 |
| Component: | compiler | Version: | 4.7.x |
| Keywords: | Cc: |
Description
The compiler seems to rewrite calls to map in an unhygienic fashion. This surfaces when importing the scheme module with a prefix into a fresh module. The interpreter handles it fine though.
Example:
(module foo () ;; the `quote' import is necessary due to another hygiene problem ;; I'm investigating right now (import (only scheme quote)) (import (prefix scheme ~)) (~map (~lambda (y) y) x) )
This leads to the following warnings by csc (tested with 4.7.0.3-st and current master):
Warning: reference to possibly unbound identifier `set!' Warning: suggesting one of: Warning: (import r5rs-null) Warning: (import r4rs-null) Warning: (import scheme) Warning: (import r4rs) Warning: reference to possibly unbound identifier `cons' Warning: suggesting one of: Warning: (import scheme) Warning: (import r4rs) Warning: reference to possibly unbound identifier `g14' Warning: reference to possibly unbound identifier `and' Warning: suggesting one of: Warning: (import r5rs-null) Warning: (import r4rs-null) Warning: (import scheme) Warning: (import r4rs) Warning: reference to possibly unbound identifier `if' Warning: suggesting one of: Warning: (import r5rs-null) Warning: (import r4rs-null) Warning: (import scheme) Warning: (import r4rs) Warning: reference to possibly unbound identifier `map-loop' Warning: reference to possibly unbound identifier `x' Warning: reference to possibly unbound identifier `g25' Warning: reference to possibly unbound identifier `g19' Warning: reference to possibly unbound identifier `g18' Warning: reference to possibly unbound identifier `g17' Warning: reference to possibly unbound identifier `let' Warning: suggesting one of: Warning: (import r5rs-null) Warning: (import r4rs-null) Warning: (import scheme) Warning: (import r4rs) Error: module unresolved: foo
Attachments
Change History
Note: See
TracTickets for help on using
tickets.
