[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] Bug report: low-level macros vs. variables in csi
From: |
John Cowan |
Subject: |
[Chicken-users] Bug report: low-level macros vs. variables in csi |
Date: |
Thu, 13 Mar 2008 12:05:08 -0400 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
(This is a bug report; it should go to Trac, but Trac is still down.)
The names of low-level macros are effectively in a different namespace
from ordinary Scheme identifiers. Here are two examples:
CHICKEN
(c)2008 The Chicken Team
(c)2000-2007 Felix L. Winkelmann
Version 3.0.6 - linux-unix-gnu-x86 [ manyargs dload ptables applyhook ]
SVN rev. 9408 compiled 2008-03-11 on skunk (Linux)
#;1> (define cond 32)
#;2> (cond (#t cond))
32
#;3> (define yammer 43)
#;4> (define-macro (yammer) yammer)
#;5> (yammer)
43
So in effect the names "cond" and "yammer" have two definitions,
one in the car position of a non-atomic form, and the other
everywhere else. This is contrary to the behavior of other Schemes,
csi when a syntax-expander egg is loaded (tested under syntax-case,
syntactic-closures, and riaxpander), and csc.
Proposed course of action: have the interpreter check whether an
identifier is the name of a macro and signal an error rather than using
any existing definition.
--
But that, he realized, was a foolish John Cowan
thought; as no one knew better than he address@hidden
that the Wall had no other side. http://www.ccil.org/~cowan
--Arthur C. Clarke, "The Wall of Darkness"
- [Chicken-users] Bug report: low-level macros vs. variables in csi,
John Cowan <=