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


[X3J13 removed.]

    Date: Wed, 15 Mar 89 12:42:51 EST
    From: Guy Steele <gls@Think.COM>

    Does KMP intend that GENSYM not be sticky for an integer argument
    as well?  That is, there is no way to reset the counter?

The great thing about the idea of a writeup is that it can stand alone,
regardless of what the author thinks.  The writeup is not ambiguous --
it takes away the ability to reset the counter.

Happily, that means I can disagree with the writeup without disagreeing
with myself.  It's obvious now that I think about it, that taking away
the ability to reset the counter makes it nearly useless to be able to
affect the counter, since you cannot simultaneously pass a name and a
counter (probably a mistake itself), and since you'd always get the
same number unless you did (GENSYM (INCF *MY-COUNTER*)) or some such.

I myself have never used the gensym-counter-resetting feature. I
have to say I don't think a lot of people use it either. The only use
I can really think of is for resetting a system so that you can get
the same set of GENSYM names again in a second run to a bunch of code.
If we were going to permit that, I would rather just document the 
variable that holds the counter and not have it be done as a side-effect
of calling the function.

My basic feeling is that the "easy use" of GENSYM is best satisfied
if only a name is permissible, and use of any other kind argument is
starting to get into hair that it best done by people rolling their own

My inclination at this point would be to document a variable:
which held the GENSYM counter, and to say that GENSYM could only take
a name argument (leaving other situations "undefined" so that 
implementations could provide a graceful transition), and to say the
name argument is not sticky.

However, the only part of this I really care about is that the name
not be sticky.  If you make any reasonable counterproposal that gives
me that one feature, odds are that I'll support it.