unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Madhu <enometh@meer.net>
Cc: emacs-devel@gnu.org
Subject: Re: Adding transient to Emacs core
Date: Mon, 26 Apr 2021 23:29:14 -0400	[thread overview]
Message-ID: <jwvzgxko1nh.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <20210427.073317.990947448424068192.enometh@meer.net> (Madhu's message of "Tue, 27 Apr 2021 07:33:17 +0530 (IST)")

Madhu [2021-04-27 07:33:17] wrote:
> *  Stefan Monnier <monnier@iro.umontreal.ca> <jwvwnspos54.fsf-monnier+emacs@gnu.org>
> Wrote on Mon, 26 Apr 2021 13:52:49 -0400
>
>>> If the package does not support use display-buffer according to the
>>> design of display-buffer, I maintain it will have a negative impact if
>>> adopted in the core and one is constrained to use it (instead of
>>> keeping it optional)
>
>> In my experience, among the packages that have to display something
>> (as opposed to your usual major-mode which only provides commands to
>> navigate and edit text), very few correctly deal with all possible
>> `display-buffer-alist` customizations.  The vast majority assumes a
>> single-frame setup and break in random way in less conventional
>> situations.
>>
>> So if transient.el misbehaves in some of those cases, it's in pretty
>> good company.
>
> And I have the option of not being forced to use those packages when
> dealing with emacs.

I'm tempted to guess that you're "young and naïve" because this affects
many core packages that you can't conveniently avoid
(e.g. `read-from-minibuffer` comes to mind).  You just happened not to
bump into those problems because your config is not sufficiently
unusual, or because you find the resulting misbehavior normal.

Admittedly, the situation is a lot better now than back in Emacs-21.

>> In the transient.el API the only thing that could inherently cause
>> problem, AFAICT is the fact that it relies on being able to
>> display a "sizeable" amount of information to the user, but it's hard to
>
> No this is pretty fundamental. The designer of the transient prompt
> can make the prompt big enough to trigger the situations where
> it fails.

Such claims are useless (if not counter productive) without concrete
evidence to back them up.

> (Note I am responding at the same level of generality as your post)

I don't think I can get much more specific about my statement since my
statement is one of absence of problem, for which it's difficult
by nature to provide evidence.

In contrast you claim failure modes, for which you should be able to
provide evidence quite easily.

> If a core package which worked fine is now modified to use a package
> which you introduce and the new package and cannot be used in certain
> circumstances (that the developer of the new package has not or cannot
> consider) I maintain that the new package destroys existing value -
> and if that is the explict intent I hope it is made explicit.

Then I suggest when that happens you report a bug against the change
which made the pre-existing feature start relying on `transient`.

Until that happens, all `transient` does is provide a new functionality
for use in new features, so all you can do is provide evidence that its
design is poor, ideally by providing alternative designs that don't
suffer from the problems you see (of course, you'll first need to
explain what those problems are in order to get some traction).


        Stefan




  reply	other threads:[~2021-04-27  3:29 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-19 15:51 Adding transient to Emacs core Jonas Bernoulli
2021-04-19 16:07 ` Eli Zaretskii
2021-04-20 12:39   ` Jonas Bernoulli
2021-04-20 13:01     ` Eli Zaretskii
2021-04-20 16:53       ` Jonas Bernoulli
2021-04-20 17:22         ` Kévin Le Gouguec
2021-04-20 18:05           ` Stefan Kangas
2021-04-20 13:19 ` Dmitry Gutov
2021-04-20 16:59   ` Jonas Bernoulli
2021-04-20 17:07     ` Dmitry Gutov
2021-04-26  2:30 ` Madhu
2021-04-26 11:51   ` Eli Zaretskii
2021-04-26 12:54     ` Philip Kaludercic
2021-04-26 13:07       ` Eli Zaretskii
2021-04-26 17:56     ` Madhu
2021-04-26 18:12       ` Eli Zaretskii
     [not found]         ` <20210427.073903.1397547038526168961.enometh@meer.net>
2021-04-27  2:36           ` Eli Zaretskii
2021-04-26 13:27   ` Jonas Bernoulli
2021-04-26 17:33     ` Madhu
2021-04-26 17:44       ` Eli Zaretskii
2021-04-26 17:52       ` Stefan Monnier
2021-04-27  2:03         ` Madhu
2021-04-27  3:29           ` Stefan Monnier [this message]
2021-04-27  9:00       ` Jonas Bernoulli
2021-04-27 10:51         ` Philip Kaludercic
2021-04-27 11:01         ` Gregory Heytings
2021-04-27 12:05           ` Jonas Bernoulli
2021-04-27 12:26             ` Gregory Heytings
2021-04-27 15:24               ` Jonas Bernoulli
2021-04-27 15:21             ` Philip Kaludercic
2021-04-27 21:11               ` Jonas Bernoulli
2021-04-27 12:08         ` martin rudalics
2021-04-27 15:03           ` Jonas Bernoulli

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=jwvzgxko1nh.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=enometh@meer.net \
    /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).