[Date Prev][Date Next][Thread Prev][Thread Next][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).
Stefan