GNU bug report logs -
#20087
'gensym' is not guaranteed to return a fresh symbol
Previous Next
Reported by: ludo <at> gnu.org (Ludovic Courtès)
Date: Wed, 11 Mar 2015 17:16:02 UTC
Severity: normal
Done: Andy Wingo <wingo <at> pobox.com>
Bug is archived. No further changes may be made.
Full log
Message #14 received at 20087 <at> debbugs.gnu.org (full text, mbox):
Mark H Weaver <mhw <at> netris.org> skribis:
> I've considered this idea in the past, but it only avoids collisions
> with symbols that have been interned before the gensym. It does not
> avoid collisions with symbols interned *after* the gensym. Obviously,
> there's no way to avoid such collisions.
Yeah, good point.
> If we cannot eliminate the possibility of collisions, and we cannot
> avoid intentional collisions, what can we do? I think the best we can
> hope for is to significantly reduce the probability of _unintentional_
> collisions, perhaps by starting the gensym counter at a large number.
I’m not sure if that would help.
One thing that could help avoid unintentional collisions is to
automatically add whitespace before the number, such that:
(gensym "x") => #{x 123}#
(This is already the case when called with no arguments.)
> The other thing we can do is to clearly document these inherent problems
> with gensym, so that they will not be misused for jobs for which they
> are not appropriate.
I think we should add a sentence to that effect in the manual.
Thanks,
Ludo’.
This bug report was last modified 9 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.