[racket] Again on bindings visibility in eval

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Jul 14 11:29:57 EDT 2011

On Jul 14, 2011, at 11:23 AM, Eli Barzilay wrote:

>> It's simple, it's been explained countless times, it works in many
>> cases.
> No, it's broken in pretty much all cases.  Give me a single symbolic
> macro and I'll show you how it's broken.  (And point out how CL
> bypasses the problem...)

Carl E. conducted a case study on how broken macros are in the Lisp world. 
Details: he inspected ALL macros in the code base of ACL2, Applicative 
Common Lisp, a theorem-prover version of Common Lisp if you will. They 
use macros a lot and have thousands of them. Some seem to work because
they are just abbreviations for other things. BUT when it comes to real
macros, he found a good number of mistakes -- and that in code where 
people are keenly aware of problems with scope and effects because they
want to prove theorems about their code. -- Short story: it isn't pretty
in the trivial world of ACL2 macros and I would NEVER EVER take up Eli 
on that bet. 

-- Matthias (Possibly biased. I imported the word 'hygiene' for macros)

Posted on the users mailing list.