[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: bogus change(s) in cl-macs.el

> Well, actually we can't see it here because you haven't used print-gensym
> to distinguish symbols with the same name.  But indeed:

>   (labels ((foo nil 1) (bar nil 2)) (cons (foo) (bar)))

> returns (1 . 1).  This is because cl's macro environment uses symbol names
> rather than symbols for symbol-macros, so if two symbols have the same name
> (i.e. `eq', not just `equal') and they both are symbol-macros, then
> CL screws up.  I'm working on a patch for that.

OK, I've committed basically your fix (except it also needed to be applied
at one other place, and I added some comment explaining why we use `gensym'
rather than `make-symbol' there).