all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: "Dmitry Gutov" <dgutov@yandex.ru>, "Eli Zaretskii" <eliz@gnu.org>,
	"Andreas Röhler" <andreas.roehler@easy-emacs.de>
Cc: 24353@debbugs.gnu.org
Subject: bug#24353: 25.1.1: looking-back wrong info
Date: Fri, 2 Sep 2016 16:59:30 -0700 (PDT)	[thread overview]
Message-ID: <bb5f8437-5df1-4133-ac06-a5546f69d0f3@default> (raw)
In-Reply-To: <1a485a01-87cd-db03-4a0b-2e9033754c46@yandex.ru>

> > How does this change help Emacs users?
> 
> It forces Emacs Lisp programmers to include the last argument,

It certainly does not.  It does NOT force anything.
It only misleads.  It doesn't even explicitly recommend.

> thus making their code likely faster. Users like faster programs.

The right way to _encourage_ programmers to use it is to
tell them precisely that: "Using LIMIT is recommended - it
typically results in faster code."

Or "strongly recommended".  Or "You're nuts if you omit LIMIT!"
Or whatever other positive or negative encouragement you think
might be most effective and appropriate.

Telling them nothing about this and, instead, just showing a
false signature, does NOT help them.

> > If it is so important that people provide LIMIT then spell
> > that out _explicitly_ in the doc as a recommendation.
> 
> That's very easy to miss.

It's nowhere near as easy to miss as just moving LIMIT before
&optional in the printed (and false) signature.

Anyone getting super serious about the function, and interested
beyond the doc string, will look at the code, and will conclude
that the signature in the doc string must by a typo (erroneous).
And erroneous it is.

An explicit recommendation is quite effective.  It can be as
strong and as noticeable as you like, or as gentle and quiet
as you like.

> And like Eli said, the choice was between this and
> _actually_ changing the signature.

No, that was not the only choice.  The desired change is
(apparently) to pass a strong recommendation message, in
order to affect programmer behavior.  That doesn't happen
just by faking a signature.

If you want to change behavior, let programmers know that -
explicitly.  Telling them the (positive) effect of LIMIT is
the best way to get them to use it.

> I imagine you would like the latter choice even less.

It doesn't really affect me, personally.  But yes, that
would be quite unwise, for Emacs users and code generally.

If it aint broke, don't fix it.  Is it _sufficiently
important_ that code uses LIMIT that you need to break
backward compatibility?  If so, then you have no choice
but to break it.  But that is the question.

> > It should be a no-no to just change the advertized
> > signature of a function, without changing the actual
> > signature (code) and without otherwise changing the doc.
> 
> You have some point there, but mentioning the last argument in the
> docstring would be rather awkward, considering it's absent in the
> advertised signature.

Sorry, but I have no idea what you mean by that.

This doc-string change seems doubly bad, in fact:

1. The signature that is shown is false.

2. We removed this sentence, which was the only suggestion
   related to performance:

   "As a general recommendation, try to avoid using
    `looking-back' wherever possible, since it is slow."

If that vague recommendation is not accurate or is not
strong enough, then replace it with a more accurate or
stronger one.

But don't just say NOTHING about performance and NOTHING
about the effect of LIMIT on performance, if that's what
this is really all about.

Programmers and other users are not dumb "losers".  They
are smart enough to understand what you have to say to
them about LIMIT.  Just say it - explicitly.





  reply	other threads:[~2016-09-02 23:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-02  8:48 bug#24353: 25.1.1: looking-back wrong info Andreas Röhler
2016-09-02  8:58 ` Eli Zaretskii
2016-09-02  9:57   ` Andreas Röhler
2016-09-02 10:04     ` Eli Zaretskii
2016-09-02 17:51       ` Drew Adams
2016-09-02 19:03         ` Eli Zaretskii
2016-09-02 20:10         ` Dmitry Gutov
2016-09-02 23:59           ` Drew Adams [this message]
2016-09-03  0:03             ` Dmitry Gutov
2016-09-03  0:10               ` Drew Adams
2016-09-03  0:14             ` npostavs
2016-09-03  0:15               ` Dmitry Gutov
2016-09-03  0:28               ` Drew Adams
2016-09-03 17:35             ` Clément Pit--Claudel
2016-09-03 18:10               ` Drew Adams
2016-09-03 18:24                 ` Clément Pit--Claudel
2016-09-03 18:31                 ` npostavs
2016-09-03 18:57                   ` Drew Adams
2016-09-04 13:08                     ` Michael Heerdegen
2016-09-03 17:50             ` Clément Pit--Claudel
2016-09-03 18:42               ` Drew Adams
2016-09-03 18:52                 ` Eli Zaretskii
     [not found] <<e554564c-50a0-8c71-3b79-183ffd54b9c3@easy-emacs.de>
     [not found] ` <<83lgzael08.fsf@gnu.org>
     [not found]   ` <<a404cb34-311e-3fb3-dde8-4340e57c97e5@easy-emacs.de>
     [not found]     ` <<83k2euehyc.fsf@gnu.org>
     [not found]       ` <<bf60cf1c-b9b9-4505-ab9f-d518dcf1725c@default>
     [not found]         ` <<83eg52dszc.fsf@gnu.org>
2016-09-02 20:03           ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bb5f8437-5df1-4133-ac06-a5546f69d0f3@default \
    --to=drew.adams@oracle.com \
    --cc=24353@debbugs.gnu.org \
    --cc=andreas.roehler@easy-emacs.de \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.