Opened 14 years ago
Closed 12 years ago
#701 closed defect (wontfix)
require-extension has a hygiene problem
| Reported by: | Alaric Snell-Pym | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | expander | Version: | 4.7.x |
| Keywords: | Cc: | ||
| Estimated difficulty: |
Description
It appears that require-extension doesn't work if you've locally rebound QUOTE:
alaric@ubuntu:~/personal/tmp$ cat test.scm
(let ((quote 1))
(require-extension aes))
alaric@ubuntu:~/personal/tmp$ csi -script test.scm
Error: unbound variable: aes
Call history:
<syntax> (let ((quote 1)) (require-extension aes))
<syntax> (##core#let ((quote 1)) (require-extension aes))
<syntax> (##core#begin (##core#require-extension (aes) #t))
<syntax> (##core#require-extension (aes) #t)
<syntax> (##core#begin (##core#begin (##core#begin (##sys#require (quote aes))) (import aes)) (##core#undefin......
<syntax> (##core#begin (##core#begin (##sys#require (quote aes))) (import aes))
<syntax> (##core#begin (##sys#require (quote aes)))
<syntax> (##sys#require (quote aes))
<syntax> (quote aes)
<syntax> (import aes)
<syntax> (import scheme chicken foreign extras)
<syntax> (##core#undefined)
<syntax> (##core#undefined)
<syntax> (##core#undefined)
<eval> (##sys#require (quote aes))
<eval> (quote aes) <--
alaric@ubuntu:~/personal/tmp$ csc test.scm
alaric@ubuntu:~/personal/tmp$ ./test
Error: unbound variable: aes
Call history:
quote0 <--
Change History (5)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Yes, all expansions generated by ##sys#do-the-right-thing use an unrenamed quote.
comment:3 Changed 14 years ago by
It's really quote that has a hygiene problem, but Scheme is stuck with that for backward compatibility. In effect, quote, quasiquote, unquote, and splicing-unquote are absolute constants and should never be bound.
comment:4 Changed 14 years ago by
| Milestone: | 4.8.0 |
|---|
comment:5 Changed 12 years ago by
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
Due to the lack of interest for this I am marking the bug as WONTFIX.
Note: See
TracTickets for help on using
tickets.

FYI, I found this while trying to import only the identifiers I needed for something - see the annotation at http://paste.call-cc.org/paste?id=be84fd7f5049eee3f2bf3fa8a5f7efe936e49131#a1