From ... From: Erik Naggum Subject: Re: Avoiding unintentional variable capture Date: 1999/09/14 Message-ID: <3146307075463527@naggum.no>#1/1 X-Deja-AN: 524983286 References: <37d6b784.46829757@judy> <3145859109488467@naggum.no> mail-copies-to: never X-Complaints-To: usenet@news.eunet.no X-Trace: oslo-nntp.eunet.no 937318277 5894 193.71.66.49 (14 Sep 1999 14:11:17 GMT) Organization: Naggum Software; +47 8800 8879; +1 510 435 8604; http://www.naggum.no NNTP-Posting-Date: 14 Sep 1999 14:11:17 GMT Newsgroups: comp.lang.lisp * Thomas A. Russ | I'm curious why you find COPY-SYMBOL better than GENSYM with an optional | argument. It would seem that if you ever have nested macros that use the | same names, it would not be possible to distinguish the names produced by | COPY-SYMBOL, since they would print the same. At least with the GENSYMs, | you can expect that two instances of #:COUNTER-4569 actually refer to the | same variable. I think this is one of those problems that should not have a solution because the causes of the problem should be examined very carefully to avoid the problem altogether. if you get into a situation where you need this sort of "control" often enough for it to be a real problem, you're probably doing something wrong. if I need such total disambiguation, I set *PRINT-CIRCLE* to true. I also usually have *PRINT-GENSYM* set to false, but I'll happily let you know that I implemented both PRINT-CIRCLE and PRINT-GENSYM in GNU Emacs after I had implemented uninterned symbols for macro usage a few months earlier. (all changes were accepted into the official distribution.) #:Erik