Opened 13 years ago
Closed 11 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 13 years ago by
comment:2 Changed 13 years ago by
Yes, all expansions generated by ##sys#do-the-right-thing
use an unrenamed quote
.
comment:3 Changed 13 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 13 years ago by
Milestone: | 4.8.0 |
---|
comment:5 Changed 11 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