[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:

(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))
#;3> (define yammer 43)
#;4> (define-macro (yammer) yammer)
#;5> (yammer)

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.      
        --Arthur C. Clarke, "The Wall of Darkness"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]