Subject: RE: bug#26301: 24.5; `define-derived-mode': different signatures for doc string & manual

From: Drew Adams <[email-masked]>
Date: Fri, 26 Jul 2019 07:50:37 -0700 (PDT)

> > No KEYWORD-ARGS.  They are included in BODY, so the specifications of
> > BODY differ between the two.
> 
> I guess the manual here try to describe the conceptual semantics (i.e.,
> that if you put keywords there, they'll be interpreted as such), while
> the doc string doesn't lie about what goes where.  Because the calling
> convention is automatically generated there, which makes pretending a
> bit more difficult.

"The doc string doesn't lie."  Is that the best we
can say for it?  Why gratuitously introduce a mismatch
between the two?  That just makes things harder for
users, no?

I don't know what you're saying by your last sentence,
in particular this: " which makes pretending a bit more
difficult."  No idea what pretending you mean.

What's the reason we wouldn't want KEYWORD-ARGS
described in the doc string?
 
> I don't think describing it both ways is very confusing.

Why should it be confusing at all?  Is plain confusing
OK but very confusing not OK?  It might be OK if there
were a good reason for it, but I haven't seen that yet.

> > The treatment of keyword args is not well specified.
> 
> I don't think any of those questions are reasonable,

Why?  What's unreasonable about wanting to know
whether you can specify multiple :group entries,
as you can do with defcustom, for instance?

We specifically provide such info for `defcustom'
(elisp) `Common Keywords', under `:group':

  If you use this keyword more than once, you can put
  a single item into more than one group.

`define-minor-mode' generates defcustom forms.  Its
doc should at least say that KEYWORD-ARGS can be
any list of keyword entries acceptable to defcustom,
and then point to the defcustom doc (where we say
that you can use multiple :group's to add an option
to multiple groups.

> so saying something about that would be confusing.

Do you think our saying it for defcustom is confusing
also?  Why should it be confusing here?  That's exactly
what KEYWORD-ARGS specifies: defcustom keyword entries.