Subject: bug#76055: 29.4; Doc of string-empty-p

From: Drew Adams <[email-masked]>
Date: Mon, 17 Feb 2025 21:15:01 +0000

> -----Original Message-----
> From: Eli Zaretskii <[email-masked]>
> Sent: Saturday, February 8, 2025 11:32 PM
> To: Drew Adams <[email-masked]>
> Cc: [email-masked]; [email-masked]
> Subject: [External] : Re: bug#76055: 29.4; Doc of string-empty-p
> 
> > From: Drew Adams <[email-masked]>
> > CC: "[email-masked]" <[email-masked]>,
> >         "[email-masked]"
> > 	<[email-masked]>
> > Date: Sun, 9 Feb 2025 03:57:36 +0000
> >
> > > > (symbol-name '##) ; => ""
> > >
> > > And where did you see such symbols used in Emacs?
> >
> > Serendipitously, just came across this use of it today:
> >
> >
> https://urldefense.com/v3/__https://github.com/tarsius/llama__;!!ACWV5N9M2
> RV99hQ!MeDkTcQ8UVc95uTLaVLNrICJSfOp9SC_VeY2u0xGgWRk5ctKV-
> 7CcA6Ydi4pmdXAGdk-Smfp1vY$
> >
> > Linked from this Reddit thread:
> >
> >
> https://urldefense.com/v3/__https://www.reddit.com/r/emacs/comments/1il4it
> l/what_does_the_double_pound_mean_in_emacs_lisp/?ref=share&ref_source=link
> __;!!ACWV5N9M2RV99hQ!MeDkTcQ8UVc95uTLaVLNrICJSfOp9SC_VeY2u0xGgWRk5ctKV-
> 7CcA6Ydi4pmdXAGdk-Mp-7kQk$
> 
> Doesn't sound like a reason good enough to say potentially confusing
> things in a doc string.
> 
> So no, still no justification and still no other opinions except
> yours.

What's "potentially confusing" about the doc
saying exactly what the doc of `string=' says
about this oddity (corner case)?  It's all the
_more_ important for `string-empty-p' to mention
it, as that predicate is all about the thing
being empty!

Again:

 What's not helpful is to name the function as
 being about strings, and document it only as
 being about strings.  `string=' doc doesn't
 have that doc bug, at least.

Common Lisp and previous Lisps have symbols with
empty names.  This is "normal" for Lisps.

What could be argued is not so normal is Elisp's
use of string functions that act also on symbols
(by way of their `symbol-name's).  That might be
a bit odd, but it's what you (Emacs maintainers)
decided to do.  That's OK - except that it's a
gotcha (unexpected).  The doc should call it out.
Silently providing unexpected behavior isn't
helpful.