unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Abysmal state of GTK build
       [not found] <87ilmlluxq.fsf.ref@yahoo.com>
@ 2022-08-21 11:04 ` Po Lu
  2022-08-21 11:19   ` Dmitry Gutov
                     ` (2 more replies)
  0 siblings, 3 replies; 267+ messages in thread
From: Po Lu @ 2022-08-21 11:04 UTC (permalink / raw)
  To: emacs-devel

Users of the GTK 3 build experience many, many problems.  The most
recent such problem is bug#56869, which is definitely a bug in GTK.

Taking into account the very low quality of the GDK X11 backend, which
is not seeing active maintenance, shouldn't the build default to some
other toolkit such as Motif, or even better, no toolkit at all?

Especially considering that a GTK developer (the tail) wants to remove
support for X11 (the dog) in future releases of GTK:

  https://gitlab.gnome.org/GNOME/gtk/-/issues/5004



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:04 ` Po Lu
@ 2022-08-21 11:19   ` Dmitry Gutov
  2022-08-21 11:44     ` Po Lu
  2022-08-21 11:22   ` Eli Zaretskii
  2022-08-21 11:49   ` Lars Ingebrigtsen
  2 siblings, 1 reply; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-21 11:19 UTC (permalink / raw)
  To: Po Lu, emacs-devel

On 21.08.2022 14:04, Po Lu wrote:
> Users of the GTK 3 build experience many, many problems.  The most
> recent such problem is bug#56869, which is definitely a bug in GTK.

Is that a new state of affairs, caused by newer GTK version or changes 
in Emacs?

If not, the GTK3 build has been pretty stable for a lot of us, so 
there's no point in deprecating it over an unusual use case. Or even a 
bunch of them.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:04 ` Po Lu
  2022-08-21 11:19   ` Dmitry Gutov
@ 2022-08-21 11:22   ` Eli Zaretskii
  2022-08-21 11:39     ` Po Lu
  2022-08-21 11:49   ` Lars Ingebrigtsen
  2 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-21 11:22 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Date: Sun, 21 Aug 2022 19:04:01 +0800
> 
> Users of the GTK 3 build experience many, many problems.  The most
> recent such problem is bug#56869, which is definitely a bug in GTK.
> 
> Taking into account the very low quality of the GDK X11 backend, which
> is not seeing active maintenance, shouldn't the build default to some
> other toolkit such as Motif, or even better, no toolkit at all?

Why not Lucid?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:22   ` Eli Zaretskii
@ 2022-08-21 11:39     ` Po Lu
  2022-08-21 15:54       ` Robert Pluim
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 11:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why not Lucid?

I forgot to include that, sorry.  I meant it along with the Motif build,
since both work equally well.  Several months ago only the Motif build
was usable under XInput 2, but all of those bugs were eliminated between
then and now.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:19   ` Dmitry Gutov
@ 2022-08-21 11:44     ` Po Lu
  2022-08-21 14:01       ` Dmitry Gutov
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 11:44 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> Is that a new state of affairs, caused by newer GTK version or changes
> in Emacs?

The bug at hand is a new state of affairs caused by the Emacs migration
to XInput 2, which has exposed new bugs in GTK.  In general, however,
GTK support for X11 has become steadily worse since 3.4.

> If not, the GTK3 build has been pretty stable for a lot of us, so
> there's no point in deprecating it over an unusual use case. Or even a
> bunch of them.

It's not being deprecated, just being demoted from the default.
Disabling the trackpad while typing is hardly an "unusual" use-case, and
even comes enabled by default on many systems.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:04 ` Po Lu
  2022-08-21 11:19   ` Dmitry Gutov
  2022-08-21 11:22   ` Eli Zaretskii
@ 2022-08-21 11:49   ` Lars Ingebrigtsen
  2022-08-21 12:00     ` Visuwesh
                       ` (4 more replies)
  2 siblings, 5 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 11:49 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1292 bytes --]

Po Lu <luangruo@yahoo.com> writes:

> Users of the GTK 3 build experience many, many problems.  The most
> recent such problem is bug#56869, which is definitely a bug in GTK.

Yes, and we have to fix bug#56869 by working around the problem, as we
do with all OS/library-related issues.  Just because it's something else
that's "wrong" doesn't mean we can ignore the issue.

> Taking into account the very low quality of the GDK X11 backend, which
> is not seeing active maintenance, shouldn't the build default to some
> other toolkit such as Motif, or even better, no toolkit at all?
>
> Especially considering that a GTK developer (the tail) wants to remove
> support for X11 (the dog) in future releases of GTK:
>
>   https://gitlab.gnome.org/GNOME/gtk/-/issues/5004

Love the ending there:

"Since this issue found its way on Phoronix and reddit I'm going to
temporarily lock it, to ensure a modicum of decency and avoid lowering
the bar of the comments."

Anyway, I'm all in favour of defaulting to a no-toolkit build (across
all systems -- the astounding success of VS Code has show that having a
consistent look across systems is much more important than respecting
the look of the OS).

But we have to fix the no-toolkit look before we can contemplate that.

1) New toolbar icons:

  

[-- Attachment #2: Type: image/png, Size: 3469 bytes --]

[-- Attachment #3: Type: text/plain, Size: 204 bytes --]


We need somebody, preferably a designer, to put together a set of
consistent (and pretty) toolbar icons.

2) Background glitches:

I've got *background: black, and that makes "emacs -Q" look like this:


[-- Attachment #4: Type: image/png, Size: 9942 bytes --]

[-- Attachment #5: Type: image/png, Size: 782 bytes --]

[-- Attachment #6: Type: text/plain, Size: 43 bytes --]


That has to be fixed.

3) Menu bar font:


[-- Attachment #7: Type: image/png, Size: 2814 bytes --]

[-- Attachment #8: Type: text/plain, Size: 644 bytes --]


Must be proportional to not look like an artefact of the 80s.

4) HiDPI problems in the menus: The menus are unreadably small on a
HiDPI display.

5) The scroll bar has to be fixed to work as modern scroll bars to, not
emulate the actions of an 80s Xterm.  I.e., you have to be able to drag
the scrool widget, and click above and below it, and have the thing
happen that normal users expect.

Once those five things are in place, we should default to a no-toolkit
build, which will give us a lot more control of Emacs behaviour, and not
rely on odd tics in each toolkit, and in addition, allow
daemon/multi-display shutdown to work reliably.


^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:49   ` Lars Ingebrigtsen
@ 2022-08-21 12:00     ` Visuwesh
  2022-08-21 12:06     ` Lars Ingebrigtsen
                       ` (3 subsequent siblings)
  4 siblings, 0 replies; 267+ messages in thread
From: Visuwesh @ 2022-08-21 12:00 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, emacs-devel

[ஞாயிறு ஆகஸ்ட் 21, 2022] Lars Ingebrigtsen wrote:

> 5) The scroll bar has to be fixed to work as modern scroll bars to, not
> emulate the actions of an 80s Xterm.  I.e., you have to be able to drag
> the scrool widget, and click above and below it, and have the thing
> happen that normal users expect.

I find the "modern" scrollbar a waste of screen space precisely because
they do not behave like the 80s Xterm scrollbar.
[ Argument can be made to make down-mouse-1 and down-mouse-2 to continue
  scrolling and I think that's a good change but please do not make the
  current scrollbars as useless as the "modern" ones.  ]



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:49   ` Lars Ingebrigtsen
  2022-08-21 12:00     ` Visuwesh
@ 2022-08-21 12:06     ` Lars Ingebrigtsen
  2022-08-21 13:34       ` Po Lu
  2022-08-21 13:30     ` Po Lu
                       ` (2 subsequent siblings)
  4 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 12:06 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Anyway, I'm all in favour of defaulting to a no-toolkit build (across
> all systems

(But note that our decisions here will probably not matter one whit to
most of our users -- Ubuntu/Debian will almost certainly continue to
distribute Emacs with a gtk toolkit.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:49   ` Lars Ingebrigtsen
  2022-08-21 12:00     ` Visuwesh
  2022-08-21 12:06     ` Lars Ingebrigtsen
@ 2022-08-21 13:30     ` Po Lu
  2022-08-21 13:35       ` Eli Zaretskii
                         ` (4 more replies)
  2022-08-21 14:47     ` Stefan Kangas
  2022-08-22  7:05     ` Visuwesh
  4 siblings, 5 replies; 267+ messages in thread
From: Po Lu @ 2022-08-21 13:30 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Yes, and we have to fix bug#56869 by working around the problem, as we
> do with all OS/library-related issues.  Just because it's something else
> that's "wrong" doesn't mean we can ignore the issue.

We cannot work around the problem because it is a NULL-pointer
dereference in GTK, caused by it mishandling several events
consecutively.

In general, Emacs can only prevent GTK from handling certain events.  If
it handles an event that it must handle (in this case,
XI_HierarchyChange) incorrectly, and that causes GTK to later
dereference NULL, there is nothing that Emacs can do.  Just like what
happens when GTK calls _exit under our nose.

> Anyway, I'm all in favour of defaulting to a no-toolkit build (across
> all systems -- the astounding success of VS Code has show that having a
> consistent look across systems is much more important than respecting
> the look of the OS).

I doubt that it would even be possible at all with our manpower to
implement "our own toolkit" on all platforms.  Especially on systems
like macOS, where AFAICT the system tries its best to prevent you from
implementing certain things yourself (such as tooltips and popup menus,
the former proved to be a royal pain in the neck earlier.)

Besides, how is that related to the success of Microsoft's VS Code?  I
think it is more related to how much support it gets from toolchain
developers, caused by Microsoft bundling it with their GitHub platform,
much like they bundled MSIE with Windows 95.  Cargo culting their choice
of toolkit will not do us much good.

> But we have to fix the no-toolkit look before we can contemplate that.
>
> 1) New toolbar icons:
>
>   
>
>
>
>
> We need somebody, preferably a designer, to put together a set of
> consistent (and pretty) toolbar icons.

The toolbar icons come from GNOME 2.x, so they are already consistent
and (mostly) put together by designers.  Aside from the ugly cross icon,
which really has to go.

> 2) Background glitches:
>
> I've got *background: black, and that makes "emacs -Q" look like this:
>
>
>
>
>
>
> That has to be fixed.

Just turn off the internal border, or specify the color of the internal
border in your X resources.  The default size of the internal border is
intentionally different across different builds and window systems, to
make up for different looking decorations.

> 3) Menu bar font:
>
>
>
>
> Must be proportional to not look like an artefact of the 80s.

I'd be glad if someone worked on that.  At the same time, we could make
RTL text work there as well.

> 4) HiDPI problems in the menus: The menus are unreadably small on a
> HiDPI display.

The fix is to specify a larger font for the menus.  But see below for
more problems with the oldXMenu library:

> 5) The scroll bar has to be fixed to work as modern scroll bars to, not
> emulate the actions of an 80s Xterm.  I.e., you have to be able to drag
> the scrool widget, and click above and below it, and have the thing
> happen that normal users expect.

I disagree, but that behavior should be made customizable.  The
"no-toolkit" scroll bar in general is a big hack that is not portable to
platforms other than X.

> Once those five things are in place, we should default to a no-toolkit
> build, which will give us a lot more control of Emacs behaviour, and not
> rely on odd tics in each toolkit, and in addition, allow
> daemon/multi-display shutdown to work reliably.

The no-toolkit build can not work on any other platform other than X.
The scroll bars are implemented by Emacs itself in a very non-portable
way, and the menus are implemented by the old XMenu library that came
with X10 and early X11 releases.

All of that amounts to a large amount of code that is very difficult to
replicate on other platforms.

Thanks.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 12:06     ` Lars Ingebrigtsen
@ 2022-08-21 13:34       ` Po Lu
  2022-08-21 13:38         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 13:34 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> (But note that our decisions here will probably not matter one whit to
> most of our users -- Ubuntu/Debian will almost certainly continue to
> distribute Emacs with a gtk toolkit.)

Don't they listen to our choices?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:30     ` Po Lu
@ 2022-08-21 13:35       ` Eli Zaretskii
  2022-08-21 13:41         ` Po Lu
  2022-08-21 13:47         ` Lars Ingebrigtsen
  2022-08-21 13:36       ` Lars Ingebrigtsen
                         ` (3 subsequent siblings)
  4 siblings, 2 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-21 13:35 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Sun, 21 Aug 2022 21:30:38 +0800
> 
> I doubt that it would even be possible at all with our manpower to
> implement "our own toolkit" on all platforms.

Maybe someone should take another look at a possible use of Qt?

In any case, the MS-Windows port is not part of this dilemma: we are
using the only system "toolkit" available there, so we are quite
consistent with the look-and-feel of other GUI apps, and lately
extended our support for system-wide toolkit themes as well.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:30     ` Po Lu
  2022-08-21 13:35       ` Eli Zaretskii
@ 2022-08-21 13:36       ` Lars Ingebrigtsen
  2022-08-21 13:43         ` Po Lu
  2022-08-21 14:05       ` Gregory Heytings
                         ` (2 subsequent siblings)
  4 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 13:36 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Besides, how is that related to the success of Microsoft's VS Code?

It shows exactly what I said it shows.

> The toolbar icons come from GNOME 2.x, so they are already consistent
> and (mostly) put together by designers.  Aside from the ugly cross icon,
> which really has to go.

They all have to go before we make a change in the defaults.

> Just turn off the internal border, or specify the color of the internal
> border in your X resources.

This isn't about me, it's about the default look.  It has to be fixed
before we default to no-toolkit.

>> 5) The scroll bar has to be fixed to work as modern scroll bars to, not
>> emulate the actions of an 80s Xterm.  I.e., you have to be able to drag
>> the scrool widget, and click above and below it, and have the thing
>> happen that normal users expect.
>
> I disagree, but that behavior should be made customizable.  The
> "no-toolkit" scroll bar in general is a big hack that is not portable to
> platforms other than X.

Yes, of course it should be customisable.  But the default must be to
work in the way normal users expect these days.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:34       ` Po Lu
@ 2022-08-21 13:38         ` Lars Ingebrigtsen
  2022-08-21 13:46           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 13:38 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Don't they listen to our choices?

Nope.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:35       ` Eli Zaretskii
@ 2022-08-21 13:41         ` Po Lu
  2022-08-21 13:46           ` Eli Zaretskii
  2022-08-21 13:47         ` Lars Ingebrigtsen
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 13:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Maybe someone should take another look at a possible use of Qt?

I'm not opposed to adding a Qt port and making it the default if it
works well enough (tho I have no expertise in that field), but wasn't
there a great deal of drama between the KDE developers and the Qt
Company recently that might render it unsuitable for our use?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:36       ` Lars Ingebrigtsen
@ 2022-08-21 13:43         ` Po Lu
  2022-08-21 13:51           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 13:43 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> It shows exactly what I said it shows.

It does not.  People will use VS Code just the same, even if it used
GTK, or MS Windows, or Nextstep menu bars and popups on those respective
platforms.  AFAICT it already uses native file dialogs like all other
web browsers.

> They all have to go before we make a change in the defaults.

[...]

> This isn't about me, it's about the default look.  It has to be fixed
> before we default to no-toolkit.

So in essense, you would rather Emacs crash for our users than look
"ugly"?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:38         ` Lars Ingebrigtsen
@ 2022-08-21 13:46           ` Lars Ingebrigtsen
  2022-08-21 13:59             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 13:46 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> Don't they listen to our choices?
>
> Nope.

Well, let me qualify that a bit: I think if we can make the default
non-Gtk toolkit version of Emacs pretty enough (and usable enough for a
reasonable user), and have compelling reasons to discourage the
Gtk-toolkit version (I think the _exit when a display shuts down, and
the XInput2 problems, might be compelling), then we might convince them.

But without the 1-5) I outlined, I don't think there's any chance
what-so-ever.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:41         ` Po Lu
@ 2022-08-21 13:46           ` Eli Zaretskii
  0 siblings, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-21 13:46 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  emacs-devel@gnu.org
> Date: Sun, 21 Aug 2022 21:41:23 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Maybe someone should take another look at a possible use of Qt?
> 
> I'm not opposed to adding a Qt port and making it the default if it
> works well enough (tho I have no expertise in that field), but wasn't
> there a great deal of drama between the KDE developers and the Qt
> Company recently that might render it unsuitable for our use?

I don't know.  I said "take another look" because I don't know the
outcome.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:35       ` Eli Zaretskii
  2022-08-21 13:41         ` Po Lu
@ 2022-08-21 13:47         ` Lars Ingebrigtsen
  2022-08-21 13:50           ` Eli Zaretskii
  1 sibling, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 13:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Po Lu, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Maybe someone should take another look at a possible use of Qt?

I haven't kept up with Qt development at all -- but at one point, using
Qt required using C++, I think.  Is that still the case?

(Not that that's necessarily a deal breaker.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:47         ` Lars Ingebrigtsen
@ 2022-08-21 13:50           ` Eli Zaretskii
  2022-08-21 14:01             ` Po Lu
  2022-08-23  7:38             ` Gerd Möllmann
  0 siblings, 2 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-21 13:50 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: luangruo, emacs-devel

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: Po Lu <luangruo@yahoo.com>,  emacs-devel@gnu.org
> Date: Sun, 21 Aug 2022 15:47:38 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Maybe someone should take another look at a possible use of Qt?
> 
> I haven't kept up with Qt development at all -- but at one point, using
> Qt required using C++, I think.  Is that still the case?

Yes, AFAIK.  But AFAIU it should be possible to call C++ functions
from a C program, given enough glue.

> (Not that that's necessarily a deal breaker.)

Exactly.  GCC already needs a C++ compiler to build, and so does GDB.
I see no problem requiring that for Emacs, if it will otherwise free
us from the GTK nightmares.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:43         ` Po Lu
@ 2022-08-21 13:51           ` Lars Ingebrigtsen
  2022-08-21 14:04             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 13:51 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> So in essense, you would rather Emacs crash for our users than look
> "ugly"?

That's a false dichotomy.

As I've said, the crash should be fixed on our side.  You claim that
that's impossible, but I'm sure a work-around can be done (because
anything is possible).




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:46           ` Lars Ingebrigtsen
@ 2022-08-21 13:59             ` Po Lu
  2022-08-21 14:11               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 13:59 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Well, let me qualify that a bit: I think if we can make the default
> non-Gtk toolkit version of Emacs pretty enough (and usable enough for a
> reasonable user), and have compelling reasons to discourage the
> Gtk-toolkit version (I think the _exit when a display shuts down, and
> the XInput2 problems, might be compelling), then we might convince them.

Prettyness is hardly useful when the software itself crashes.

Especially with the modern idea of "pretty", which is rounded corners,
low-contrast icons, animations and blur.  Aside from that, the GTK build
already has enough compelling problems for almost anyone to switch from
it, just look at this part of etc/PROBLEMS:

  *** Emacs built with GTK+ toolkit can unexpectedly widen frames

  This resizing takes place when a frame is not wide enough to accommodate
  its entire menu bar.  Typically, it occurs when switching buffers or
  changing a buffer's major mode and the new mode adds entries to the menu
  bar.  The frame is then widened by the window manager so that the menu
  bar is fully shown.  Subsequently switching to another buffer or
  changing the buffer's mode will not shrink the frame back to its
  previous width.  The height of the frame remains unaltered.  Apparently,
  the failure is also dependent on the chosen font.

  The resizing is usually accompanied by console output like

  Gtk-CRITICAL **: gtk_distribute_natural_allocation: assertion 'extra_space >= 0' failed

  It's not clear whether the GTK version used has any impact on the
  occurrence of the failure.  So far, the failure has been observed with
  GTK+ versions 3.4.2, 3.14.5 and 3.18.7.  However, another 3.4.2 build
  does not exhibit the bug.

  Some window managers (Xfce) apparently work around this failure by
  cropping the menu bar.  With other windows managers, it's possible to
  shrink the frame manually after the problem occurs, e.g. by dragging the
  frame's border with the mouse.  However, some window managers have been
  reported to refuse such attempts and snap back to the width needed to
  show the full menu bar (wmii) or at least cause the screen to flicker
  during such resizing attempts (i3, IceWM).

  See also https://debbugs.gnu.org/cgi/bugreport.cgi?bug=15700,
  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22000,
  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22898 and
  https://lists.gnu.org/r/emacs-devel/2016-07/msg00154.html.

That bug is particularly nasty.  I tried my best to get rid of it, but
it still pops up once in a while, usually when the user switches to a
Dired buffer, which has a very long menu bar.  Despite the frame being
maximized on some window managers, which is probably very annoying.

I think the reason users use the GTK build despite those problems is
because it is the default, and they don't know any better.  Then,
because they assume that the developers of a major toolkit are better at
their job than us, blame for the resulting problems is assigned to
Emacs, which results in shouting on the bug tracker.

In the meantime, we have to endure the low-quality work of the GTK
developers, in whose world files cannot be saved after the window server
is shut down, and users and developers who turn off GTK mis-features are
"clowns", "the internet peanut gallery", and have their knobs yanked out
from underneath:

  https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4829

> But without the 1-5) I outlined, I don't think there's any chance
> what-so-ever.

Were they fine with the Lucid build before the GTK build became the
default?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:44     ` Po Lu
@ 2022-08-21 14:01       ` Dmitry Gutov
  2022-08-21 14:06         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-21 14:01 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel@gnu.org

[-- Attachment #1: Type: text/html, Size: 1255 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:50           ` Eli Zaretskii
@ 2022-08-21 14:01             ` Po Lu
  2022-08-23  7:38             ` Gerd Möllmann
  1 sibling, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Yes, AFAIK.  But AFAIU it should be possible to call C++ functions
> from a C program, given enough glue.

The GUI parts requiring C++ can be neatly separated from the rest of the
C code through such glue.  That's how the Haiku port is implemented, see
src/haiku_support.cc (where the majority of the GUI code is
concentrated) and the callers of the extern "C" functions there in
haikuterm.c.

> Exactly.  GCC already needs a C++ compiler to build, and so does GDB.
> I see no problem requiring that for Emacs, if it will otherwise free
> us from the GTK nightmares.

Also, we don't have to require the Qt build.  It can just be the default
when the user has Qt and a C++ compiler, which everyone does these days.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:51           ` Lars Ingebrigtsen
@ 2022-08-21 14:04             ` Po Lu
  2022-08-21 14:13               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:04 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> As I've said, the crash should be fixed on our side.  You claim that
> that's impossible, but I'm sure a work-around can be done (because
> anything is possible).

It is really not fixable.  The NULL dereference is caused by GTK
mishandling an event, and we cannot withhold the event from GTK, because
then the next motion event from a newly hotplugged device will be enough
to make it crash with the same NULL dereference.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:30     ` Po Lu
  2022-08-21 13:35       ` Eli Zaretskii
  2022-08-21 13:36       ` Lars Ingebrigtsen
@ 2022-08-21 14:05       ` Gregory Heytings
  2022-08-21 14:08         ` Po Lu
  2022-08-21 14:06       ` Dmitry Gutov
  2022-08-23  3:44       ` Richard Stallman
  4 siblings, 1 reply; 267+ messages in thread
From: Gregory Heytings @ 2022-08-21 14:05 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 526 bytes --]


>
> In general, Emacs can only prevent GTK from handling certain events. 
> If it handles an event that it must handle (in this case, 
> XI_HierarchyChange) incorrectly, and that causes GTK to later 
> dereference NULL, there is nothing that Emacs can do.  Just like what 
> happens when GTK calls _exit under our nose.
>

I sent a short demo that shows how one can escape from an _exit a few 
weeks ago in bug#56967; I attach it here again.  The same kind of things 
can be done to circumvent segfaults in library functions.

[-- Attachment #2: escape-exit.tar.gz --]
[-- Type: application/gzip, Size: 743 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:01       ` Dmitry Gutov
@ 2022-08-21 14:06         ` Po Lu
  2022-08-21 14:11           ` Gregory Heytings
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:06 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: emacs-devel@gnu.org

Dmitry Gutov <dgutov@yandex.ru> writes:

> So it's the result of new code in Emacs, I take it.

Which is still a problem with GTK, because it uses XInput 2.  It was
previously disabled, preventing us from handling touchscreen and
high-resolution scrolling events.

>  It's not being deprecated, just being demoted from the default.
>  Disabling the trackpad while typing is hardly an "unusual" use-case, and
>  even comes enabled by default on many systems.
>
> I think it's the default on mine, too. Should I have noticed the problem?

I don't know.  It's a race condition.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:30     ` Po Lu
                         ` (2 preceding siblings ...)
  2022-08-21 14:05       ` Gregory Heytings
@ 2022-08-21 14:06       ` Dmitry Gutov
  2022-08-23  3:44       ` Richard Stallman
  4 siblings, 0 replies; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-21 14:06 UTC (permalink / raw)
  To: Po Lu, Lars Ingebrigtsen; +Cc: emacs-devel@gnu.org

[-- Attachment #1: Type: text/html, Size: 662 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:05       ` Gregory Heytings
@ 2022-08-21 14:08         ` Po Lu
  2022-08-21 14:15           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:08 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> I sent a short demo that shows how one can escape from an _exit a few
> weeks ago in bug#56967; I attach it here again.  The same kind of
> things can be done to circumvent segfaults in library functions.

Sorry, but that's not a good idea.  What if someone statically links
Emacs with the C library?

And how will you escape the segfault in the static, possibly inlined
function, of the GDK X11 backend?  That's not even as reliable as
installing a signal handler to handle the SIGSEGV, which is once again a
very bad idea.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:59             ` Po Lu
@ 2022-08-21 14:11               ` Lars Ingebrigtsen
  2022-08-21 14:16                 ` Po Lu
  2022-08-21 15:28                 ` Lynn Winebarger
  0 siblings, 2 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:11 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

[Problems with Gtk snipped -- I agree that all of those things are bad.]

> I think the reason users use the GTK build despite those problems is
> because it is the default, and they don't know any better.

Most users don't choose the toolkits -- they use whatever the
distribution has configured.  And since most of those use a variation on
Gnome Shell, it's natural for the distributions to use the Gtk toolkit
for Emacs.

But, yes, most people who build Emacs themselves end up using the Gtk
toolkit for two reasons: It's the default, and the no-toolkit one is
ugly and unusable (both in actuality and as a UX preference for most
normal people).

>> But without the 1-5) I outlined, I don't think there's any chance
>> what-so-ever.
>
> Were they fine with the Lucid build before the GTK build became the
> default?

Did the distributions exist before Gtk?

I haven't tried the Lucid build in a while, and it fixes the menu
scaling (and font) issues.  Otherwise, it has all the same problems that
the no-toolkit version has.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:06         ` Po Lu
@ 2022-08-21 14:11           ` Gregory Heytings
  2022-08-22  1:04             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Gregory Heytings @ 2022-08-21 14:11 UTC (permalink / raw)
  To: Po Lu; +Cc: Dmitry Gutov, emacs-devel


>> So it's the result of new code in Emacs, I take it.
>
> Which is still a problem with GTK, because it uses XInput 2.  It was 
> previously disabled, preventing us from handling touchscreen and 
> high-resolution scrolling events.
>

If so, is it not possible to simply tell users that touchscreen and 
high-resolution scrolling events are disabled in GTK builds, and let them 
choose between Lucid build in which these events are supported and a GTK 
build in which they aren't?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:04             ` Po Lu
@ 2022-08-21 14:13               ` Lars Ingebrigtsen
  2022-08-21 14:18                 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:13 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> It is really not fixable.  The NULL dereference is caused by GTK
> mishandling an event, and we cannot withhold the event from GTK, because
> then the next motion event from a newly hotplugged device will be enough
> to make it crash with the same NULL dereference.

The issue stemmed from you wanting to dis/enable the trackpad while
typing?  Then the obvious work-around is to not do that when using
XInput2 under Gtk.

It's a nice feature, but if leads to crashing in a configuration, then
it can't be used in that configuration.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:08         ` Po Lu
@ 2022-08-21 14:15           ` Lars Ingebrigtsen
  2022-08-21 14:17             ` Po Lu
  2022-08-24  2:32             ` Thomas Fitzsimmons
  0 siblings, 2 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:15 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> I sent a short demo that shows how one can escape from an _exit a few
>> weeks ago in bug#56967; I attach it here again.  The same kind of
>> things can be done to circumvent segfaults in library functions.

Cool!

> Sorry, but that's not a good idea.  What if someone statically links
> Emacs with the C library?

That's not the default configuration, and if somebody is wild enough to
do that, then that's not our problem.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:11               ` Lars Ingebrigtsen
@ 2022-08-21 14:16                 ` Po Lu
  2022-08-21 14:17                   ` Lars Ingebrigtsen
                                     ` (2 more replies)
  2022-08-21 15:28                 ` Lynn Winebarger
  1 sibling, 3 replies; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:16 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Most users don't choose the toolkits -- they use whatever the
> distribution has configured.  And since most of those use a variation on
> Gnome Shell, it's natural for the distributions to use the Gtk toolkit
> for Emacs.

Can't we shout at them to do something else? I've seen the Debian Emacs
packager here somewhere.

> But, yes, most people who build Emacs themselves end up using the Gtk
> toolkit for two reasons: It's the default, and the no-toolkit one is
> ugly and unusable (both in actuality and as a UX preference for most
> normal people).

Unusable?

> Did the distributions exist before Gtk?

Yes.  Emacs gained support for GTK+ in the early 2000s, and enabled it by
default with 23.1.

> I haven't tried the Lucid build in a while, and it fixes the menu
> scaling (and font) issues.

I think menu font scaling works fine on the Lucid build.  Scaling the
menus themselves (i.e. the border around highlighted menu items) most
likely does not, and I don't have the necessary hardware to test any
implementation of that type of scaling.  (If I did, we wouldn't even be
having this discussion right now -- I've repeatedly wanted to really fix
HiDPI support over the past several months.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:15           ` Lars Ingebrigtsen
@ 2022-08-21 14:17             ` Po Lu
  2022-08-21 14:27               ` Lars Ingebrigtsen
  2022-08-24  2:32             ` Thomas Fitzsimmons
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> That's not the default configuration, and if somebody is wild enough to
> do that, then that's not our problem.

And it still doesn't show how to work around the segfault in an
internal, possibly inlined, static GTK function.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:16                 ` Po Lu
@ 2022-08-21 14:17                   ` Lars Ingebrigtsen
  2022-08-21 14:20                     ` Po Lu
  2022-08-21 14:29                   ` Stefan Monnier
  2022-08-21 16:47                   ` Sean Whitton
  2 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:17 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> But, yes, most people who build Emacs themselves end up using the Gtk
>> toolkit for two reasons: It's the default, and the no-toolkit one is
>> ugly and unusable (both in actuality and as a UX preference for most
>> normal people).
>
> Unusable?

Yes.  The menus as so tiny that they can't be used.

> I think menu font scaling works fine on the Lucid build.  Scaling the
> menus themselves (i.e. the border around highlighted menu items) most
> likely does not, and I don't have the necessary hardware to test any
> implementation of that type of scaling.

No, the menus themselves are scaled just fine using Lucid.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:13               ` Lars Ingebrigtsen
@ 2022-08-21 14:18                 ` Po Lu
  2022-08-21 15:02                   ` Gregory Heytings
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:18 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> The issue stemmed from you wanting to dis/enable the trackpad while
> typing?  Then the obvious work-around is to not do that when using
> XInput2 under Gtk.

That feature is provided by the operating system, not by Emacs, and was
not written by or enabled by me.  It's what the reporter of the bug did.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:17                   ` Lars Ingebrigtsen
@ 2022-08-21 14:20                     ` Po Lu
  2022-08-21 14:28                       ` Lars Ingebrigtsen
  2022-08-21 18:32                       ` Dmitry Gutov
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-21 14:20 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Yes.  The menus as so tiny that they can't be used.

You're using a HiDPI screen, which hasn't really caught on yet.  The
moment I can get at one, I will definitely fix that.

> No, the menus themselves are scaled just fine using Lucid.

Compare the thickness of the borders as displayed on your monitor with
the borders on a monitor of regular density.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:17             ` Po Lu
@ 2022-08-21 14:27               ` Lars Ingebrigtsen
  2022-08-22  1:09                 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:27 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> And it still doesn't show how to work around the segfault in an
> internal, possibly inlined, static GTK function.

Well, segfault handling is ambitious, but _exit handling is what we're
really looking for (to fix the emacsclient multi-display stuff), right?




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:20                     ` Po Lu
@ 2022-08-21 14:28                       ` Lars Ingebrigtsen
  2022-08-21 18:32                       ` Dmitry Gutov
  1 sibling, 0 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:28 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> No, the menus themselves are scaled just fine using Lucid.
>
> Compare the thickness of the borders as displayed on your monitor with
> the borders on a monitor of regular density.

I wasn't really talking about the borders, but the text.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:16                 ` Po Lu
  2022-08-21 14:17                   ` Lars Ingebrigtsen
@ 2022-08-21 14:29                   ` Stefan Monnier
  2022-08-21 19:27                     ` Rob Browning
  2022-08-21 16:47                   ` Sean Whitton
  2 siblings, 1 reply; 267+ messages in thread
From: Stefan Monnier @ 2022-08-21 14:29 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel

Po Lu [2022-08-21 22:16:04] wrote:
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>> Most users don't choose the toolkits -- they use whatever the
>> distribution has configured.  And since most of those use a variation on
>> Gnome Shell, it's natural for the distributions to use the Gtk toolkit
>> for Emacs.
> Can't we shout at them to do something else? I've seen the Debian Emacs
> packager here somewhere.

Indeed, Rob does pay attention to what we say.  He also has to pay
attention to what other people say.  We all think we're right.


        Stefan "using Emacs with Lucid, mostly"




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:49   ` Lars Ingebrigtsen
                       ` (2 preceding siblings ...)
  2022-08-21 13:30     ` Po Lu
@ 2022-08-21 14:47     ` Stefan Kangas
  2022-08-21 14:58       ` Lars Ingebrigtsen
  2022-08-22  7:05     ` Visuwesh
  4 siblings, 1 reply; 267+ messages in thread
From: Stefan Kangas @ 2022-08-21 14:47 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Po Lu; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> We need somebody, preferably a designer, to put together a set of
> consistent (and pretty) toolbar icons.

I'll try to get my act together and push the icon stuff I've been
working on.  It solves this using scalable svg icons.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:47     ` Stefan Kangas
@ 2022-08-21 14:58       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 14:58 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Po Lu, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> I'll try to get my act together and push the icon stuff I've been
> working on.  It solves this using scalable svg icons.

Great!



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:18                 ` Po Lu
@ 2022-08-21 15:02                   ` Gregory Heytings
  2022-08-22  1:18                     ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Gregory Heytings @ 2022-08-21 15:02 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel


>> The issue stemmed from you wanting to dis/enable the trackpad while 
>> typing?  Then the obvious work-around is to not do that when using 
>> XInput2 under Gtk.
>
> That feature is provided by the operating system, not by Emacs, and was 
> not written by or enabled by me.  It's what the reporter of the bug did.
>

That still doesn't explain why we could not use --without-xinput2 with GTK 
builds.  Users would have the choice between a Lucid build with xinput2 
and a GTK build with xinput.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:11               ` Lars Ingebrigtsen
  2022-08-21 14:16                 ` Po Lu
@ 2022-08-21 15:28                 ` Lynn Winebarger
  2022-08-22  5:21                   ` Jean Louis
  2022-08-22  6:01                   ` Po Lu
  1 sibling, 2 replies; 267+ messages in thread
From: Lynn Winebarger @ 2022-08-21 15:28 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 931 bytes --]

On Sun, Aug 21, 2022, 10:12 AM Lars Ingebrigtsen <larsi@gnus.org> wrote:

> But, yes, most people who build Emacs themselves end up using the Gtk
> toolkit for two reasons: It's the default, and the no-toolkit one is
> ugly and unusable (both in actuality and as a UX preference for most
> normal people).
>

As I only recently took up building emacs for myself again, I can tell you
when I saw the choices for toolkit configuration, my reaction was (a) how
is no toolkit a viable option, and (b) who is using a window manager based
on the Motif or Lucid toolkits these days?
If there was a Qt option, I'd probably have taken it.  When I've used a
remote window manager on a local X server (versus a VNC based remote
display), GNOME just generated so much more X protocol traffic than KDE/Qt
that I'm wary of using it.  I don't know how much of that traffic is from
GTK, hence my bias toward Qt if it were already an option.

Lynn

[-- Attachment #2: Type: text/html, Size: 1537 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:39     ` Po Lu
@ 2022-08-21 15:54       ` Robert Pluim
  2022-08-21 16:32         ` Sean Whitton
                           ` (3 more replies)
  0 siblings, 4 replies; 267+ messages in thread
From: Robert Pluim @ 2022-08-21 15:54 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, emacs-devel

>>>>> On Sun, 21 Aug 2022 19:39:34 +0800, Po Lu <luangruo@yahoo.com> said:

    Po Lu> Eli Zaretskii <eliz@gnu.org> writes:
    >> Why not Lucid?

    Po Lu> I forgot to include that, sorry.  I meant it along with the Motif build,
    Po Lu> since both work equally well.  Several months ago only the Motif build
    Po Lu> was usable under XInput 2, but all of those bugs were eliminated between
    Po Lu> then and now.

There was a time when I was young and naïve, and thought that GTK was
going to be the answer to Emacsʼ toolkit issues. That has turned out
to be somewhat untrue [1], so perhaps we should default to Lucid (itʼs
still pretty ugly, but I donʼt use menus or scrollbars so that doesnʼt
affect me personally). If Someone™ contributes a Qt port, that might
do as well (there was a port of XEmacs to Qt several decades ago, so
it definitely feasible).

Robert

Footnotes:
[1] Thatʼs an understatement. GTK has turned into a total clusterfuck.

-- 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:54       ` Robert Pluim
@ 2022-08-21 16:32         ` Sean Whitton
  2022-08-21 16:46           ` Lars Ingebrigtsen
                             ` (2 more replies)
  2022-08-21 16:51         ` Visuwesh
                           ` (2 subsequent siblings)
  3 siblings, 3 replies; 267+ messages in thread
From: Sean Whitton @ 2022-08-21 16:32 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Po Lu, Eli Zaretskii, emacs-devel

Hello,

On Sun 21 Aug 2022 at 05:54PM +02, Robert Pluim wrote:

> If Someone™ contributes a Qt port, that might
> do as well (there was a port of XEmacs to Qt several decades ago, so
> it definitely feasible).

That would also get us another native Wayland backend, and probably one
that would could more heartily recommend to people.

-- 
Sean Whitton



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:32         ` Sean Whitton
@ 2022-08-21 16:46           ` Lars Ingebrigtsen
  2022-08-21 16:50             ` Lars Ingebrigtsen
                               ` (2 more replies)
  2022-08-21 16:51           ` Óscar Fuentes
  2022-08-22  1:10           ` Po Lu
  2 siblings, 3 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 16:46 UTC (permalink / raw)
  To: Sean Whitton; +Cc: Robert Pluim, Po Lu, Eli Zaretskii, emacs-devel

Sean Whitton <spwhitton@spwhitton.name> writes:

> That would also get us another native Wayland backend, and probably one
> that would could more heartily recommend to people.

That'd be nice -- but do we have any concrete reason to believe that Qt
is going to suck less than Gtk?  Everybody has a tendency to think that
something like this must surely be great -- until they start actually
working with it, and then they discover all the things that just doesn't
work (as we found out with Gtk, but only after a few years of actually
working with it).




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:16                 ` Po Lu
  2022-08-21 14:17                   ` Lars Ingebrigtsen
  2022-08-21 14:29                   ` Stefan Monnier
@ 2022-08-21 16:47                   ` Sean Whitton
  2 siblings, 0 replies; 267+ messages in thread
From: Sean Whitton @ 2022-08-21 16:47 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel, Rob Browning, debian-emacsen

[-- Attachment #1: Type: text/plain, Size: 1120 bytes --]

Hello,

On Sun 21 Aug 2022 at 10:16PM +08, Po Lu wrote:

>
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>> Most users don't choose the toolkits -- they use whatever the
>> distribution has configured.  And since most of those use a variation on
>> Gnome Shell, it's natural for the distributions to use the Gtk toolkit
>> for Emacs.
>
> Can't we shout at them to do something else? I've seen the Debian Emacs
> packager here somewhere.

I'm one of the leads for the Debian Emacsen team, though with our
present internal organisation Rob Browning is the person who decides
what gets built, and what you get if you type 'apt-get install emacs'.

Lars is right: so long as GNOME Shell is Debian's default desktop
environment, it's unlikely that we'd change the default away from GTK,
and I don't believe there is any appetite among the desktop and
installer maintainers to switch away from GNOME Shell as the default.

The only other toolkit build we provide is Lucid.  If Emacs upstream
explicitly recommended a no toolkit build, we'd probably add that as
another option.

-- 
Sean Whitton

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 869 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:46           ` Lars Ingebrigtsen
@ 2022-08-21 16:50             ` Lars Ingebrigtsen
  2022-08-21 16:58             ` Sean Whitton
  2022-08-22  1:13             ` Po Lu
  2 siblings, 0 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-21 16:50 UTC (permalink / raw)
  To: Sean Whitton; +Cc: Robert Pluim, Po Lu, Eli Zaretskii, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> That'd be nice -- but do we have any concrete reason to believe that Qt
> is going to suck less than Gtk?

(That came off as a rhetorical question -- but it was a genuine
question.  😀)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:32         ` Sean Whitton
  2022-08-21 16:46           ` Lars Ingebrigtsen
@ 2022-08-21 16:51           ` Óscar Fuentes
  2022-08-21 17:08             ` Eli Zaretskii
  2022-08-22  1:15             ` Po Lu
  2022-08-22  1:10           ` Po Lu
  2 siblings, 2 replies; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-21 16:51 UTC (permalink / raw)
  To: emacs-devel

Sean Whitton <spwhitton@spwhitton.name> writes:

> Hello,
>
> On Sun 21 Aug 2022 at 05:54PM +02, Robert Pluim wrote:
>
>> If Someone™ contributes a Qt port, that might
>> do as well (there was a port of XEmacs to Qt several decades ago, so
>> it definitely feasible).
>
> That would also get us another native Wayland backend, and probably one
> that would could more heartily recommend to people.

Emacs tends to do things on its specific way. Big fat frameworks like
GTK and (even worse AFAIK) Qt provide high-level APIs and don't work
very well when the user needs to deviate from them.

Long time ago I proposed to investigate the feasibility of a Qt backend,
which was a not very welcomed because it would entail C++ and... Qt. Rigth
now I'll rather pick some low-level GUI library and build on top of it.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:54       ` Robert Pluim
  2022-08-21 16:32         ` Sean Whitton
@ 2022-08-21 16:51         ` Visuwesh
  2022-08-22  1:17           ` Po Lu
  2022-08-22  1:11         ` Po Lu
  2022-08-23  3:44         ` Richard Stallman
  3 siblings, 1 reply; 267+ messages in thread
From: Visuwesh @ 2022-08-21 16:51 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Po Lu, Eli Zaretskii, emacs-devel

[ஞாயிறு ஆகஸ்ட் 21, 2022] Robert Pluim wrote:

>
>>>>>> On Sun, 21 Aug 2022 19:39:34 +0800, Po Lu <luangruo@yahoo.com> said:
>
>     Po Lu> Eli Zaretskii <eliz@gnu.org> writes:
>     >> Why not Lucid?
>
>     Po Lu> I forgot to include that, sorry.  I meant it along with the Motif build,
>     Po Lu> since both work equally well.  Several months ago only the Motif build
>     Po Lu> was usable under XInput 2, but all of those bugs were eliminated between
>     Po Lu> then and now.
>
> There was a time when I was young and naïve, and thought that GTK was
> going to be the answer to Emacsʼ toolkit issues. That has turned out
> to be somewhat untrue [1], so perhaps we should default to Lucid (itʼs
> still pretty ugly, but I donʼt use menus or scrollbars so that doesnʼt
> affect me personally).

One potential with the Lucid backend is that it does not support the
XEmbed protocol IIRC.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:46           ` Lars Ingebrigtsen
  2022-08-21 16:50             ` Lars Ingebrigtsen
@ 2022-08-21 16:58             ` Sean Whitton
  2022-08-22  1:13             ` Po Lu
  2 siblings, 0 replies; 267+ messages in thread
From: Sean Whitton @ 2022-08-21 16:58 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Robert Pluim, Po Lu, Eli Zaretskii, emacs-devel

Hello,

On Sun 21 Aug 2022 at 06:46PM +02, Lars Ingebrigtsen wrote:

>
> Sean Whitton <spwhitton@spwhitton.name> writes:
>
>> That would also get us another native Wayland backend, and probably one
>> that would could more heartily recommend to people.
>
> That'd be nice -- but do we have any concrete reason to believe that Qt
> is going to suck less than Gtk?  Everybody has a tendency to think that
> something like this must surely be great -- until they start actually
> working with it, and then they discover all the things that just doesn't
> work (as we found out with Gtk, but only after a few years of actually
> working with it).

Right.  Hopefully someone who already had the background knowledge to
implement a Qt build would be able to tell us why or why not.

-- 
Sean Whitton



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:51           ` Óscar Fuentes
@ 2022-08-21 17:08             ` Eli Zaretskii
  2022-08-21 17:35               ` Óscar Fuentes
  2022-08-22  1:15             ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-21 17:08 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Sun, 21 Aug 2022 18:51:17 +0200
> 
> now I'll rather pick some low-level GUI library and build on top of it.

Any candidates you could mention?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 17:08             ` Eli Zaretskii
@ 2022-08-21 17:35               ` Óscar Fuentes
  0 siblings, 0 replies; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-21 17:35 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> now I'll rather pick some low-level GUI library and build on top of
>> it.
>
> Any candidates you could mention?

One possibility is some tiny GUI library of the type of Nuklear, Dear
Imgui, etc. Those have the inconvenience of belonging to the "immediate"
paradigm (they generate the contents of the window and paint them lots
of times per second, as games do) which can cause significant CPU
overhead if the cache mechanisms for not regenerating/repainting
non-changing areas are not used effectively.

Then we have Skia and Cairo, which "simply" provide surfaces to paint
on. IIRC Po said that is not happy with the later.

Finally, SDL is somewhere on the middle.

Using libraries intended for games is not as bizarre as it sounds,
because Emacs' architecture is more similar to a video game than to a
conventional desktop application.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:20                     ` Po Lu
  2022-08-21 14:28                       ` Lars Ingebrigtsen
@ 2022-08-21 18:32                       ` Dmitry Gutov
  2022-08-22  1:07                         ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-21 18:32 UTC (permalink / raw)
  To: Po Lu, Lars Ingebrigtsen; +Cc: emacs-devel

On 21.08.2022 17:20, Po Lu wrote:
> Lars Ingebrigtsen <larsi@gnus.org> writes:
> 
>> Yes.  The menus as so tiny that they can't be used.
> 
> You're using a HiDPI screen, which hasn't really caught on yet.

It has. Just not 100%.

> The
> moment I can get at one, I will definitely fix that.

I think you can turn on 2x scaling even on a Full HD screen? Just use a 
smaller resolution, like 960x540.

If not, perhaps some of us could chip in for your hardware upgrade. It 
shouldn't take too many people: HiDPI monitors are pretty available 
these days.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:29                   ` Stefan Monnier
@ 2022-08-21 19:27                     ` Rob Browning
  2022-08-22  3:10                       ` Sean Whitton
  0 siblings, 1 reply; 267+ messages in thread
From: Rob Browning @ 2022-08-21 19:27 UTC (permalink / raw)
  To: Stefan Monnier, Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Po Lu [2022-08-21 22:16:04] wrote:
>> Lars Ingebrigtsen <larsi@gnus.org> writes:
>>> Most users don't choose the toolkits -- they use whatever the
>>> distribution has configured.  And since most of those use a variation on
>>> Gnome Shell, it's natural for the distributions to use the Gtk toolkit
>>> for Emacs.
>> Can't we shout at them to do something else? I've seen the Debian Emacs
>> packager here somewhere.
>
> Indeed, Rob does pay attention to what we say.  He also has to pay
> attention to what other people say.  We all think we're right.
>
>
>         Stefan "using Emacs with Lucid, mostly"

...for some version of "pay attention".  I certainly care, but I'm also
often swamped[1], and yes there are competing concerns.

For what it's worth, I don't personally have any strong, principled
stand regarding what the default toolkit should be right now (via "apt
install emacs").  If I recall correctly, I think I may have switched it
to gtk years back when it looked like that was the upstream preference.

Personally, I haven't installed emacs-gtk much in years.  I switched to
emacs-lucid nearly exclusively a good while back because I hit the well
known X forwarding bugs back when that was important to me.  (I also
turn off menu/tool/scroll bars, so I don't see a lot of the
toolkit-specific bits.)

Also for what it's worth, I am definitely inclined to favor upstream
preferences (in general) when I know what they are, resources
permitting, etc.

[1] ...and while I should be subscribed to emacs-devel, I don't read it
    right now; noticed this thread because someone pinged me.
-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:11           ` Gregory Heytings
@ 2022-08-22  1:04             ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:04 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Dmitry Gutov, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> If so, is it not possible to simply tell users that touchscreen and
> high-resolution scrolling events are disabled in GTK builds, and let
> them choose between Lucid build in which these events are supported
> and a GTK build in which they aren't?

If it will be missing such important features, then GTK support should
be demoted from the default.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 18:32                       ` Dmitry Gutov
@ 2022-08-22  1:07                         ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:07 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Lars Ingebrigtsen, emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> I think you can turn on 2x scaling even on a Full HD screen? Just use
> a smaller resolution, like 960x540.

Testing with such a setup proved to be really annoying.

> If not, perhaps some of us could chip in for your hardware upgrade. It
> shouldn't take too many people: HiDPI monitors are pretty available
> these days.

No need, I think I will get one such monitor myself at some point.  My
current external monitor is on its last legs.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:27               ` Lars Ingebrigtsen
@ 2022-08-22  1:09                 ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:09 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Well, segfault handling is ambitious, but _exit handling is what we're
> really looking for (to fix the emacsclient multi-display stuff), right?

Oh, that doesn't fix the emacsclient multi-display stuff at all -- GTK
will still crash immediately afterwards.  We want the _exit handling to
be able to auto-save users work on the PGTK build.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:32         ` Sean Whitton
  2022-08-21 16:46           ` Lars Ingebrigtsen
  2022-08-21 16:51           ` Óscar Fuentes
@ 2022-08-22  1:10           ` Po Lu
  2 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:10 UTC (permalink / raw)
  To: Sean Whitton; +Cc: Robert Pluim, Eli Zaretskii, emacs-devel

Sean Whitton <spwhitton@spwhitton.name> writes:

> That would also get us another native Wayland backend, and probably one
> that would could more heartily recommend to people.

Qt Wayland still doesn't work very well the last time I checked.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:54       ` Robert Pluim
  2022-08-21 16:32         ` Sean Whitton
  2022-08-21 16:51         ` Visuwesh
@ 2022-08-22  1:11         ` Po Lu
  2022-08-23  3:44         ` Richard Stallman
  3 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:11 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, emacs-devel

Robert Pluim <rpluim@gmail.com> writes:

> There was a time when I was young and naïve, and thought that GTK was
> going to be the answer to Emacsʼ toolkit issues.

+1.

> That has turned out to be somewhat untrue [1], so perhaps we should
> default to Lucid (itʼs still pretty ugly, but I donʼt use menus or
> scrollbars so that doesnʼt affect me personally). If Someone™
> contributes a Qt port, that might do as well (there was a port of
> XEmacs to Qt several decades ago, so it definitely feasible).

I suggest anyone who wants to implement a port to Qt look at the Haiku
port.  I think both toolkits are designed similarly from a high-level
perspective, and both require C++ for the GUI code.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:46           ` Lars Ingebrigtsen
  2022-08-21 16:50             ` Lars Ingebrigtsen
  2022-08-21 16:58             ` Sean Whitton
@ 2022-08-22  1:13             ` Po Lu
  2022-08-22  4:32               ` tomas
  2022-08-23  3:44               ` Richard Stallman
  2 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Sean Whitton, Robert Pluim, Eli Zaretskii, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> That'd be nice -- but do we have any concrete reason to believe that Qt
> is going to suck less than Gtk?  Everybody has a tendency to think that
> something like this must surely be great -- until they start actually
> working with it, and then they discover all the things that just doesn't
> work (as we found out with Gtk, but only after a few years of actually
> working with it).

I don't know.  I guess we will only find out once someone starts writing
such a port.

GTK was fine at first (I remember the scroll bar flickering being an
issue in the early days of the GTK+ build), but due to the bad decisions
of the GNOME developers, has been getting steadily worse since 3.0, and
even more so since 3.4.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:51           ` Óscar Fuentes
  2022-08-21 17:08             ` Eli Zaretskii
@ 2022-08-22  1:15             ` Po Lu
  2022-08-22  2:06               ` Stefan Monnier
                                 ` (2 more replies)
  1 sibling, 3 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:15 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> Emacs tends to do things on its specific way. Big fat frameworks like
> GTK and (even worse AFAIK) Qt provide high-level APIs and don't work
> very well when the user needs to deviate from them.

The only "low-level API" used by Emacs is Xlib.  On every other
platform, high level APIs are used.  On the Haiku port, each window's
event loop runs in its own thread, and events are simply serialized and
sent down a big pipe, where it is then read by haiku_read_socket.

> Long time ago I proposed to investigate the feasibility of a Qt backend,
> which was a not very welcomed because it would entail C++ and... Qt. Rigth
> now I'll rather pick some low-level GUI library and build on top of it.

What's wrong with C++ in GUI code?  See src/haiku_support.cc.
Please feel free to work on a Qt port using that as reference.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 16:51         ` Visuwesh
@ 2022-08-22  1:17           ` Po Lu
  2022-08-22  6:47             ` Visuwesh
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:17 UTC (permalink / raw)
  To: Visuwesh; +Cc: Robert Pluim, Eli Zaretskii, emacs-devel

Visuwesh <visuweshm@gmail.com> writes:

> One potential with the Lucid backend is that it does not support the
> XEmbed protocol IIRC.

If someone tells me why it doesn't work, I'd be happy to fix that.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:02                   ` Gregory Heytings
@ 2022-08-22  1:18                     ` Po Lu
  2022-08-22 10:04                       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22  1:18 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> That still doesn't explain why we could not use --without-xinput2 with
> GTK builds.  Users would have the choice between a Lucid build with
> xinput2 and a GTK build with xinput.

A GTK build with no input extension will be missing several important
features, and as a result the likes of `pixel-scroll-precision-mode'
will no longer work.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:15             ` Po Lu
@ 2022-08-22  2:06               ` Stefan Monnier
  2022-08-23  3:44               ` Richard Stallman
  2022-08-23  3:44               ` Richard Stallman
  2 siblings, 0 replies; 267+ messages in thread
From: Stefan Monnier @ 2022-08-22  2:06 UTC (permalink / raw)
  To: Po Lu; +Cc: Óscar Fuentes, emacs-devel

> The only "low-level API" used by Emacs is Xlib.  On every other
> platform, high level APIs are used.  On the Haiku port, each window's
> event loop runs in its own thread, and events are simply serialized and
> sent down a big pipe, where it is then read by haiku_read_socket.

Makes a lot of sense.


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 19:27                     ` Rob Browning
@ 2022-08-22  3:10                       ` Sean Whitton
  2022-08-22  5:43                         ` Rob Browning
  2022-08-22  7:10                         ` Visuwesh
  0 siblings, 2 replies; 267+ messages in thread
From: Sean Whitton @ 2022-08-22  3:10 UTC (permalink / raw)
  To: Rob Browning; +Cc: Stefan Monnier, Po Lu, Lars Ingebrigtsen, emacs-devel

Hello,

On Sun 21 Aug 2022 at 02:27PM -05, Rob Browning wrote:

> For what it's worth, I don't personally have any strong, principled
> stand regarding what the default toolkit should be right now (via "apt
> install emacs").  If I recall correctly, I think I may have switched it
> to gtk years back when it looked like that was the upstream preference.
>
> Personally, I haven't installed emacs-gtk much in years.  I switched to
> emacs-lucid nearly exclusively a good while back because I hit the well
> known X forwarding bugs back when that was important to me.  (I also
> turn off menu/tool/scroll bars, so I don't see a lot of the
> toolkit-specific bits.)

So, in your view it would be fine if we didn't use -gtk by default even
though GNOME is Debian's default desktop?

-- 
Sean Whitton



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:13             ` Po Lu
@ 2022-08-22  4:32               ` tomas
  2022-08-23  3:44               ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: tomas @ 2022-08-22  4:32 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

On Mon, Aug 22, 2022 at 09:13:18AM +0800, Po Lu wrote:

[...]

> GTK was fine at first (I remember the scroll bar flickering being an
> issue in the early days of the GTK+ build), but due to the bad decisions
> of the GNOME developers, has been getting steadily worse since 3.0, and
> even more so since 3.4.

Indeed, I still compile my Emacs against Gtk2, it seems to be a sweet
spot. The day that falls by the wayside, I'll probably fall back to
Lucid or something.

Cheers (and thanks for all your hard work!)
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:28                 ` Lynn Winebarger
@ 2022-08-22  5:21                   ` Jean Louis
  2022-08-22  6:01                   ` Po Lu
  1 sibling, 0 replies; 267+ messages in thread
From: Jean Louis @ 2022-08-22  5:21 UTC (permalink / raw)
  To: Lynn Winebarger; +Cc: Lars Ingebrigtsen, Po Lu, emacs-devel

* Lynn Winebarger <owinebar@gmail.com> [2022-08-21 18:29]:
> (b) who is using a window manager based on the Motif or Lucid
> toolkits these days?

I am using IceWM all the time. It is because it is fastest one. And I
use Lucid toolkit for Emacs because it appears more stable, more neat
to me. It is personal preference. I don't think that toolkit for Emacs
is related to Window manager's toolkit, it may be related only by
personal subjective preferences.


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  3:10                       ` Sean Whitton
@ 2022-08-22  5:43                         ` Rob Browning
  2022-08-22  7:10                         ` Visuwesh
  1 sibling, 0 replies; 267+ messages in thread
From: Rob Browning @ 2022-08-22  5:43 UTC (permalink / raw)
  To: Sean Whitton; +Cc: Stefan Monnier, Po Lu, Lars Ingebrigtsen, emacs-devel

Sean Whitton <spwhitton@spwhitton.name> writes:

> So, in your view it would be fine if we didn't use -gtk by default even
> though GNOME is Debian's default desktop?

I don't think I have any categorical opinion on that front either in
general, or at the moment.  And since I don't use gnome, emacs-gtk, or
emacs tool/menu/scroll bars right now (and haven't for a long while),
I'd need more information.

One broad question might be "what is 'apt install emacs' for"?[1]
i.e. is it intended to provide the "best/preferred typical emacs", and
people should expect that it might produce substantially disruptive
changes over time (presumably only on major debian release boundaries),
i.e. lucid -> gtk -> something-new, or is it intended to provide the
emacs that goes with the default desktop (also potentially disruptive
across releases), or...

[1] Note to all that the "emacs" package is currently an empty
    metapackage that actually depends on "emacs-gtk | emacs-lucid |
    emacs-nox", so that any flavor will satisfy an "emacs" dependency,
    but the flavor listed first in the metapackage's dependencies is the
    one you get if you just try to install it directly.  I believe I
    chose that ordering years ago, based on what appeared to be the
    upstrem preferences at the time.

Ignoring the disruptive transition for a moment, I also wonder how much
it'd actually matter if emacs (eventually) preferred something other
than emacs-gtk.  Then people using gnome would "just" need to know to
install emacs-gtk or emacs-gnome instead of emacs.  (Any gnome-related
package that wants an emacs, could still depend on the concrete flavor
if appropriate.)

That said, given the potential disruption.  I might well be inclined to
set a moderately high bar for changes.  I also suspect a minor avalanche
of bugs will be filed if/when we do change the default to something
substantially different -- given varying opinions.

What's in a name?

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:28                 ` Lynn Winebarger
  2022-08-22  5:21                   ` Jean Louis
@ 2022-08-22  6:01                   ` Po Lu
  2022-08-22  6:48                     ` Tim Cross
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22  6:01 UTC (permalink / raw)
  To: Lynn Winebarger; +Cc: Lars Ingebrigtsen, emacs-devel

Lynn Winebarger <owinebar@gmail.com> writes:

> As I only recently took up building emacs for myself again, I can tell
> you when I saw the choices for toolkit configuration, my reaction was
> (a) how is no toolkit a viable option, and (b) who is using a window
> manager based on the Motif or Lucid toolkits these days?

For Motif, CDE (dtwm) and mwm users.  As for Lucid, no one, because the
Lucid tookit is internal to Emacs.

But to be fair, GNOME's window manager isn't based on GTK either, and
uses its own "Shell Toolkit".



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:17           ` Po Lu
@ 2022-08-22  6:47             ` Visuwesh
  0 siblings, 0 replies; 267+ messages in thread
From: Visuwesh @ 2022-08-22  6:47 UTC (permalink / raw)
  To: Po Lu; +Cc: Robert Pluim, Eli Zaretskii, emacs-devel

[திங்கள் ஆகஸ்ட் 22, 2022] Po Lu wrote:

>
> Visuwesh <visuweshm@gmail.com> writes:
>
>> One potential with the Lucid backend is that it does not support the
>> XEmbed protocol IIRC.
>
> If someone tells me why it doesn't work, I'd be happy to fix that.

Unfortunately, I only know that it does not work, not why.  I quickly
searched emacs-devel, bug-gnu-emacs and the Git history (+ the
Changelogs) for "xembed" in the subjects but they returned nothing
fruitful.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  6:01                   ` Po Lu
@ 2022-08-22  6:48                     ` Tim Cross
  2022-08-22  7:55                       ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Tim Cross @ 2022-08-22  6:48 UTC (permalink / raw)
  To: Po Lu; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel


Po Lu <luangruo@yahoo.com> writes:

> Lynn Winebarger <owinebar@gmail.com> writes:
>
>> As I only recently took up building emacs for myself again, I can tell
>> you when I saw the choices for toolkit configuration, my reaction was
>> (a) how is no toolkit a viable option, and (b) who is using a window
>> manager based on the Motif or Lucid toolkits these days?
>
> For Motif, CDE (dtwm) and mwm users.  As for Lucid, no one, because the
> Lucid tookit is internal to Emacs.
>
> But to be fair, GNOME's window manager isn't based on GTK either, and
> uses its own "Shell Toolkit".


Like others in this thread, I don't use the menu-bar, toolbar,
scroll-bars etc, so toolkit seems somewhat irrelevant (I have to do an
M-x version to see which one I'm using!). I build using lucid as that
seemed like a better choice than gtk and I use xfce rather than gnome as
my desktop environment (and sometimes stumpwm).

I think one of the defining features of the GNU Linux desktop is the
wide variety and available choices wrt desktop environments. It really
doesn't matter what toolkit your window manager users except with
respect to the number of toolkits and libraries you have to install on
your system. 

I suspect a part of the decision regarding which toolkit to build emacs
with for various distros probably relates to minimising the number of
toolkits to install. As Gnome seems to be the current 'default', gtk is
already installed, so will likely be a preferred choice unless some
other compelling reason is given.

With Fedora now shipping with Wayland as default and the recent
announcement regarding nvidia driver licensing and support for nvidia
under wayland, I suspectg we will see a significant growth in
distributions defaulting to wayland and wanting to reduce/remove
dependency on X. 

One factor which will likely come into play if we changed the default
toolkit is theming. I've noticed that in both the most recent releases
of Ubuntu and Fedora, a lot of reviews and comments centred around
improved consistency in themes (especially consistency when switching
between light/dark themes). With a lucid build, I expect you will need
to setup X resources to match your theme. With the GTK build, it looks
like it inherits from whatever you set your default theme to (for menus
etc).

Personally, I tend to define my theme and just leave it. I do use a dark
theme and after many years, I have a good default Xresources, so not a
big issue for me (with the exception of some qt based apps). However,
for a generation brought up using Gnome, the whole xrdb stuff is likely
to be challenging/frustrating. I assume similar issues will exist for
the no toolket default. I don't think this is sufficient reason not to
change the default to (lets say) lucid - just mention it as I suspect it
will cause some disruption/frustration. There also seems to be a lot of
bad information about using/setting Xresources out there, which might
add to the confusion. 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 11:49   ` Lars Ingebrigtsen
                       ` (3 preceding siblings ...)
  2022-08-21 14:47     ` Stefan Kangas
@ 2022-08-22  7:05     ` Visuwesh
  2022-08-22  7:51       ` Po Lu
  2022-08-23  3:46       ` Richard Stallman
  4 siblings, 2 replies; 267+ messages in thread
From: Visuwesh @ 2022-08-22  7:05 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, emacs-devel

[ஞாயிறு ஆகஸ்ட் 21, 2022] Lars Ingebrigtsen wrote:

> "Since this issue found its way on Phoronix and reddit I'm going to
> temporarily lock it, to ensure a modicum of decency and avoid lowering
> the bar of the comments."
>
> Anyway, I'm all in favour of defaulting to a no-toolkit build (across
> all systems -- the astounding success of VS Code has show that having a
> consistent look across systems is much more important than respecting
> the look of the OS).
>
> But we have to fix the no-toolkit look before we can contemplate that.
>
> [5 points]

BTW, I think another item worthy of note is that Lucid menus cannot
display multilingual text.  See the outline "** Make the Lucid menu
widget display multilingual text" in etc/TODO.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  3:10                       ` Sean Whitton
  2022-08-22  5:43                         ` Rob Browning
@ 2022-08-22  7:10                         ` Visuwesh
  2022-08-22  7:56                           ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Visuwesh @ 2022-08-22  7:10 UTC (permalink / raw)
  To: Sean Whitton
  Cc: Rob Browning, Stefan Monnier, Po Lu, Lars Ingebrigtsen,
	emacs-devel

[ஞாயிறு ஆகஸ்ட் 21, 2022] Sean Whitton wrote:

>> For what it's worth, I don't personally have any strong, principled
>> stand regarding what the default toolkit should be right now (via "apt
>> install emacs").  If I recall correctly, I think I may have switched it
>> to gtk years back when it looked like that was the upstream preference.
>>
>> Personally, I haven't installed emacs-gtk much in years.  I switched to
>> emacs-lucid nearly exclusively a good while back because I hit the well
>> known X forwarding bugs back when that was important to me.  (I also
>> turn off menu/tool/scroll bars, so I don't see a lot of the
>> toolkit-specific bits.)
>
> So, in your view it would be fine if we didn't use -gtk by default even
> though GNOME is Debian's default desktop?

Does the toolkit of Emacs matter?  The only annoyance I faced when using
Okular in a primarily Gtk system (all thanks to Chrome) was the file
picker but I'd argue that one does not use the toolkit's file picker in
Emacs often.  Heck, I went the other way and replace as much of the file
picker with dired+dragon(1) for _opening_ files (I'm still stuck with
the file picker for saving files).
[ But I say this as someone who does not mind the non-uniform look of
  programs as long as they work like they are supposed to.  Even VSCode
  does not look like a typical Gtk program AFAIU (and thank goodness it
  doesn't since the GNOME's current UI design is PITA to work with
  anyway).  ]



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:05     ` Visuwesh
@ 2022-08-22  7:51       ` Po Lu
  2022-08-23  3:46       ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  7:51 UTC (permalink / raw)
  To: Visuwesh; +Cc: Lars Ingebrigtsen, emacs-devel

Visuwesh <visuweshm@gmail.com> writes:

> BTW, I think another item worthy of note is that Lucid menus cannot
> display multilingual text.  See the outline "** Make the Lucid menu
> widget display multilingual text" in etc/TODO.

It already does if you don't build with Xft or Cairo.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  6:48                     ` Tim Cross
@ 2022-08-22  7:55                       ` Po Lu
  2022-08-22  8:32                         ` Tim Cross
                                           ` (2 more replies)
  0 siblings, 3 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  7:55 UTC (permalink / raw)
  To: Tim Cross; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel

Tim Cross <theophilusx@gmail.com> writes:

> Like others in this thread, I don't use the menu-bar, toolbar,
> scroll-bars etc, so toolkit seems somewhat irrelevant (I have to do an
> M-x version to see which one I'm using!). I build using lucid as that
> seemed like a better choice than gtk and I use xfce rather than gnome as
> my desktop environment (and sometimes stumpwm).

[...]

> I suspect a part of the decision regarding which toolkit to build emacs
> with for various distros probably relates to minimising the number of
> toolkits to install. As Gnome seems to be the current 'default', gtk is
> already installed, so will likely be a preferred choice unless some
> other compelling reason is given.

The problem here is not a stylistic issue.  I want to disable the GTK
build by default because it leads to serious problems for users, up to
and including crashes.

> With Fedora now shipping with Wayland as default and the recent
> announcement regarding nvidia driver licensing and support for nvidia
> under wayland, I suspectg we will see a significant growth in
> distributions defaulting to wayland and wanting to reduce/remove
> dependency on X. 

The regular GTK build of Emacs will not run on GNOME Wayland either.
People who want to use Wayland should use the different PGTK build instead.

> One factor which will likely come into play if we changed the default
> toolkit is theming. I've noticed that in both the most recent releases
> of Ubuntu and Fedora, a lot of reviews and comments centred around
> improved consistency in themes (especially consistency when switching
> between light/dark themes). With a lucid build, I expect you will need
> to setup X resources to match your theme. With the GTK build, it looks
> like it inherits from whatever you set your default theme to (for menus
> etc).

Emacs's own interface doesn't respect any toolkit theme.

> Personally, I tend to define my theme and just leave it. I do use a dark
> theme and after many years, I have a good default Xresources, so not a
> big issue for me (with the exception of some qt based apps). However,
> for a generation brought up using Gnome, the whole xrdb stuff is likely
> to be challenging/frustrating. I assume similar issues will exist for
> the no toolket default.

The no toolkit build can be customized entirely with Lisp.

> I don't think this is sufficient reason not to change the default to
> (lets say) lucid - just mention it as I suspect it will cause some
> disruption/frustration. There also seems to be a lot of bad
> information about using/setting Xresources out there, which might add
> to the confusion.

Are you sure what you understand "this" is?  I'm going to say this
again: defaulting to the GTK build because it "looks better" or is "more
consistent" is quite simply trading crashes for looks.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:10                         ` Visuwesh
@ 2022-08-22  7:56                           ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22  7:56 UTC (permalink / raw)
  To: Visuwesh
  Cc: Sean Whitton, Rob Browning, Stefan Monnier, Lars Ingebrigtsen,
	emacs-devel

Visuwesh <visuweshm@gmail.com> writes:

> Does the toolkit of Emacs matter?  The only annoyance I faced when using
> Okular in a primarily Gtk system (all thanks to Chrome) was the file
> picker but I'd argue that one does not use the toolkit's file picker in
> Emacs often.  Heck, I went the other way and replace as much of the file
> picker with dired+dragon(1) for _opening_ files (I'm still stuck with
> the file picker for saving files).

Unrelated, but tools like dragon are obsolete in Emacs 29.  See
dired-mouse-drag-files.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:55                       ` Po Lu
@ 2022-08-22  8:32                         ` Tim Cross
  2022-08-22  9:44                           ` Po Lu
  2022-08-22  9:04                         ` Dirk-Jan C. Binnema
  2022-08-23  3:46                         ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: Tim Cross @ 2022-08-22  8:32 UTC (permalink / raw)
  To: Po Lu; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel


Po Lu <luangruo@yahoo.com> writes:

> Tim Cross <theophilusx@gmail.com> writes:
>
>> Like others in this thread, I don't use the menu-bar, toolbar,
>> scroll-bars etc, so toolkit seems somewhat irrelevant (I have to do an
>> M-x version to see which one I'm using!). I build using lucid as that
>> seemed like a better choice than gtk and I use xfce rather than gnome as
>> my desktop environment (and sometimes stumpwm).
>
> [...]
>
>> I suspect a part of the decision regarding which toolkit to build emacs
>> with for various distros probably relates to minimising the number of
>> toolkits to install. As Gnome seems to be the current 'default', gtk is
>> already installed, so will likely be a preferred choice unless some
>> other compelling reason is given.
>
> The problem here is not a stylistic issue.  I want to disable the GTK
> build by default because it leads to serious problems for users, up to
> and including crashes.

You missed my point. I'm not saying the change is because of a stylistic
issue - I'm saying the change is likely to create a stylistic
issue. This will in turn cause more resistance to the change and
possibly increase motivation to do whatever is necessary to re-enable
gtk build. 

>
>> With Fedora now shipping with Wayland as default and the recent
>> announcement regarding nvidia driver licensing and support for nvidia
>> under wayland, I suspectg we will see a significant growth in
>> distributions defaulting to wayland and wanting to reduce/remove
>> dependency on X. 
>
> The regular GTK build of Emacs will not run on GNOME Wayland either.
> People who want to use Wayland should use the different PGTK build instead.
>

Yes, I know that and that is a problem for distributions where they want
to minimise the distro size and number of packages which need to be
maintained. As it stands now, most distributions include 3 packages -
emacs-gtk, emacs-lucid and emacs-nox. As they move to support wayland,
they will either have to include emacs-pgtk or continue with the
wayland-x interface. The risk is, given they need GTK for both emacs-gtk
and emacs-pgtk, they will drop the emacs-lucid package rather than the
emacs-gtk package (unless we help educate them on why that would be a
bad choice). To educate effectively, it helps to understand their
situation and not just address the technical issues seen from a pure
emacs development position.

>> One factor which will likely come into play if we changed the default
>> toolkit is theming. I've noticed that in both the most recent releases
>> of Ubuntu and Fedora, a lot of reviews and comments centred around
>> improved consistency in themes (especially consistency when switching
>> between light/dark themes). With a lucid build, I expect you will need
>> to setup X resources to match your theme. With the GTK build, it looks
>> like it inherits from whatever you set your default theme to (for menus
>> etc).
>
> Emacs's own interface doesn't respect any toolkit theme.

OK, so how does my Emacs default theme change between dark and light
theme when I change the theme of my desktop environment? This never use
to work and I assumed it was because emacs didn't respect the DE
theme. I use to manage it via X resources. However, I noticed on recent
installs under both Ubuntu and Fedora that changing between light and
dark themes also resulted in changes to (for example) the menus and
menu-bar from a light background with dark text to a dark background
with light text. My assumption was that this was due to the GTK theme
being respected?
>
>> Personally, I tend to define my theme and just leave it. I do use a dark
>> theme and after many years, I have a good default Xresources, so not a
>> big issue for me (with the exception of some qt based apps). However,
>> for a generation brought up using Gnome, the whole xrdb stuff is likely
>> to be challenging/frustrating. I assume similar issues will exist for
>> the no toolket default.
>
> The no toolkit build can be customized entirely with Lisp.
>

Which is fine for those who know lisp. However, this isn't what people
expect these days. THis was my point - lots of the comments and reviews
for recent distributions of Ubuntu and Fedora have referenced greatly
improved theme/style consistencies. From my own limited experience, this
appears to extend to Emacs as well (to a limited extent, not the whole
UI, just menus, popup dialogue boxes etc.

>> I don't think this is sufficient reason not to change the default to
>> (lets say) lucid - just mention it as I suspect it will cause some
>> disruption/frustration. There also seems to be a lot of bad
>> information about using/setting Xresources out there, which might add
>> to the confusion.
>
> Are you sure what you understand "this" is?  I'm going to say this
> again: defaulting to the GTK build because it "looks better" or is "more
> consistent" is quite simply trading crashes for looks.

Ignoring the level of motivation visual appeal/style has to peoples
decisions is likely to be somewhat naive. There are plenty of examples
of superior technology/solutions losing to inferior ones because of
non-technical reasons.

I also wonder about how frequent these crashes and technical issues
are. I switched over from gtk to lucid a little while ago. However,
prior to switching, I experienced absolutely no issues and I cannot
recall the last time Emacs crashed for me. I'm running latest emacs
devel (29.0.50) on Fedora 36 (previously on Ubutnu 22.04). I'm a heavy
Emacs users, running it every day all day and using it for nearly
everything. I switched to lucid because the technical arguments made
sense to me. However, I did not experience any of the technical issues
you reference. If my experience is more common, then your purely
technical argument is going to have difficulty gaining traction.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:55                       ` Po Lu
  2022-08-22  8:32                         ` Tim Cross
@ 2022-08-22  9:04                         ` Dirk-Jan C. Binnema
  2022-08-22 12:10                           ` Po Lu
  2022-08-23  3:46                         ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: Dirk-Jan C. Binnema @ 2022-08-22  9:04 UTC (permalink / raw)
  To: emacs-devel


On Monday Aug 22 2022, Po Lu wrote:

> Tim Cross <theophilusx@gmail.com> writes:
>
>> Like others in this thread, I don't use the menu-bar, toolbar,
>> scroll-bars etc, so toolkit seems somewhat irrelevant (I have to do an
>> M-x version to see which one I'm using!). I build using lucid as that
>> seemed like a better choice than gtk and I use xfce rather than gnome as
>> my desktop environment (and sometimes stumpwm).
>
> [...]
>
>> I suspect a part of the decision regarding which toolkit to build emacs
>> with for various distros probably relates to minimising the number of
>> toolkits to install. As Gnome seems to be the current 'default', gtk is
>> already installed, so will likely be a preferred choice unless some
>> other compelling reason is given.
>
> The problem here is not a stylistic issue.  I want to disable the GTK
> build by default because it leads to serious problems for users, up to
> and including crashes.

Does this apply to pgtk as well?

TBH, this whole thread sounds needlessly alarmist.

The various GTK builds have been working fine for me and apparently the
majority of emacs users on GNU/Linux. "Abysmal" does not describe that
all all.

There have been grumblings about scenarios that GTK doesn't implement
correctly or at all, and there were some big warning for that (there
still may be). It seems we now emacs is adding a new such scenario
(XInput2), while the GTK developers have lost some interest in X11 -- it
seems we should just not enable XInput2 in that case.

I'd actually hope we'd be able to do it _more_ with GTK, such as having
GTK tabs, using the header bar, etc., where emacs currently looks rather
antiquated.

Kind regards,
Dirk.


-- 
Dirk-Jan C. Binnema                  Helsinki, Finland
e:djcb@djcbsoftware.nl           w:www.djcbsoftware.nl
gpg: 6987 9CED 1745 9375 0F14 DA98 11DD FEA9 DCC4 A036



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  8:32                         ` Tim Cross
@ 2022-08-22  9:44                           ` Po Lu
  2022-08-22 23:19                             ` Tim Cross
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22  9:44 UTC (permalink / raw)
  To: Tim Cross; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel

Tim Cross <theophilusx@gmail.com> writes:

> You missed my point. I'm not saying the change is because of a stylistic
> issue - I'm saying the change is likely to create a stylistic
> issue. This will in turn cause more resistance to the change and
> possibly increase motivation to do whatever is necessary to re-enable
> gtk build. 

Reenabling the GTK build will be as easy as specifying
"--with-x-toolkit=gtk" at configure-time.  It's not being deleted.

> Yes, I know that and that is a problem for distributions where they want
> to minimise the distro size and number of packages which need to be
> maintained. As it stands now, most distributions include 3 packages -
> emacs-gtk, emacs-lucid and emacs-nox. As they move to support wayland,
> they will either have to include emacs-pgtk or continue with the
> wayland-x interface. The risk is, given they need GTK for both emacs-gtk
> and emacs-pgtk, they will drop the emacs-lucid package rather than the
> emacs-gtk package (unless we help educate them on why that would be a
> bad choice). To educate effectively, it helps to understand their
> situation and not just address the technical issues seen from a pure
> emacs development position.

They don't need anything extra for emacs-notoolkit.

> OK, so how does my Emacs default theme change between dark and light
> theme when I change the theme of my desktop environment? This never use
> to work and I assumed it was because emacs didn't respect the DE
> theme. I use to manage it via X resources. However, I noticed on recent
> installs under both Ubuntu and Fedora that changing between light and
> dark themes also resulted in changes to (for example) the menus and
> menu-bar from a light background with dark text to a dark background
> with light text. My assumption was that this was due to the GTK theme
> being respected?

The menu bar is not part of Emacs's own interface.

> Which is fine for those who know lisp. However, this isn't what people
> expect these days. THis was my point - lots of the comments and reviews
> for recent distributions of Ubuntu and Fedora have referenced greatly
> improved theme/style consistencies. From my own limited experience, this
> appears to extend to Emacs as well (to a limited extent, not the whole
> UI, just menus, popup dialogue boxes etc.

You can use Customize too, if you want.

> Ignoring the level of motivation visual appeal/style has to peoples
> decisions is likely to be somewhat naive. There are plenty of examples
> of superior technology/solutions losing to inferior ones because of
> non-technical reasons.

That doesn't mean it's a good idea to base our decisions on those
non-technical reaspons.

> I also wonder about how frequent these crashes and technical issues
> are. I switched over from gtk to lucid a little while ago. However,
> prior to switching, I experienced absolutely no issues and I cannot
> recall the last time Emacs crashed for me. I'm running latest emacs
> devel (29.0.50) on Fedora 36 (previously on Ubutnu 22.04). I'm a heavy
> Emacs users, running it every day all day and using it for nearly
> everything. I switched to lucid because the technical arguments made
> sense to me. However, I did not experience any of the technical issues
> you reference. If my experience is more common, then your purely
> technical argument is going to have difficulty gaining traction.

I'm going to say that you're simply lucky.  Search for "GTK" on the bug
tracker, in etc/PROBLEMS, and on this list, and you will see what I mean
very quickly.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:18                     ` Po Lu
@ 2022-08-22 10:04                       ` Lars Ingebrigtsen
  2022-08-22 11:46                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-22 10:04 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> That still doesn't explain why we could not use --without-xinput2 with
>> GTK builds.  Users would have the choice between a Lucid build with
>> xinput2 and a GTK build with xinput.
>
> A GTK build with no input extension will be missing several important
> features, and as a result the likes of `pixel-scroll-precision-mode'
> will no longer work.

But like you said, it's more important that Emacs doesn't crash.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 10:04                       ` Lars Ingebrigtsen
@ 2022-08-22 11:46                         ` Po Lu
  2022-08-22 11:56                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22 11:46 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> But like you said, it's more important that Emacs doesn't crash.

Exactly, so let's default to some other build, that gives users all of
those features and doesn't crash.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 11:46                         ` Po Lu
@ 2022-08-22 11:56                           ` Lars Ingebrigtsen
  2022-08-22 12:14                             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-22 11:56 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> But like you said, it's more important that Emacs doesn't crash.
>
> Exactly, so let's default to some other build, that gives users all of
> those features and doesn't crash.

Again, I'm all for that, but the other builds have to be adjusted.

And the non-default builds still shouldn't crash, so disabling a
crashing feature in the Gtk build should also be done.

These two things are not in conflict with each other.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  9:04                         ` Dirk-Jan C. Binnema
@ 2022-08-22 12:10                           ` Po Lu
  2022-08-22 12:35                             ` Eli Zaretskii
                                               ` (3 more replies)
  0 siblings, 4 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22 12:10 UTC (permalink / raw)
  To: Dirk-Jan C. Binnema; +Cc: emacs-devel

"Dirk-Jan C. Binnema" <djcb@djcbsoftware.nl> writes:

> Does this apply to pgtk as well?

PGTK has other problems on the input and selection side of things, and
shouldn't be used on X at all.  Try to select a large chunk of text in
the PGTK build running under X (xdisp.c immediately comes to mind), and
insert it into another program with Button2.  It will immediately crash
with an X Windows error.

> TBH, this whole thread sounds needlessly alarmist.

I'd have said the same until I actually started working on the GTK
build, which was in an even worse state several months ago.  For
example, because many people do not use toolkit widgets in Emacs
seriously, and GTK changes too quickly, a bug where moving the mouse
wheel on the scroll bar does nothing was not found in time to be fixed
in Emacs 28.

Seriously, folks, if you don't use the scroll bar enough to find such an
obvious bug, you might as well use the a build of Emacs with non-toolkit
scroll bars.

> The various GTK builds have been working fine for me and apparently the
> majority of emacs users on GNU/Linux. "Abysmal" does not describe that
> all all.

Okay, then please show another build of Emacs where opening Dired on a
relatively small frame prints warning messages to stdout, and
potentially resizes the frame to fit the menu bar.  Or resizing a frame
from the top left corner causes the bottom right corner of the frame to
lag behind the resize.

All of these might seem to be minor nuances, but they leave bad tastes
in users mouths.  The users then place the blame on us, and ask: "why
can't Emacs behave as nicely as other editors?"  (The answer is really
that the other editors use some other toolkit.)

> There have been grumblings about scenarios that GTK doesn't implement
> correctly or at all, and there were some big warning for that (there
> still may be). It seems we now emacs is adding a new such scenario
> (XInput2), while the GTK developers have lost some interest in X11 -- it
> seems we should just not enable XInput2 in that case.

It seems to me that the same crowd asking for various "modern" GTK
features also want features like pixel-scroll-precision-mode and monitor
refresh synchronization, which cause crashes or don't work on GTK.  We
are then blamed for the feature not working there as a result of bugs or
misdesigns in GTK.

In any case, there is no excuse for GTK to have buggy XInput 2 support,
considering that it used to be something that we did not support,
requiring various workarounds to explictly disable in GTK, and is
mentioned in the first few paragraphs of the GTK+ 2 to 3 migration
guidelines.

I only found out about this particular crash investigating bug#56879,
but there are many more issues, some of which are more insidious than
simple crashes.

> I'd actually hope we'd be able to do it _more_ with GTK, such as having
> GTK tabs, using the header bar, etc., where emacs currently looks rather
> antiquated.

Then we'd be dealing with GTK randomly resizing our frames to fit the
tab bar in addition to the menu bar.  Or the authors of the GNOME Human
Interface Guidelines declaring tab bars against the law at some point in
the future.  No thanks.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 11:56                           ` Lars Ingebrigtsen
@ 2022-08-22 12:14                             ` Po Lu
  2022-08-22 12:21                               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22 12:14 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Again, I'm all for that, but the other builds have to be adjusted.

Not crashing with the same features definitely trump tool bar icons.  In
the past, those same icons were also used under the GTK build.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:14                             ` Po Lu
@ 2022-08-22 12:21                               ` Lars Ingebrigtsen
  2022-08-22 13:13                                 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-22 12:21 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Not crashing with the same features definitely trump tool bar icons.  In
> the past, those same icons were also used under the GTK build.

I feel like I'm repeating myself here a lot now.  So to recap:

1) The crash under a Gtk build should be fixed -- in any case, no matter
what else we do.  If that means disabling XInput 2 under Gtk, that's fine.

2) I think we should default to not using a toolkit.  But the issues in
1-5) I delineated must be fixed first.  (This isn't a discussion -- I'm
stating a requisite.)

OK?  I'm not going to repeat these two things any more now, so if you
continue discussing these things, but I don't respond, that does not
mean that I suddenly agree with you -- but that I've given up repeating
myself.  (We've been in this situation a couple times before, so I'm
just being explicit here.)

(And did you get my off-list email, or did it go to a spam bucket
again?)




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:10                           ` Po Lu
@ 2022-08-22 12:35                             ` Eli Zaretskii
  2022-08-22 12:59                               ` Po Lu
  2022-08-22 12:40                             ` Eli Zaretskii
                                               ` (2 subsequent siblings)
  3 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-22 12:35 UTC (permalink / raw)
  To: Po Lu; +Cc: djcb, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 20:10:16 +0800
> 
> "Dirk-Jan C. Binnema" <djcb@djcbsoftware.nl> writes:
> 
> > Does this apply to pgtk as well?
> 
> PGTK has other problems on the input and selection side of things, and
> shouldn't be used on X at all.

What about PGTK build on Wayland, not on X?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:10                           ` Po Lu
  2022-08-22 12:35                             ` Eli Zaretskii
@ 2022-08-22 12:40                             ` Eli Zaretskii
  2022-08-22 13:03                               ` Po Lu
  2022-08-22 15:10                             ` Lynn Winebarger
  2022-08-23  6:34                             ` Dirk-Jan C. Binnema
  3 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-22 12:40 UTC (permalink / raw)
  To: Po Lu; +Cc: djcb, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 20:10:16 +0800
> 
> > There have been grumblings about scenarios that GTK doesn't implement
> > correctly or at all, and there were some big warning for that (there
> > still may be). It seems we now emacs is adding a new such scenario
> > (XInput2), while the GTK developers have lost some interest in X11 -- it
> > seems we should just not enable XInput2 in that case.
> 
> It seems to me that the same crowd asking for various "modern" GTK
> features also want features like pixel-scroll-precision-mode and monitor
> refresh synchronization, which cause crashes or don't work on GTK.  We
> are then blamed for the feature not working there as a result of bugs or
> misdesigns in GTK.
> 
> In any case, there is no excuse for GTK to have buggy XInput 2 support,
> considering that it used to be something that we did not support,
> requiring various workarounds to explictly disable in GTK, and is
> mentioned in the first few paragraphs of the GTK+ 2 to 3 migration
> guidelines.

What is your opinion on defaulting the GTK build to be without
XInput2?  Since that option causes crashes, it sounds to me like a
good compromise to leave the GTK build (by default) without the
XInput2 niceties, providing an opt-in configure-time switch to use
XInput2.  This will allow people who don't mind an occasional crash,
or can avoid that procedurally, to have the XInput2 features, while at
the same time protecting the innocent.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:35                             ` Eli Zaretskii
@ 2022-08-22 12:59                               ` Po Lu
  2022-08-22 13:08                                 ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-22 12:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: djcb, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> What about PGTK build on Wayland, not on X?

It has the same input-related problems to a much lesser degree, and
selections work fine.  And either way, it's the only choice on Wayland.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:40                             ` Eli Zaretskii
@ 2022-08-22 13:03                               ` Po Lu
  2022-08-22 13:08                                 ` Dmitry Gutov
  2022-08-22 13:10                                 ` Eli Zaretskii
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22 13:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: djcb, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> What is your opinion on defaulting the GTK build to be without
> XInput2?

It would mean leaving the default build without several features.  Since
those features will be missing by default, most users will not know of
them, and they will end up not being useful.  Which is why I think the
default should be one of the Lucid, Motif, or no tookit builds, which
both provide those features and avoid the crashes.

I really cannot understand the objection to such a default based on the
set of tool bar icons available there.  If they are such a big problem,
the icons used in the existing GTK build can be imported right now, as
they are under the same GPL v2 license that the current tool bar icons
in etc/images use.  But all of that smells of putting looks above
usefulness, a godforsaken plague of modern software that Emacs has not
yet succumb to.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:59                               ` Po Lu
@ 2022-08-22 13:08                                 ` Eli Zaretskii
  2022-08-23  0:42                                   ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-22 13:08 UTC (permalink / raw)
  To: Po Lu; +Cc: djcb, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 20:59:38 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > What about PGTK build on Wayland, not on X?
> 
> It has the same input-related problems to a much lesser degree, and
> selections work fine.  And either way, it's the only choice on Wayland.

Does it cause crashes?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:03                               ` Po Lu
@ 2022-08-22 13:08                                 ` Dmitry Gutov
  2022-08-23  0:45                                   ` Po Lu
  2022-08-22 13:10                                 ` Eli Zaretskii
  1 sibling, 1 reply; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-22 13:08 UTC (permalink / raw)
  To: Po Lu, Eli Zaretskii; +Cc: djcb, emacs-devel

On 22.08.2022 16:03, Po Lu wrote:
> I really cannot understand the objection to such a default based on the
> set of tool bar icons available there.

Don't forget HiDPI support.

> If they are such a big problem,
> the icons used in the existing GTK build can be imported right now, as
> they are under the same GPL v2 license that the current tool bar icons
> in etc/images use.

The GTK3 build is special in that it uses the icons set up by the GTK 
user theme. So there is no one specific set.

But we could import one of them, for instance, from the default GNOME 3 
theme. The license is probably good enough.

> But all of that smells of putting looks above
> usefulness, a godforsaken plague of modern software that Emacs has not
> yet succumb to.

We do want new users to try Emacs and decide to stick with it, don't we?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:03                               ` Po Lu
  2022-08-22 13:08                                 ` Dmitry Gutov
@ 2022-08-22 13:10                                 ` Eli Zaretskii
  2022-08-23  0:46                                   ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-22 13:10 UTC (permalink / raw)
  To: Po Lu; +Cc: djcb, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 21:03:58 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > What is your opinion on defaulting the GTK build to be without
> > XInput2?
> 
> It would mean leaving the default build without several features.  Since
> those features will be missing by default, most users will not know of
> them, and they will end up not being useful.

But since we are talking about making GTK not the default build, that
should be okay, I think.

> Which is why I think the default should be one of the Lucid, Motif,
> or no tookit builds, which both provide those features and avoid the
> crashes.

I'm asking whether making GTK not the default build, and _also_ making
the GTK build by default not use XInput2, sounds OK?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:21                               ` Lars Ingebrigtsen
@ 2022-08-22 13:13                                 ` Po Lu
  2022-08-22 13:19                                   ` Lars Ingebrigtsen
                                                     ` (3 more replies)
  0 siblings, 4 replies; 267+ messages in thread
From: Po Lu @ 2022-08-22 13:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I feel like I'm repeating myself here a lot now.  So to recap:
>
> 1) The crash under a Gtk build should be fixed -- in any case, no matter
> what else we do.  If that means disabling XInput 2 under Gtk, that's fine.

It's not fine.  Because once that happens, people will stop using the
XInput 2 build (since it will no longer be the default), and it will
simply rot like xwidgets, XEmbed, child frames, colormapped display
support.  Then, at some point, the GTK developers will delete the core
input support like they have been threatening to for a while and leave
us with no option but the now-non-working XI2 build.

Which is why XInput 2 should stay on.  GTK -- off.

> 2) I think we should default to not using a toolkit.  But the issues in
> 1-5) I delineated must be fixed first.  (This isn't a discussion -- I'm
> stating a requisite.)

Those problems are never going to be solved with our manpower, so we
might as well stop dreaming and pick something that already exists (and
for obvious reasons GTK is not an option -- that one crash is simply one
out of many.)

As I said, the only place a "no-toolkit" build exists is under X, and
even there several very old pieces of code are being used to piece
together a toolkit.  And as you've probably noticed, even that code
doesn't work very well, since most of the complicated modern toolkit
behavior is not present.  Everything from mouse-over popups in menus to
font sets and internationalized text display.

Not even Microsoft can afford to maintain their own toolkit for VS Code.
They use a web browser, which is a terrible idea that should never be
let near Emacs.

> (And did you get my off-list email, or did it go to a spam bucket
> again?)

The latter.  Here, I'm getting mail delivered two or three times from
lists.gnu.org.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:13                                 ` Po Lu
@ 2022-08-22 13:19                                   ` Lars Ingebrigtsen
  2022-08-23  0:50                                     ` Po Lu
  2022-08-22 17:33                                   ` Eli Zaretskii
                                                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-22 13:19 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Those problems are never going to be solved with our manpower, so we
> might as well stop dreaming and pick something that already exists

Stefan K has volunteered to fix the toolbar icons.  I guess the most
difficult problem would be to fix the scroll bars?

>> (And did you get my off-list email, or did it go to a spam bucket
>> again?)
>
> The latter.  Here, I'm getting mail delivered two or three times from
> lists.gnu.org.

Can you pick it out of the spam bucket or should I resend to some other
address?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:10                           ` Po Lu
  2022-08-22 12:35                             ` Eli Zaretskii
  2022-08-22 12:40                             ` Eli Zaretskii
@ 2022-08-22 15:10                             ` Lynn Winebarger
  2022-08-23  6:34                             ` Dirk-Jan C. Binnema
  3 siblings, 0 replies; 267+ messages in thread
From: Lynn Winebarger @ 2022-08-22 15:10 UTC (permalink / raw)
  To: Po Lu; +Cc: Dirk-Jan C. Binnema, emacs-devel

On Mon, Aug 22, 2022 at 8:12 AM Po Lu <luangruo@yahoo.com> wrote:
> "Dirk-Jan C. Binnema" <djcb@djcbsoftware.nl> writes:
> > TBH, this whole thread sounds needlessly alarmist.
I use the GTK build, and I've experienced the occasional odd crash
with messages indicating there was a problem in GTK.  I don't even use
X forwarding.

> > There have been grumblings about scenarios that GTK doesn't implement
> > correctly or at all, and there were some big warning for that (there
> > still may be). It seems we now emacs is adding a new such scenario
> > (XInput2), while the GTK developers have lost some interest in X11 -- it
> > seems we should just not enable XInput2 in that case.
>
> It seems to me that the same crowd asking for various "modern" GTK
> features also want features like pixel-scroll-precision-mode and monitor
> refresh synchronization, which cause crashes or don't work on GTK.  We
> are then blamed for the feature not working there as a result of bugs or
> misdesigns in GTK.

I have no expertise in implementing graphical interfaces, but as a
user I prefer applications to make use of the styling/interface
behavior from the main GUI, at least if I'm using something like
GNOME/KDE/XFCE.  That's part of *why* you choose such a GUI.  If the
interface is too dissonant with what I expect, I probably won't notice
whether something like "pixel-scroll-precision-mode" exists.

> Then we'd be dealing with GTK randomly resizing our frames to fit the
> tab bar in addition to the menu bar.  Or the authors of the GNOME Human
> Interface Guidelines declaring tab bars against the law at some point in
> the future.  No thanks.
It seems like you're missing the point.  If I'm a user of GNOME after
they do that, it probably means I am ok with prohibiting tab bars.  Or
I shouldn't be using that version of GNOME.  The choice of GUI
implicitly signals user preferences about the features they want and
don't want.  What's the issue with deferring to that?
That Haiku interface sounds interesting. It would be nice to have an
Emacs that cooperates with the GUI model of events via threaded
processing, instead of insisting on the same basic event loop used for
terminal-based interaction.
Of course, it's not like I'm offering to do any development.  It's not
really my area.

Lynn



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:13                                 ` Po Lu
  2022-08-22 13:19                                   ` Lars Ingebrigtsen
@ 2022-08-22 17:33                                   ` Eli Zaretskii
  2022-08-23  0:47                                     ` Po Lu
  2022-08-23  3:51                                   ` Jean Louis
  2022-08-23  3:53                                   ` Jean Louis
  3 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-22 17:33 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Gregory Heytings <gregory@heytings.org>,  emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 21:13:55 +0800
> 
> Lars Ingebrigtsen <larsi@gnus.org> writes:
> 
> > I feel like I'm repeating myself here a lot now.  So to recap:
> >
> > 1) The crash under a Gtk build should be fixed -- in any case, no matter
> > what else we do.  If that means disabling XInput 2 under Gtk, that's fine.
> 
> It's not fine.  Because once that happens, people will stop using the
> XInput 2 build (since it will no longer be the default)

I don't understand: don't the non-GTK builds also support XInput2?  If
so, and if we make one of those non-GTK builds the default, people
will still have an XInput2 build, just not a GTK one.  Or what am I
missing?

> Which is why XInput 2 should stay on.  GTK -- off.

If the default, non-GTK, build supports XInput2, then why is it a
problem to have the GTK build use XInput2 only as an opt-in feature?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  9:44                           ` Po Lu
@ 2022-08-22 23:19                             ` Tim Cross
  2022-08-23  0:57                               ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Tim Cross @ 2022-08-22 23:19 UTC (permalink / raw)
  To: Po Lu; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel


Po Lu <luangruo@yahoo.com> writes:

> Tim Cross <theophilusx@gmail.com> writes:
>
>> You missed my point. I'm not saying the change is because of a stylistic
>> issue - I'm saying the change is likely to create a stylistic
>> issue. This will in turn cause more resistance to the change and
>> possibly increase motivation to do whatever is necessary to re-enable
>> gtk build. 
>
> Reenabling the GTK build will be as easy as specifying
> "--with-x-toolkit=gtk" at configure-time.  It's not being deleted.
>

and again I feel your missing the point. Failing to address the
stylistic questions runs the risk that most people will just re-enable
the GTK theme. When this occurs, what have you actually achieved other
than now being able to say "Oh well, you chose GTK, so now its your
problem".

What is really required is that the default is changed away from GTK and
the majority of users are comfortable/happy with that change. This means
somehow addressing concerns which people are likely to raise with a
change in default toolkit. Dismissing them as irrelevant just because
they represent some current trend/style you find distasteful is unlikely
to help promote your proposal and gain acceptance. 

>> Yes, I know that and that is a problem for distributions where they want
>> to minimise the distro size and number of packages which need to be
>> maintained. As it stands now, most distributions include 3 packages -
>> emacs-gtk, emacs-lucid and emacs-nox. As they move to support wayland,
>> they will either have to include emacs-pgtk or continue with the
>> wayland-x interface. The risk is, given they need GTK for both emacs-gtk
>> and emacs-pgtk, they will drop the emacs-lucid package rather than the
>> emacs-gtk package (unless we help educate them on why that would be a
>> bad choice). To educate effectively, it helps to understand their
>> situation and not just address the technical issues seen from a pure
>> emacs development position.
>
> They don't need anything extra for emacs-notoolkit.
>

but they lose the ability to easily adopt a consistent theme across
their desktop - something which for whatever reason appears to work now
and will not once you change to either no toolkit or lucid.

>> OK, so how does my Emacs default theme change between dark and light
>> theme when I change the theme of my desktop environment? This never use
>> to work and I assumed it was because emacs didn't respect the DE
>> theme. I use to manage it via X resources. However, I noticed on recent
>> installs under both Ubuntu and Fedora that changing between light and
>> dark themes also resulted in changes to (for example) the menus and
>> menu-bar from a light background with dark text to a dark background
>> with light text. My assumption was that this was due to the GTK theme
>> being respected?
>
> The menu bar is not part of Emacs's own interface.
>

I don't really understand what you mean with this above statement. From
a user perspective, the menu-bar is obviously a part of the Emacs
interface and when I switch to lucid or no toolkit, it changes to a
light background and a dark foreground while everything else on my
desktop honours my selection of a dark background and a light
foreground. If I run the GTK build, the foreground/background is the
same as the other apps on my desktop i.e. dark background, light
foreground.

As outlined at the very beginning, this consistency in themes seems to
be something users want as can be seen in the prevalence of discussions
and reviews regarding recent GNU Linux distribution releases which focus
on this aspect. To minimise push-back and increase acceptance for a
toolkit default change, addressing such side issues will likely help
ensure a smoother transition. 

>> Which is fine for those who know lisp. However, this isn't what people
>> expect these days. THis was my point - lots of the comments and reviews
>> for recent distributions of Ubuntu and Fedora have referenced greatly
>> improved theme/style consistencies. From my own limited experience, this
>> appears to extend to Emacs as well (to a limited extent, not the whole
>> UI, just menus, popup dialogue boxes etc.
>
> You can use Customize too, if you want.
>

still missing the point. Users don't want to be required to go through
each individual application and manually adjust the theme to get a
consistent looking desktop. They have selected a desktop environment and
set a theme and want it applied consistently across the desktop. This
appears to be something they have with current GTK build and which you
don't get with lucid or no toolkit builds (at least on the Ubuntu and
Fedora DE I've used, YMMV with other combinations). I don't know how
easy it would be to address this issue - weather it would be possible to
add a basic 'interface' package or script or document some alternative
approaches to help people get the consistency which seems important with
minimal effort. 


>> Ignoring the level of motivation visual appeal/style has to peoples
>> decisions is likely to be somewhat naive. There are plenty of examples
>> of superior technology/solutions losing to inferior ones because of
>> non-technical reasons.
>
> That doesn't mean it's a good idea to base our decisions on those
> non-technical reaspons.
>

and that isn't what I said or suggested. At the risk of repeating myself
yet again, I'm not against the change in default toolkit. I'm merely
suggesting that if you want to minimise the push back to this change and
discourage people just manually selecting GTK, you need to also try and
address these separate, but related issues. Dismissing them as just
being irrelevant 'modern' trends will generate more heat and resistance
than necessary. 

>> I also wonder about how frequent these crashes and technical issues
>> are. I switched over from gtk to lucid a little while ago. However,
>> prior to switching, I experienced absolutely no issues and I cannot
>> recall the last time Emacs crashed for me. I'm running latest emacs
>> devel (29.0.50) on Fedora 36 (previously on Ubutnu 22.04). I'm a heavy
>> Emacs users, running it every day all day and using it for nearly
>> everything. I switched to lucid because the technical arguments made
>> sense to me. However, I did not experience any of the technical issues
>> you reference. If my experience is more common, then your purely
>> technical argument is going to have difficulty gaining traction.
>
> I'm going to say that you're simply lucky.  Search for "GTK" on the bug
> tracker, in etc/PROBLEMS, and on this list, and you will see what I mean
> very quickly.

However, that only gives a one sided view - all those people using the
GTK build who don't experience any problems don't report all is OK.

All I can report on is my personal experience. For me, I see no
instability with the GTK build. I also see little of benefit to me with
the switch to the new xinput2 and wonder why not just disable xinput2 in
just the GTK build so that if/when users select GTK as their preferred
toolkit, it is at least stable. I think it is quite reasonable to tell
people that if they want the features, such as pixel level scrolling,
then they have to use either no tookit or lucid and that the xinput2
features are not available in GTK.

It seems misguided to just change the default from GTK to no toolkit or
lucid and leave the ability to select GTK knowing that will cause
instability due to the use of xinput2. Change the default AND disable
xinput2 when someone selects the GTK toolkit. 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:08                                 ` Eli Zaretskii
@ 2022-08-23  0:42                                   ` Po Lu
  2022-08-23  2:36                                     ` Eli Zaretskii
  2022-08-23 17:52                                     ` Yilkal Argaw
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: djcb, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Po Lu <luangruo@yahoo.com>
>> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
>> Date: Mon, 22 Aug 2022 20:59:38 +0800
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > What about PGTK build on Wayland, not on X?
>> 
>> It has the same input-related problems to a much lesser degree, and
>> selections work fine.  And either way, it's the only choice on Wayland.
>
> Does it cause crashes?

No, but it causes things like bug#53200, where C-S-u is reported as C-u.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:08                                 ` Dmitry Gutov
@ 2022-08-23  0:45                                   ` Po Lu
  2022-08-23 10:30                                     ` Dmitry Gutov
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:45 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Eli Zaretskii, djcb, emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> Don't forget HiDPI support.

Lars says it works well enough on the Lucid build, at least as well as
the rest of Emacs does at present.  Borders and box faces don't scale
but there is nothing that can be done about that at present.

> We do want new users to try Emacs and decide to stick with it, don't we?

Right, and one way to do that is to provide them with a build where the
frame does not randomly resize itself upon entering a Dired buffer, or
where the `scroll-bar-width' frame parameter actually behaves as
documented instead of just flickering, or where an X disconnect does not
crash Emacs.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:10                                 ` Eli Zaretskii
@ 2022-08-23  0:46                                   ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: djcb, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> It would mean leaving the default build without several features.  Since
>> those features will be missing by default, most users will not know of
>> them, and they will end up not being useful.
>
> But since we are talking about making GTK not the default build, that
> should be okay, I think.

Yes, that sounds okay.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 17:33                                   ` Eli Zaretskii
@ 2022-08-23  0:47                                     ` Po Lu
  2022-08-23  2:38                                       ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> I don't understand: don't the non-GTK builds also support XInput2?  If
> so, and if we make one of those non-GTK builds the default, people
> will still have an XInput2 build, just not a GTK one.  Or what am I
> missing?

I meant if the GTK build is to stay the default.

> If the default, non-GTK, build supports XInput2, then why is it a
> problem to have the GTK build use XInput2 only as an opt-in feature?

There is no problem with that, but only if GTK is turned off.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:19                                   ` Lars Ingebrigtsen
@ 2022-08-23  0:50                                     ` Po Lu
  2022-08-24 11:19                                       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:50 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Stefan K has volunteered to fix the toolbar icons.  I guess the most
> difficult problem would be to fix the scroll bars?

And the menu bar to display bidirectional and multilingual text, or the
menus to actually work like how people expect.  Along with implementing
file and popup dialogs (right now the latter are just implemented based
on menus.)

> Can you pick it out of the spam bucket or should I resend to some other
> address?

I don't know.  It eventually shows up.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 23:19                             ` Tim Cross
@ 2022-08-23  0:57                               ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  0:57 UTC (permalink / raw)
  To: Tim Cross; +Cc: Lynn Winebarger, Lars Ingebrigtsen, emacs-devel

Tim Cross <theophilusx@gmail.com> writes:

> and again I feel your missing the point. Failing to address the
> stylistic questions runs the risk that most people will just re-enable
> the GTK theme. When this occurs, what have you actually achieved other
> than now being able to say "Oh well, you chose GTK, so now its your
> problem".

If they run into problems in GTK at that point, we can just shrug and
ask them to complain to the GTK developers.

> but they lose the ability to easily adopt a consistent theme across
> their desktop - something which for whatever reason appears to work now
> and will not once you change to either no toolkit or lucid.

I wouldn't call a stylesheet applied to only the menu bar and scroll bar
"consistent".  It is hard to keep a GTK stylesheet consistent anyway,
because their developers keep breaking the stylesheet format, and now
there are GTK 4 programs that do not allow applying custom styles at
all.

> I don't really understand what you mean with this above statement. From
> a user perspective, the menu-bar is obviously a part of the Emacs
> interface and when I switch to lucid or no toolkit, it changes to a
> light background and a dark foreground while everything else on my
> desktop honours my selection of a dark background and a light
> foreground. If I run the GTK build, the foreground/background is the
> same as the other apps on my desktop i.e. dark background, light
> foreground.

[...]

> As outlined at the very beginning, this consistency in themes seems to
> be something users want as can be seen in the prevalence of discussions
> and reviews regarding recent GNU Linux distribution releases which focus
> on this aspect. To minimise push-back and increase acceptance for a
> toolkit default change, addressing such side issues will likely help
> ensure a smoother transition. 

So, in other words, you're fine with the menu bar being consistent with
the system stylesheet (something the GTK developers say not to apply,
and have outright deleted from many GTK 4 programs), while a Gnus
summary buffer is not?

> still missing the point. Users don't want to be required to go through
> each individual application and manually adjust the theme to get a
> consistent looking desktop. They have selected a desktop environment and
> set a theme and want it applied consistently across the desktop. This
> appears to be something they have with current GTK build and which you
> don't get with lucid or no toolkit builds (at least on the Ubuntu and
> Fedora DE I've used, YMMV with other combinations). I don't know how
> easy it would be to address this issue - weather it would be possible to
> add a basic 'interface' package or script or document some alternative
> approaches to help people get the consistency which seems important with
> minimal effort. 

Again, see what I said above.

> and that isn't what I said or suggested. At the risk of repeating myself
> yet again, I'm not against the change in default toolkit. I'm merely
> suggesting that if you want to minimise the push back to this change and
> discourage people just manually selecting GTK, you need to also try and
> address these separate, but related issues. Dismissing them as just
> being irrelevant 'modern' trends will generate more heat and resistance
> than necessary. 

I don't want to discourage people from manually selecting GTK.

> All I can report on is my personal experience. For me, I see no
> instability with the GTK build. I also see little of benefit to me with
> the switch to the new xinput2 and wonder why not just disable xinput2 in
> just the GTK build so that if/when users select GTK as their preferred
> toolkit, it is at least stable. I think it is quite reasonable to tell
> people that if they want the features, such as pixel level scrolling,
> then they have to use either no tookit or lucid and that the xinput2
> features are not available in GTK.

Because the core input subsystem is obsolete, like Xinerama,
multi-buffering, the original input extension, core fonts, and RandR
before 1.2.  It will not even work with new input devices in the future,
or under multi-pointer X environments, and the support in GTK itself
will be removed by GTK developers at some point.  Do this:

  xinput create-master test 0 1
  xinput reattach <another pointer device> <id of test master pointer>

and try to click on a frame from programs not using the input extension.
It will not work.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  0:42                                   ` Po Lu
@ 2022-08-23  2:36                                     ` Eli Zaretskii
  2022-08-23  3:04                                       ` Po Lu
  2022-08-23 17:52                                     ` Yilkal Argaw
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23  2:36 UTC (permalink / raw)
  To: Po Lu; +Cc: djcb, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 08:42:59 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Po Lu <luangruo@yahoo.com>
> >> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
> >> Date: Mon, 22 Aug 2022 20:59:38 +0800
> >> 
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >> 
> >> > What about PGTK build on Wayland, not on X?
> >> 
> >> It has the same input-related problems to a much lesser degree, and
> >> selections work fine.  And either way, it's the only choice on Wayland.
> >
> > Does it cause crashes?
> 
> No, but it causes things like bug#53200, where C-S-u is reported as C-u.

That's much less of a catastrophe, IMO, and could be alleviated by
some PGTK-specific bindings where these cases matter to us.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  0:47                                     ` Po Lu
@ 2022-08-23  2:38                                       ` Eli Zaretskii
  2022-08-23  3:05                                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23  2:38 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  gregory@heytings.org,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 08:47:09 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I don't understand: don't the non-GTK builds also support XInput2?  If
> > so, and if we make one of those non-GTK builds the default, people
> > will still have an XInput2 build, just not a GTK one.  Or what am I
> > missing?
> 
> I meant if the GTK build is to stay the default.
> 
> > If the default, non-GTK, build supports XInput2, then why is it a
> > problem to have the GTK build use XInput2 only as an opt-in feature?
> 
> There is no problem with that, but only if GTK is turned off.

Then I think we should aim for the defaults described above.

What about builds with GTK 2 -- do they have fewer problems?  Can they
support XInput2 in a reasonable way?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  2:36                                     ` Eli Zaretskii
@ 2022-08-23  3:04                                       ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  3:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: djcb, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> That's much less of a catastrophe, IMO, and could be alleviated by
> some PGTK-specific bindings where these cases matter to us.

Yes, which is why it's currently very adequate for its intended use of
Wayland support.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  2:38                                       ` Eli Zaretskii
@ 2022-08-23  3:05                                         ` Po Lu
  2022-08-23 11:22                                           ` Eli Zaretskii
  2022-08-24  3:52                                           ` Richard Stallman
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  3:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Then I think we should aim for the defaults described above.
>
> What about builds with GTK 2 -- do they have fewer problems?  Can they
> support XInput2 in a reasonable way?

They support XInput 2 (and most of the other features I mentioned as
problematic on 3.x) correctly, but GTK+ 2.x is obsolete and probably
will be removed from most GNU/Linux distributions soon.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:15             ` Po Lu
  2022-08-22  2:06               ` Stefan Monnier
@ 2022-08-23  3:44               ` Richard Stallman
  2022-08-23  4:02                 ` Po Lu
                                   ` (2 more replies)
  2022-08-23  3:44               ` Richard Stallman
  2 siblings, 3 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:44 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > What's wrong with C++ in GUI code?

Requiring a C++ compiler to build Emacs is a big practical
disadvantage.  Including C++ code in Emacs will be an obstacle for
people such as me to debug or write code.  That is independent of what
jobs the C++ code is used to do.

Apparently, C++ has been used in support for the Haiku system.  That's
unfortunate, but at least it is only an issue for users concerned with
the Haiku system.  Most of us have no need to debug or read that code
since we never run it.

Using it in code that runs on the GNU system would make the problem
much more serious.  No, no, no!

However, you also wrote this:

  > The GUI parts requiring C++ can be neatly separated from the rest of the
  > C code through such glue.

That might affect the issue.  Can you explain this more?

You recommended we look at haiku_support.cc to see this technique.
But that file is 4000 lines long.  I can't look through so much
hoping to recognize the part you refer to.

Could you please describe concretely the technique you refer to, or
show precisely what code in that file illustrates it?


-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:13             ` Po Lu
  2022-08-22  4:32               ` tomas
@ 2022-08-23  3:44               ` Richard Stallman
  2022-08-23  3:58                 ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:44 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, spwhitton, rpluim, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > GTK was fine at first (I remember the scroll bar flickering being an
  > issue in the early days of the GTK+ build), but due to the bad decisions
  > of the GNOME developers, has been getting steadily worse since 3.0, and
  > even more so since 3.4.

Can we develop our port to work with GTK version 2?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  1:15             ` Po Lu
  2022-08-22  2:06               ` Stefan Monnier
  2022-08-23  3:44               ` Richard Stallman
@ 2022-08-23  3:44               ` Richard Stallman
  2022-08-23  4:03                 ` Po Lu
  2 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:44 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Speaking of Haiku, I see that many of the files have underscore in
their names.  Our normal convention in GNU is to use dashes in file
names, not underscores.  Could you please regularize these names?


-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 15:54       ` Robert Pluim
                           ` (2 preceding siblings ...)
  2022-08-22  1:11         ` Po Lu
@ 2022-08-23  3:44         ` Richard Stallman
  2022-08-23 12:41           ` Akib Azmain Turja
  3 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:44 UTC (permalink / raw)
  To: Robert Pluim; +Cc: luangruo, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > If Someone™ contributes a Qt port, that might
  > do as well (there was a port of XEmacs to Qt several decades ago, so
  > it definitely feasible).

Qt has a grave problem: its license.  It is released undeer GNU GPL
version 3 _only_.  That means that if someday we have a GPL version 4,
when we upgrade Emacs to GPL version 4-or-later, it will be
license-incompatible with GPL 3.

The Qt developers might change to GPL 3-or-4, but we can't assume they
will do so.

Use of C++ is another problem.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:30     ` Po Lu
                         ` (3 preceding siblings ...)
  2022-08-21 14:06       ` Dmitry Gutov
@ 2022-08-23  3:44       ` Richard Stallman
  2022-08-23  3:57         ` Po Lu
  4 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:44 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > In general, Emacs can only prevent GTK from handling certain events.  If
  > it handles an event that it must handle (in this case,
  > XI_HierarchyChange) incorrectly, and that causes GTK to later
  > dereference NULL, there is nothing that Emacs can do.  Just like what
  > happens when GTK calls _exit under our nose.

With so many messages on this topic, I can't see whether someone
already tried reporting these bugs to GTK developers and saying we find
them very painful.  Has that been tried?

Have we tried patching GTK to add workarounds -- for instance,
defining an "exit function" hook to call instead of `_exit'?
We could distribute such patches, and they might accept the patches.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:55                       ` Po Lu
  2022-08-22  8:32                         ` Tim Cross
  2022-08-22  9:04                         ` Dirk-Jan C. Binnema
@ 2022-08-23  3:46                         ` Richard Stallman
  2022-08-23  4:04                           ` Po Lu
  2 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:46 UTC (permalink / raw)
  To: Po Lu; +Cc: theophilusx, owinebar, larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The regular GTK build of Emacs will not run on GNOME Wayland either.

1. Is this something that we could fix?
2. Is this something that the GTK develoers could fix?

  > People who want to use Wayland should use the different PGTK build instead.

Would it make sense for specifying GTK, on a system which uses Wayland,
to select the PGTK build automatically instead of the GTK build?


-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22  7:05     ` Visuwesh
  2022-08-22  7:51       ` Po Lu
@ 2022-08-23  3:46       ` Richard Stallman
  2022-08-23 15:08         ` Visuwesh
  2022-08-25 16:01         ` Rudolf Adamkovič
  1 sibling, 2 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-23  3:46 UTC (permalink / raw)
  To: Visuwesh; +Cc: larsi, luangruo, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > BTW, I think another item worthy of note is that Lucid menus cannot
  > display multilingual text.  See the outline "** Make the Lucid menu
  > widget display multilingual text" in etc/TODO.

Perhaps the question we should be studying is, "Which is the easiest
path to making Emacs handle graphical display well?"

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:13                                 ` Po Lu
  2022-08-22 13:19                                   ` Lars Ingebrigtsen
  2022-08-22 17:33                                   ` Eli Zaretskii
@ 2022-08-23  3:51                                   ` Jean Louis
  2022-08-23  5:14                                     ` Po Lu
  2022-08-23  3:53                                   ` Jean Louis
  3 siblings, 1 reply; 267+ messages in thread
From: Jean Louis @ 2022-08-23  3:51 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Here is C++ toolkit that is fast and slick for consideration.

FLTK - Wikipedia
https://en.wikipedia.org/wiki/FLTK


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 13:13                                 ` Po Lu
                                                     ` (2 preceding siblings ...)
  2022-08-23  3:51                                   ` Jean Louis
@ 2022-08-23  3:53                                   ` Jean Louis
  3 siblings, 0 replies; 267+ messages in thread
From: Jean Louis @ 2022-08-23  3:53 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

For consideration:

List of widget toolkits - Wikipedia
https://en.wikipedia.org/wiki/List_of_widget_toolkits#Based_on_C_(including_bindings_to_other_languages)




-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44       ` Richard Stallman
@ 2022-08-23  3:57         ` Po Lu
  2022-08-24  3:52           ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  3:57 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> With so many messages on this topic, I can't see whether someone
> already tried reporting these bugs to GTK developers and saying we find
> them very painful.  Has that been tried?

Yes.  In most cases they do not want to accept the resulting changes.
In fact, they even want to delete support for X11 in its entirety.

> Have we tried patching GTK to add workarounds -- for instance,
> defining an "exit function" hook to call instead of `_exit'?
> We could distribute such patches, and they might accept the patches.

They insist that it is unsafe to call anything except for _exit, because
it is not safe to save files after the display server goes down.

It's nonsense, and it's coming from the same group of people who call
users "clowns" and "the internet peanut gallery".



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44               ` Richard Stallman
@ 2022-08-23  3:58                 ` Po Lu
  2022-08-23  4:51                   ` tomas
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  3:58 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, spwhitton, rpluim, eliz, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Can we develop our port to work with GTK version 2?

It already does, but GTK 2 is obsolete and will no longer be available
on most systems in the near future.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44               ` Richard Stallman
@ 2022-08-23  4:02                 ` Po Lu
  2022-08-25  3:32                   ` Richard Stallman
  2022-08-23 11:29                 ` Eli Zaretskii
  2022-08-23 12:15                 ` Lynn Winebarger
  2 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  4:02 UTC (permalink / raw)
  To: Richard Stallman; +Cc: ofv, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> That might affect the issue.  Can you explain this more?
>
> You recommended we look at haiku_support.cc to see this technique.
> But that file is 4000 lines long.  I can't look through so much
> hoping to recognize the part you refer to.
>
> Could you please describe concretely the technique you refer to, or
> show precisely what code in that file illustrates it?

Basically, the file provides a C wrapper around C++ functions.  All of
those C wrapper functions are declared in haiku_support.c, and have C
linkage, meaning that they can be called from C code.

Instances of C++ objects are passed to C as pointers to void, and C code
interacts with the C++ objects through only the wrapper functions.  It
doesn't include lisp.h, dispextern.h, keyboard.h, or any other header
that is part of the Emacs C code, and only calls functions declared
there through function pointers explictly provided by the C code in
haikuterm.c (and other pieces of code in C.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44               ` Richard Stallman
@ 2022-08-23  4:03                 ` Po Lu
  2022-08-23 11:26                   ` Stefan Kangas
  2022-08-24  3:52                   ` Richard Stallman
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  4:03 UTC (permalink / raw)
  To: Richard Stallman; +Cc: ofv, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Speaking of Haiku, I see that many of the files have underscore in
> their names.  Our normal convention in GNU is to use dashes in file
> names, not underscores.  Could you please regularize these names?

Sure.  I wasn't aware that convention also applies to C++ files.  I
think I can also come up with shorter names for those files as well.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:46                         ` Richard Stallman
@ 2022-08-23  4:04                           ` Po Lu
  2022-08-24  3:52                             ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  4:04 UTC (permalink / raw)
  To: Richard Stallman; +Cc: theophilusx, owinebar, larsi, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> 1. Is this something that we could fix?

No, not really.

> 2. Is this something that the GTK develoers could fix?

No.

> Would it make sense for specifying GTK, on a system which uses Wayland,
> to select the PGTK build automatically instead of the GTK build?

You mean, at build-time?  Yes, that would make sense.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:58                 ` Po Lu
@ 2022-08-23  4:51                   ` tomas
  0 siblings, 0 replies; 267+ messages in thread
From: tomas @ 2022-08-23  4:51 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

On Tue, Aug 23, 2022 at 11:58:01AM +0800, Po Lu wrote:
> Richard Stallman <rms@gnu.org> writes:
> 
> > Can we develop our port to work with GTK version 2?
> 
> It already does, but GTK 2 is obsolete and will no longer be available
> on most systems in the near future.

Yes, currently I build "my" Emacs with GTK2. It works nicely. I'll return
to Lucid when GTK2 falls off the distro. Not without complaining loudly,
mind you (at the distro, not at Emacs :-)

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:51                                   ` Jean Louis
@ 2022-08-23  5:14                                     ` Po Lu
  2022-08-23 11:51                                       ` Eli Zaretskii
  2022-08-25  3:32                                       ` Richard Stallman
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  5:14 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Jean Louis <bugs@gnu.support> writes:

> Here is C++ toolkit that is fast and slick for consideration.
>
> FLTK - Wikipedia
> https://en.wikipedia.org/wiki/FLTK

Just because we can use C++ in optional GUI code doesn't mean it
shouldn't be avoided if it can.

But after some investigation, I've come to the conclusion that no
toolkit will be able to replace the hand-crafted Emacs X11 support,
especially in very tricky areas such as drag-and-drop and selections.

For example, Qt doesn't respect kDNDStatusSendHereFlag in XDND
drag-and-drop messages, fails to wait for XdndStatus before sending
XdndPosition/XdndDrop, and provides no method for programs to set it on
their drop targets.  It also doesn't support the X Direct Save protocol,
which can't be implemented on top, since the special action required for
it is abstracted away and not available to programs using Emacs, or the
the Motif and OffiX drag-and-drop protocols.  All of that is tolerated
by other programs but will lead to problems over slow network
connections.

And it probably won't be possible to step through a selection converter
with Edebug, or to install our own selection converter when Qt
misencodes COMPOUND_TEXT.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-22 12:10                           ` Po Lu
                                               ` (2 preceding siblings ...)
  2022-08-22 15:10                             ` Lynn Winebarger
@ 2022-08-23  6:34                             ` Dirk-Jan C. Binnema
  2022-08-23  8:58                               ` Po Lu
  3 siblings, 1 reply; 267+ messages in thread
From: Dirk-Jan C. Binnema @ 2022-08-23  6:34 UTC (permalink / raw)
  To: emacs-devel

Thanks for the detailed response.

On Monday Aug 22 2022, Po Lu wrote:

> "Dirk-Jan C. Binnema" <djcb@djcbsoftware.nl> writes:
>
>> Does this apply to pgtk as well?
>
> PGTK has other problems on the input and selection side of things, and
> shouldn't be used on X at all.  Try to select a large chunk of text in
> the PGTK build running under X (xdisp.c immediately comes to mind), and
> insert it into another program with Button2.  It will immediately crash
> with an X Windows error.

So it does not apply to pgtk on Wayland? What about on X?

I don't use X, but I can't remember problems copy-pasting between other
Gtk program (say, GEdit and gnome-builder). What is emacs doing
differently?

>> TBH, this whole thread sounds needlessly alarmist.
>
> I'd have said the same until I actually started working on the GTK
> build, which was in an even worse state several months ago.

I've seen some old grumblings and apparently some new problem with
Xinput2-related code. But I've been happily using gtk-based emacs since
20 years or so? So, I find it strange if it suddenly changed to
"abysmal" and selected for immediate demotion to be non-default.

> It seems to me that the same crowd asking for various "modern" GTK
> features also want features like pixel-scroll-precision-mode and monitor
> refresh synchronization, which cause crashes or don't work on GTK.  We
> are then blamed for the feature not working there as a result of bugs or
> misdesigns in GTK.

I'm not seeing any of that. What about Gimp & Inkscape -- don't they
support Xinput2?

> In any case, there is no excuse for GTK to have buggy XInput 2 support,
> considering that it used to be something that we did not support,
> requiring various workarounds to explictly disable in GTK, and is
> mentioned in the first few paragraphs of the GTK+ 2 to 3 migration
> guidelines.

There are always excuses for bugs of course :-) In this case it seems
that emacs exercises some old code in new ways, while the maintainers
are concentrating on Wayland. 

>> I'd actually hope we'd be able to do it _more_ with GTK, such as having
>> GTK tabs, using the header bar, etc., where emacs currently looks rather
>> antiquated.
>
> Then we'd be dealing with GTK randomly resizing our frames to fit the
> tab bar in addition to the menu bar.  Or the authors of the GNOME Human
> Interface Guidelines declaring tab bars against the law at some point in
> the future.  No thanks.

E.g. tab-usage like Gedit or Gnome Builder do it, would be a great
visual improvement IMHO. Or even Firefox's (which implemented their own
tabs I think?).

Anyway, thank you for your work... it is appreciated.

Kind regards,
Dirk.

-- 
Dirk-Jan C. Binnema                  Helsinki, Finland
e:djcb@djcbsoftware.nl           w:www.djcbsoftware.nl
gpg: 6987 9CED 1745 9375 0F14 DA98 11DD FEA9 DCC4 A036



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
@ 2022-08-23  7:00 Payas Relekar
  2022-08-23  7:17 ` Po Lu
  2022-08-24  3:52 ` Richard Stallman
  0 siblings, 2 replies; 267+ messages in thread
From: Payas Relekar @ 2022-08-23  7:00 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> But after some investigation, I've come to the conclusion that no
> toolkit will be able to replace the hand-crafted Emacs X11 support,
> especially in very tricky areas such as drag-and-drop and selections.

How much of an issue will this be on Wayland systems? Considering GTK4
will probably drop X11 support, and Fedora, Debian and Ubuntu (likely
covering vast majority of Linux desktop) are Wayland default, how much
of a critical dependence do we have on custom X11 support, and how much
can we afford to rely on Qt to not have these issues on Wayland?

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:00 Abysmal state of GTK build Payas Relekar
@ 2022-08-23  7:17 ` Po Lu
  2022-08-23  7:21   ` Payas Relekar
                     ` (2 more replies)
  2022-08-24  3:52 ` Richard Stallman
  1 sibling, 3 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  7:17 UTC (permalink / raw)
  To: Payas Relekar; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Payas Relekar <relekarpayas@gmail.com> writes:

> How much of an issue will this be on Wayland systems? Considering GTK4
                                                                    ^^^^
That will hopefully be GTK 5.

> will probably drop X11 support, and Fedora, Debian and Ubuntu (likely
> covering vast majority of Linux desktop) are Wayland default, how much
> of a critical dependence do we have on custom X11 support, and how much
> can we afford to rely on Qt to not have these issues on Wayland?

It will not affect Wayland at all, since the Wayland drag-and-drop API
is too limited to allow Emacs to implement drag-and-drop properly there.

Most importantly, there is no way to cancel drag-and-drop after it
begins (think C-g), or to receive a notification when the pointer
reenters the frame where it originated after leaving.

X will probably remain the primary window server for the next decade or
so.  Anyone who doesn't want to use one of the several Wayland-ready
desktop environments on supported hardware will have to use X, even if
Wayland is the default on most distros.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:17 ` Po Lu
@ 2022-08-23  7:21   ` Payas Relekar
  2022-08-23  8:53     ` Po Lu
  2022-08-23 12:05   ` Eli Zaretskii
  2022-08-24  3:52   ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: Payas Relekar @ 2022-08-23  7:21 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel


Po Lu <luangruo@yahoo.com> writes:

> Payas Relekar <relekarpayas@gmail.com> writes:
>
>> How much of an issue will this be on Wayland systems? Considering GTK4
>                                                                     ^^^^
> That will hopefully be GTK 5.

Indeed, I checked and you are correct. That puts X11 demise on 10+ year
timeline.

>> will probably drop X11 support, and Fedora, Debian and Ubuntu (likely
>> covering vast majority of Linux desktop) are Wayland default, how much
>> of a critical dependence do we have on custom X11 support, and how much
>> can we afford to rely on Qt to not have these issues on Wayland?
>
> It will not affect Wayland at all, since the Wayland drag-and-drop API
> is too limited to allow Emacs to implement drag-and-drop properly there.
>
> Most importantly, there is no way to cancel drag-and-drop after it
> begins (think C-g), or to receive a notification when the pointer
> reenters the frame where it originated after leaving.

That is unfortunate. Considering HiDPI + mixed DPI support is
non-existent in X11, I was really hoping Wayland feature bulimia to be
solved/on-way-to-be-solved problem by now.

> X will probably remain the primary window server for the next decade or
> so.  Anyone who doesn't want to use one of the several Wayland-ready
> desktop environments on supported hardware will have to use X, even if
> Wayland is the default on most distros.

That is fair. From what I understand Wayland support on non-Linux
systems is still imperfect at best so X11 support is here to stay. But,
can we have it as non-default and get away with it for the most part?
Considering drag-and-drop situation you mentioned above I am not
expecting rainbows, but is it something we can try for?

Apologies for simple (and possibly stupid) questions, but GTK situation has more thorns than
I previously thought. Considering WSL2 will have more people using Emacs
via Wayland/Pgtk making defaults more important.

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 13:50           ` Eli Zaretskii
  2022-08-21 14:01             ` Po Lu
@ 2022-08-23  7:38             ` Gerd Möllmann
  2022-08-23  8:54               ` Po Lu
  2022-08-23  9:39               ` Lars Ingebrigtsen
  1 sibling, 2 replies; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-23  7:38 UTC (permalink / raw)
  To: eliz; +Cc: emacs-devel, larsi, luangruo

>> (Not that that's necessarily a deal breaker.)
> Exactly.  GCC already needs a C++ compiler to build, and so does GDB.
> I see no problem requiring that for Emacs

I think that would be a Good Thing, independent of Qt.

At least from my experience, using C++ can make it a lot easier to
structure large code bases, and thus make them more easily comprehendable.
Independently of what one thinks about the language itself :-).

But maybe I'm biased because I've been using C++ in commercial settings
a lot, in large projects, and for a very long time.  I'd be interested to
hear what other contributors think about this.






^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:21   ` Payas Relekar
@ 2022-08-23  8:53     ` Po Lu
  2022-08-23 13:08       ` Stefan Monnier
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  8:53 UTC (permalink / raw)
  To: Payas Relekar; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Payas Relekar <relekarpayas@gmail.com> writes:

> Indeed, I checked and you are correct. That puts X11 demise on 10+ year
> timeline.

What makes you think the GTK developers will be able to dictate what
people will use?

Remember that if the world revolved around their decisions, we would all
be clowns occupying a peanut gallery.

> That is unfortunate. Considering HiDPI + mixed DPI support is
> non-existent in X11, I was really hoping Wayland feature bulimia to be
> solved/on-way-to-be-solved problem by now.

Why do you think that's so?  On X, the X server says nothing about the
scale of a window, screen, or the part of a screen taken by a monitor.
A program can simply rescale itself as it moves across different
outputs.

I think the reason people think HiDPI support doesn't work on X is that
it doesn't work in Xwayland, which is strictly a problem with that, and
is not seen on bare-metal X.

> That is fair. From what I understand Wayland support on non-Linux
> systems is still imperfect at best so X11 support is here to
> stay. But, can we have it as non-default and get away with it for the
> most part?

No.  AFAIK it was recently discovered that less than 10% of Firefox
users on non-macOS Unix systems were using Wayland or Xwayland.

> Apologies for simple (and possibly stupid) questions, but GTK
> situation has more thorns than I previously thought. Considering WSL2
> will have more people using Emacs via Wayland/Pgtk making defaults
> more important.

I don't think supporting the PGTK build on MS Windows is a good idea at
all.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:38             ` Gerd Möllmann
@ 2022-08-23  8:54               ` Po Lu
  2022-08-23  9:27                 ` Gerd Möllmann
  2022-08-23  9:39               ` Lars Ingebrigtsen
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23  8:54 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: eliz, emacs-devel, larsi

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> At least from my experience, using C++ can make it a lot easier to
> structure large code bases, and thus make them more easily comprehendable.
> Independently of what one thinks about the language itself :-).
>
> But maybe I'm biased because I've been using C++ in commercial settings
> a lot, in large projects, and for a very long time.  I'd be interested to
> hear what other contributors think about this.

I think the exact opposite, mainly because I've been using C (as opposed
to C++) in similar settings, also with large projects.

Haven't we already discussed this many times in the past?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  6:34                             ` Dirk-Jan C. Binnema
@ 2022-08-23  8:58                               ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23  8:58 UTC (permalink / raw)
  To: Dirk-Jan C. Binnema; +Cc: emacs-devel

"Dirk-Jan C. Binnema" <djcb@djcbsoftware.nl> writes:

> So it does not apply to pgtk on Wayland? What about on X?

PGTK is not supported on X and does not run correctly there.

> I don't use X, but I can't remember problems copy-pasting between other
> Gtk program (say, GEdit and gnome-builder). What is emacs doing
> differently?

Emacs has higher requirements, since we perform selection encoding
ourselves with decades-old battle tested code in select.el.

> I've seen some old grumblings and apparently some new problem with
> Xinput2-related code. But I've been happily using gtk-based emacs since
> 20 years or so? So, I find it strange if it suddenly changed to
> "abysmal" and selected for immediate demotion to be non-default.

The changes happened gradually after GTK 3.4.  I guess people don't
notice gradual changes.

> I'm not seeing any of that. What about Gimp & Inkscape -- don't they
> support Xinput2?

The GIMP still uses GTK+ 2.x due to difficulties porting to GTK 3.
It does not use XInput 2.

Inkscape uses GTK 3 and suffers from the same crashes that Emacs does if
the trackpad is disabled upon typing.  Its usage patterns differ from
Emacs's, so the bug occurs there less.  After all, people do not type
much in a vector graphics editor.

> There are always excuses for bugs of course :-) In this case it seems
> that emacs exercises some old code in new ways, while the maintainers
> are concentrating on Wayland. 

The point is, we support X11, and if GTK cannot properly support X11,
the GTK build should not be the default.  The priorities of the GTK
maintainers are not an excuse.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  8:54               ` Po Lu
@ 2022-08-23  9:27                 ` Gerd Möllmann
  0 siblings, 0 replies; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-23  9:27 UTC (permalink / raw)
  To: luangruo; +Cc: eliz, emacs-devel, gerd.moellmann, larsi

> Haven't we already discussed this many times in the past?

I couldn't find it on emacs-devel, searching for "C++", and going
back to 2018.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:38             ` Gerd Möllmann
  2022-08-23  8:54               ` Po Lu
@ 2022-08-23  9:39               ` Lars Ingebrigtsen
  2022-08-23 14:07                 ` Gerd Möllmann
  1 sibling, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-23  9:39 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: eliz, emacs-devel, luangruo

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> But maybe I'm biased because I've been using C++ in commercial settings
> a lot, in large projects, and for a very long time.  I'd be interested to
> hear what other contributors think about this.

I don't thing reading/writing C++ would be a problem for most Emacs
contributors.  My main reservation is how slow compiling C++ code seems
to be -- whenever I'm building something written in C++ (especially if
it uses Qt, apparently) I schedule a couple of laps around the block to
have something to do while waiting.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  0:45                                   ` Po Lu
@ 2022-08-23 10:30                                     ` Dmitry Gutov
  0 siblings, 0 replies; 267+ messages in thread
From: Dmitry Gutov @ 2022-08-23 10:30 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, djcb, emacs-devel

On 23.08.2022 03:45, Po Lu wrote:
> Dmitry Gutov<dgutov@yandex.ru>  writes:
> 
>> Don't forget HiDPI support.
> Lars says it works well enough on the Lucid build, at least as well as
> the rest of Emacs does at present.  Borders and box faces don't scale
> but there is nothing that can be done about that at present.

Huh, indeed. I guess my impression of it was old.

But the scrollbars look odd, and the icons and the grey background make 
the program look dated. Not a problem for me personally: I disable both.

>> We do want new users to try Emacs and decide to stick with it, don't we?
> Right, and one way to do that is to provide them with a build where the
> frame does not randomly resize itself upon entering a Dired buffer, or
> where the `scroll-bar-width' frame parameter actually behaves as
> documented instead of just flickering, or where an X disconnect does not
> crash Emacs.

Well, yes, but also better looks.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:05                                         ` Po Lu
@ 2022-08-23 11:22                                           ` Eli Zaretskii
  2022-08-24  3:52                                           ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 11:22 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  gregory@heytings.org,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 11:05:30 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Then I think we should aim for the defaults described above.
> >
> > What about builds with GTK 2 -- do they have fewer problems?  Can they
> > support XInput2 in a reasonable way?
> 
> They support XInput 2 (and most of the other features I mentioned as
> problematic on 3.x) correctly, but GTK+ 2.x is obsolete and probably
> will be removed from most GNU/Linux distributions soon.

That's understood, but until it is removed (which could take a few
more years, for all I know, especially in ELS distros), perhaps we
should consider preferring it to the GTK 3.x build?  If both versions
are available, that is.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  4:03                 ` Po Lu
@ 2022-08-23 11:26                   ` Stefan Kangas
  2022-08-23 12:30                     ` Po Lu
  2022-08-24  3:52                   ` Richard Stallman
  1 sibling, 1 reply; 267+ messages in thread
From: Stefan Kangas @ 2022-08-23 11:26 UTC (permalink / raw)
  To: Po Lu; +Cc: Richard Stallman, Óscar Fuentes, Emacs developers

Po Lu <luangruo@yahoo.com> writes:

> Sure.  I wasn't aware that convention also applies to C++ files.  I
> think I can also come up with shorter names for those files as well

Do we really need those file names to be shorter?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44               ` Richard Stallman
  2022-08-23  4:02                 ` Po Lu
@ 2022-08-23 11:29                 ` Eli Zaretskii
  2022-08-23 12:15                 ` Lynn Winebarger
  2 siblings, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 11:29 UTC (permalink / raw)
  To: rms; +Cc: luangruo, ofv, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: ofv@wanadoo.es, emacs-devel@gnu.org
> Date: Mon, 22 Aug 2022 23:44:24 -0400
> 
>   > What's wrong with C++ in GUI code?
> 
> Requiring a C++ compiler to build Emacs is a big practical
> disadvantage.  Including C++ code in Emacs will be an obstacle for
> people such as me to debug or write code.  That is independent of what
> jobs the C++ code is used to do.

I think you have in mind use of all the advanced features of C++,
which makes debugging harder.  But that is not the intent, and is not
really needed for this purpose.

> Using it in code that runs on the GNU system would make the problem
> much more serious.  No, no, no!

Like I said, we already have that in two flagship projects: GCC and
GDB.  And they actually do use almost the full spectrum of C++
features, all over the place.

By contrast, if we ever go this way (and due to the license issue it
doesn't currently look like we will), the C++ code will be limited to
the back-end parts of the display code, basically the
equivalents/siblings of xterm.c and xfns.c.  That is an entirely
different scale.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  5:14                                     ` Po Lu
@ 2022-08-23 11:51                                       ` Eli Zaretskii
  2022-08-23 12:34                                         ` Po Lu
  2022-08-25  3:32                                       ` Richard Stallman
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 11:51 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Gregory Heytings <gregory@heytings.org>,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 13:14:11 +0800
> 
> But after some investigation, I've come to the conclusion that no
> toolkit will be able to replace the hand-crafted Emacs X11 support,
> especially in very tricky areas such as drag-and-drop and selections.

I question the validity of such a radical conclusion.  I think it is
asking for too much, something that is not really necessary in this
case.

> For example, Qt doesn't respect kDNDStatusSendHereFlag in XDND
> drag-and-drop messages, fails to wait for XdndStatus before sending
> XdndPosition/XdndDrop, and provides no method for programs to set it on
> their drop targets.  It also doesn't support the X Direct Save protocol,
> which can't be implemented on top, since the special action required for
> it is abstracted away and not available to programs using Emacs, or the
> the Motif and OffiX drag-and-drop protocols.  All of that is tolerated
> by other programs but will lead to problems over slow network
> connections.

I think this is still better than the situation with GTK.  So yes, we
need to give up something, but if someone wants a nice toolkit
appearance and widgets that look reasonably modern (something that we
will never have in the non-toolkit build), they might just agree to
the tradeoff.  After all, no one will convince me that DND is the most
important operation in Emacs, not even that it is important.  It's a
nicety, that's all.

> And it probably won't be possible to step through a selection converter
> with Edebug, or to install our own selection converter when Qt
> misencodes COMPOUND_TEXT.

Doesn't Qt provide support for non-text selections OOTB?  If it does,
why would we need to step through the converted?

Again, we shouldn't require a perfect toolkit, we should settle for a
reasonably good one.  Because none of the alternatives is such a
perfect choice.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:17 ` Po Lu
  2022-08-23  7:21   ` Payas Relekar
@ 2022-08-23 12:05   ` Eli Zaretskii
  2022-08-23 12:29     ` Po Lu
  2022-08-24  3:52   ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 12:05 UTC (permalink / raw)
  To: Po Lu; +Cc: relekarpayas, larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Lars Ingebrigtsen <larsi@gnus.org>,  Gregory Heytings
>  <gregory@heytings.org>,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 15:17:42 +0800
> 
> It will not affect Wayland at all, since the Wayland drag-and-drop API
> is too limited to allow Emacs to implement drag-and-drop properly there.
> 
> Most importantly, there is no way to cancel drag-and-drop after it
> begins (think C-g), or to receive a notification when the pointer
> reenters the frame where it originated after leaving.

Why is this such a grave problem?  E.g., to cancel drag-and-drop, the
user can drop it onto some place where dropping is a no-op, like some
window that doesn't accept drops or sometimes at the source from which
the stuff was dragged.  I never had any problems with this.

Maybe we are again asking too much from the GUI environment, and too
easily reject environments that are not 110% perfect?  If so, it makes
little sense to do that with Emacs, whose GUI aspects are secondary.

> X will probably remain the primary window server for the next decade or
> so.

It is IMNSHO bad policy for a serious project that intends to remain
alive for many years to put all of its eggs in a single basket.  We
should instead actively seek and try using alternative GUI
environments, and we shouldn't reject them just because they are not
perfect.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44               ` Richard Stallman
  2022-08-23  4:02                 ` Po Lu
  2022-08-23 11:29                 ` Eli Zaretskii
@ 2022-08-23 12:15                 ` Lynn Winebarger
  2022-08-24  3:52                   ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: Lynn Winebarger @ 2022-08-23 12:15 UTC (permalink / raw)
  To: rms; +Cc: Po Lu, ofv, emacs-devel

On Mon, Aug 22, 2022 at 11:47 PM Richard Stallman <rms@gnu.org> wrote:
> Requiring a C++ compiler to build Emacs is a big practical
> disadvantage.  Including C++ code in Emacs will be an obstacle for
> people such as me to debug or write code.  That is independent of what
> jobs the C++ code is used to do.

Could you elaborate on why this is an issue when C++ infrastructure
(including GNU C++ infrastructure) is so widely available?  There is a
lot of infrastructure code written in C++, evidently including GUI
frameworks, so it's not like this decision is cost free.

TIA,
Lynn



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:05   ` Eli Zaretskii
@ 2022-08-23 12:29     ` Po Lu
  2022-08-23 12:41       ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23 12:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: relekarpayas, larsi, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why is this such a grave problem?  E.g., to cancel drag-and-drop, the
> user can drop it onto some place where dropping is a no-op, like some
> window that doesn't accept drops or sometimes at the source from which
> the stuff was dragged.  I never had any problems with this.

[...]

> Maybe we are again asking too much from the GUI environment, and too
> easily reject environments that are not 110% perfect?  If so, it makes
> little sense to do that with Emacs, whose GUI aspects are secondary.

mouse-drag-and-drop-region cancels the drag and drop operation once the
mouse pointer moves back into a frame that was created by the current
Emacs session, so that more detailed mouse tracking can be used.

Without that, mouse-drag-and-drop-region is noticably degraded.

> It is IMNSHO bad policy for a serious project that intends to remain
> alive for many years to put all of its eggs in a single basket.  We
> should instead actively seek and try using alternative GUI
> environments, and we shouldn't reject them just because they are not
> perfect.

We aren't rejecting alternative GUI environments (in fact we are almost
certainly the only program supporting as many as we do), just not making
them the default.  Not when over 90% of Firefox users (which covers the
GNU/Linux demographic quite well) are still using X Windows.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 11:26                   ` Stefan Kangas
@ 2022-08-23 12:30                     ` Po Lu
  2022-08-23 12:50                       ` Stefan Kangas
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23 12:30 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Richard Stallman, Óscar Fuentes, Emacs developers

Stefan Kangas <stefan@marxist.se> writes:

> Do we really need those file names to be shorter?

Yes, at present the over-long file names are pretty ugly.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 11:51                                       ` Eli Zaretskii
@ 2022-08-23 12:34                                         ` Po Lu
  2022-08-23 12:45                                           ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23 12:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Po Lu <luangruo@yahoo.com>
>> Cc: Gregory Heytings <gregory@heytings.org>,  emacs-devel@gnu.org
>> Date: Tue, 23 Aug 2022 13:14:11 +0800
>> 
>> But after some investigation, I've come to the conclusion that no
>> toolkit will be able to replace the hand-crafted Emacs X11 support,
>> especially in very tricky areas such as drag-and-drop and selections.
>
> I question the validity of such a radical conclusion.  I think it is
> asking for too much, something that is not really necessary in this
> case.
>
>> For example, Qt doesn't respect kDNDStatusSendHereFlag in XDND
>> drag-and-drop messages, fails to wait for XdndStatus before sending
>> XdndPosition/XdndDrop, and provides no method for programs to set it on
>> their drop targets.  It also doesn't support the X Direct Save protocol,
>> which can't be implemented on top, since the special action required for
>> it is abstracted away and not available to programs using Emacs, or the
>> the Motif and OffiX drag-and-drop protocols.  All of that is tolerated
>> by other programs but will lead to problems over slow network
>> connections.
>
> I think this is still better than the situation with GTK.  So yes, we
> need to give up something, but if someone wants a nice toolkit
> appearance and widgets that look reasonably modern (something that we
> will never have in the non-toolkit build), they might just agree to
> the tradeoff.  After all, no one will convince me that DND is the most
> important operation in Emacs, not even that it is important.  It's a
> nicety, that's all.

Well, the point I was trying to make was that we need a toolkit where we
can use the same techniques that we already do to mix Xlib code with
toolkit code, letting the toolkit draw widgets, while allowing Emacs to
handle complicated window system behavior such as drag-and-drop.

> Doesn't Qt provide support for non-text selections OOTB?  If it does,
> why would we need to step through the converted?

COMPOUND_TEXT is an X11 specific text format that Qt doesn't support
correctly out of the box.

> Again, we shouldn't require a perfect toolkit, we should settle for a
> reasonably good one.  Because none of the alternatives is such a
> perfect choice.

Indeed, but that isn't the point I was trying to make.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:44         ` Richard Stallman
@ 2022-08-23 12:41           ` Akib Azmain Turja
  2022-08-23 13:00             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Akib Azmain Turja @ 2022-08-23 12:41 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Robert Pluim, luangruo, eliz, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1354 bytes --]

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > If Someone™ contributes a Qt port, that might
>   > do as well (there was a port of XEmacs to Qt several decades ago, so
>   > it definitely feasible).
>
> Qt has a grave problem: its license.  It is released undeer GNU GPL
> version 3 _only_.  That means that if someday we have a GPL version 4,
> when we upgrade Emacs to GPL version 4-or-later, it will be
> license-incompatible with GPL 3.
>
> The Qt developers might change to GPL 3-or-4, but we can't assume they
> will do so.

We can keep the Qt port in isolation from the rest of Emacs, and then,
if we ever upgrade to GPL version 4-or-later, we can kick out the port
until Qt also upgrades their license.

>
> Use of C++ is another problem.

Yeah, writing C++ may seem to be pleasant, but it becomes horrible when
you get an compile error with a thousand lines backtrace of types and
templates.

-- 
Akib Azmain Turja

Find me on Mastodon at @akib@hostux.social.

This message is signed by me with my GnuPG key.  Its fingerprint is:

    7001 8CE5 819F 17A3 BBA6  66AF E74F 0EFA 922A E7F5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:29     ` Po Lu
@ 2022-08-23 12:41       ` Eli Zaretskii
  2022-08-23 12:59         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 12:41 UTC (permalink / raw)
  To: Po Lu; +Cc: relekarpayas, larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: relekarpayas@gmail.com,  larsi@gnus.org,  gregory@heytings.org,
>   emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 20:29:30 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Why is this such a grave problem?  E.g., to cancel drag-and-drop, the
> > user can drop it onto some place where dropping is a no-op, like some
> > window that doesn't accept drops or sometimes at the source from which
> > the stuff was dragged.  I never had any problems with this.
> 
> [...]
> 
> > Maybe we are again asking too much from the GUI environment, and too
> > easily reject environments that are not 110% perfect?  If so, it makes
> > little sense to do that with Emacs, whose GUI aspects are secondary.
> 
> mouse-drag-and-drop-region cancels the drag and drop operation once the
> mouse pointer moves back into a frame that was created by the current
> Emacs session, so that more detailed mouse tracking can be used.
> 
> Without that, mouse-drag-and-drop-region is noticably degraded.

I disagree.  As I said, the user can drop it in some place where
dropping is a no-op.

And let's not forget that drag-and-drop operation mostly ends in a
drop, not in a cancel.  Canceling should be much rarer than dropping.

> > It is IMNSHO bad policy for a serious project that intends to remain
> > alive for many years to put all of its eggs in a single basket.  We
> > should instead actively seek and try using alternative GUI
> > environments, and we shouldn't reject them just because they are not
> > perfect.
> 
> We aren't rejecting alternative GUI environments (in fact we are almost
> certainly the only program supporting as many as we do), just not making
> them the default.

I'm not talking about the ones we already support, I'm talking about
the future policies of trying to use alternatives to X.  It was a
response to what you said:

> X will probably remain the primary window server for the next decade or
> so.

I'm saying that we shouldn't stop looking for reasonably good GUI
environments because we are complacent with X.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:34                                         ` Po Lu
@ 2022-08-23 12:45                                           ` Eli Zaretskii
  0 siblings, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 12:45 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  gregory@heytings.org,  emacs-devel@gnu.org
> Date: Tue, 23 Aug 2022 20:34:39 +0800
> 
> > I think this is still better than the situation with GTK.  So yes, we
> > need to give up something, but if someone wants a nice toolkit
> > appearance and widgets that look reasonably modern (something that we
> > will never have in the non-toolkit build), they might just agree to
> > the tradeoff.  After all, no one will convince me that DND is the most
> > important operation in Emacs, not even that it is important.  It's a
> > nicety, that's all.
> 
> Well, the point I was trying to make was that we need a toolkit where we
> can use the same techniques that we already do to mix Xlib code with
> toolkit code, letting the toolkit draw widgets, while allowing Emacs to
> handle complicated window system behavior such as drag-and-drop.

And my point is that from where I stand, the above is not an absolute,
drop-dead requirement.  Given the magnitude of the problems and the
importance of reasonably good solutions, we should be pragmatic in
this, not dogmatic.

> > Doesn't Qt provide support for non-text selections OOTB?  If it does,
> > why would we need to step through the converted?
> 
> COMPOUND_TEXT is an X11 specific text format that Qt doesn't support
> correctly out of the box.

If that's your problem, I have no problem: COMPOUND_TEXT is a niche
capability that I'm surprised people still need these days.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:30                     ` Po Lu
@ 2022-08-23 12:50                       ` Stefan Kangas
  2022-08-23 13:01                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Stefan Kangas @ 2022-08-23 12:50 UTC (permalink / raw)
  To: Po Lu; +Cc: Richard Stallman, Óscar Fuentes, Emacs developers

Po Lu <luangruo@yahoo.com> writes:

>> Do we really need those file names to be shorter?
>
> Yes, at present the over-long file names are pretty ugly.

FWIW, I appreciate that you can tell what they are, even at a glance.

Compare "haiku-font-support.cc" to something like "cm.c" or "unexcw.c".



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:41       ` Eli Zaretskii
@ 2022-08-23 12:59         ` Po Lu
  2022-08-23 15:13           ` Óscar Fuentes
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-23 12:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: relekarpayas, larsi, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> I disagree.  As I said, the user can drop it in some place where
> dropping is a no-op.
>
> And let's not forget that drag-and-drop operation mostly ends in a
> drop, not in a cancel.  Canceling should be much rarer than dropping.

Sure, if you think that's okay I will continue working on the PGTK
drag-and-drop support.

>> X will probably remain the primary window server for the next decade or
>> so.
>
> I'm saying that we shouldn't stop looking for reasonably good GUI
> environments because we are complacent with X.

I guess you misunderstood what I said.  I just said alternatives to X
shouldn't be made the default, since almost everyone will be using X for
the forseeable future.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:41           ` Akib Azmain Turja
@ 2022-08-23 13:00             ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23 13:00 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: Richard Stallman, Robert Pluim, eliz, emacs-devel

Akib Azmain Turja <akib@disroot.org> writes:

> Yeah, writing C++ may seem to be pleasant, but it becomes horrible when
> you get an compile error with a thousand lines backtrace of types and
> templates.

I never saw that writing the Haiku port.  Besides, such errors are
history in modern versions of GCC.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:50                       ` Stefan Kangas
@ 2022-08-23 13:01                         ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-23 13:01 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Richard Stallman, Óscar Fuentes, Emacs developers

Stefan Kangas <stefankangas@gmail.com> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>>> Do we really need those file names to be shorter?
>>
>> Yes, at present the over-long file names are pretty ugly.
>
> FWIW, I appreciate that you can tell what they are, even at a glance.
>
> Compare "haiku-font-support.cc" to something like "cm.c" or "unexcw.c".

Sounds reasonable.  I won't shorten the file names then, thanks.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  8:53     ` Po Lu
@ 2022-08-23 13:08       ` Stefan Monnier
  2022-08-24  1:16         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Stefan Monnier @ 2022-08-23 13:08 UTC (permalink / raw)
  To: Po Lu; +Cc: Payas Relekar, Lars Ingebrigtsen, Gregory Heytings, emacs-devel

> A program can simply rescale itself as it moves across different
> outputs.

There's always the issue of windows (frames) spanning several monitors
with different DPI.


        Stefan





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
@ 2022-08-23 13:53 Payas Relekar
  2022-08-24  1:15 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Payas Relekar @ 2022-08-23 13:53 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> What makes you think the GTK developers will be able to dictate what
> people will use?

While I hope for otherwise, and this is not the place to discuss this,
general trend in Linux land over past decade or so is that once Gnome
blesses something as default, it tends to be blessed by others as well.

> Remember that if the world revolved around their decisions, we would all
> be clowns occupying a peanut gallery.

:) I tend to agree here, but this discussion is veering off-topic.

>> That is unfortunate. Considering HiDPI + mixed DPI support is
>> non-existent in X11, I was really hoping Wayland feature bulimia to be
>> solved/on-way-to-be-solved problem by now.
>
> Why do you think that's so?  On X, the X server says nothing about the
> scale of a window, screen, or the part of a screen taken by a monitor.
> A program can simply rescale itself as it moves across different
> outputs.
>
> I think the reason people think HiDPI support doesn't work on X is that
> it doesn't work in Xwayland, which is strictly a problem with that, and
> is not seen on bare-metal X.

I only have personal experience, so apologies in advance if I miss
something obvious. I use Plasma desktop (used Gnome for years before)
on my laptop as no-frills feature rich Desktop Environment. I do not
like messing around with Xresources and like things to Just Work™.

My laptop display is plain old 15" 1080p, but usually connect with
external monitor (27" 4K). On X11 there is no option for external
display except 1080p so all the pixels go to waste. Only on Wayland can
I select 4K and different DPI settings (125% on laptop display + 175% on
external). From what I've read this is fairly consistent with other
people's experiences.

As you mention, there is probably a way to get X11 to behave the same,
but if this option is not straightforward enough to be implemented and
made available by a DE as config-loaded as Plasma then we can safely
consider it to be out of skill/interest of majority of computer users.

>> That is fair. From what I understand Wayland support on non-Linux
>> systems is still imperfect at best so X11 support is here to
>> stay. But, can we have it as non-default and get away with it for the
>> most part?
>
> No.  AFAIK it was recently discovered that less than 10% of Firefox
> users on non-macOS Unix systems were using Wayland or Xwayland.

Good point. But this discussion focuses more on future that status quo.

>> Apologies for simple (and possibly stupid) questions, but GTK
>> situation has more thorns than I previously thought. Considering WSL2
>> will have more people using Emacs via Wayland/Pgtk making defaults
>> more important.
>
> I don't think supporting the PGTK build on MS Windows is a good idea at
> all.

Oh no, perhaps I misspoke. WSL2 is basically a Linux VM that comes built
into Windows 11. The Emacs runs on Linux, uses Linux sys-calls to talk
to Linux kernel, and renders PGTK build on Wayland. The VM then uses a
custom RDP to integrate Emacs window with the parent Windows OS.

I only mentioned it because this particular implementation of RDP only
works with Wayland natively and X11 applications are second class via
XWayland.

I can provide some more resources if you'd like, but generally searching
WSL2 and following links to MS documentation is sufficient.


Having said all of the above, I am not an Emacs maintainer. Po/Eli/Lars
have much better understanding and obvious say for good reasons. I am
only here to provide alternate perspective.

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  9:39               ` Lars Ingebrigtsen
@ 2022-08-23 14:07                 ` Gerd Möllmann
  2022-08-23 14:43                   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-23 14:07 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: eliz, emacs-devel, luangruo

On 22-08-23 11:39 , Lars Ingebrigtsen wrote:
> I don't thing reading/writing C++ would be a problem for most Emacs
> contributors.  My main reservation is how slow compiling C++ code seems
> to be -- whenever I'm building something written in C++ (especially if
> it uses Qt, apparently) I schedule a couple of laps around the block to
> have something to do while waiting.

Yeah, that can happen for large stuff with Rust, erm, I meant C++ :-).

OTOH, my impression so far with building contemporary Emacs is that the 
non-src part takes most of the time.

YYMV, I guess.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 14:07                 ` Gerd Möllmann
@ 2022-08-23 14:43                   ` Lars Ingebrigtsen
  2022-08-23 15:29                     ` Óscar Fuentes
                                       ` (2 more replies)
  0 siblings, 3 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-23 14:43 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: eliz, emacs-devel, luangruo

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> OTOH, my impression so far with building contemporary Emacs is that
> the non-src part takes most of the time.

Yup.  If I remember correctly from last time I looked at this, with a
"make -j32" on a modern AMD machine, the build takes 65 seconds in
total, and of that 10 seconds are .c compilation, 20 seconds are
./configure, 5 seconds are info and 30 seconds are Lisp files.

The most recalcitrant thing is ./configure, of course -- it's
single-threaded.  Which is just sad.  Most of what it does is eminently
multi-threadable -- I'd guesstimate that 90% of the tests are
independent and could well be run in parallel.  Last time I googled
this, there were no plans to make autoconf parallel-capable.

I wonder whether anybody has looked into switching to a different build
system?




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:46       ` Richard Stallman
@ 2022-08-23 15:08         ` Visuwesh
  2022-08-25 16:01         ` Rudolf Adamkovič
  1 sibling, 0 replies; 267+ messages in thread
From: Visuwesh @ 2022-08-23 15:08 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, luangruo, emacs-devel

[திங்கள் ஆகஸ்ட் 22, 2022] Richard Stallman wrote:

>
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > BTW, I think another item worthy of note is that Lucid menus cannot
>   > display multilingual text.  See the outline "** Make the Lucid menu
>   > widget display multilingual text" in etc/TODO.
>
> Perhaps the question we should be studying is, "Which is the easiest
> path to making Emacs handle graphical display well?"

Apart from bug#54646 and this menu issue, I haven't had any graphical
issues with the Lucid build.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:59         ` Po Lu
@ 2022-08-23 15:13           ` Óscar Fuentes
  2022-08-23 15:18             ` Visuwesh
                               ` (3 more replies)
  0 siblings, 4 replies; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-23 15:13 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> I guess you misunderstood what I said.  I just said alternatives to X
> shouldn't be made the default, since almost everyone will be using X for
> the forseeable future.

The 90% X Firefox user share you mentioned several times was a statistic
of dubious relevance when it came out 6 months ago and is pretty much
irrelevant now. The Mozilla Telemetry guys said at the time that it is
not truly representative, for several reasons. And, more importantly,
Wayland adoption is gaining momentum, with major distros (such as
Ubuntu) defaulting to it and KDE joining Gnome as a stable Wayland-based
desktop environment.

I'll say that by 2025 Wayland will be more popular than X by a wide
margin, and then X will have a hard time with basic maintenance by lack
of manpower (some insiders say that it already suffers from that.)

This doesn't mean much for Emacs on the short and medium term. Emacs
works on XWayland, and XWayland is improving so applications running on
it doesn't suffer from a degraded user experience compared to native
Wayland ones, apart from the constraints related to being based on X.

Another claim you made several times is that distros will stop providing
GTK2 packages soon. This is hard to believe, since other major
applications (such as GIMP, as you said) also use GTK2 and distros still
provide packages for libraries way more ancient and obscure than GTK2.

Finally, it seems to me that your experience with some GTK developers is
influencing your technical discussion on this thread.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 15:13           ` Óscar Fuentes
@ 2022-08-23 15:18             ` Visuwesh
  2022-08-23 16:09             ` Eli Zaretskii
                               ` (2 subsequent siblings)
  3 siblings, 0 replies; 267+ messages in thread
From: Visuwesh @ 2022-08-23 15:18 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

[செவ்வாய் ஆகஸ்ட் 23, 2022] Óscar Fuentes wrote:

> Another claim you made several times is that distros will stop providing
> GTK2 packages soon. This is hard to believe, since other major
> applications (such as GIMP, as you said) also use GTK2 and distros still
> provide packages for libraries way more ancient and obscure than GTK2.

IIRC, GIMP's development version has migrated to Gtk3.
See https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 14:43                   ` Lars Ingebrigtsen
@ 2022-08-23 15:29                     ` Óscar Fuentes
  2022-08-24 12:35                       ` Andrea Corallo
  2022-08-23 16:06                     ` Eli Zaretskii
  2022-08-23 17:10                     ` Stefan Monnier
  2 siblings, 1 reply; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-23 15:29 UTC (permalink / raw)
  To: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I wonder whether anybody has looked into switching to a different build
> system?

Long time ago I volunteered to create a CMake-based build system and
even experimented a bit to the point of dumping emacs. Almost all of the
work consisted on implementing the platform checks.

CMake has the advantage of supporting multiple "backends" for the build
phase, and `ninja' provides a significant speed-up over `make' on large
projects.

For the platform tests, in my experience CMake is faster than the
autotools, but it still works single-threaded.

Apart from better performance, CMake would simplify the scripts a great
deal.

I'm well aware that there are strong reasons of social nature against a
change like this.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 14:43                   ` Lars Ingebrigtsen
  2022-08-23 15:29                     ` Óscar Fuentes
@ 2022-08-23 16:06                     ` Eli Zaretskii
  2022-08-23 16:10                       ` Lars Ingebrigtsen
  2022-08-24  6:38                       ` Gerd Möllmann
  2022-08-23 17:10                     ` Stefan Monnier
  2 siblings, 2 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 16:06 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: gerd.moellmann, emacs-devel, luangruo

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: eliz@gnu.org,  emacs-devel@gnu.org,  luangruo@yahoo.com
> Date: Tue, 23 Aug 2022 16:43:40 +0200
> 
> The most recalcitrant thing is ./configure, of course -- it's
> single-threaded.

Are you using -C ?  It makes the configure script fly.  Most of the
changes in the script nowadays don't need a full reconfiguration, and
seldom even add new variables.

> I wonder whether anybody has looked into switching to a different build
> system?

I tried some of them (not in Emacs), and my conclusion was that each
one needs to be studied and adapted, so switching means learning a
whole new language and set of tools and practices.  On top of that,
you'd have fewer people to ask and come to help if you have problems.

With -C, the configure step is so fast that I'm not sure I even want
to think about an alternative.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 15:13           ` Óscar Fuentes
  2022-08-23 15:18             ` Visuwesh
@ 2022-08-23 16:09             ` Eli Zaretskii
  2022-08-23 16:41               ` Óscar Fuentes
  2022-08-23 23:25             ` Tim Cross
  2022-08-24  1:36             ` Po Lu
  3 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 16:09 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 23 Aug 2022 17:13:58 +0200
> 
> Finally, it seems to me that your experience with some GTK developers is
> influencing your technical discussion on this thread.

Why shouldn't it?  The attitude of the GTK developers is certainly
relevant for our decisions related to GTK issues.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:06                     ` Eli Zaretskii
@ 2022-08-23 16:10                       ` Lars Ingebrigtsen
  2022-08-23 16:24                         ` Eli Zaretskii
  2022-08-24  6:38                       ` Gerd Möllmann
  1 sibling, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-23 16:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gerd.moellmann, emacs-devel, luangruo

Eli Zaretskii <eliz@gnu.org> writes:

>> The most recalcitrant thing is ./configure, of course -- it's
>> single-threaded.
>
> Are you using -C ? It makes the configure script fly.  Most of the
> changes in the script nowadays don't need a full reconfiguration, and
> seldom even add new variables.

This is with "make bootstrap" (or a fresh build), which I do a lot of.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:10                       ` Lars Ingebrigtsen
@ 2022-08-23 16:24                         ` Eli Zaretskii
  2022-08-24 10:11                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 16:24 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: gerd.moellmann, emacs-devel, luangruo

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: gerd.moellmann@gmail.com,  emacs-devel@gnu.org,  luangruo@yahoo.com
> Date: Tue, 23 Aug 2022 18:10:03 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> The most recalcitrant thing is ./configure, of course -- it's
> >> single-threaded.
> >
> > Are you using -C ? It makes the configure script fly.  Most of the
> > changes in the script nowadays don't need a full reconfiguration, and
> > seldom even add new variables.
> 
> This is with "make bootstrap" (or a fresh build), which I do a lot of.

AFAIR, once you configure with -C, subsequent bootstraps also use -C
(I think).



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:09             ` Eli Zaretskii
@ 2022-08-23 16:41               ` Óscar Fuentes
  2022-08-23 16:59                 ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-23 16:41 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> Finally, it seems to me that your experience with some GTK developers is
>> influencing your technical discussion on this thread.
>
> Why shouldn't it?  The attitude of the GTK developers is certainly
> relevant for our decisions related to GTK issues.

... suppossing that the depiction of those developers is accurate, fair
and representative of the community, not picking one or two individuals
interacting with one other individual at certain time.

Besides, people come and go.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:41               ` Óscar Fuentes
@ 2022-08-23 16:59                 ` Eli Zaretskii
  2022-08-23 23:25                   ` Óscar Fuentes
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-23 16:59 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 23 Aug 2022 18:41:31 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Finally, it seems to me that your experience with some GTK developers is
> >> influencing your technical discussion on this thread.
> >
> > Why shouldn't it?  The attitude of the GTK developers is certainly
> > relevant for our decisions related to GTK issues.
> 
> ... suppossing that the depiction of those developers is accurate, fair
> and representative of the community, not picking one or two individuals
> interacting with one other individual at certain time.

They were actually quoted here on several occasions.  Make your own
conclusions from what they say; I did.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 14:43                   ` Lars Ingebrigtsen
  2022-08-23 15:29                     ` Óscar Fuentes
  2022-08-23 16:06                     ` Eli Zaretskii
@ 2022-08-23 17:10                     ` Stefan Monnier
  2022-08-24 10:14                       ` Lars Ingebrigtsen
  2 siblings, 1 reply; 267+ messages in thread
From: Stefan Monnier @ 2022-08-23 17:10 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gerd Möllmann, eliz, emacs-devel, luangruo

> Last time I googled this, there were no plans to make autoconf
> parallel-capable.

IIUC there have been discussions but no plans, no.  Quagmire was
a proof-of-concept replacement of autoconf with something based on GNU
Make, but I don't think it went very far (and I'm no fan of GNU Make's
syntax, especially its inability to properly quote some characters).

I think the better direction is to add a Make-based step into
autoconf, which at first would only contain a single rule running the
original big-heap-of-checks then bit-by-bit split the different checks
into separate rules so they can be run in parallel.

But Someone™ needs to take this on.


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  0:42                                   ` Po Lu
  2022-08-23  2:36                                     ` Eli Zaretskii
@ 2022-08-23 17:52                                     ` Yilkal Argaw
  2022-08-23 18:45                                       ` Stefan Monnier
  2022-08-24  1:50                                       ` Po Lu
  1 sibling, 2 replies; 267+ messages in thread
From: Yilkal Argaw @ 2022-08-23 17:52 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, djcb, Emacs Devel

> Po Lu <luangruo@yahoo.com> Unsubscribe
>
> Aug 21, 2022, 2:06 PM (2 days ago)
>
>
> to emacs-devel
> Users of the GTK 3 build experience many, many problems.  The most
> recent such problem is bug#56869, which is definitely a bug in GTK.
>
> Taking into account the very low quality of the GDK X11 backend, which
> is not seeing active maintenance, shouldn't the build default to some
> other toolkit such as Motif, or even better, no toolkit at all?
>
> Especially considering that a GTK developer (the tail) wants to remove
> support for X11 (the dog) in future releases of GTK:
>
>  https://gitlab.gnome.org/GNOME/gtk/-/issues/5004


I recently tried to investigate this issue so I configured emacs with
the "with-x-toolkit=no" option. The thing that bothered me more than
dated look was the fact that the mouse button behaviours (clicks
doubleclicks and whatnot) do not work like many modern users have
gotten used to. I am of that generation who learned computing from in
windows 2000 era so holding the click button to navigate through menu
entries was very confusing. I know this behaviour dates back in the
history of X and that programs like xterm use it but I would think
making the default might turn out to be a lot more confusing to new
users. This behaviour is also a bit hard to use with touch pads (since
many users just tap for clicks). I might be missing something so
correct me if I am wrong.

with regards
Yilkal A.

On Tue, Aug 23, 2022 at 3:44 AM Po Lu <luangruo@yahoo.com> wrote:
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> From: Po Lu <luangruo@yahoo.com>
> >> Cc: djcb@djcbsoftware.nl,  emacs-devel@gnu.org
> >> Date: Mon, 22 Aug 2022 20:59:38 +0800
> >>
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >>
> >> > What about PGTK build on Wayland, not on X?
> >>
> >> It has the same input-related problems to a much lesser degree, and
> >> selections work fine.  And either way, it's the only choice on Wayland.
> >
> > Does it cause crashes?
>
> No, but it causes things like bug#53200, where C-S-u is reported as C-u.
>



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 17:52                                     ` Yilkal Argaw
@ 2022-08-23 18:45                                       ` Stefan Monnier
  2022-08-24  1:50                                       ` Po Lu
  1 sibling, 0 replies; 267+ messages in thread
From: Stefan Monnier @ 2022-08-23 18:45 UTC (permalink / raw)
  To: Yilkal Argaw; +Cc: Po Lu, Eli Zaretskii, djcb, Emacs Devel

> I recently tried to investigate this issue so I configured emacs with
> the "with-x-toolkit=no" option. The thing that bothered me more than
> dated look was the fact that the mouse button behaviours (clicks
> doubleclicks and whatnot) do not work like many modern users have
> gotten used to.

That's just a reflection of the fact that `with-x-toolkit=no` has not
received much love, except to accommodate those people who use it
because they prefer its behavior.

If we want to make it the default, we need to improve its behavior to
accommodate those who prefer behaviors like that of Gtk.


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 15:13           ` Óscar Fuentes
  2022-08-23 15:18             ` Visuwesh
  2022-08-23 16:09             ` Eli Zaretskii
@ 2022-08-23 23:25             ` Tim Cross
  2022-08-24  4:25               ` Po Lu
  2022-08-24  1:36             ` Po Lu
  3 siblings, 1 reply; 267+ messages in thread
From: Tim Cross @ 2022-08-23 23:25 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel


Óscar Fuentes <ofv@wanadoo.es> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>> I guess you misunderstood what I said.  I just said alternatives to X
>> shouldn't be made the default, since almost everyone will be using X for
>> the forseeable future.
>
> The 90% X Firefox user share you mentioned several times was a statistic
> of dubious relevance when it came out 6 months ago and is pretty much
> irrelevant now. The Mozilla Telemetry guys said at the time that it is
> not truly representative, for several reasons. And, more importantly,
> Wayland adoption is gaining momentum, with major distros (such as
> Ubuntu) defaulting to it and KDE joining Gnome as a stable Wayland-based
> desktop environment.
>

I agree. We have to take any analysis based on firefox usage with
caution as despite the importance of firefox wrt free software. it only
Firefox represents a small percentage of users - something which may have even
gotten worse since the move to snap based packaging in Ubuntu which
makes loading firefox excessively slow i.e. 25 - 30 seconds (seems quite
a few people have switched to chromium, brave, qutebrowser etc.) 

The momentum for moving towards Wayland has also greatly benefited from
the resolving of the nvidia issue. Lack of nvidia support in Wayland was
a fairly big impediment for distros switching to Wayland. However,
Fedora 36 comes with nvidia support for wayland. I also suspect the
nvidia announcement about releasing their linux drivers under a dual
GPL/MIT license might also have some impact on nvidia wayland support
(though nvidia doesn't have a good track record here and has gone back
on such announcements in the past IIRC).

> I'll say that by 2025 Wayland will be more popular than X by a wide
> margin, and then X will have a hard time with basic maintenance by lack
> of manpower (some insiders say that it already suffers from that.)
>

There certainly does seem to be some real momentum towards wayland. Not
sure if Wayland will be the more popular by 2025 though. Suspect it may
be the majority of new installations, but existing installs will likely
still be using X and still be the majority. As I tend to see GNU Linux
installs last a lot longer, it could be closer to 2030 before we see
Wayland with a majority of GNU Linux systems, especially as most distros
are unlikely to switch to Wayland as part of a distro update, only
defaulting to Wayland on fresh installs.

There is also a reasonably large user base for non-mainstream window
managers who will stick with X because they want to stick with the WM
they are familiar with - for example the many tiling WMs like awesome,
qtile, xmonad, dwm, stumpwm etc.

> This doesn't mean much for Emacs on the short and medium term. Emacs
> works on XWayland, and XWayland is improving so applications running on
> it doesn't suffer from a degraded user experience compared to native
> Wayland ones, apart from the constraints related to being based on X.
>
> Another claim you made several times is that distros will stop providing
> GTK2 packages soon. This is hard to believe, since other major
> applications (such as GIMP, as you said) also use GTK2 and distros still
> provide packages for libraries way more ancient and obscure than GTK2.
>

Given that some fairly popular DE are still based on GTK2, I'm not
confident it will be removed any time soon. A lot of people have not
been happy with Gnome for some time now, which has resulted in other
desktop environments like mate, cinnamon etc. IIRC a number of these are
still based on GTK2. There are also a couple of reasonably popular
packages still based on GTK2 who are also unhappy with the direction GTK
took from v3 onwards and who have not updated to v3 support. Likely
distros will need to continue GTK2 support for longer than they or the
developers would prefer. 


> Finally, it seems to me that your experience with some GTK developers is
> influencing your technical discussion on this thread.

There does seem to be growing dissatisfaction with X in various
developer communities, especially Gnome and GTK. Some of the criticisms
do seem valid, some less so. I also get a sense from posts in the x.org
community of concerns regarding on-going maintenance, code complexity
and some legacy limitations which are becoming increasingly more
difficult to work around as hardware, environments and user expectations
evolve. However, we also often see how inaccurate predictions about
change can be. I'll bet the Perl community didn't expect Raku (Perl 6)
to take so long to see the light of day or that the move from Python 2
to 3 would be so long and complicated or how challenging nailing the lid
on the IE coffin would be or the fact we still have GNU Linux systems
which only have partial systemd support and lets not mention
IPv6. Personally, I'm quite surprised how far Wayland has got - I
expected much slower progress. The only thing I'm really confident about
is that our predictions are likely more wrong than right and why we must
not bet everything on one winner. 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:59                 ` Eli Zaretskii
@ 2022-08-23 23:25                   ` Óscar Fuentes
  2022-08-24  1:45                     ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-23 23:25 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> >> Finally, it seems to me that your experience with some GTK
>> >> developers is influencing your technical discussion on this
>> >> thread.
>> >
>> > Why shouldn't it?  The attitude of the GTK developers is certainly
>> > relevant for our decisions related to GTK issues.
>> 
>> ... suppossing that the depiction of those developers is accurate, fair
>> and representative of the community, not picking one or two individuals
>> interacting with one other individual at certain time.
>
> They were actually quoted here on several occasions.  Make your own
> conclusions from what they say; I did.

What I see on that Merge Request is an occasional contributor adding
code related to an internal, debug-related environment variable to avoid
its abuse and then making an insulting reference to the people who are
advicing others to incur on said abuse. Then another occasional
contributor comes to close the comments (good) with a blunt phrase
(bad).

Implying that that episode illustrates the general attitude of that
community and that it is relevant to how Emacs should decide its
relation to the products of such community is... unfair, to say it
politelly.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 13:53 Payas Relekar
@ 2022-08-24  1:15 ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  1:15 UTC (permalink / raw)
  To: Payas Relekar; +Cc: emacs-devel

Payas Relekar <relekarpayas@gmail.com> writes:

> I only have personal experience, so apologies in advance if I miss
> something obvious. I use Plasma desktop (used Gnome for years before)
> on my laptop as no-frills feature rich Desktop Environment. I do not
> like messing around with Xresources and like things to Just Work™.
>
> My laptop display is plain old 15" 1080p, but usually connect with
> external monitor (27" 4K). On X11 there is no option for external
> display except 1080p so all the pixels go to waste. Only on Wayland can
> I select 4K and different DPI settings (125% on laptop display + 175% on
> external). From what I've read this is fairly consistent with other
> people's experiences.

All of those options... aren't actually part of X.  Including Xft.dpi
and such.  There could easily also be a mapping between CRTC identifiers
and scale factors in xsettings.

> As you mention, there is probably a way to get X11 to behave the same,
> but if this option is not straightforward enough to be implemented and
> made available by a DE as config-loaded as Plasma then we can safely
> consider it to be out of skill/interest of majority of computer users.

External monitors aside, HiDPI works fine on most X desktop environments
(I don't know about Plasma) out of the box.

> Good point. But this discussion focuses more on future that status quo.

When will that future be, if under Wayland the protocols for input
methods, server-side decorations and output management (for which there
are actually multiple protocols) are still unstable?

> Oh no, perhaps I misspoke. WSL2 is basically a Linux VM that comes built
                                                 ^^^^^
Did you mean GNU/Linux?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 13:08       ` Stefan Monnier
@ 2022-08-24  1:16         ` Po Lu
  2022-08-24  1:34           ` Stefan Monnier
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24  1:16 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Payas Relekar, Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> There's always the issue of windows (frames) spanning several monitors
> with different DPI.

That isn't handled on Wayland either.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  1:16         ` Po Lu
@ 2022-08-24  1:34           ` Stefan Monnier
  0 siblings, 0 replies; 267+ messages in thread
From: Stefan Monnier @ 2022-08-24  1:34 UTC (permalink / raw)
  To: Po Lu; +Cc: Payas Relekar, Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Po Lu [2022-08-24 09:16:25] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> There's always the issue of windows (frames) spanning several monitors
>> with different DPI.
> That isn't handled on Wayland either.

Bummer!


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 15:13           ` Óscar Fuentes
                               ` (2 preceding siblings ...)
  2022-08-23 23:25             ` Tim Cross
@ 2022-08-24  1:36             ` Po Lu
  2022-08-24  2:31               ` Óscar Fuentes
  3 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24  1:36 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> The 90% X Firefox user share you mentioned several times was a statistic
> of dubious relevance when it came out 6 months ago and is pretty much
> irrelevant now.

6 months ago makes it "irrelevant now"?

> The Mozilla Telemetry guys said at the time that it is not truly
> representative, for several reasons.

Could you find those "several reasons"?

> And, more importantly, Wayland adoption is gaining momentum, with
> major distros (such as Ubuntu) defaulting to it and KDE joining Gnome
> as a stable Wayland-based desktop environment.

It can hardly be called stable (like Wayland in general) when it
implements a different screencast protocol extension from GNOME Shell
and wlroots.

> I'll say that by 2025 Wayland will be more popular than X by a wide
> margin, and then X will have a hard time with basic maintenance by lack
> of manpower (some insiders say that it already suffers from that.)

I will always be available to take up anything that might be missing on
the X server side of things.  But contrary to what people repeat off
internet blogs, the X server is not seeing a lack of maintenance,
manpower, or even new features: XInput 2.4, with support for trackpad
gestures, was released approximately a year ago, which shows that it is
evolving faster than it was during the heyday of X development in the
mid-90s.  X is also a stable and mature system, by nature of its much
more centralized development methodology, meaning that it requires less
manpower to keep working than Wayland, where every feature is preceded
by two to three protocol extensions from different organizations, and
constant changes in the display server are required to keep up with
updates to unstable protocol extensions.

> This doesn't mean much for Emacs on the short and medium term. Emacs
> works on XWayland, and XWayland is improving so applications running on
> it doesn't suffer from a degraded user experience compared to native
> Wayland ones, apart from the constraints related to being based on X.

HiDPI does not work on XWayland.  It is also impossible to actively grab
or warp the pointer.  All of these are very basic problems that have not
yet been solved.

> Another claim you made several times is that distros will stop providing
> GTK2 packages soon. This is hard to believe, since other major
> applications (such as GIMP, as you said) also use GTK2 and distros still
> provide packages for libraries way more ancient and obscure than GTK2.

The GIMP is the last program keeping GTK+ 2.x in package repositories.
Previously, there was also wxWidgets, but almost everyone is in the
process of switching to its GTK 3 backend.

The moment GIMP 3.0 is released, GTK+ 2.x will disappear.

> Finally, it seems to me that your experience with some GTK developers is
> influencing your technical discussion on this thread.

No, not at all.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 23:25                   ` Óscar Fuentes
@ 2022-08-24  1:45                     ` Po Lu
  2022-08-24  3:02                       ` Óscar Fuentes
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24  1:45 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> What I see on that Merge Request is an occasional contributor adding
> code related to an internal, debug-related environment variable to avoid
> its abuse and then making an insulting reference to the people who are
> advicing others to incur on said abuse. Then another occasional
> contributor comes to close the comments (good) with a blunt phrase
> (bad).

What abuse? And the change did not add code, it removed code to prevent
users from customizing their own systems in a way that the GTK
developers do not want.  Even though it causes no problems, no bug
reports, and in general no trouble at all for anyone, especially for
someone who did not even write the GTK native dialog code.

Stop making excuses for the blatant disrespect for users and developers
carried by the GTK developers.  Here's what the AUTHORS file says:

The current team (GTK 3 and 4)
------------------------------

Jonas Ådahl       <jadahl@gmail.com>
Tim Bäder         <mail@baedert.org>
Emmanuele Bassi   <ebassi@gnome.org>
Chun-wei Fan      <fanchunwei@src.gnome.org>
Matthias Clasen   <mclasen@redhat.com>
Carlos Garnacho   <mrgarnacho@gmail.com>
Alexander Larsson <alexl@redhat.com>
Benjamin Otte     <otte@gnome.org>

Evidently, Benjamin Otte is not just an "occasional contributor".

> Implying that that episode illustrates the general attitude of that
> community and that it is relevant to how Emacs should decide its
> relation to the products of such community is... unfair, to say it
> politelly.

Okay, then how about the many MANY times we went to them about the
display disconnect problem, and were very impolitely rebuffed, with our
use case(s) dismissed?

Or recently:

  https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg00687.html

Where they made the ridiculous statement that it is unsafe for Emacs to
auto-save data in Emacs core if the Wayland compositor shuts down.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 17:52                                     ` Yilkal Argaw
  2022-08-23 18:45                                       ` Stefan Monnier
@ 2022-08-24  1:50                                       ` Po Lu
  1 sibling, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  1:50 UTC (permalink / raw)
  To: Yilkal Argaw; +Cc: Eli Zaretskii, djcb, Emacs Devel

Yilkal Argaw <yilkalargawworkneh@gmail.com> writes:

> I recently tried to investigate this issue so I configured emacs with
> the "with-x-toolkit=no" option. The thing that bothered me more than
> dated look was the fact that the mouse button behaviours (clicks
> doubleclicks and whatnot) do not work like many modern users have
> gotten used to. I am of that generation who learned computing from in
> windows 2000 era so holding the click button to navigate through menu
> entries was very confusing. I know this behaviour dates back in the
> history of X and that programs like xterm use it but I would think
> making the default might turn out to be a lot more confusing to new
> users. This behaviour is also a bit hard to use with touch pads (since
> many users just tap for clicks). I might be missing something so
> correct me if I am wrong.

Clicks and double clicks should work the same way as they do on any
other build, right?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  1:36             ` Po Lu
@ 2022-08-24  2:31               ` Óscar Fuentes
  2022-08-24  3:23                 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-24  2:31 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Óscar Fuentes <ofv@wanadoo.es> writes:
>
>> The 90% X Firefox user share you mentioned several times was a statistic
>> of dubious relevance when it came out 6 months ago and is pretty much
>> irrelevant now.
>
> 6 months ago makes it "irrelevant now"?

At the pace things are changing, yes.

>> The Mozilla Telemetry guys said at the time that it is not truly
>> representative, for several reasons.
>
> Could you find those "several reasons"?

On the original source (*) it was mentioned:

  - Some distributions build Firefox with telemetry disabled, which
    might significantly skew the results.

I'll add that there are other significant factors, such as age of
install and release: if you are interested on current trends, you don't
want to take into account relatively old installs such as LTS, Debian
Stable, etc., or even a four months old Ubuntu release, you are mostly
interested on new installs from releases that provides up to date
Wayland packages and asked the user whether to use Wayland, defaulted to
it or provided a simple and prominently advertised method for switching
after the install.

* https://www.phoronix.com/news/Firefox-Wayland-X11-Stats

>> And, more importantly, Wayland adoption is gaining momentum, with
>> major distros (such as Ubuntu) defaulting to it and KDE joining Gnome
>> as a stable Wayland-based desktop environment.
>
> It can hardly be called stable (like Wayland in general) when it
> implements a different screencast protocol extension from GNOME Shell
> and wlroots.

So compatibility with Gnome is what defines the stability of my KDE
install? I just care about not experiencing crashes or defects.

>> I'll say that by 2025 Wayland will be more popular than X by a wide
>> margin, and then X will have a hard time with basic maintenance by lack
>> of manpower (some insiders say that it already suffers from that.)
>
> I will always be available to take up anything that might be missing on
> the X server side of things.

As a happy Emacs/Lucid user: thank you, sincerely. But nobody can assert
"I'll always be here."

> But contrary to what people repeat off
> internet blogs, the X server is not seeing a lack of maintenance,
> manpower, or even new features:

See X Developers Conference 2021, the intervention of Matthieu Herb, for
instance. This is not "people writing on internet blogs."

X is considered legacy and, possibly a worse curse nowadays, unsecure.
For better or worse, new efforts are focused on Wayland. This will have
dire effects over time on X maintenance.

[snip]

>> This doesn't mean much for Emacs on the short and medium term. Emacs
>> works on XWayland, and XWayland is improving so applications running on
>> it doesn't suffer from a degraded user experience compared to native
>> Wayland ones, apart from the constraints related to being based on X.
>
> HiDPI does not work on XWayland.

Scaling produces blurriness on XWayland. That's true, its widely
acknowledged as a problem and people is addressing the issue, slowly.

> It is also impossible to actively grab
> or warp the pointer.  All of these are very basic problems that have not
> yet been solved.

That's the precise issue that is keeping me on X on my multimonitor,
mixed DPI machine.

There is ydotool, which crashes on my system but apparently works for
others. Just two days ago I found some protocols (one from
wayland-protocols, the other from plasma-wayland-protocols) that in
theory allow cursor warping, among other things. I need to figure out
how to use them.

>> Another claim you made several times is that distros will stop providing
>> GTK2 packages soon. This is hard to believe, since other major
>> applications (such as GIMP, as you said) also use GTK2 and distros still
>> provide packages for libraries way more ancient and obscure than GTK2.
>
> The GIMP is the last program keeping GTK+ 2.x in package repositories.

Well, "apt-cache showpkg libgtk2.0-0" shows several hundred dependencies
on my Debian Testing machine.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-21 14:15           ` Lars Ingebrigtsen
  2022-08-21 14:17             ` Po Lu
@ 2022-08-24  2:32             ` Thomas Fitzsimmons
  2022-08-24  2:47               ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Thomas Fitzsimmons @ 2022-08-24  2:32 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>>> I sent a short demo that shows how one can escape from an _exit a few
>>> weeks ago in bug#56967; I attach it here again.  The same kind of
>>> things can be done to circumvent segfaults in library functions.
>
> Cool!
>
>> Sorry, but that's not a good idea.  What if someone statically links
>> Emacs with the C library?
>
> That's not the default configuration, and if somebody is wild enough to
> do that, then that's not our problem.

Since we're talking about extreme ideas, how about this: create a light
fork of GTK that contains a bunch of bug fixes that make Emacs happy,
pull it in as a submodule, build it as part of Emacs's
--with-x-toolkit=gtk build, then have the Emacs binary load the forked
GTK library at runtime.  (Or to borrow a term from other language
communities, Emacs could "vendor" GTK.)

Thomas



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  2:32             ` Thomas Fitzsimmons
@ 2022-08-24  2:47               ` Po Lu
  2022-08-25  3:33                 ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24  2:47 UTC (permalink / raw)
  To: Thomas Fitzsimmons; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:

> Since we're talking about extreme ideas, how about this: create a light
> fork of GTK that contains a bunch of bug fixes that make Emacs happy,
> pull it in as a submodule, build it as part of Emacs's
> --with-x-toolkit=gtk build, then have the Emacs binary load the forked
> GTK library at runtime.  (Or to borrow a term from other language
> communities, Emacs could "vendor" GTK.)

GTK's copyright is not assigned to the FSF.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  1:45                     ` Po Lu
@ 2022-08-24  3:02                       ` Óscar Fuentes
  2022-08-24  3:41                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-24  3:02 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Óscar Fuentes <ofv@wanadoo.es> writes:
>
>> What I see on that Merge Request is an occasional contributor adding
>> code related to an internal, debug-related environment variable to avoid
>> its abuse and then making an insulting reference to the people who are
>> advicing others to incur on said abuse. Then another occasional
>> contributor comes to close the comments (good) with a blunt phrase
>> (bad).
>
> What abuse? And the change did not add code, it removed code to prevent
> users from customizing their own systems in a way that the GTK
> developers do not want.  Even though it causes no problems, no bug
> reports, and in general no trouble at all for anyone, especially for
> someone who did not even write the GTK native dialog code.

Suppose you discover that some people are writing customization recipes
on a popular Wiki page that make use of internal Emacs code for whatever
purpose, and you know that once you change that code people will come to
complain about you for breaking their setups.

Of course, that's no excuse for calling names on anyone, but otherwise
what he did is not unreasonable.

> Stop making excuses for the blatant disrespect for users and developers
> carried by the GTK developers.  Here's what the AUTHORS file says:
>
> The current team (GTK 3 and 4)
> ------------------------------
>
> Jonas Ådahl       <jadahl@gmail.com>
> Tim Bäder         <mail@baedert.org>
> Emmanuele Bassi   <ebassi@gnome.org>
> Chun-wei Fan      <fanchunwei@src.gnome.org>
> Matthias Clasen   <mclasen@redhat.com>
> Carlos Garnacho   <mrgarnacho@gmail.com>
> Alexander Larsson <alexl@redhat.com>
> Benjamin Otte     <otte@gnome.org>
>
> Evidently, Benjamin Otte is not just an "occasional contributor".

Well, I said that he is an occasional contributor after looking at his
activity map, which is not very colorful.

OTOH, he belonging to the official team may explain why he was not
censured. That doesn't mean that other team members sympathize with his
action.

>> Implying that that episode illustrates the general attitude of that
>> community and that it is relevant to how Emacs should decide its
>> relation to the products of such community is... unfair, to say it
>> politelly.
>
> Okay, then how about the many MANY times we went to them about the
> display disconnect problem, and were very impolitely rebuffed, with our
> use case(s) dismissed?

There is a bitter disagreement there, for sure. But I've experienced
worse dealing with KDE/Qt maintainers and I still am a happy KDE user.
That is, if you think that by switching to Qt you will deal with more
reasonable and polite people, you are wrong. They are the same kind of
human beings, like we are here.

> Or recently:
>
>   https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg00687.html
>
> Where they made the ridiculous statement that it is unsafe for Emacs to
> auto-save data in Emacs core if the Wayland compositor shuts down.

There is no assurance whatsoever that you will not get that type of
reaction from a Qt developer. I had similar discussions with highly
competent maintainers of top-tier projects and it requires empathy,
politeness, patience and skillful dialogue. Not to say that this
guarantees success, but starting with the attitude of "I'm obviously
right and you are doing wrong" poses a big risk of a strong-headed
rejection.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  2:31               ` Óscar Fuentes
@ 2022-08-24  3:23                 ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  3:23 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> At the pace things are changing, yes.

Sorry, but that's wrong.  6 months is barely enough for a Fedora
release, and definitely not enough for slower-moving GNU/Linux
distributions such as Debian.

> On the original source (*) it was mentioned:
>
>   - Some distributions build Firefox with telemetry disabled, which
>     might significantly skew the results.

"might" doesn't mean "definite".  And it contrasts with my own anecdotal
experience of what people do with GNOME on Wayland.

> I'll add that there are other significant factors, such as age of
> install and release: if you are interested on current trends, you don't
> want to take into account relatively old installs such as LTS, Debian
> Stable, etc., or even a four months old Ubuntu release, you are mostly
> interested on new installs from releases that provides up to date
> Wayland packages and asked the user whether to use Wayland, defaulted to
> it or provided a simple and prominently advertised method for switching
> after the install.
>
> * https://www.phoronix.com/news/Firefox-Wayland-X11-Stats

All I really hear from people is that they install some software, find
out that screencasting does not work, and follow an online guide to log
out and switch to "GNOME on Xorg" instead.

> So compatibility with Gnome is what defines the stability of my KDE
> install? I just care about not experiencing crashes or defects.

No, this is a problem with Wayland in general.  The complete
incompatibility between different compositors.

> See X Developers Conference 2021, the intervention of Matthieu Herb, for
> instance. This is not "people writing on internet blogs."

[...]

> X is considered legacy and, possibly a worse curse nowadays, unsecure.

Sorry, but that only applies if you have no authentication mechanism for
your X server, and have port 6000 exposed to the internet.  Otherwise,
just like under Wayland, programs can only do what their user is
authorized to do.

> For better or worse, new efforts are focused on Wayland. This will have
> dire effects over time on X maintenance.

People can complain all they want, but there are no problems with X due
to those supposedly dire effects.  The difference between X and Wayland
is that X is finished.  There is very little need for maintenance beyond
the occasional build fix, since everything that one could need already
exists, and most rapidly changing components have been devolved out of
the X server (i.e. libinput, DRI/KMS/DRM, et cetera.)

This has already been proven several times.  For example, consider how
adding support for trackpad gestures under Wayland involved a huge
amount of work and bickering over protocol details, while it took only
several hundreds of lines of code in the X server.  Or, consider how
wp_presentation took extremely long to be implemented, and still isn't
available under KWin, while the X Present extension is now available
almost everywhere and is much more flexible (see for example the
target_crtc arg to XPresentRegion, while under Wayland the compositor is
the only program that can determine which output the presentation is
synchronized to, and all compositors I know of simply punt in front of
multiple outputs.)

While under Wayland, problems like screencasting, setting the absolute
position of a toplevel surface, actively grabbing the pointer, or even
warping the pointer, have yet to be solved.  All of this is compounded
by the fact that the reference implementation is not even very good --
for example, it fails to implement constraint adjustments on popups.

> Scaling produces blurriness on XWayland. That's true, its widely
> acknowledged as a problem and people is addressing the issue, slowly.

The problem cannot be addressed correctly due to a fundamental
difference in how scaling works under Wayland and how it works under X.

On X, the X server does not care about scaling.  Everything is done by
the application.  Of course, this does not preclude a mechanism for
making such information known to the compositing manager, such a
_NET_SCALE_FACTOR property that could be put on toplevel windows.

However, on Wayland, the compositor _must_ know about the scale factor
of each buffer committed to a surface, and performs automatic scaling to
the output based on that.  As a result, you can only chose between a
tiny xterm window and correctly scaled LibreOffice, or blurry
everything.

> There is ydotool, which crashes on my system but apparently works for
> others. Just two days ago I found some protocols (one from
> wayland-protocols, the other from plasma-wayland-protocols) that in
> theory allow cursor warping, among other things. I need to figure out
> how to use them.

ydotool is seriously flawed, since it cannot as a matter of principle
know about various things such as the position of toplevel windows.

i.e. how would ydotool implement the equivalent of XKillClient?

> Well, "apt-cache showpkg libgtk2.0-0" shows several hundred dependencies
> on my Debian Testing machine.

They are definitely not important enough to keep GTK+ 2.x there.

In short: Wayland compositors are not ready to become a general
replacement for the X server.  And probably will not in the near future.

That doesn't mean we shouldn't plan ahead, but that we should be
pragmatic and refrain from defaulting to software that is clearly
unready to replace its predecessor and not subject to wide adoption.

And at this point I cannot see what problems Wayland is supposed to
solve, since it is now more fragmented than X was in the 1990s.  The
developers of the reference server are also implementing (unstable, as
usual with Wayland) atrocities such as support for HDCP, which other
compositor developers have thankfully put their foot down on.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:02                       ` Óscar Fuentes
@ 2022-08-24  3:41                         ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  3:41 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> Suppose you discover that some people are writing customization recipes
> on a popular Wiki page that make use of internal Emacs code for whatever
> purpose, and you know that once you change that code people will come to
> complain about you for breaking their setups.

We will not change such code on purpose, just because someone is writing
customization recipes based on it.  In fact, I would look into making it
"not internal", should it prove useful.

And we will never, ever, resort to name-calling!

> Of course, that's no excuse for calling names on anyone, but otherwise
> what he did is not unreasonable.

All of it is unreasonable.

> Well, I said that he is an occasional contributor after looking at his
> activity map, which is not very colorful.
>
> OTOH, he belonging to the official team may explain why he was not
> censured. That doesn't mean that other team members sympathize with his
> action.

All of the GTK developers do it.  This is the personal experience of
almost everyone who has tried to write real software with GTK.

> There is a bitter disagreement there, for sure. But I've experienced
> worse dealing with KDE/Qt maintainers and I still am a happy KDE user.
> That is, if you think that by switching to Qt you will deal with more
> reasonable and polite people, you are wrong. They are the same kind of
> human beings, like we are here.

I don't think Qt maintainers will proactively seek to break user's
customizations and call them names.

> There is no assurance whatsoever that you will not get that type of
> reaction from a Qt developer. I had similar discussions with highly
> competent maintainers of top-tier projects and it requires empathy,
> politeness, patience and skillful dialogue. Not to say that this
> guarantees success, but starting with the attitude of "I'm obviously
> right and you are doing wrong" poses a big risk of a strong-headed
> rejection.

I've never seen that kind of reaction from a Qt developer, or even a GTK
developer in the 2.x days.  Such behavior is not excusable and
immediately excludes such a toolkit from being suitable for any
software, including Emacs.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:05                                         ` Po Lu
  2022-08-23 11:22                                           ` Eli Zaretskii
@ 2022-08-24  3:52                                           ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, larsi, gregory, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > They support XInput 2 (and most of the other features I mentioned as
  > problematic on 3.x) correctly, but GTK+ 2.x is obsolete and probably
  > will be removed from most GNU/Linux distributions soon.

I think we should arrange to keep it going, so that it won't be obsolete.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:57         ` Po Lu
@ 2022-08-24  3:52           ` Richard Stallman
  2022-08-24  4:20             ` Po Lu
  2022-08-24  4:25             ` Tim Cross
  0 siblings, 2 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Have we tried patching GTK to add workarounds -- for instance,
  > > defining an "exit function" hook to call instead of `_exit'?
  > > We could distribute such patches, and they might accept the patches.

  > They insist that it is unsafe to call anything except for _exit, because
  > it is not safe to save files after the display server goes down.

There are various ways users can make such modifications.
We can add those to the list of possible options to compare.
This is for GTK 3, right?

One pwrtinent question is, how bad would the problems of GTK 3 be if
we imagine a few of them have been fided this way?  Would they be bad
enough that we would want to reject GTK 3 over them anyway?

There is a modified version of GNOME 2, which I suppose includes GTK
2.  It is called Maté.  (The accent on "ë is incorrect Spanish, but it
is correct English.)  It is no longer maintained, but it is probably a
better starting point than GNOME 2 itself.  I use it, because it is
included in Trisquel.  I presume it contains a version of GTK 2.

If newer versions of GTK are lousy, and the other options also have
bad problems, maybe this is the best.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  4:04                           ` Po Lu
@ 2022-08-24  3:52                             ` Richard Stallman
  2022-08-24  4:27                               ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Po Lu; +Cc: theophilusx, owinebar, larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Would it make sense for specifying GTK, on a system which uses Wayland,
  > > to select the PGTK build automatically instead of the GTK build?

  > You mean, at build-time?  Yes, that would make sense.

What is the relationship of PGTK to GTK?  Is PGTK as software
similar to GTK?  If so, which version of GTK is it similar to?
Is it going to cause us problems like the ones GTK 3 is causing us?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  4:03                 ` Po Lu
  2022-08-23 11:26                   ` Stefan Kangas
@ 2022-08-24  3:52                   ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Speaking of Haiku, I see that many of the files have underscore in
  > > their names.  Our normal convention in GNU is to use dashes in file
  > > names, not underscores.  Could you please regularize these names?

  > Sure.  I wasn't aware that convention also applies to C++ files.  I
  > think I can also come up with shorter names for those files as well.

Switching to dashes would be an increase in consistency.  Thanks.

However, I'm not sure there is any drawback nowadays to file names of
that lengfth.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:17 ` Po Lu
  2022-08-23  7:21   ` Payas Relekar
  2022-08-23 12:05   ` Eli Zaretskii
@ 2022-08-24  3:52   ` Richard Stallman
  2022-08-24  4:18     ` Po Lu
  2 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Po Lu; +Cc: relekarpayas, larsi, gregory, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > It will not affect Wayland at all, since the Wayland drag-and-drop API
  > is too limited to allow Emacs to implement drag-and-drop properly there.

  > Most importantly, there is no way to cancel drag-and-drop after it
  > begins (think C-g), or to receive a notification when the pointer
  > reenters the frame where it originated after leaving.

That sounds like a serious flaw in Wayland.  Would its developers
want to fix it?  Does it have other UI drawbacks compared with X11,
and would its developers want to fix them?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  7:00 Abysmal state of GTK build Payas Relekar
  2022-08-23  7:17 ` Po Lu
@ 2022-08-24  3:52 ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Payas Relekar; +Cc: luangruo, larsi, gregory, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > How much of an issue will this be on Wayland systems? Considering GTK4
  > will probably drop X11 support, and Fedora, Debian and Ubuntu (likely
  > covering vast majority of GNU/Linux desktop) are Wayland default,

Could they help us convince or help the Wayland developers to
make the desirable improvements in Wayland?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 12:15                 ` Lynn Winebarger
@ 2022-08-24  3:52                   ` Richard Stallman
  2022-08-24  8:57                     ` Robert Pluim
  0 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-24  3:52 UTC (permalink / raw)
  To: Lynn Winebarger; +Cc: luangruo, ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Requiring a C++ compiler to build Emacs is a big practical
  > > disadvantage.  Including C++ code in Emacs will be an obstacle for
  > > people such as me to debug or write code.

  > Could you elaborate on why this is an issue

C++ is a complex language.  I don't want Emacs to require developers
to know C++.

                                                when C++ infrastructure
  > (including GNU C++ infrastructure) is so widely available?

I'm sure there will be some users for which getting that running is a
hassle.  It may be a minority, in which case this would be a secondary
problem.  Maybe this by itself would not be enough of a reason not to
use C++.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:52   ` Richard Stallman
@ 2022-08-24  4:18     ` Po Lu
  2022-08-24  8:52       ` Robert Pluim
  2022-08-26  3:36       ` Richard Stallman
  0 siblings, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  4:18 UTC (permalink / raw)
  To: Richard Stallman; +Cc: relekarpayas, larsi, gregory, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> That sounds like a serious flaw in Wayland.  Would its developers
> want to fix it?

Probably not.

> Does it have other UI drawbacks compared with X11, and would its
> developers want to fix them?

The most glaring one is the inability to position toplevel windows
manually, for "security reasons".  The developers don't want to fix it.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:52           ` Richard Stallman
@ 2022-08-24  4:20             ` Po Lu
  2022-08-24  4:34               ` tomas
  2022-08-26  3:36               ` Richard Stallman
  2022-08-24  4:25             ` Tim Cross
  1 sibling, 2 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  4:20 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> There are various ways users can make such modifications.
> We can add those to the list of possible options to compare.
> This is for GTK 3, right?
>
> One pwrtinent question is, how bad would the problems of GTK 3 be if
> we imagine a few of them have been fided this way?  Would they be bad
> enough that we would want to reject GTK 3 over them anyway?

Yeah.  It would be a lot of work to do that.

> There is a modified version of GNOME 2, which I suppose includes GTK
> 2.  It is called Maté.  (The accent on "ë is incorrect Spanish, but it
> is correct English.)  It is no longer maintained, but it is probably a
> better starting point than GNOME 2 itself.  I use it, because it is
> included in Trisquel.  I presume it contains a version of GTK 2.

Some parts of Mate have apparently been ported to GTK 3.  I'm not sure.

> If newer versions of GTK are lousy, and the other options also have
> bad problems, maybe this is the best.

I guess we could take up maintenance of GTK 2.  But it would still be a
lot of work.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:52           ` Richard Stallman
  2022-08-24  4:20             ` Po Lu
@ 2022-08-24  4:25             ` Tim Cross
  2022-08-24  4:37               ` tomas
                                 ` (2 more replies)
  1 sibling, 3 replies; 267+ messages in thread
From: Tim Cross @ 2022-08-24  4:25 UTC (permalink / raw)
  To: rms; +Cc: Po Lu, larsi, emacs-devel


Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > > Have we tried patching GTK to add workarounds -- for instance,
>   > > defining an "exit function" hook to call instead of `_exit'?
>   > > We could distribute such patches, and they might accept the patches.
>
>   > They insist that it is unsafe to call anything except for _exit, because
>   > it is not safe to save files after the display server goes down.
>
> There are various ways users can make such modifications.
> We can add those to the list of possible options to compare.
> This is for GTK 3, right?
>
> One pwrtinent question is, how bad would the problems of GTK 3 be if
> we imagine a few of them have been fided this way?  Would they be bad
> enough that we would want to reject GTK 3 over them anyway?
>
> There is a modified version of GNOME 2, which I suppose includes GTK
> 2.  It is called Maté.  (The accent on "ë is incorrect Spanish, but it
> is correct English.)  It is no longer maintained, but it is probably a
> better starting point than GNOME 2 itself.  I use it, because it is
> included in Trisquel.  I presume it contains a version of GTK 2.
>
> If newer versions of GTK are lousy, and the other options also have
> bad problems, maybe this is the best.

I think mate is still maintained. Both Ubuntu and Fedora have current
versions of their distribution which is based on it. I think cinnamon is
also based on GTK2?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 23:25             ` Tim Cross
@ 2022-08-24  4:25               ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  4:25 UTC (permalink / raw)
  To: Tim Cross; +Cc: Óscar Fuentes, emacs-devel

Tim Cross <theophilusx@gmail.com> writes:

> Given that some fairly popular DE are still based on GTK2, I'm not
> confident it will be removed any time soon. A lot of people have not
> been happy with Gnome for some time now, which has resulted in other
> desktop environments like mate, cinnamon etc. IIRC a number of these are
> still based on GTK2. There are also a couple of reasonably popular
> packages still based on GTK2 who are also unhappy with the direction GTK
> took from v3 onwards and who have not updated to v3 support. Likely
> distros will need to continue GTK2 support for longer than they or the
> developers would prefer. 

Cinnamon has always been a GTK 3 desktop environment, and Mate is
apparently now ported to GTK 3 (according to dnf repoquery.)

> There does seem to be growing dissatisfaction with X in various
> developer communities, especially Gnome and GTK.
                         ^^^^^^^^^^

Only.  It's called the "CADT model": www.jwz.org/doc/cadt.html.

> Some of the criticisms do seem valid, some less so. I also get a sense
> from posts in the x.org community of concerns regarding on-going
> maintenance, code complexity and some legacy limitations which are
> becoming increasingly more difficult to work around as hardware,
> environments and user expectations evolve.

The people putting forth those criticisms of X should come up with
something concrete instead of catchy general phrases such as "code
complexity" and "legacy limitations" that other people then throw around
as evidence of problems with X.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:52                             ` Richard Stallman
@ 2022-08-24  4:27                               ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  4:27 UTC (permalink / raw)
  To: Richard Stallman; +Cc: theophilusx, owinebar, larsi, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> What is the relationship of PGTK to GTK?  Is PGTK as software
> similar to GTK?  If so, which version of GTK is it similar to?
> Is it going to cause us problems like the ones GTK 3 is causing us?

PGTK is a build of Emacs using GTK 3 without any Xlib-specific code.  It
is used to support the Wayland window system, not X.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:20             ` Po Lu
@ 2022-08-24  4:34               ` tomas
  2022-08-26  3:36               ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: tomas @ 2022-08-24  4:34 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1755 bytes --]

On Wed, Aug 24, 2022 at 12:20:26PM +0800, Po Lu wrote:
> Richard Stallman <rms@gnu.org> writes:
> 
> > There are various ways users can make such modifications.
> > We can add those to the list of possible options to compare.
> > This is for GTK 3, right?
> >
> > One pwrtinent question is, how bad would the problems of GTK 3 be if
> > we imagine a few of them have been fided this way?  Would they be bad
> > enough that we would want to reject GTK 3 over them anyway?
> 
> Yeah.  It would be a lot of work to do that.
> 
> > There is a modified version of GNOME 2, which I suppose includes GTK
> > 2.  It is called Maté.  (The accent on "ë is incorrect Spanish, but it
> > is correct English.)  It is no longer maintained, but it is probably a
> > better starting point than GNOME 2 itself.  I use it, because it is
> > included in Trisquel.  I presume it contains a version of GTK 2.

Hm. I only know of MATE (spelled in capitals) [1] [2], named after yerba
mate (which doesn't have an accent).

This one tries to be like Gnome 2 (I know a few users who were glad to
move to MATE after Gnome 3 came out).

Mate switched to Gtk3 a while ago, though (the current Debian dependency
of Marco, MATE's window manager, for example, is on Gtk3).

> Some parts of Mate have apparently been ported to GTK 3.  I'm not sure.

Yes, see above.

> > If newer versions of GTK are lousy, and the other options also have
> > bad problems, maybe this is the best.
> 
> I guess we could take up maintenance of GTK 2.  But it would still be a
> lot of work.

Indeed. Possibly comparable to making Lucid "nice". Don't know.

Cheers

[1] https://en.wikipedia.org/wiki/MATE_(software)
[2] https://git.mate-desktop.org/

-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:25             ` Tim Cross
@ 2022-08-24  4:37               ` tomas
  2022-08-24  7:52                 ` Tim Cross
  2022-08-24  4:58               ` Po Lu
  2022-08-26  3:36               ` Richard Stallman
  2 siblings, 1 reply; 267+ messages in thread
From: tomas @ 2022-08-24  4:37 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 386 bytes --]

On Wed, Aug 24, 2022 at 02:25:14PM +1000, Tim Cross wrote:

[...]

> I think mate is still maintained. Both Ubuntu and Fedora have current
> versions of their distribution which is based on it. I think cinnamon is
> also based on GTK2?

It sure is. Stable release is one year old. Latest patches are weeks
old. It's alive.

But it moved to Gtk3, it seems.

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:25             ` Tim Cross
  2022-08-24  4:37               ` tomas
@ 2022-08-24  4:58               ` Po Lu
  2022-08-26  3:36               ` Richard Stallman
  2 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24  4:58 UTC (permalink / raw)
  To: Tim Cross; +Cc: rms, larsi, emacs-devel

Tim Cross <theophilusx@gmail.com> writes:

> I think mate is still maintained. Both Ubuntu and Fedora have current
> versions of their distribution which is based on it. I think cinnamon is
> also based on GTK2?

Cinnamon is a fork of GNOME 3, based on GTK 3.  I looked it up and Mate
has been ported to GTK 3 as well.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:06                     ` Eli Zaretskii
  2022-08-23 16:10                       ` Lars Ingebrigtsen
@ 2022-08-24  6:38                       ` Gerd Möllmann
  2022-08-24 11:08                         ` Eli Zaretskii
  1 sibling, 1 reply; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-24  6:38 UTC (permalink / raw)
  To: Eli Zaretskii, Lars Ingebrigtsen; +Cc: emacs-devel, luangruo


[-- Attachment #1.1.1: Type: text/plain, Size: 845 bytes --]


On 22-08-23 18:06 , Eli Zaretskii wrote:
>> From: Lars Ingebrigtsen <larsi@gnus.org>
>> Cc: eliz@gnu.org,  emacs-devel@gnu.org,  luangruo@yahoo.com
>> Date: Tue, 23 Aug 2022 16:43:40 +0200
>>
>> The most recalcitrant thing is ./configure, of course -- it's
>> single-threaded.
> Are you using -C ?  It makes the configure script fly.  Most of the
> changes in the script nowadays don't need a full reconfiguration, and
> seldom even add new variables.
>
Interesting.   How are you using --config-cache?

I tried here two './configure --config-cache --with-native-compilation' 
in a row (no config.cache initially), and the second run failed because 
of something I don't understand.  Basically, it first says libgccjit.h 
found, and then fails because it can't find libgccjit.h.

Is this a bug, or am I doing it wrong?


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3211 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:37               ` tomas
@ 2022-08-24  7:52                 ` Tim Cross
  0 siblings, 0 replies; 267+ messages in thread
From: Tim Cross @ 2022-08-24  7:52 UTC (permalink / raw)
  To: tomas; +Cc: emacs-devel


<tomas@tuxteam.de> writes:

> [[PGP Signed Part:Undecided]]
> On Wed, Aug 24, 2022 at 02:25:14PM +1000, Tim Cross wrote:
>
> [...]
>
>> I think mate is still maintained. Both Ubuntu and Fedora have current
>> versions of their distribution which is based on it. I think cinnamon is
>> also based on GTK2?
>
> It sure is. Stable release is one year old. Latest patches are weeks
> old. It's alive.
>
> But it moved to Gtk3, it seems.
>

OK, good to know. I switched away from matge when I moved to fedora,
selecting the xfce spin instead as I realise, I just want something
simple and light. 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:18     ` Po Lu
@ 2022-08-24  8:52       ` Robert Pluim
  2022-08-26  3:36       ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Robert Pluim @ 2022-08-24  8:52 UTC (permalink / raw)
  To: Po Lu; +Cc: Richard Stallman, relekarpayas, larsi, gregory, emacs-devel

>>>>> On Wed, 24 Aug 2022 12:18:38 +0800, Po Lu <luangruo@yahoo.com> said:

    Po Lu> The most glaring one is the inability to position toplevel windows
    Po Lu> manually, for "security reasons".  The developers don't want to fix it.

I thought it was because the Wayland people have a philosophical
objection to programs knowing anything about the coordinate system in
use. Either way, they donʼt even see it as a problem that needs
fixing.

Robert
-- 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  3:52                   ` Richard Stallman
@ 2022-08-24  8:57                     ` Robert Pluim
  2022-08-24 10:43                       ` Po Lu
                                         ` (2 more replies)
  0 siblings, 3 replies; 267+ messages in thread
From: Robert Pluim @ 2022-08-24  8:57 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Lynn Winebarger, luangruo, ofv, emacs-devel

>>>>> On Tue, 23 Aug 2022 23:52:58 -0400, Richard Stallman <rms@gnu.org> said:

    Richard> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
    Richard> [[[ whether defending the US Constitution against all enemies,     ]]]
    Richard> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]

    >> > Requiring a C++ compiler to build Emacs is a big practical
    >> > disadvantage.  Including C++ code in Emacs will be an obstacle for
    >> > people such as me to debug or write code.

    >> Could you elaborate on why this is an issue

    Richard> C++ is a complex language.  I don't want Emacs to require developers
    Richard> to know C++.

Meh. C-with-macros as used all over Emacs is complex as well, and also
requires learning. Iʼm neither a C++ fanboy nor an expert in "modern"
C++, but if it can be used to reduce complexity Iʼm all for it. GDB
seems to have had some success with it.

    Richard>                                                 when C++ infrastructure
    >> (including GNU C++ infrastructure) is so widely available?

    Richard> I'm sure there will be some users for which getting that running is a
    Richard> hassle.  It may be a minority, in which case this would be a secondary
    Richard> problem.  Maybe this by itself would not be enough of a reason not to
    Richard> use C++.

I canʼt think of a major platform for Emacs which doesnʼt have a C++
compiler (MS-DOS maybe?)

Robert
-- 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 16:24                         ` Eli Zaretskii
@ 2022-08-24 10:11                           ` Lars Ingebrigtsen
  2022-08-24 11:18                             ` Eli Zaretskii
  2022-08-24 12:13                             ` Po Lu
  0 siblings, 2 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 10:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gerd.moellmann, emacs-devel, luangruo

Eli Zaretskii <eliz@gnu.org> writes:

> AFAIR, once you configure with -C, subsequent bootstraps also use -C
> (I think).

I tried that now, but it didn't seem to work, so I guess that bootstrap
is deleting the cache file or something?  But having this would indeed
be very useful.  I.e., a variant of "make bootstrap" that has a very
fast ./configure -- that'd shave a third off the time it takes for me to
check for build issues.  A "bootstrap-fast" target or something?

Anybody know what it'd take to make that happen?




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 17:10                     ` Stefan Monnier
@ 2022-08-24 10:14                       ` Lars Ingebrigtsen
  2022-08-24 10:46                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 10:14 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Gerd Möllmann, eliz, emacs-devel, luangruo

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> I think the better direction is to add a Make-based step into
> autoconf, which at first would only contain a single rule running the
> original big-heap-of-checks then bit-by-bit split the different checks
> into separate rules so they can be run in parallel.

Hm...  what would this look like in practice?  Would we have a bunch of
configure.ac files -- configure-os.ac, configure-toolkit.ac, etc? 

(Which might be nice in any case, since the configure.ac file we have is
rather large.)

And then the Makefile would run the different configure bash scripts in
parallel?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  8:57                     ` Robert Pluim
@ 2022-08-24 10:43                       ` Po Lu
  2022-08-24 11:24                         ` Eli Zaretskii
  2022-08-24 11:17                       ` Eli Zaretskii
  2022-08-25  6:25                       ` Gerd Möllmann
  2 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24 10:43 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Richard Stallman, Lynn Winebarger, ofv, emacs-devel

Robert Pluim <rpluim@gmail.com> writes:

> Meh. C-with-macros as used all over Emacs is complex as well, and also
> requires learning. Iʼm neither a C++ fanboy nor an expert in "modern"
> C++, but if it can be used to reduce complexity Iʼm all for it. GDB
> seems to have had some success with it.

FWIW, I object to requiring C++ for the build, simply because it's not a
language I know very well.  But there is nothing wrong with implementing
a GUI backend in C++: we already require non-C languages for both the
Nextstep and Haiku window systems.

> I canʼt think of a major platform for Emacs which doesnʼt have a C++
> compiler (MS-DOS maybe?)

DJGPP supports C++, but I have no idea if its C++ library is
unexec-ready (the MS-DOS build only supports unexec.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:14                       ` Lars Ingebrigtsen
@ 2022-08-24 10:46                         ` Po Lu
  2022-08-24 10:48                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24 10:46 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Hm...  what would this look like in practice?  Would we have a bunch of
> configure.ac files -- configure-os.ac, configure-toolkit.ac, etc? 
                                                   ^^^^^^^^^^

This is going to be a major pain in the neck to untangle from a future
configure-os.ac, so I suggest setting several weeks aside before you
attempt that.

One major problem will be the inability to find obscure systems
(i.e. Solaris 10, but with missing XkbFreeNames) on which the resulting
changes can be tested.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:46                         ` Po Lu
@ 2022-08-24 10:48                           ` Lars Ingebrigtsen
  2022-08-24 11:15                             ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 10:48 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> One major problem will be the inability to find obscure systems
> (i.e. Solaris 10, but with missing XkbFreeNames) on which the resulting
> changes can be tested.

I don't understand your point.  This is just about splitting up the
configure tests so they can be run in parallel.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  6:38                       ` Gerd Möllmann
@ 2022-08-24 11:08                         ` Eli Zaretskii
  2022-08-24 11:51                           ` Gerd Möllmann
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 11:08 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: larsi, emacs-devel, luangruo

> Date: Wed, 24 Aug 2022 08:38:38 +0200
> Cc: emacs-devel@gnu.org, luangruo@yahoo.com
> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> 
> On 22-08-23 18:06 , Eli Zaretskii wrote:
> >> From: Lars Ingebrigtsen <larsi@gnus.org>
> >> Cc: eliz@gnu.org,  emacs-devel@gnu.org,  luangruo@yahoo.com
> >> Date: Tue, 23 Aug 2022 16:43:40 +0200
> >>
> >> The most recalcitrant thing is ./configure, of course -- it's
> >> single-threaded.
> > Are you using -C ?  It makes the configure script fly.  Most of the
> > changes in the script nowadays don't need a full reconfiguration, and
> > seldom even add new variables.
> >
> Interesting.   How are you using --config-cache?

I just make a point of using it the first time I build a new
worktree.  Thereafter, I just use "make", and if it needs to re-run
configure, it uses -C automatically.

> I tried here two './configure --config-cache --with-native-compilation' 
> in a row (no config.cache initially), and the second run failed because 
> of something I don't understand.  Basically, it first says libgccjit.h 
> found, and then fails because it can't find libgccjit.h.
> 
> Is this a bug, or am I doing it wrong?

It's some kind of bug, but I'm not sure where.  I have this from time
to time on one particular system where I regularly build Emacs, but
not on others.  Usually, a second "make" right after that succeeds.

I always thought that it's because some system-wide snafu unrelated to
Emacs on that single system.  But now I'm not so sure.

(There's no longer any need to run 'configure', except, perhaps, the
first time you build a clean clone.  Just "make" does everything,
including running autogen.sh and the configure script, if needed.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:48                           ` Lars Ingebrigtsen
@ 2022-08-24 11:15                             ` Po Lu
  2022-08-24 11:17                               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24 11:15 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I don't understand your point.  This is just about splitting up the
> configure tests so they can be run in parallel.

The toolkit tests are deeply integrated with the OS tests.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  8:57                     ` Robert Pluim
  2022-08-24 10:43                       ` Po Lu
@ 2022-08-24 11:17                       ` Eli Zaretskii
  2022-08-25  6:25                       ` Gerd Möllmann
  2 siblings, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 11:17 UTC (permalink / raw)
  To: Robert Pluim; +Cc: rms, owinebar, luangruo, ofv, emacs-devel

> From: Robert Pluim <rpluim@gmail.com>
> Cc: Lynn Winebarger <owinebar@gmail.com>,  luangruo@yahoo.com,
>  ofv@wanadoo.es,  emacs-devel@gnu.org
> Date: Wed, 24 Aug 2022 10:57:36 +0200
> 
> I canʼt think of a major platform for Emacs which doesnʼt have a C++
> compiler (MS-DOS maybe?)

What is called "MS-DOS" in this context uses GCC, so certainly it has
a C++ compiler, which is part of the GCC suite.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:15                             ` Po Lu
@ 2022-08-24 11:17                               ` Lars Ingebrigtsen
  2022-08-24 12:13                                 ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 11:17 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> The toolkit tests are deeply integrated with the OS tests.

Oh, you're complaining about example file names for a system that
doesn't exist but that we're brainstorming.  Check.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:11                           ` Lars Ingebrigtsen
@ 2022-08-24 11:18                             ` Eli Zaretskii
  2022-08-24 11:30                               ` Lars Ingebrigtsen
  2022-08-24 12:13                             ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 11:18 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: gerd.moellmann, emacs-devel, luangruo

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: gerd.moellmann@gmail.com,  emacs-devel@gnu.org,  luangruo@yahoo.com
> Date: Wed, 24 Aug 2022 12:11:34 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > AFAIR, once you configure with -C, subsequent bootstraps also use -C
> > (I think).
> 
> I tried that now, but it didn't seem to work, so I guess that bootstrap
> is deleting the cache file or something?  But having this would indeed
> be very useful.  I.e., a variant of "make bootstrap" that has a very
> fast ./configure -- that'd shave a third off the time it takes for me to
> check for build issues.  A "bootstrap-fast" target or something?
> 
> Anybody know what it'd take to make that happen?

Don't delete config.cache?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  0:50                                     ` Po Lu
@ 2022-08-24 11:19                                       ` Lars Ingebrigtsen
  2022-08-24 12:17                                         ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 11:19 UTC (permalink / raw)
  To: Po Lu; +Cc: Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> Can you pick it out of the spam bucket or should I resend to some other
>> address?
>
> I don't know.  It eventually shows up.

I don't know what you mean by that, either, so I'll just ask you here --
since you don't have a HiDPI system, do you want my previous laptop?
It's a Lenovo Carbon X1 (8th gen, I think) with a 4K screen?  If so, I
can send it to you.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:43                       ` Po Lu
@ 2022-08-24 11:24                         ` Eli Zaretskii
  0 siblings, 0 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 11:24 UTC (permalink / raw)
  To: Po Lu; +Cc: rpluim, rms, owinebar, ofv, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Richard Stallman <rms@gnu.org>,  Lynn Winebarger <owinebar@gmail.com>,
>  ofv@wanadoo.es,  emacs-devel@gnu.org
> Date: Wed, 24 Aug 2022 18:43:20 +0800
> 
> > I canʼt think of a major platform for Emacs which doesnʼt have a C++
> > compiler (MS-DOS maybe?)
> 
> DJGPP supports C++, but I have no idea if its C++ library is
> unexec-ready (the MS-DOS build only supports unexec.)

That C++ library is GNU libstdc++, nothing less, nothing more.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:18                             ` Eli Zaretskii
@ 2022-08-24 11:30                               ` Lars Ingebrigtsen
  2022-08-24 11:47                                 ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 11:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gerd.moellmann, emacs-devel, luangruo

Eli Zaretskii <eliz@gnu.org> writes:

> Don't delete config.cache?

Oh, that was simple.

Would a new target make sense, or a variable?  Like
"make FAST=true bootstrap"?  The latter seems slightly easier to
implement, and we're using variables to tweak other parts of the build.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:30                               ` Lars Ingebrigtsen
@ 2022-08-24 11:47                                 ` Eli Zaretskii
  2022-08-24 12:16                                   ` Stefan Monnier
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 11:47 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: gerd.moellmann, emacs-devel, luangruo

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: gerd.moellmann@gmail.com,  emacs-devel@gnu.org,  luangruo@yahoo.com
> Date: Wed, 24 Aug 2022 13:30:48 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Don't delete config.cache?
> 
> Oh, that was simple.
> 
> Would a new target make sense, or a variable?

Yes, I think so.

> Like "make FAST=true bootstrap"?  The latter seems slightly easier
> to implement, and we're using variables to tweak other parts of the
> build.

I think a variable should be fine, as this is mainly of interest for
people who bootstrap a lot.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:08                         ` Eli Zaretskii
@ 2022-08-24 11:51                           ` Gerd Möllmann
  2022-08-24 12:01                             ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-24 11:51 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, emacs-devel, luangruo

On 22-08-24 13:08 , Eli Zaretskii wrote:
>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Interesting.   How are you using --config-cache?
> 
> I just make a point of using it the first time I build a new
> worktree.  Thereafter, I just use "make", and if it needs to re-run
> configure, it uses -C automatically.

Thanks for the explanation!

I see it now in Makefile, which has cache_file=...  After autogen.sh, 
it's /dev/null, but after an additional './configure --config-cache 
--with-native-compilation', cache_file equals config.cache.

I couldn't see a way to set the cache_file with autogen.sh, but anyway 
that's not too bad.

>> Is this a bug, or am I doing it wrong?
> 
> It's some kind of bug, but I'm not sure where.  I have this from time
> to time on one particular system where I regularly build Emacs, but
> not on others.  Usually, a second "make" right after that succeeds.
> 
> I always thought that it's because some system-wide snafu unrelated to
> Emacs on that single system.  But now I'm not so sure.

I guess it's indeed a bug.  When I

touch configure
make

it says

running CONFIG_SHELL=/bin/sh /bin/sh ./configure --config-cache 
--with-native-compilation --no-create --no-recursion

and fails in the same way as described before.

I'll submit a bug for that.





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:51                           ` Gerd Möllmann
@ 2022-08-24 12:01                             ` Eli Zaretskii
  2022-08-24 12:04                               ` Gerd Möllmann
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 12:01 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: larsi, emacs-devel, luangruo

> Date: Wed, 24 Aug 2022 13:51:16 +0200
> Cc: larsi@gnus.org, emacs-devel@gnu.org, luangruo@yahoo.com
> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> 
> > It's some kind of bug, but I'm not sure where.  I have this from time
> > to time on one particular system where I regularly build Emacs, but
> > not on others.  Usually, a second "make" right after that succeeds.
> > 
> > I always thought that it's because some system-wide snafu unrelated to
> > Emacs on that single system.  But now I'm not so sure.
> 
> I guess it's indeed a bug.  When I
> 
> touch configure
> make
> 
> it says
> 
> running CONFIG_SHELL=/bin/sh /bin/sh ./configure --config-cache 
> --with-native-compilation --no-create --no-recursion
> 
> and fails in the same way as described before.

And if you say "make" again, does it still fail?

It sounds like this is something macOS-specific, because for me on
that single system it fails only rarely, and the next "make" usually
succeeds.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:01                             ` Eli Zaretskii
@ 2022-08-24 12:04                               ` Gerd Möllmann
  2022-08-24 12:19                                 ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-24 12:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, emacs-devel, luangruo

On 22-08-24 14:01 , Eli Zaretskii wrote:
> And if you say "make" again, does it still fail?

Yes.

> It sounds like this is something macOS-specific, because for me on
> that single system it fails only rarely, and the next "make" usually
> succeeds.

It that also --with-native-compilation?  Perhaps it's specific to that 
part of configure.ac.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:17                               ` Lars Ingebrigtsen
@ 2022-08-24 12:13                                 ` Po Lu
  2022-08-24 12:20                                   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24 12:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Oh, you're complaining about example file names for a system that
> doesn't exist but that we're brainstorming.  Check.

What?

I'm saying that it will be a significant work to split the toolkit tests
from the operating system tests.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 10:11                           ` Lars Ingebrigtsen
  2022-08-24 11:18                             ` Eli Zaretskii
@ 2022-08-24 12:13                             ` Po Lu
  2022-08-24 12:16                               ` Gerd Möllmann
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-24 12:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, gerd.moellmann, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I tried that now, but it didn't seem to work, so I guess that bootstrap
> is deleting the cache file or something?  But having this would indeed
> be very useful.  I.e., a variant of "make bootstrap" that has a very
> fast ./configure -- that'd shave a third off the time it takes for me to
> check for build issues.  A "bootstrap-fast" target or something?

I normally build with --cache-file=/tmp/ccache, which seems to survive
"make bootstrap".



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:13                             ` Po Lu
@ 2022-08-24 12:16                               ` Gerd Möllmann
  0 siblings, 0 replies; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-24 12:16 UTC (permalink / raw)
  To: Po Lu, Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel

On 22-08-24 14:13 , Po Lu wrote:
> I normally build with --cache-file=/tmp/ccache, which seems to survive
> "make bootstrap".

Right, I've seen that in Makefile.in.  It deletes config.cache and not 
${cache_file}.  If that's intentional... :-).



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:47                                 ` Eli Zaretskii
@ 2022-08-24 12:16                                   ` Stefan Monnier
  2022-08-24 12:19                                     ` Lars Ingebrigtsen
  2022-08-24 12:35                                     ` Eli Zaretskii
  0 siblings, 2 replies; 267+ messages in thread
From: Stefan Monnier @ 2022-08-24 12:16 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, gerd.moellmann, emacs-devel, luangruo

> I think a variable should be fine, as this is mainly of interest for
> people who bootstrap a lot.

I don't see any need for a variable.  Those who want the `config.cache`
to be removed can either refrain from using one in the first place, or
remove it by hand.
This file is only used/generated upon explicit request.


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 11:19                                       ` Lars Ingebrigtsen
@ 2022-08-24 12:17                                         ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24 12:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I don't know what you mean by that, either, so I'll just ask you here --
> since you don't have a HiDPI system, do you want my previous laptop?

Unfortunately no, since it's rather difficult for me to receive parcels
from outside the country.  I will probably get such hardware before the
end of the year.

> It's a Lenovo Carbon X1 (8th gen, I think) with a 4K screen?  If so, I
> can send it to you.

The offer however is appreciated, thanks!



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:04                               ` Gerd Möllmann
@ 2022-08-24 12:19                                 ` Eli Zaretskii
  2022-08-24 12:22                                   ` Gerd Möllmann
  0 siblings, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 12:19 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: larsi, emacs-devel, luangruo

> Date: Wed, 24 Aug 2022 14:04:36 +0200
> Cc: larsi@gnus.org, emacs-devel@gnu.org, luangruo@yahoo.com
> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> 
> > It sounds like this is something macOS-specific, because for me on
> > that single system it fails only rarely, and the next "make" usually
> > succeeds.
> 
> It that also --with-native-compilation?

Yes, of course.  Otherwise the libgccjit test, which is the one that
fails, is never run by configure, not at all.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:16                                   ` Stefan Monnier
@ 2022-08-24 12:19                                     ` Lars Ingebrigtsen
  2022-08-24 12:23                                       ` Stefan Monnier
  2022-08-24 12:35                                     ` Eli Zaretskii
  1 sibling, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 12:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Eli Zaretskii, gerd.moellmann, emacs-devel, luangruo

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> I don't see any need for a variable.  Those who want the `config.cache`
> to be removed can either refrain from using one in the first place, or
> remove it by hand.

It's nice that you can tell users to say "make bootstrap" and then the
tree returns to a known state (because we have many build issues that
are fixed by just that).  So I think we want to keep removing the
config.cache.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:13                                 ` Po Lu
@ 2022-08-24 12:20                                   ` Lars Ingebrigtsen
  2022-08-24 12:36                                     ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-24 12:20 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> I'm saying that it will be a significant work to split the toolkit tests
> from the operating system tests.

I have not suggested doing so.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:19                                 ` Eli Zaretskii
@ 2022-08-24 12:22                                   ` Gerd Möllmann
  0 siblings, 0 replies; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-24 12:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, emacs-devel, luangruo

On 22-08-24 14:19 , Eli Zaretskii wrote:
> Yes, of course.  Otherwise the libgccjit test, which is the one that
> fails, is never run by configure, not at all.

Thanks.  I guess that narrows it down to where brew is used in the 
libgccjit part of configure.ac.  I'll take a look.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:19                                     ` Lars Ingebrigtsen
@ 2022-08-24 12:23                                       ` Stefan Monnier
  2022-08-25 12:03                                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Stefan Monnier @ 2022-08-24 12:23 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, gerd.moellmann, emacs-devel, luangruo

Lars Ingebrigtsen [2022-08-24 14:19:49] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> I don't see any need for a variable.  Those who want the `config.cache`
>> to be removed can either refrain from using one in the first place, or
>> remove it by hand.
>
> It's nice that you can tell users to say "make bootstrap" and then the
> tree returns to a known state (because we have many build issues that
> are fixed by just that).  So I think we want to keep removing the
> config.cache.

Those users who use `-C` should know what to do.
And the argument against using a variable works the other way as well:
if you really want to keep your config.cache file, then just
use `--cache-file=config.cache.says`.


        Stefan




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23 15:29                     ` Óscar Fuentes
@ 2022-08-24 12:35                       ` Andrea Corallo
  2022-08-24 12:57                         ` Óscar Fuentes
  2022-08-24 13:00                         ` Visuwesh
  0 siblings, 2 replies; 267+ messages in thread
From: Andrea Corallo @ 2022-08-24 12:35 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>> I wonder whether anybody has looked into switching to a different build
>> system?
>
> Long time ago I volunteered to create a CMake-based build system and
> even experimented a bit to the point of dumping emacs. Almost all of the
> work consisted on implementing the platform checks.
>
> CMake has the advantage of supporting multiple "backends" for the build
> phase, and `ninja' provides a significant speed-up over `make' on large
> projects.

Using ninja would translate into an hard dependency on python and I
don't think this is acceptable.  Also I'm not really sure ninja is
faster than make.

BR

  Andrea



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:16                                   ` Stefan Monnier
  2022-08-24 12:19                                     ` Lars Ingebrigtsen
@ 2022-08-24 12:35                                     ` Eli Zaretskii
  2022-08-25 12:07                                       ` Lars Ingebrigtsen
  1 sibling, 1 reply; 267+ messages in thread
From: Eli Zaretskii @ 2022-08-24 12:35 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: larsi, gerd.moellmann, emacs-devel, luangruo

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Lars Ingebrigtsen <larsi@gnus.org>,  gerd.moellmann@gmail.com,
>   emacs-devel@gnu.org,  luangruo@yahoo.com
> Date: Wed, 24 Aug 2022 08:16:59 -0400
> 
> > I think a variable should be fine, as this is mainly of interest for
> > people who bootstrap a lot.
> 
> I don't see any need for a variable.  Those who want the `config.cache`
> to be removed can either refrain from using one in the first place, or
> remove it by hand.
> This file is only used/generated upon explicit request.

I think "make distclean" ought to remove the cache, and bootstrap
invokes that, either directly or indirectly.  So if we want to avoid
deleting the cache during bootstrap, we'd need to make it independent
of distclean.

And I'm not sure people who bootstrap won't be surprised by such a
change (but then I almost never bootstrap).

So, all in all, I think Lars's proposal is safer.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:20                                   ` Lars Ingebrigtsen
@ 2022-08-24 12:36                                     ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24 12:36 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Monnier, Gerd Möllmann, eliz, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>> I'm saying that it will be a significant work to split the toolkit tests
>> from the operating system tests.
>
> I have not suggested doing so.

I guess I misunderstood you then, sorry for that.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:35                       ` Andrea Corallo
@ 2022-08-24 12:57                         ` Óscar Fuentes
  2022-08-24 13:00                         ` Visuwesh
  1 sibling, 0 replies; 267+ messages in thread
From: Óscar Fuentes @ 2022-08-24 12:57 UTC (permalink / raw)
  To: emacs-devel

Andrea Corallo <akrl@sdf.org> writes:

>> CMake has the advantage of supporting multiple "backends" for the build
>> phase, and `ninja' provides a significant speed-up over `make' on large
>> projects.
>
> Using ninja would translate into an hard dependency on python and I
> don't think this is acceptable.  Also I'm not really sure ninja is
> faster than make.

Ninja does not depend on Python, maybe you are confusing it with some
other system.

The performance advantage of ninja over make is a well stablished fact.
For LLVM the difference is quite substantial, discovering that
precipitated the phasing out of the configure&make build and the
transition to the cmake-based build after years of being a second-class
system.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:35                       ` Andrea Corallo
  2022-08-24 12:57                         ` Óscar Fuentes
@ 2022-08-24 13:00                         ` Visuwesh
  2022-08-24 13:42                           ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Visuwesh @ 2022-08-24 13:00 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Óscar Fuentes, emacs-devel

[புதன் ஆகஸ்ட் 24, 2022] Andrea Corallo wrote:

>
> Óscar Fuentes <ofv@wanadoo.es> writes:
>
>> Lars Ingebrigtsen <larsi@gnus.org> writes:
>>
>>> I wonder whether anybody has looked into switching to a different build
>>> system?
>>
>> Long time ago I volunteered to create a CMake-based build system and
>> even experimented a bit to the point of dumping emacs. Almost all of the
>> work consisted on implementing the platform checks.
>>
>> CMake has the advantage of supporting multiple "backends" for the build
>> phase, and `ninja' provides a significant speed-up over `make' on large
>> projects.
>
> Using ninja would translate into an hard dependency on python and I
> don't think this is acceptable.  Also I'm not really sure ninja is
> faster than make.

FWIW, there is a C implementation of ninja called samurai:
https://github.com/michaelforney/samurai.

There is also a C implantation of meson called muon:
https://sr.ht/~lattis/muon/.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 13:00                         ` Visuwesh
@ 2022-08-24 13:42                           ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-24 13:42 UTC (permalink / raw)
  To: Visuwesh; +Cc: Andrea Corallo, Óscar Fuentes, emacs-devel

Visuwesh <visuweshm@gmail.com> writes:

> FWIW, there is a C implementation of ninja called samurai:
> https://github.com/michaelforney/samurai.
>
> There is also a C implantation of meson called muon:
> https://sr.ht/~lattis/muon/.

Let's not hurry to replace autoconf.

autoconf and gmake work well enough -- they are part of the GNU project,
and allow GNU programs to be installed in a single, unified way:

  ./configure --prefix=/usr
  make install

It would be a shame for Emacs, the flagship of the GNU project, to
abandon the standard installation procedure for a GNU program.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  5:14                                     ` Po Lu
  2022-08-23 11:51                                       ` Eli Zaretskii
@ 2022-08-25  3:32                                       ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-25  3:32 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > But after some investigation, I've come to the conclusion that no
  > toolkit will be able to replace the hand-crafted Emacs X11 support,
  > especially in very tricky areas such as drag-and-drop and selections.

This state of affairs is a big loss for the free software world.
We (in the broadest sense) ought to do something about it.

Would you like to write an article describing the drawbacks of each of
the available toolkits?  Basically, the information that has come up
in this discussion, but combined and presented in one place.

In addition to the specific technical failures, it would be good to
mention for Qt the license problem and C++ requirement.  The C++
requirement may not be a disaster, but it is a drawback.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  4:02                 ` Po Lu
@ 2022-08-25  3:32                   ` Richard Stallman
  2022-08-25  4:18                     ` Po Lu
  0 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-25  3:32 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Basically, the file provides a C wrapper around C++ functions.

I can understand that in a general conceptual sense,
but would you please show me how ONE function is handled,
in the various files, and explain the crucial things in it?
Including the C++ constructs that are used?  I don't know C++.

  > Basically, the file provides a C wrapper around C++ functions.

Are the C++ functions all external to Emacs?
Exported by the operating system?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  2:47               ` Po Lu
@ 2022-08-25  3:33                 ` Richard Stallman
  0 siblings, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-25  3:33 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > GTK's copyright is not assigned to the FSF.

That is not an obstacle, as long as we keep that module separate
and we clearly show that it is not part of GNU Emacs.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-25  3:32                   ` Richard Stallman
@ 2022-08-25  4:18                     ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-25  4:18 UTC (permalink / raw)
  To: Richard Stallman; +Cc: ofv, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I can understand that in a general conceptual sense,
> but would you please show me how ONE function is handled,
> in the various files, and explain the crucial things in it?
> Including the C++ constructs that are used?  I don't know C++.

Take the example of the extern "C" function BAlert_new:

/* Create a BAlert with TEXT.  */
void *
BAlert_new (const char *text, enum haiku_alert_type type)
{
  return new BAlert (NULL, text, NULL, NULL, NULL, B_WIDTH_AS_USUAL,
		     (enum alert_type) type);
}

it's a wrapper around the C++ constructor for the alert dialog class
"BAlert", and returns the result of the constructor (the new instance of
the C++ class) as a pointer to void.  Conceptually, it would be the same
as:

  pointer = malloc (sizeof BAlert);
  constructor_of_balert (pointer);

  return pointer;

Then, this extern "C" function takes the resulting void pointer and
deletes it, by calling the C++ destructor:

void
BAlert_delete (void *alert)
{
  delete (BAlert *) alert;
}

> Are the C++ functions all external to Emacs?
> Exported by the operating system?

Yes.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  8:57                     ` Robert Pluim
  2022-08-24 10:43                       ` Po Lu
  2022-08-24 11:17                       ` Eli Zaretskii
@ 2022-08-25  6:25                       ` Gerd Möllmann
  2022-08-25  6:52                         ` Po Lu
  2 siblings, 1 reply; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-25  6:25 UTC (permalink / raw)
  To: rpluim; +Cc: emacs-devel, luangruo, ofv, owinebar, rms

 > Meh. C-with-macros as used all over Emacs is complex as well, and also
 > requires learning.

+1

 > Iʼm neither a C++ fanboy nor an expert in "modern"
 > C++, but if it can be used to reduce complexity Iʼm all for it. GDB
 > seems to have had some success with it.

I'm also far fromt a fanboy.  I think I see this from a practical 
standpoint and I agree fully with GCC and GDB folks.  To quote a slide
from Ian Lance Taylor (Write gcc in C++, 2008)

- C++ is a standardized, well known, popular language.
- C++ is nearly a superset of C90 used in gcc.
- The C subset of C++ is just as efficient as C.
- C++ supports cleaner code in several significant cases.
- C++ makes it easier to write cleaner interfaces by making it harder to 
break interface boundaries.
- C++ never requires uglier code.
- C++ is not a panacea but it is an improvement.

Take a look at xdisp.c, and imagine what that will look like in another 
20 years if nothing happens.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-25  6:25                       ` Gerd Möllmann
@ 2022-08-25  6:52                         ` Po Lu
  2022-08-25  6:57                           ` Gerd Möllmann
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-25  6:52 UTC (permalink / raw)
  To: Gerd Möllmann; +Cc: rpluim, emacs-devel, ofv, owinebar, rms

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> Take a look at xdisp.c, and imagine what that will look like in
> another 20 years if nothing happens.

I don't quite believe that C++ will make it look any better, without
someone doing the work to clean it up.  Which might as well be done in
C.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-25  6:52                         ` Po Lu
@ 2022-08-25  6:57                           ` Gerd Möllmann
  0 siblings, 0 replies; 267+ messages in thread
From: Gerd Möllmann @ 2022-08-25  6:57 UTC (permalink / raw)
  To: Po Lu; +Cc: rpluim, emacs-devel, ofv, owinebar, rms

On 22-08-25 8:52 , Po Lu wrote:
> Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> 
>> Take a look at xdisp.c, and imagine what that will look like in
>> another 20 years if nothing happens.
> 
> I don't quite believe that C++ will make it look any better, without
> someone doing the work to clean it up.  Which might as well be done in
> C.

Obviously I disagree, and I might add that I know both C++ and xdisp.c 
quite well.  Xdisp.c not as well as I once did, but anyway.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:23                                       ` Stefan Monnier
@ 2022-08-25 12:03                                         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-25 12:03 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Eli Zaretskii, gerd.moellmann, emacs-devel, luangruo

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Those users who use `-C` should know what to do.
> And the argument against using a variable works the other way as well:
> if you really want to keep your config.cache file, then just
> use `--cache-file=config.cache.says`.

That's a good point.  OK, I've moved the config.cache deletion from
bootstrap-clean to maintainer/extraclean.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24 12:35                                     ` Eli Zaretskii
@ 2022-08-25 12:07                                       ` Lars Ingebrigtsen
  2022-08-25 12:19                                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-25 12:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stefan Monnier, gerd.moellmann, emacs-devel, luangruo

Eli Zaretskii <eliz@gnu.org> writes:

> I think "make distclean" ought to remove the cache, and bootstrap
> invokes that, either directly or indirectly.  So if we want to avoid
> deleting the cache during bootstrap, we'd need to make it independent
> of distclean.
>
> And I'm not sure people who bootstrap won't be surprised by such a
> change (but then I almost never bootstrap).
>
> So, all in all, I think Lars's proposal is safer.

Sorry, I made the change without reading all the messages in the thread.

These are also good points, so I've now reverted the change.  (Or rather,
I didn't push it yet, so I just unwound the commit.)



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-25 12:07                                       ` Lars Ingebrigtsen
@ 2022-08-25 12:19                                         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 267+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-25 12:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stefan Monnier, gerd.moellmann, emacs-devel, luangruo

Specifying an external cache file is also possible, of course, but it's
fiddly -- if you have many trees, you have to set up a system to have
one external cache file per tree.

So I've now pushed the FAST=true version.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-23  3:46       ` Richard Stallman
  2022-08-23 15:08         ` Visuwesh
@ 2022-08-25 16:01         ` Rudolf Adamkovič
  2022-08-26  1:29           ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Rudolf Adamkovič @ 2022-08-25 16:01 UTC (permalink / raw)
  To: rms, Visuwesh; +Cc: larsi, luangruo, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Perhaps the question we should be studying is, "Which is the easiest
> path to making Emacs handle graphical display well?"

+1 We should look at the big picture and keep the discussion going until
we know where to go long-term.  Further, why not look at the other free
projects that have solved the problem already?

For example, I keep hearing about how Blender does a fantastic job with
their UI, which is multi-platform and yet highly praised.  The UI caters
perfectly to the program and to the people who use it.  That aligns with
the "Emacs way" more than fighting GUI frameworks that keep changing
with UX fashion like Gnome and GTK do, in my opinion.

The Blender website says:

> All the components that together make Blender are compatible under the
> newer GNU GPL Version 3. That is also the license to use for any
> distribution of Blender binaries.

Could we learn anything from Blender?  Obviously, Emacs has different
requirements, such as a more advanced "text view" component, but what
about the rest?

Rudy
-- 
"'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and
if it were so, it would be; but as it isn't, it ain't.  That's logic.'"
-- Lewis Carroll, Through the Looking Glass, 1871/1872

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-25 16:01         ` Rudolf Adamkovič
@ 2022-08-26  1:29           ` Po Lu
  0 siblings, 0 replies; 267+ messages in thread
From: Po Lu @ 2022-08-26  1:29 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: rms, Visuwesh, larsi, emacs-devel

Rudolf Adamkovič <salutis@me.com> writes:

> +1 We should look at the big picture and keep the discussion going until
> we know where to go long-term.  Further, why not look at the other free
> projects that have solved the problem already?
>
> For example, I keep hearing about how Blender does a fantastic job with
> their UI, which is multi-platform and yet highly praised.  The UI caters
> perfectly to the program and to the people who use it.  That aligns with
> the "Emacs way" more than fighting GUI frameworks that keep changing
> with UX fashion like Gnome and GTK do, in my opinion.

[...]

> Could we learn anything from Blender?  Obviously, Emacs has different
> requirements, such as a more advanced "text view" component, but what
> about the rest?

I note that Blender has much more development momentum than Emacs, and
was one of the programs I tested while working on the drag-and-drop
support.

It has several big problems there, including only supporting version 3
of the XDND protocol (which is obsolete and most noticeably does not
work with other programs written with GTK+, both 2.x and 3.x), not
deleting XdndTypeList after the drag-and-drop operation completes, and
not deleting the property given in a SelectionNotify event after reading
it.

It also doesn't support frame resize synchronization, so resizing a
Blender window will make its contents lag behind the resize.  Compare
that to Emacs 29, under a compositing manager such as GNOME Shell.

Blender's menus are also a sore spot.  They do not grab the mouse or
workably extend outside the toplevel window boundaries, which makes
displaying long menus (think Help -> Describe -> Describe Language
Environment) very annoying.

The other fundamental difference between us and Blender is that Blender
is 3D animation software, and thus can afford all of these problems,
since graphics professionals will be running it fullscreen, not
alongside other programs on a desktop.  We can not, especially not when
every other text editor that does use a toolkit does all of that
correctly.

So, if a project as large as Blender cannot get it right, how is it
practical for us to do so?



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:18     ` Po Lu
  2022-08-24  8:52       ` Robert Pluim
@ 2022-08-26  3:36       ` Richard Stallman
  2022-08-26  4:34         ` Po Lu
  1 sibling, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-26  3:36 UTC (permalink / raw)
  To: Po Lu; +Cc: relekarpayas, larsi, gregory, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > That sounds like a serious flaw in Wayland.  Would its developers
  > > want to fix it?

  > Probably not.

Why not?

  > The most glaring one is the inability to position toplevel windows
  > manually, for "security reasons".

I don't quite understand -- what does it mean, concretely, to
"position toplevel windows manually"?  What are "toplevel windows" in
this context?  Is an Emacs frame a toplevel window?  Does this mean
that the user can't move an Emacs frame on the screen?

  > I thought it was because the Wayland people have a philosophical
  > objection to programs knowing anything about the coordinate system in
  > use.

What coordinate system is this about?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:20             ` Po Lu
  2022-08-24  4:34               ` tomas
@ 2022-08-26  3:36               ` Richard Stallman
  1 sibling, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-26  3:36 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > If newer versions of GTK are lousy, and the other options also have
  > > bad problems, maybe this is the best.

  > I guess we could take up maintenance of GTK 2.  But it would still be a
  > lot of work.

This is why I suggest that we systematically investigate the amount of
work in each of the alternative ways to get an adequate graphical
display library for Emacs, in an adequate desktop.  Then we can
compare them and see which one looks like the least work in total.

Then we'll simply have to get the job done.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-24  4:25             ` Tim Cross
  2022-08-24  4:37               ` tomas
  2022-08-24  4:58               ` Po Lu
@ 2022-08-26  3:36               ` Richard Stallman
  2022-08-26  5:26                 ` Tim Cross
  2 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-08-26  3:36 UTC (permalink / raw)
  To: Tim Cross; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > I think mate is still maintained.

Can you find out who some of the maintainers are, and tell me?

Are you talking about the version of Mate that works with GTK 2?
Or some newer version that requires GTK 3?

Might it be that Mate for GTK 3 is maintained but the Mate
I use, for GTK 2, is not?

We don't want Emacs to use GTK 3, but is it a problem
if the Mate programs use GTK 3 while Emacs uses GTK 2?

Is using Mate running with GTK 3 tantamount to using GNOME 3?
Or is it still like  GNOME 2?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-26  3:36       ` Richard Stallman
@ 2022-08-26  4:34         ` Po Lu
  2022-09-04  3:01           ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-26  4:34 UTC (permalink / raw)
  To: Richard Stallman; +Cc: relekarpayas, larsi, gregory, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Why not?

They object to it based on some poorly defined principle that is a
combination of "security" and something else I can't put my finger on.

>   > The most glaring one is the inability to position toplevel windows
>   > manually, for "security reasons".
>
> I don't quite understand -- what does it mean, concretely, to
> "position toplevel windows manually"?  What are "toplevel windows" in
> this context?  Is an Emacs frame a toplevel window?

Yes.

> Does this mean that the user can't move an Emacs frame on the screen?

No, this means functions like `set-frame-position' can't move the frame
on the screen.  The only way to move the frame is by the user dragging
it with the mouse.

>   > I thought it was because the Wayland people have a philosophical
>   > objection to programs knowing anything about the coordinate system in
>   > use.
>
> What coordinate system is this about?

The coordinate system of the screen.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-26  3:36               ` Richard Stallman
@ 2022-08-26  5:26                 ` Tim Cross
  2022-08-28  4:06                   ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Tim Cross @ 2022-08-26  5:26 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel


Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > I think mate is still maintained.
>
> Can you find out who some of the maintainers are, and tell me?
>
> Are you talking about the version of Mate that works with GTK 2?
> Or some newer version that requires GTK 3?
>
> Might it be that Mate for GTK 3 is maintained but the Mate
> I use, for GTK 2, is not?
>
> We don't want Emacs to use GTK 3, but is it a problem
> if the Mate programs use GTK 3 while Emacs uses GTK 2?
>
> Is using Mate running with GTK 3 tantamount to using GNOME 3?
> Or is it still like  GNOME 2?

Apparently it is still maintained, but it has now moved to GTK3. Both
Ubutnu and Fedora have versions of their distribution based on the
current mate desktop.




^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-26  5:26                 ` Tim Cross
@ 2022-08-28  4:06                   ` Richard Stallman
  2022-08-28  4:14                     ` Po Lu
  2022-08-28  7:45                     ` Tim Cross
  0 siblings, 2 replies; 267+ messages in thread
From: Richard Stallman @ 2022-08-28  4:06 UTC (permalink / raw)
  To: Tim Cross; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Is using Mate running with GTK 3 tantamount to using GNOME 3?
  > > Or is it still like  GNOME 2?

  > Apparently it is still maintained, but it has now moved to GTK3. Both
  > Ubutnu and Fedora have versions of their distribution based on the
  > current mate desktop.

I still have the questions:
Is using Mate running with GTK 3 tantamount to using GNOME 3?
Or is it still like  GNOME 2?

Another question: do programs that use GTK 2 work well with Mate
if Mate uses GTK 3?

Another question: do Mate programs ever get screwed by surprise calls
to _exit inside GTK 3?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-28  4:06                   ` Richard Stallman
@ 2022-08-28  4:14                     ` Po Lu
  2022-09-04  3:01                       ` Richard Stallman
  2022-08-28  7:45                     ` Tim Cross
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-08-28  4:14 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Tim Cross, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Is using Mate running with GTK 3 tantamount to using GNOME 3?
> Or is it still like  GNOME 2?

It is still like GNOME 2.

> Another question: do programs that use GTK 2 work well with Mate
> if Mate uses GTK 3?

Yes, as long as GTK+ 2.x is installed.  Those programs generally work
well everywhere.

> Another question: do Mate programs ever get screwed by surprise calls
> to _exit inside GTK 3?

Yes, they do.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-28  4:06                   ` Richard Stallman
  2022-08-28  4:14                     ` Po Lu
@ 2022-08-28  7:45                     ` Tim Cross
  1 sibling, 0 replies; 267+ messages in thread
From: Tim Cross @ 2022-08-28  7:45 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel


Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > > Is using Mate running with GTK 3 tantamount to using GNOME 3?
>   > > Or is it still like  GNOME 2?
>
>   > Apparently it is still maintained, but it has now moved to GTK3. Both
>   > Ubutnu and Fedora have versions of their distribution based on the
>   > current mate desktop.
>
> I still have the questions:
> Is using Mate running with GTK 3 tantamount to using GNOME 3?
> Or is it still like  GNOME 2?
>

I don't understand this question. Gnome is a desktop environment, Mate
is an alternative desktop environment. They both use GTK as a GUI
toolkit library. If it at all helps, I had not noticed any difference in
Mate from when it was using GTK2 to when it was using GTK3 (Just as I
had noticed no difference in Emacs when it started using GTK3 instead of
GTK2). 


> Another question: do programs that use GTK 2 work well with Mate
> if Mate uses GTK 3?
>

I doubt it at all matters. The desktop environment (DE) doesn't at all
care about what the individual programs are using as their GUI toolkitg
(it doesn't even know). For example, I don't run Gnome, Mate or any
other GTK based DE or window manager and I will still be vulnerable to
the GTK3 issues (although apparently I've been lucky and they have never
occurred for me). 





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-26  4:34         ` Po Lu
@ 2022-09-04  3:01           ` Richard Stallman
  2022-09-04  5:14             ` Eli Zaretskii
  0 siblings, 1 reply; 267+ messages in thread
From: Richard Stallman @ 2022-09-04  3:01 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Does this mean that the user can't move an Emacs frame on the screen?

  > No, this means functions like `set-frame-position' can't move the frame
  > on the screen.  The only way to move the frame is by the user dragging
  > it with the mouse.

Thanks.

I don't know whether that limitation is necessary or justified in some way,
but I think that most users don't use `set-frame-position'.
I don't think this will be a big practical problem for users.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-08-28  4:14                     ` Po Lu
@ 2022-09-04  3:01                       ` Richard Stallman
  0 siblings, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-09-04  3:01 UTC (permalink / raw)
  To: Po Lu; +Cc: theophilusx, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Is using Mate running with GTK 3 tantamount to using GNOME 3?
  > > Or is it still like  GNOME 2?

  > It is still like GNOME 2.

THat's good.  I think that Mate is still a solution to consider.

  > > Another question: do programs that use GTK 2 work well with Mate
  > > if Mate uses GTK 3?

  > Yes, as long as GTK+ 2.x is installed.  Those programs generally work
  > well everywhere.

  > > Another question: do Mate programs ever get screwed by surprise calls
  > > to _exit inside GTK 3?

  > Yes, they do.

Maybe the Mate developers would be interested in the idea of making
a modified version of GTK 3 to fix this.

It might be easy to do by compiling GTK 3 with a macro definition
to define _exit to call some function we would define.


-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
@ 2022-09-04  4:08 Payas Relekar
  2022-09-05  4:03 ` Richard Stallman
  0 siblings, 1 reply; 267+ messages in thread
From: Payas Relekar @ 2022-09-04  4:08 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Maybe the Mate developers would be interested in the idea of making
> a modified version of GTK 3 to fix this.
>
> It might be easy to do by compiling GTK 3 with a macro definition
> to define _exit to call some function we would define.

GTK3 is already on the way out, as GTK4 is being ready for release.

There is a good reason why MATE moved to GTK3 after it began (more or less) as
Gnome2+GTK2 fork. Maintaining a library like GTK is not easy,
particularly for small development teams already spread thin on their
primary project (building/maintaining Desktop Environment). That is also
the reason why there are very few credible options on native UI toolkit
beyond GTK and Qt.

Regards,
Payas

--



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-04  3:01           ` Richard Stallman
@ 2022-09-04  5:14             ` Eli Zaretskii
  2022-09-05  4:03               ` Richard Stallman
                                 ` (2 more replies)
  0 siblings, 3 replies; 267+ messages in thread
From: Eli Zaretskii @ 2022-09-04  5:14 UTC (permalink / raw)
  To: rms; +Cc: luangruo, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Sat, 03 Sep 2022 23:01:31 -0400
> 
>   > No, this means functions like `set-frame-position' can't move the frame
>   > on the screen.  The only way to move the frame is by the user dragging
>   > it with the mouse.
> 
> Thanks.
> 
> I don't know whether that limitation is necessary or justified in some way,
> but I think that most users don't use `set-frame-position'.

Emacs itself uses set-frame-position.  It also moves frames on display
via the 'top' and 'left' frame parameters.  One notable case where
this happens is the desktop.el package, which restores frame and
window configuration of a previous Emacs session.

So I think the inability to do that is quite a big deal for Emacs
users.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-04  5:14             ` Eli Zaretskii
@ 2022-09-05  4:03               ` Richard Stallman
  2022-09-05  8:34               ` Robert Pluim
  2022-09-05 16:16               ` [External] : " Drew Adams
  2 siblings, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-09-05  4:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Emacs itself uses set-frame-position.  It also moves frames on display
  > via the 'top' and 'left' frame parameters.  One notable case where
  > this happens is the desktop.el package, which restores frame and
  > window configuration of a previous Emacs session.

  > So I think the inability to do that is quite a big deal for Emacs
  > users.

When we compile the list of disadvantages of various paths forward
for Emacs display on graphics terminals, we should list this
as one disadvantage of Wayland.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-04  4:08 Payas Relekar
@ 2022-09-05  4:03 ` Richard Stallman
  0 siblings, 0 replies; 267+ messages in thread
From: Richard Stallman @ 2022-09-05  4:03 UTC (permalink / raw)
  To: Payas Relekar; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Maybe the Mate developers would be interested in the idea of making
  > > a modified version of GTK 3 to fix this.
  > >
  > > It might be easy to do by compiling GTK 3 with a macro definition
  > > to define _exit to call some function we would define.

  > GTK3 is already on the way out, as GTK4 is being ready for release.

I don't think this changes the issue.  If they want to use GTK 4,
just replace "3" with "4" in what I said.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-04  5:14             ` Eli Zaretskii
  2022-09-05  4:03               ` Richard Stallman
@ 2022-09-05  8:34               ` Robert Pluim
  2022-09-05 14:12                 ` Po Lu
  2022-09-07 13:03                 ` Daniel Brooks
  2022-09-05 16:16               ` [External] : " Drew Adams
  2 siblings, 2 replies; 267+ messages in thread
From: Robert Pluim @ 2022-09-05  8:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, luangruo, emacs-devel

>>>>> On Sun, 04 Sep 2022 08:14:54 +0300, Eli Zaretskii <eliz@gnu.org> said:

    >> From: Richard Stallman <rms@gnu.org>
    >> Cc: emacs-devel@gnu.org
    >> Date: Sat, 03 Sep 2022 23:01:31 -0400
    >> 
    >> > No, this means functions like `set-frame-position' can't move the frame
    >> > on the screen.  The only way to move the frame is by the user dragging
    >> > it with the mouse.
    >> 
    >> Thanks.
    >> 
    >> I don't know whether that limitation is necessary or justified in some way,
    >> but I think that most users don't use `set-frame-position'.

    Eli> Emacs itself uses set-frame-position.  It also moves frames on display
    Eli> via the 'top' and 'left' frame parameters.  One notable case where
    Eli> this happens is the desktop.el package, which restores frame and
    Eli> window configuration of a previous Emacs session.

And there are packages that want to put frames at specific positions,
such as speedbar (plus the various "pop up frame" packages whose names
I canʼt recall right now)

    Eli> So I think the inability to do that is quite a big deal for Emacs
    Eli> users.

Yes. Itʼs very annoying.


Robert
-- 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-05  8:34               ` Robert Pluim
@ 2022-09-05 14:12                 ` Po Lu
  2022-09-05 14:29                   ` Emacs As a Wayland WM? " T.V Raman
  2022-09-07 13:03                 ` Daniel Brooks
  1 sibling, 1 reply; 267+ messages in thread
From: Po Lu @ 2022-09-05 14:12 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, rms, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 444 bytes --]

Robert Pluim <rpluim@gmail.com> writes:

> Yes. Itʼs very annoying.

I agree completely.  In the meantime, I have been working on a highly
effective solution for Wayland-only programs (Waydroid comes into mind),
which is to run them under X.

Work in progress code, but worth trying.  Drag-and-drop among Wayland
programs and from Wayland into X does not yet work, along with input
methods and Firefox.  And it is probably buggy.


[-- Attachment #2: Wayland compatibility layer --]
[-- Type: application/gzip, Size: 181032 bytes --]

^ permalink raw reply	[flat|nested] 267+ messages in thread

* Emacs As a Wayland WM?  Re: Abysmal state of GTK build
  2022-09-05 14:12                 ` Po Lu
@ 2022-09-05 14:29                   ` T.V Raman
  2022-09-05 15:12                     ` Robert Pluim
  0 siblings, 1 reply; 267+ messages in thread
From: T.V Raman @ 2022-09-05 14:29 UTC (permalink / raw)
  To: Po Lu; +Cc: Robert Pluim, Eli Zaretskii, rms, emacs-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gb18030, Size: 493 bytes --]

Suppose we: ...

1. Look forward to the Wayland-only world (ie No X) I know that will be
   a while...
2. But suppose, in that world, we could write an Emacs Window Manager
   (whatever that means under Wayland) ...
3 Will things get easier in that somewhat pure world where one doesn't
   have to both look backwards and forwards as we are apparently forced
   to do right now?

-- 

Thanks,

--Raman(I Search, I Find, I Misplace, I Research)
7©4 Id: kg:/m/0285kf1  •0Ü8



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Emacs As a Wayland WM?  Re: Abysmal state of GTK build
  2022-09-05 14:29                   ` Emacs As a Wayland WM? " T.V Raman
@ 2022-09-05 15:12                     ` Robert Pluim
  0 siblings, 0 replies; 267+ messages in thread
From: Robert Pluim @ 2022-09-05 15:12 UTC (permalink / raw)
  To: T.V Raman; +Cc: Po Lu, Eli Zaretskii, rms, emacs-devel

>>>>> On Mon, 05 Sep 2022 07:29:59 -0700, "T.V Raman" <raman@google.com> said:

    T> Suppose we: ...
    T> 1. Look forward to the Wayland-only world (ie No X) I know that will be
    T>    a while...
    T> 2. But suppose, in that world, we could write an Emacs Window Manager
    T>    (whatever that means under Wayland) ...
    T> 3 Will things get easier in that somewhat pure world where one doesn't
    T>    have to both look backwards and forwards as we are apparently forced
    T>    to do right now?

I donʼt know about the equivalent of exwm, but forking wlroots and
fixing up some of the more egregious annoyances might be doable.

Robert
-- 



^ permalink raw reply	[flat|nested] 267+ messages in thread

* RE: [External] : Re: Abysmal state of GTK build
  2022-09-04  5:14             ` Eli Zaretskii
  2022-09-05  4:03               ` Richard Stallman
  2022-09-05  8:34               ` Robert Pluim
@ 2022-09-05 16:16               ` Drew Adams
  2 siblings, 0 replies; 267+ messages in thread
From: Drew Adams @ 2022-09-05 16:16 UTC (permalink / raw)
  To: Eli Zaretskii, rms@gnu.org; +Cc: luangruo@yahoo.com, emacs-devel@gnu.org

> > > No, this means functions like `set-frame-position' can't move the
> > > frame on the screen.  The only way to move the frame is by the user
> > > dragging it with the mouse.
> >
> > Thanks.
> >
> > I don't know whether that limitation is necessary or justified in some
> > way, but I think that most users don't use `set-frame-position'.
> 
> Emacs itself uses set-frame-position.  It also moves frames on display
> via the 'top' and 'left' frame parameters.  One notable case where
> this happens is the desktop.el package, which restores frame and
> window configuration of a previous Emacs session.
> 
> So I think the inability to do that is quite a big deal for Emacs
> users.

+1.



^ permalink raw reply	[flat|nested] 267+ messages in thread

* Re: Abysmal state of GTK build
  2022-09-05  8:34               ` Robert Pluim
  2022-09-05 14:12                 ` Po Lu
@ 2022-09-07 13:03                 ` Daniel Brooks
  1 sibling, 0 replies; 267+ messages in thread
From: Daniel Brooks @ 2022-09-07 13:03 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, rms, luangruo, emacs-devel

Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Sun, 04 Sep 2022 08:14:54 +0300, Eli Zaretskii <eliz@gnu.org> said:
>
>     >> From: Richard Stallman <rms@gnu.org>
>     >> Cc: emacs-devel@gnu.org
>     >> Date: Sat, 03 Sep 2022 23:01:31 -0400
>     >> 
>     >> > No, this means functions like `set-frame-position' can't move the frame
>     >> > on the screen.  The only way to move the frame is by the user dragging
>     >> > it with the mouse.
>     >> 
>     >> Thanks.
>     >> 
>     >> I don't know whether that limitation is necessary or justified in some way,
>     >> but I think that most users don't use `set-frame-position'.
>
>     Eli> Emacs itself uses set-frame-position.  It also moves frames on display
>     Eli> via the 'top' and 'left' frame parameters.  One notable case where
>     Eli> this happens is the desktop.el package, which restores frame and
>     Eli> window configuration of a previous Emacs session.
>
> And there are packages that want to put frames at specific positions,
> such as speedbar (plus the various "pop up frame" packages whose names
> I canʼt recall right now)
>
>     Eli> So I think the inability to do that is quite a big deal for Emacs
>     Eli> users.
>
> Yes. Itʼs very annoying.

Don’t forget about emacs --geometry, which sets top/left/width/height
properties on the initial-frame-alist.

db48x



^ permalink raw reply	[flat|nested] 267+ messages in thread

end of thread, other threads:[~2022-09-07 13:03 UTC | newest]

Thread overview: 267+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-23  7:00 Abysmal state of GTK build Payas Relekar
2022-08-23  7:17 ` Po Lu
2022-08-23  7:21   ` Payas Relekar
2022-08-23  8:53     ` Po Lu
2022-08-23 13:08       ` Stefan Monnier
2022-08-24  1:16         ` Po Lu
2022-08-24  1:34           ` Stefan Monnier
2022-08-23 12:05   ` Eli Zaretskii
2022-08-23 12:29     ` Po Lu
2022-08-23 12:41       ` Eli Zaretskii
2022-08-23 12:59         ` Po Lu
2022-08-23 15:13           ` Óscar Fuentes
2022-08-23 15:18             ` Visuwesh
2022-08-23 16:09             ` Eli Zaretskii
2022-08-23 16:41               ` Óscar Fuentes
2022-08-23 16:59                 ` Eli Zaretskii
2022-08-23 23:25                   ` Óscar Fuentes
2022-08-24  1:45                     ` Po Lu
2022-08-24  3:02                       ` Óscar Fuentes
2022-08-24  3:41                         ` Po Lu
2022-08-23 23:25             ` Tim Cross
2022-08-24  4:25               ` Po Lu
2022-08-24  1:36             ` Po Lu
2022-08-24  2:31               ` Óscar Fuentes
2022-08-24  3:23                 ` Po Lu
2022-08-24  3:52   ` Richard Stallman
2022-08-24  4:18     ` Po Lu
2022-08-24  8:52       ` Robert Pluim
2022-08-26  3:36       ` Richard Stallman
2022-08-26  4:34         ` Po Lu
2022-09-04  3:01           ` Richard Stallman
2022-09-04  5:14             ` Eli Zaretskii
2022-09-05  4:03               ` Richard Stallman
2022-09-05  8:34               ` Robert Pluim
2022-09-05 14:12                 ` Po Lu
2022-09-05 14:29                   ` Emacs As a Wayland WM? " T.V Raman
2022-09-05 15:12                     ` Robert Pluim
2022-09-07 13:03                 ` Daniel Brooks
2022-09-05 16:16               ` [External] : " Drew Adams
2022-08-24  3:52 ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2022-09-04  4:08 Payas Relekar
2022-09-05  4:03 ` Richard Stallman
2022-08-23 13:53 Payas Relekar
2022-08-24  1:15 ` Po Lu
     [not found] <87ilmlluxq.fsf.ref@yahoo.com>
2022-08-21 11:04 ` Po Lu
2022-08-21 11:19   ` Dmitry Gutov
2022-08-21 11:44     ` Po Lu
2022-08-21 14:01       ` Dmitry Gutov
2022-08-21 14:06         ` Po Lu
2022-08-21 14:11           ` Gregory Heytings
2022-08-22  1:04             ` Po Lu
2022-08-21 11:22   ` Eli Zaretskii
2022-08-21 11:39     ` Po Lu
2022-08-21 15:54       ` Robert Pluim
2022-08-21 16:32         ` Sean Whitton
2022-08-21 16:46           ` Lars Ingebrigtsen
2022-08-21 16:50             ` Lars Ingebrigtsen
2022-08-21 16:58             ` Sean Whitton
2022-08-22  1:13             ` Po Lu
2022-08-22  4:32               ` tomas
2022-08-23  3:44               ` Richard Stallman
2022-08-23  3:58                 ` Po Lu
2022-08-23  4:51                   ` tomas
2022-08-21 16:51           ` Óscar Fuentes
2022-08-21 17:08             ` Eli Zaretskii
2022-08-21 17:35               ` Óscar Fuentes
2022-08-22  1:15             ` Po Lu
2022-08-22  2:06               ` Stefan Monnier
2022-08-23  3:44               ` Richard Stallman
2022-08-23  4:02                 ` Po Lu
2022-08-25  3:32                   ` Richard Stallman
2022-08-25  4:18                     ` Po Lu
2022-08-23 11:29                 ` Eli Zaretskii
2022-08-23 12:15                 ` Lynn Winebarger
2022-08-24  3:52                   ` Richard Stallman
2022-08-24  8:57                     ` Robert Pluim
2022-08-24 10:43                       ` Po Lu
2022-08-24 11:24                         ` Eli Zaretskii
2022-08-24 11:17                       ` Eli Zaretskii
2022-08-25  6:25                       ` Gerd Möllmann
2022-08-25  6:52                         ` Po Lu
2022-08-25  6:57                           ` Gerd Möllmann
2022-08-23  3:44               ` Richard Stallman
2022-08-23  4:03                 ` Po Lu
2022-08-23 11:26                   ` Stefan Kangas
2022-08-23 12:30                     ` Po Lu
2022-08-23 12:50                       ` Stefan Kangas
2022-08-23 13:01                         ` Po Lu
2022-08-24  3:52                   ` Richard Stallman
2022-08-22  1:10           ` Po Lu
2022-08-21 16:51         ` Visuwesh
2022-08-22  1:17           ` Po Lu
2022-08-22  6:47             ` Visuwesh
2022-08-22  1:11         ` Po Lu
2022-08-23  3:44         ` Richard Stallman
2022-08-23 12:41           ` Akib Azmain Turja
2022-08-23 13:00             ` Po Lu
2022-08-21 11:49   ` Lars Ingebrigtsen
2022-08-21 12:00     ` Visuwesh
2022-08-21 12:06     ` Lars Ingebrigtsen
2022-08-21 13:34       ` Po Lu
2022-08-21 13:38         ` Lars Ingebrigtsen
2022-08-21 13:46           ` Lars Ingebrigtsen
2022-08-21 13:59             ` Po Lu
2022-08-21 14:11               ` Lars Ingebrigtsen
2022-08-21 14:16                 ` Po Lu
2022-08-21 14:17                   ` Lars Ingebrigtsen
2022-08-21 14:20                     ` Po Lu
2022-08-21 14:28                       ` Lars Ingebrigtsen
2022-08-21 18:32                       ` Dmitry Gutov
2022-08-22  1:07                         ` Po Lu
2022-08-21 14:29                   ` Stefan Monnier
2022-08-21 19:27                     ` Rob Browning
2022-08-22  3:10                       ` Sean Whitton
2022-08-22  5:43                         ` Rob Browning
2022-08-22  7:10                         ` Visuwesh
2022-08-22  7:56                           ` Po Lu
2022-08-21 16:47                   ` Sean Whitton
2022-08-21 15:28                 ` Lynn Winebarger
2022-08-22  5:21                   ` Jean Louis
2022-08-22  6:01                   ` Po Lu
2022-08-22  6:48                     ` Tim Cross
2022-08-22  7:55                       ` Po Lu
2022-08-22  8:32                         ` Tim Cross
2022-08-22  9:44                           ` Po Lu
2022-08-22 23:19                             ` Tim Cross
2022-08-23  0:57                               ` Po Lu
2022-08-22  9:04                         ` Dirk-Jan C. Binnema
2022-08-22 12:10                           ` Po Lu
2022-08-22 12:35                             ` Eli Zaretskii
2022-08-22 12:59                               ` Po Lu
2022-08-22 13:08                                 ` Eli Zaretskii
2022-08-23  0:42                                   ` Po Lu
2022-08-23  2:36                                     ` Eli Zaretskii
2022-08-23  3:04                                       ` Po Lu
2022-08-23 17:52                                     ` Yilkal Argaw
2022-08-23 18:45                                       ` Stefan Monnier
2022-08-24  1:50                                       ` Po Lu
2022-08-22 12:40                             ` Eli Zaretskii
2022-08-22 13:03                               ` Po Lu
2022-08-22 13:08                                 ` Dmitry Gutov
2022-08-23  0:45                                   ` Po Lu
2022-08-23 10:30                                     ` Dmitry Gutov
2022-08-22 13:10                                 ` Eli Zaretskii
2022-08-23  0:46                                   ` Po Lu
2022-08-22 15:10                             ` Lynn Winebarger
2022-08-23  6:34                             ` Dirk-Jan C. Binnema
2022-08-23  8:58                               ` Po Lu
2022-08-23  3:46                         ` Richard Stallman
2022-08-23  4:04                           ` Po Lu
2022-08-24  3:52                             ` Richard Stallman
2022-08-24  4:27                               ` Po Lu
2022-08-21 13:30     ` Po Lu
2022-08-21 13:35       ` Eli Zaretskii
2022-08-21 13:41         ` Po Lu
2022-08-21 13:46           ` Eli Zaretskii
2022-08-21 13:47         ` Lars Ingebrigtsen
2022-08-21 13:50           ` Eli Zaretskii
2022-08-21 14:01             ` Po Lu
2022-08-23  7:38             ` Gerd Möllmann
2022-08-23  8:54               ` Po Lu
2022-08-23  9:27                 ` Gerd Möllmann
2022-08-23  9:39               ` Lars Ingebrigtsen
2022-08-23 14:07                 ` Gerd Möllmann
2022-08-23 14:43                   ` Lars Ingebrigtsen
2022-08-23 15:29                     ` Óscar Fuentes
2022-08-24 12:35                       ` Andrea Corallo
2022-08-24 12:57                         ` Óscar Fuentes
2022-08-24 13:00                         ` Visuwesh
2022-08-24 13:42                           ` Po Lu
2022-08-23 16:06                     ` Eli Zaretskii
2022-08-23 16:10                       ` Lars Ingebrigtsen
2022-08-23 16:24                         ` Eli Zaretskii
2022-08-24 10:11                           ` Lars Ingebrigtsen
2022-08-24 11:18                             ` Eli Zaretskii
2022-08-24 11:30                               ` Lars Ingebrigtsen
2022-08-24 11:47                                 ` Eli Zaretskii
2022-08-24 12:16                                   ` Stefan Monnier
2022-08-24 12:19                                     ` Lars Ingebrigtsen
2022-08-24 12:23                                       ` Stefan Monnier
2022-08-25 12:03                                         ` Lars Ingebrigtsen
2022-08-24 12:35                                     ` Eli Zaretskii
2022-08-25 12:07                                       ` Lars Ingebrigtsen
2022-08-25 12:19                                         ` Lars Ingebrigtsen
2022-08-24 12:13                             ` Po Lu
2022-08-24 12:16                               ` Gerd Möllmann
2022-08-24  6:38                       ` Gerd Möllmann
2022-08-24 11:08                         ` Eli Zaretskii
2022-08-24 11:51                           ` Gerd Möllmann
2022-08-24 12:01                             ` Eli Zaretskii
2022-08-24 12:04                               ` Gerd Möllmann
2022-08-24 12:19                                 ` Eli Zaretskii
2022-08-24 12:22                                   ` Gerd Möllmann
2022-08-23 17:10                     ` Stefan Monnier
2022-08-24 10:14                       ` Lars Ingebrigtsen
2022-08-24 10:46                         ` Po Lu
2022-08-24 10:48                           ` Lars Ingebrigtsen
2022-08-24 11:15                             ` Po Lu
2022-08-24 11:17                               ` Lars Ingebrigtsen
2022-08-24 12:13                                 ` Po Lu
2022-08-24 12:20                                   ` Lars Ingebrigtsen
2022-08-24 12:36                                     ` Po Lu
2022-08-21 13:36       ` Lars Ingebrigtsen
2022-08-21 13:43         ` Po Lu
2022-08-21 13:51           ` Lars Ingebrigtsen
2022-08-21 14:04             ` Po Lu
2022-08-21 14:13               ` Lars Ingebrigtsen
2022-08-21 14:18                 ` Po Lu
2022-08-21 15:02                   ` Gregory Heytings
2022-08-22  1:18                     ` Po Lu
2022-08-22 10:04                       ` Lars Ingebrigtsen
2022-08-22 11:46                         ` Po Lu
2022-08-22 11:56                           ` Lars Ingebrigtsen
2022-08-22 12:14                             ` Po Lu
2022-08-22 12:21                               ` Lars Ingebrigtsen
2022-08-22 13:13                                 ` Po Lu
2022-08-22 13:19                                   ` Lars Ingebrigtsen
2022-08-23  0:50                                     ` Po Lu
2022-08-24 11:19                                       ` Lars Ingebrigtsen
2022-08-24 12:17                                         ` Po Lu
2022-08-22 17:33                                   ` Eli Zaretskii
2022-08-23  0:47                                     ` Po Lu
2022-08-23  2:38                                       ` Eli Zaretskii
2022-08-23  3:05                                         ` Po Lu
2022-08-23 11:22                                           ` Eli Zaretskii
2022-08-24  3:52                                           ` Richard Stallman
2022-08-23  3:51                                   ` Jean Louis
2022-08-23  5:14                                     ` Po Lu
2022-08-23 11:51                                       ` Eli Zaretskii
2022-08-23 12:34                                         ` Po Lu
2022-08-23 12:45                                           ` Eli Zaretskii
2022-08-25  3:32                                       ` Richard Stallman
2022-08-23  3:53                                   ` Jean Louis
2022-08-21 14:05       ` Gregory Heytings
2022-08-21 14:08         ` Po Lu
2022-08-21 14:15           ` Lars Ingebrigtsen
2022-08-21 14:17             ` Po Lu
2022-08-21 14:27               ` Lars Ingebrigtsen
2022-08-22  1:09                 ` Po Lu
2022-08-24  2:32             ` Thomas Fitzsimmons
2022-08-24  2:47               ` Po Lu
2022-08-25  3:33                 ` Richard Stallman
2022-08-21 14:06       ` Dmitry Gutov
2022-08-23  3:44       ` Richard Stallman
2022-08-23  3:57         ` Po Lu
2022-08-24  3:52           ` Richard Stallman
2022-08-24  4:20             ` Po Lu
2022-08-24  4:34               ` tomas
2022-08-26  3:36               ` Richard Stallman
2022-08-24  4:25             ` Tim Cross
2022-08-24  4:37               ` tomas
2022-08-24  7:52                 ` Tim Cross
2022-08-24  4:58               ` Po Lu
2022-08-26  3:36               ` Richard Stallman
2022-08-26  5:26                 ` Tim Cross
2022-08-28  4:06                   ` Richard Stallman
2022-08-28  4:14                     ` Po Lu
2022-09-04  3:01                       ` Richard Stallman
2022-08-28  7:45                     ` Tim Cross
2022-08-21 14:47     ` Stefan Kangas
2022-08-21 14:58       ` Lars Ingebrigtsen
2022-08-22  7:05     ` Visuwesh
2022-08-22  7:51       ` Po Lu
2022-08-23  3:46       ` Richard Stallman
2022-08-23 15:08         ` Visuwesh
2022-08-25 16:01         ` Rudolf Adamkovič
2022-08-26  1:29           ` Po Lu

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).