[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
'#:foobar versus (make-symbol "FOOBAR")
- To: email@example.com
- Subject: '#:foobar versus (make-symbol "FOOBAR")
- From: dmg@goldilocks.LCS.MIT.EDU
- Date: Fri, 08 Mar 91 11:40:00 EST
- In-reply-to: Your message of Fri, 08 Mar 91 11:20:01 -0500. <2877438001-12285572@Gilgamesh>
Reply To: Gallagher@cs.umass.edu
I would be the last to suggest that programmers need not be very careful
about unneccessary consing. However, in the case of macros, worrying
about generating a few extra uninterned symbols is a red herring. The
uninterned symbols are only used to name local variables, which the
compiler will turn into references to stack locations. The actual names
of the locals don't need to be saved, and most compilers are smart
enough not to save the names if they are uninterned symbols. (Most
compilers do save the names of other locals which makes debugging much
I never claimed that the space savings was significant or important.
In this case, the cost of a few extra symbols at compile time is well
worth the added safety of truly unique names.
I think you missed the point. It is NO safer to use unique symbols for local
variables when they're bound by LET. It's okay to make a trade-off for safety,
but in this case, it's nothing but a waste of space.
I'm still not claiming it's significant, just that using MAKE-SYMBOL in this
case is unnecessary.