Mark H Weaver <m...@netris.org> skribis: > l...@gnu.org (Ludovic Courtès) writes: > >> Mark H Weaver <m...@netris.org> skribis: >> >>> 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}# > > I think this is a good idea. > >>> 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. > > It turns out the manual already has the following text in the ‘gensym’ > entry, which I think is sufficient. > > The symbols generated by ‘gensym’ are _likely_ to be unique, since > their names begin with a space and it is only otherwise possible to > generate such symbols if a programmer goes out of their way to do so. > Uniqueness can be guaranteed by instead using uninterned symbols > (*noteSymbol Uninterned::), though they can’t be usefully written out > and read back in. > > What do you think?
Oh indeed, I guess I had overlooked that. Ludo’.