unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Daniel Mendler <mail@daniel-mendler.de>
Cc: dgutov@yandex.ru, monnier@iro.umontreal.ca, joaotavora@gmail.com,
	48841@debbugs.gnu.org, 47711@debbugs.gnu.org
Subject: bug#47711: bug#48841: [PATCH] Add new `completion-filter-completions` API and deferred highlighting
Date: Mon, 16 Aug 2021 15:58:47 +0300	[thread overview]
Message-ID: <83h7fp8s1k.fsf@gnu.org> (raw)
In-Reply-To: <e2427908-17c5-ad18-a50a-2f2ebb61982c@daniel-mendler.de> (message from Daniel Mendler on Mon, 16 Aug 2021 11:42:22 +0200)

> Cc: joaotavora@gmail.com, dgutov@yandex.ru, monnier@iro.umontreal.ca,
>  48841@debbugs.gnu.org, 47711@debbugs.gnu.org
> From: Daniel Mendler <mail@daniel-mendler.de>
> Date: Mon, 16 Aug 2021 11:42:22 +0200
> 
> >> To address your technical comment - this variable is precisely what one
> >> of the technical difficulties mentioned in my other mail is about.  The
> >> question is how we can retain backward compatibility of the completion
> >> style 'all' functions, e.g., 'completion-basic-all-completions', while
> >> still allowing the function to return the newly introduced alist format
> >> with more data, which enables 'completion-filter-completions' to perform
> >> the efficient deferred highlighting.
> > 
> > I understand, but given that we provide this for other packages, it
> > shouldn't be an internal variable.
> 
> No, we explicitly don't provide this variable for other packages. It is
> explicitly only meant to be used for the existing completion styles
> emacs21, emacs22, basic, substring, partial-completion, initials and
> flex to opt-in in a backward-compatible/calling convention preserving
> way to the alist return format. The idea is to keep the existing APIs
> fully backward compatible.
> 
> Other packages should select the format returned from the completion
> styles differently. They should return the alist format on Emacs 28 or
> if the API 'completion-filter-completions' API is present. In the not so
> near future external packages which support only Emacs 28 and upwards
> will then only return the alist format and don't have to perform any
> detection anymore.

What if some package outside minibuffer.el will want to control the
format of the returned value, for some reason, like support for old
Emacs versions? are we going to disallow that?

> >> The new API 'completion-filter-completions' will substitute the existing
> >> API 'completion-all-completions'.
> > 
> > That's your hope, and I understand.  But we as a project didn't yet
> > decide to deprecate the original APIs, so talking about superseding is
> > premature.
> 
> It is not the hope - it is the explicit goal. The API has been designed
> to replace the existing API 'completion-all-completions'.

A goal is not a fact.  Until that goal is reached, we cannot in good
faith tell people an API is superseded.

> We can of
> course tone this down. However I, as a package author, would appreciate
> if Emacs tells me when a newer API aims to replace another API and when
> the documentation is explicit about it.

That's understood, and when we make that decision, we will of course
announce it.  But we didn't do so yet, and this discussion is not even
about that decision.  It could be, for example, that both APIs will
live side by side until we decide whether to deprecate the old one.

> Of course if you decide to have
> the doc strings written in a different tone, I will adapt my patch
> accordingly. Here I am just explaining why I chose the word "superseded"
> instead of a more neutral word.

I understand your motivation, I'm just saying that we cannot announce
deprecation before we actually decide to deprecate.

> > But the name says "filter completions".  Which would mean you take a
> > list of completions and filter out some of them.  A completion table
> > is much more general object than a list of strings.  Thus, I think
> > using "filter" here is sub-optimal.
> 
> Okay, you are right about this. But I think even if the name
> 'completion-filter-completions' is not 100% precise it still conveys
> what the API is about. 'completion-completions-alist' or
> 'completion-all-completions-as-alist' are valid names of course, but I
> dislike them for their verbosity. Already 'completion-all-completions'
> is quite verbose. A strong argument to use this long name is that the
> completion style functions are still called
> 'completion-basic-all-completions' etc. But if we accept that the new
> API 'completion-filter-completions' will actually supersede the existing
> API 'completion-all-completions' it makes sense to use a name which will
> not hurt our eyes in the long run. However this is of course just a
> personal preference of mine. I don't want to spent much time with name
> bikeshedding discussions. If you decide on a name, I will adapt my patch
> accordingly.

Emacs is frequently accused in having names that are hard to
discover.  The only time where we can improve that is when a symbol is
introduced, because later it's impossible for compatibility reasons.
So I'd like to come up with a good name before we install the changes.

That said, I'll let others chime in and agree or disagree with the
name you've chosen.

Thanks.





      reply	other threads:[~2021-08-16 12:58 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-05  1:39 bug#48841: fido-mode is slower than ido-mode with similar settings Dmitry Gutov
2021-06-05  9:35 ` João Távora
2021-06-05 23:02   ` Dmitry Gutov
2021-06-05 23:20     ` João Távora
2021-06-05 23:42       ` Dmitry Gutov
2021-06-06  0:25       ` Dmitry Gutov
2021-06-06  6:54         ` João Távora
2021-06-06 22:20           ` Dmitry Gutov
2021-06-06 23:49             ` João Távora
2021-06-07  0:11               ` Dmitry Gutov
2021-06-07  8:52                 ` João Távora
2021-06-11  2:19                   ` Dmitry Gutov
2021-06-11 17:09                     ` João Távora
2021-06-11 22:34                       ` Dmitry Gutov
2021-06-11 22:41                         ` Dmitry Gutov
2021-06-13 14:55                         ` João Távora
2021-06-17  2:36                           ` Dmitry Gutov
2021-06-17 21:21                             ` João Távora
2021-07-04  1:53                               ` Dmitry Gutov
2021-07-07  8:56                                 ` bug#47711: " Daniel Mendler
2021-06-11 23:24                     ` João Távora
2021-06-12  0:43                       ` Dmitry Gutov
2021-06-13 14:29                         ` João Távora
2021-06-14  0:08                           ` Dmitry Gutov
2021-06-14  0:16                             ` João Távora
2021-06-17  2:23                               ` Dmitry Gutov
2021-06-17 21:29                                 ` João Távora
2021-07-04  1:42                                   ` Dmitry Gutov
2021-06-06  2:34       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-06  6:59         ` João Távora
2021-06-06 16:54           ` Dmitry Gutov
2021-06-06 18:37             ` João Távora
2021-06-06 22:21               ` Dmitry Gutov
2021-06-06 23:27                 ` João Távora
2021-06-06 17:55           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-06 21:33             ` João Távora
2021-08-11 14:16 ` bug#48841: [PATCH] Add new `completion-filter-completions` API and deferred highlighting Daniel Mendler
2021-08-11 16:11   ` Daniel Mendler
2021-08-11 16:17     ` bug#47711: " João Távora
2021-08-12  9:24     ` Daniel Mendler
2021-08-13 10:38       ` bug#48841: [PATCH VERSION 2] " Daniel Mendler
2021-08-13 10:56         ` João Távora
2021-08-13 11:21           ` bug#48841: bug#47711: " Daniel Mendler
2021-08-13 12:05             ` João Távora
2021-08-13 12:22               ` Daniel Mendler
2021-08-13 12:37                 ` bug#48841: " João Távora
2021-08-13 12:56                   ` Daniel Mendler
2021-08-13 13:36                     ` bug#48841: " João Távora
2021-08-13 14:03                       ` Daniel Mendler
2021-08-13 14:11                         ` bug#48841: " João Távora
2021-08-13 14:37                           ` bug#47711: " Daniel Mendler
2021-08-14  2:47                       ` Dmitry Gutov
2021-08-14  7:12                         ` bug#47711: " Eli Zaretskii
2021-08-14 11:22                           ` Dmitry Gutov
2021-08-16  8:48                           ` Daniel Mendler
2021-08-16 11:57                             ` bug#47711: " Eli Zaretskii
2021-08-16 12:02                               ` João Távora
2021-08-16 12:19                                 ` Eli Zaretskii
2021-08-16 12:08                               ` Daniel Mendler
2021-08-14 10:36                         ` João Távora
2021-08-14 11:29                           ` Eli Zaretskii
2021-08-14 12:12                             ` bug#47711: " Lars Ingebrigtsen
2021-08-14 12:39                               ` Eli Zaretskii
2021-08-14 13:29                                 ` Lars Ingebrigtsen
2021-08-16  3:21                               ` Dmitry Gutov
2021-08-16  3:27                                 ` bug#47711: " João Távora
2021-08-16  3:31                                   ` Dmitry Gutov
2021-08-16  3:53                                     ` João Távora
2021-08-16  3:59                                       ` Dmitry Gutov
2021-08-16  4:25                                         ` bug#47711: " João Távora
2021-08-16  9:08                                           ` Daniel Mendler
2021-08-16 10:15                                             ` João Távora
2021-08-16 10:52                                               ` Daniel Mendler
2021-08-16 11:37                                                 ` bug#48841: " João Távora
2021-08-16 12:05                                                   ` Daniel Mendler
2021-08-16 12:17                                                     ` João Távora
2021-08-16 12:43                                                     ` Eli Zaretskii
2021-08-16 14:26                                                   ` bug#48841: " Dmitry Gutov
2021-08-16 14:29                                                     ` João Távora
2021-08-16 12:39                                                 ` Eli Zaretskii
2021-08-16 12:49                                                   ` bug#48841: " Daniel Mendler
2021-08-16 13:21                                                     ` Eli Zaretskii
2021-08-16 14:00                                                       ` Dmitry Gutov
2021-08-16 14:20                                                         ` João Távora
2021-08-16 14:33                                                           ` bug#48841: " Dmitry Gutov
2021-08-16 14:36                                                             ` João Távora
2021-08-16 14:47                                                               ` bug#47711: bug#48841: " Dmitry Gutov
2021-08-16 16:59                                                                 ` João Távora
2021-08-16 18:25                                                             ` João Távora
2021-08-17  2:08                                                               ` Dmitry Gutov
2021-08-17  8:59                                                                 ` João Távora
2021-08-17 11:48                                                                   ` bug#48841: " Eli Zaretskii
2021-08-17 11:52                                                                     ` bug#47711: " João Távora
2021-08-16  3:17                             ` Dmitry Gutov
2021-08-16 11:46                               ` Eli Zaretskii
2021-08-16 13:38                                 ` Dmitry Gutov
2021-08-16 13:41                                   ` João Távora
2021-08-16 14:14                                     ` bug#47711: " Dmitry Gutov
2021-08-15 18:32                           ` bug#48841: [PATCH] Make fido-mode about as fast as ido-mode even with many completions João Távora
2021-08-25 15:42                             ` João Távora
2021-08-14  7:01                     ` bug#48841: bug#47711: [PATCH VERSION 2] Add new `completion-filter-completions` API and deferred highlighting Eli Zaretskii
2021-08-14  9:48                       ` João Távora
2021-08-15  0:03                         ` João Távora
2021-08-16  3:26                       ` Dmitry Gutov
2021-08-16 11:48                         ` bug#48841: " Eli Zaretskii
2021-08-16  8:47                       ` Daniel Mendler
2021-08-14  2:55               ` bug#47711: bug#48841: " Dmitry Gutov
2021-08-14  7:16                 ` bug#48841: " Eli Zaretskii
2023-10-24 22:25                   ` bug#47711: " Dmitry Gutov
2023-10-25 17:52                     ` João Távora
2023-10-25 20:50                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-25 21:02                         ` João Távora
2023-10-25 22:12                           ` João Távora
2023-10-26 21:49                             ` João Távora
2023-10-26 23:10                               ` Dmitry Gutov
2023-10-26 23:27                                 ` João Távora
2023-10-26 23:35                                   ` Dmitry Gutov
2023-10-26 23:52                                     ` João Távora
2023-10-26 23:25                       ` Dmitry Gutov
2023-10-26 23:44                         ` João Távora
2023-10-27  0:11                           ` Dmitry Gutov
2023-10-27  0:26                             ` João Távora
2023-10-27 13:29                               ` Dmitry Gutov
2023-10-27 13:46                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-27 15:41                                   ` Dmitry Gutov
2023-10-27 16:19                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-27 17:06                                       ` Dmitry Gutov
2023-10-27 18:12                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-29  2:07                                           ` Dmitry Gutov
2023-10-29  4:41                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-03  0:16                                               ` Dmitry Gutov
2023-11-03  3:05                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-27 17:16                                 ` João Távora
2023-10-28 22:24                                   ` Dmitry Gutov
2023-10-29 23:12                                     ` João Távora
2023-10-31  3:20                                       ` Dmitry Gutov
2023-10-31 10:55                                         ` João Távora
2023-10-31 20:52                                           ` Dmitry Gutov
2023-11-01 18:47                                             ` João Távora
2023-11-01 22:45                                               ` Dmitry Gutov
2023-11-02  9:48                                                 ` João Távora
2023-11-02 10:10                                                   ` Eli Zaretskii
2023-11-02 10:39                                                     ` João Távora
2023-11-02 10:58                                                       ` Eli Zaretskii
2023-11-02 11:12                                                         ` João Távora
2023-11-02 14:40                                                   ` Dmitry Gutov
2023-11-02 15:24                                                     ` João Távora
2023-11-02 15:36                                                       ` Dmitry Gutov
2023-11-02 15:58                                                         ` João Távora
2023-11-02 16:03                                                           ` Dmitry Gutov
2023-11-02 16:09                                                             ` João Távora
2023-11-02 16:15                                                               ` Dmitry Gutov
2021-04-11 20:51                                                                 ` bug#47711: 27.1; Deferred highlighting support in `completion-all-completions', `vertico--all-completions` Daniel Mendler
     [not found]                                                                   ` <handler.47711.B.16181742862702.ack@debbugs.gnu.org>
2021-04-18 21:26                                                                     ` bug#47711: Acknowledgement (27.1; Deferred highlighting support in `completion-all-completions', `vertico--all-completions`) Daniel Mendler
2023-11-04 18:46                                                                   ` bug#47711: bug#48841: bug#47711: bug#48841: bug#47711: [PATCH VERSION 2] Add new `completion-filter-completions` API and deferred highlighting Howard Melman
2024-04-08 17:19                                                                   ` bug#47711: 27.1; Deferred highlighting support in `completion-all-completions', `vertico--all-completions` Dmitry Gutov
2023-11-06 16:20                                                 ` bug#47711: bug#48841: bug#47711: bug#48841: bug#47711: [PATCH VERSION 2] Add new `completion-filter-completions` API and deferred highlighting João Távora
2023-11-06 19:38                                                   ` Dmitry Gutov
2023-11-07 12:13                                                     ` João Távora
2023-11-08  1:06                                                       ` Dmitry Gutov
2023-11-08  1:24                                                         ` João Távora
2023-11-08  1:47                                                           ` Dmitry Gutov
2023-10-27  0:14                           ` João Távora
2021-08-14  8:23                 ` João Távora
2021-08-16  3:48                   ` Dmitry Gutov
2021-08-16  4:20                     ` bug#48841: " João Távora
2021-08-16  8:53                       ` Daniel Mendler
2021-08-14  6:45         ` Eli Zaretskii
2021-08-14  3:11     ` bug#47711: bug#48841: [PATCH] " Dmitry Gutov
2021-08-12  8:00   ` Eli Zaretskii
2021-08-12  8:47     ` Daniel Mendler
2021-08-14  6:27       ` Eli Zaretskii
2021-08-16  9:42         ` Daniel Mendler
2021-08-16 12:58           ` Eli Zaretskii [this message]

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=83h7fp8s1k.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=47711@debbugs.gnu.org \
    --cc=48841@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=joaotavora@gmail.com \
    --cc=mail@daniel-mendler.de \
    --cc=monnier@iro.umontreal.ca \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).