* etags name collision.
[not found] <20220411124736.3qijvtearh6wlen7.ref@Ergus>
@ 2022-04-11 12:47 ` Ergus
2022-04-11 13:18 ` Eli Zaretskii
` (2 more replies)
0 siblings, 3 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 12:47 UTC (permalink / raw)
To: emacs-devel
Hi:
Recently I made the already mentioned package gtags-mode in order to use
it with gnu global. Recently a friend using verilog found that gnu
global can use ctags (Universal Ctags) as a backend for verilog as
universal ctags has a set of plugins very complete and works specially
well with verilog.
But in my system there is an issue, because emacs also creates a ctags
executable with similar function but not as good as Universal ctags in
many sences. The questions are:
1) Why do we have etags+ctags executables so far they do more or less
the same work right?.
2) Why do we create an executable with a name that is used by another
very wheel known program.
3) Could we consider to keep only etags and remove the ctags file in
order to let the users to access. GREP had a similar issue some time ago
with egrep rgrep and similes; and they solved that adding command lines
to grep; why not to do the same?
In general when the users want to use ctags I am pretty sure they refer
to universal or exuberant ctags today... But also such executable create
inconsistencies when using TRAMP and the support for languages like Rust
or modern C++ is not good; so maybe an even more radical approach may be
considered. Some distros like Arch Linux explicitly rename it to solve
the conflict, but if we have etags already, do we really need the other
executable?
Best,
Ergus
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 12:47 ` etags name collision Ergus
@ 2022-04-11 13:18 ` Eli Zaretskii
2022-04-11 13:38 ` Dmitry Gutov
` (2 more replies)
2022-04-11 13:56 ` Kaushal Modi
2022-04-12 3:19 ` Richard Stallman
2 siblings, 3 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 13:18 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Date: Mon, 11 Apr 2022 14:47:36 +0200
> From: Ergus <spacibba@aol.com>
>
> 1) Why do we have etags+ctags executables so far they do more or less
> the same work right?.
Because ctags produces tags table in a format understood by more
applications than just Emacs.
> 2) Why do we create an executable with a name that is used by another
> very wheel known program.
It's the other way around: ctags was a very old Unix program, and
Emacs developed a GNU version of that program. Universal ctags came
much later. So you should ask them why did they decide to use a name
that was already taken.
> 3) Could we consider to keep only etags and remove the ctags file in
> order to let the users to access.
I don't see why we should remove a program just because someone who
uses an incompatible program by the same name should manage his/her
installations. A simple solution is for that user to not install the
Emacs version of ctags.
> In general when the users want to use ctags I am pretty sure they refer
> to universal or exuberant ctags today... But also such executable create
> inconsistencies when using TRAMP and the support for languages like Rust
> or modern C++ is not good; so maybe an even more radical approach may be
> considered. Some distros like Arch Linux explicitly rename it to solve
> the conflict, but if we have etags already, do we really need the other
> executable?
Emacs doesn't need ctags, but users might need it for working with
other development tools.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:18 ` Eli Zaretskii
@ 2022-04-11 13:38 ` Dmitry Gutov
2022-04-11 13:52 ` Ergus
` (2 more replies)
2022-04-11 13:47 ` Ergus
2022-04-11 14:10 ` Andreas Schwab
2 siblings, 3 replies; 65+ messages in thread
From: Dmitry Gutov @ 2022-04-11 13:38 UTC (permalink / raw)
To: Eli Zaretskii, Ergus; +Cc: emacs-devel
On 11.04.2022 16:18, Eli Zaretskii wrote:
>> 2) Why do we create an executable with a name that is used by another
>> very wheel known program.
> It's the other way around: ctags was a very old Unix program, and
> Emacs developed a GNU version of that program. Universal ctags came
> much later. So you should ask them why did they decide to use a name
> that was already taken.
>
Even the very old version of ctags that's distributed by most of
GNU/Linux distributions these days (Ctags 5.9~svn20110310) supports more
languages than etags. Like ~50% more languages.
So it shouldn't come as a surprise that the our version of ctags was
never accepted as a true continuation or replacement.
It's not like we're doing a particularly active development of it either.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:18 ` Eli Zaretskii
2022-04-11 13:38 ` Dmitry Gutov
@ 2022-04-11 13:47 ` Ergus
2022-04-11 14:09 ` Eli Zaretskii
2022-04-11 14:10 ` Andreas Schwab
2 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 13:47 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Hi Eli:
On Mon, Apr 11, 2022 at 04:18:43PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 14:47:36 +0200
>> From: Ergus <spacibba@aol.com>
>>
>> 1) Why do we have etags+ctags executables so far they do more or less
>> the same work right?.
>
>Because ctags produces tags table in a format understood by more
>applications than just Emacs.
>
>> 2) Why do we create an executable with a name that is used by another
>> very wheel known program.
>
>It's the other way around: ctags was a very old Unix program, and
>Emacs developed a GNU version of that program. Universal ctags came
>much later. So you should ask them why did they decide to use a name
>that was already taken.
>
For whatever reason their version is much better, maintained and with
more active development, support and people. It's free in all the senses
and provided in some GNU/Linux distros by default or available in 100%
of the repositories... so don't fight them, join then that did a good
work stablishing as the standard. (Do one thing and do it right)
>> 3) Could we consider to keep only etags and remove the ctags file in
>> order to let the users to access.
>
>I don't see why we should remove a program just because someone who
>uses an incompatible program by the same name should manage his/her
>installations. A simple solution is for that user to not install the
>Emacs version of ctags.
>
There is no consistent way to do that in many distros they don't have
emacs users so they declare emacs incompatible with ctags and the user
needs to choose.
There is not even an option to disable the creation of ctags during
emacs configure/build; so it needs to be removed every time.
>> In general when the users want to use ctags I am pretty sure they refer
>> to universal or exuberant ctags today... But also such executable create
>> inconsistencies when using TRAMP and the support for languages like Rust
>> or modern C++ is not good; so maybe an even more radical approach may be
>> considered. Some distros like Arch Linux explicitly rename it to solve
>> the conflict, but if we have etags already, do we really need the other
>> executable?
>
>Emacs doesn't need ctags
So we shouldn't provide ctags by default. It is like if the Linux kernel
provide git and bash because they are useful. We don't have man power to
maintain it and support all the languages and features Exhuberant or
Universal do. But also in many distros ctags is actually provided by
default.
>but users might need it for working with
>other development tools.
>
The users who use ctags they only know about the other versions like
universal or exuberant; most of them don't even know that emacs provides
a ctags version and it only causes troubles.
At least could we condition the creation of ctags with a build/configure
option??
Best,
Ergus
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:38 ` Dmitry Gutov
@ 2022-04-11 13:52 ` Ergus
2022-04-11 14:11 ` Eli Zaretskii
2022-04-11 13:59 ` Andreas Schwab
2022-04-11 14:07 ` Eli Zaretskii
2 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 13:52 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Eli Zaretskii, emacs-devel
On Mon, Apr 11, 2022 at 04:38:38PM +0300, Dmitry Gutov wrote:
>On 11.04.2022 16:18, Eli Zaretskii wrote:
>>>2) Why do we create an executable with a name that is used by another
>>>very wheel known program.
>>It's the other way around: ctags was a very old Unix program, and
>>Emacs developed a GNU version of that program. Universal ctags came
>>much later. So you should ask them why did they decide to use a name
>>that was already taken.
>>
>
>Even the very old version of ctags that's distributed by most of
>GNU/Linux distributions these days (Ctags 5.9~svn20110310) supports
>more languages than etags. Like ~50% more languages.
>
>So it shouldn't come as a surprise that the our version of ctags was
>never accepted as a true continuation or replacement.
>
>It's not like we're doing a particularly active development of it either.
Do one thing and do it right...
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 12:47 ` etags name collision Ergus
2022-04-11 13:18 ` Eli Zaretskii
@ 2022-04-11 13:56 ` Kaushal Modi
2022-04-11 14:16 ` Óscar Fuentes
2022-04-12 3:19 ` Richard Stallman
2 siblings, 1 reply; 65+ messages in thread
From: Kaushal Modi @ 2022-04-11 13:56 UTC (permalink / raw)
To: Ergus; +Cc: Emacs developers
On Mon, Apr 11, 2022 at 8:48 AM Ergus <spacibba@aol.com> wrote:
>
> Hi:
>
> Recently I made the already mentioned package gtags-mode in order to use
> it with gnu global. Recently a friend using verilog found that gnu
> global can use ctags (Universal Ctags) as a backend for verilog as
> universal ctags has a set of plugins very complete and works specially
> well with verilog.
I also develop in (system)verilog :)
> 3) Could we consider to keep only etags and remove the ctags file in
> order to let the users to access. GREP had a similar issue some time ago
> with egrep rgrep and similes; and they solved that adding command lines
> to grep; why not to do the same?
Emacs configure comes with a --program-transform-name switch. I add
this to my configure command:
--program-transform-name='s/^ctags$/ctags_emacs/' to avoid clash with
the Universal Ctags 'ctags' executable.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:38 ` Dmitry Gutov
2022-04-11 13:52 ` Ergus
@ 2022-04-11 13:59 ` Andreas Schwab
2022-04-11 14:07 ` Eli Zaretskii
2 siblings, 0 replies; 65+ messages in thread
From: Andreas Schwab @ 2022-04-11 13:59 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Eli Zaretskii, Ergus, emacs-devel
On Apr 11 2022, Dmitry Gutov wrote:
> Even the very old version of ctags that's distributed by most of GNU/Linux
> distributions these days (Ctags 5.9~svn20110310) supports more languages
> than etags. Like ~50% more languages.
That's not the original ctags program, though.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:38 ` Dmitry Gutov
2022-04-11 13:52 ` Ergus
2022-04-11 13:59 ` Andreas Schwab
@ 2022-04-11 14:07 ` Eli Zaretskii
2 siblings, 0 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 14:07 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: spacibba, emacs-devel
> Date: Mon, 11 Apr 2022 16:38:38 +0300
> From: Dmitry Gutov <dgutov@yandex.ru>
> Cc: emacs-devel@gnu.org
>
> On 11.04.2022 16:18, Eli Zaretskii wrote:
> >> 2) Why do we create an executable with a name that is used by another
> >> very wheel known program.
> > It's the other way around: ctags was a very old Unix program, and
> > Emacs developed a GNU version of that program. Universal ctags came
> > much later. So you should ask them why did they decide to use a name
> > that was already taken.
> >
>
> Even the very old version of ctags that's distributed by most of
> GNU/Linux distributions these days (Ctags 5.9~svn20110310) supports more
> languages than etags. Like ~50% more languages.
>
> So it shouldn't come as a surprise that the our version of ctags was
> never accepted as a true continuation or replacement.
>
> It's not like we're doing a particularly active development of it either.
That's okay: people are free to use the other variants of ctags. It's
the same situation as with movemail.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:47 ` Ergus
@ 2022-04-11 14:09 ` Eli Zaretskii
2022-04-11 14:18 ` Ergus
` (2 more replies)
0 siblings, 3 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 14:09 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Date: Mon, 11 Apr 2022 15:47:49 +0200
> From: Ergus <spacibba@aol.com>
> Cc: emacs-devel@gnu.org
>
> >Emacs doesn't need ctags
>
> So we shouldn't provide ctags by default.
I'm opposed to dropping stuff just because we can. If you want to add
an option not to install ctags if another version is installed
(similarly to what we do with movemail), that's fine. But please
don't argue for dropping parts of Emacs unconditionally because you
personally find it not useful, that argument will never fly with me.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:18 ` Eli Zaretskii
2022-04-11 13:38 ` Dmitry Gutov
2022-04-11 13:47 ` Ergus
@ 2022-04-11 14:10 ` Andreas Schwab
2 siblings, 0 replies; 65+ messages in thread
From: Andreas Schwab @ 2022-04-11 14:10 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Ergus, emacs-devel
On Apr 11 2022, Eli Zaretskii wrote:
> It's the other way around: ctags was a very old Unix program, and
> Emacs developed a GNU version of that program. Universal ctags came
> much later. So you should ask them why did they decide to use a name
> that was already taken.
They are both implementation of the POSIX utility ctags, with
extensions.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:52 ` Ergus
@ 2022-04-11 14:11 ` Eli Zaretskii
2022-04-11 14:25 ` Ergus
0 siblings, 1 reply; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 14:11 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel, dgutov
> Date: Mon, 11 Apr 2022 15:52:59 +0200
> From: Ergus <spacibba@aol.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>
> Do one thing and do it right...
And we don't??
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 13:56 ` Kaushal Modi
@ 2022-04-11 14:16 ` Óscar Fuentes
0 siblings, 0 replies; 65+ messages in thread
From: Óscar Fuentes @ 2022-04-11 14:16 UTC (permalink / raw)
To: emacs-devel
Kaushal Modi <kaushal.modi@gmail.com> writes:
>> 3) Could we consider to keep only etags and remove the ctags file in
>> order to let the users to access. GREP had a similar issue some time ago
>> with egrep rgrep and similes; and they solved that adding command lines
>> to grep; why not to do the same?
>
> Emacs configure comes with a --program-transform-name switch. I add
> this to my configure command:
> --program-transform-name='s/^ctags$/ctags_emacs/' to avoid clash with
> the Universal Ctags 'ctags' executable.
Nifty.
In MSYS2 we simply rm bin/ctags.exe (and the corresponding man file) and
provide universal-ctags as a dependency. Arch Linux renames (with `mv')
"ctags" to "ctags.emacs".
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 14:09 ` Eli Zaretskii
@ 2022-04-11 14:18 ` Ergus
2022-04-11 15:46 ` [PATCH] " Ergus
2022-04-11 16:46 ` Stefan Monnier
2 siblings, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 14:18 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
On Mon, Apr 11, 2022 at 05:09:53PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 15:47:49 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: emacs-devel@gnu.org
>>
>> >Emacs doesn't need ctags
>>
>> So we shouldn't provide ctags by default.
>
>I'm opposed to dropping stuff just because we can. If you want to add
>an option not to install ctags if another version is installed
>(similarly to what we do with movemail), that's fine.
That may be an acceptable solution... But I will need to learn autotools
to implement that myself...
>But please
>don't argue for dropping parts of Emacs unconditionally because you
>personally find it not useful, that argument will never fly with me.
I know Eli; But at some point you find that situations like this create
more confusion than benefit to the users and require some developer
support (man power) we lack of. I usually have the same feeling in the
opposite direction; when adding features that are not popular enough to
be maintained in the long therm... but that's another discussion.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 14:11 ` Eli Zaretskii
@ 2022-04-11 14:25 ` Ergus
2022-04-12 7:16 ` Alfred M. Szmidt
0 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 14:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel, dgutov
On Mon, Apr 11, 2022 at 05:11:22PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 15:52:59 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>>
>> Do one thing and do it right...
>
>And we don't??
>
ctags is a different "thing" than the emacs "thing" and with the current
support it has is not right (or good enough)... so... no one thing and
not right either...
^ permalink raw reply [flat|nested] 65+ messages in thread
* [PATCH] Re: etags name collision.
2022-04-11 14:09 ` Eli Zaretskii
2022-04-11 14:18 ` Ergus
@ 2022-04-11 15:46 ` Ergus
2022-04-11 15:51 ` Eli Zaretskii
2022-04-11 16:46 ` Stefan Monnier
2 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 15:46 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 471 bytes --]
On Mon, Apr 11, 2022 at 05:09:53PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 15:47:49 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: emacs-devel@gnu.org
>>
>> >Emacs doesn't need ctags
>>
>> So we shouldn't provide ctags by default.
>
>I'm opposed to dropping stuff just because we can. If you want to add
>an option not to install ctags if another version is installed
>(similarly to what we do with movemail), that's fine.
What about the attached patch?
[-- Attachment #2: ctags.patch --]
[-- Type: text/plain, Size: 1595 bytes --]
diff --git a/configure.ac b/configure.ac
index 185e4d0862..25e45d9ac6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -267,6 +267,19 @@ AC_DEFUN
fi
AC_SUBST([with_mailutils])
+AC_ARG_WITH([ctags],
+ [AS_HELP_STRING([--with-ctags],
+ [rely on System ctags; this is the default if Universal ctags or
+ Exuberant ctags is installed])],
+ [],
+ [with_ctags=$with_features
+ if test "$with_ctags" = yes; then
+ (ctags --version) >/dev/null 2>&1 || with_ctags=no
+ fi])
+if test "$with_ctags" = no; then
+ with_ctags=
+fi
+
AC_ARG_WITH([pop],
[AS_HELP_STRING([--with-pop],
[Support POP mail retrieval if Emacs movemail is used (not recommended,
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 0453b93506..ee17576686 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -84,6 +84,9 @@ libexecdir=
# Nonempty if Emacs can assume Mailutils is installed.
with_mailutils=@with_mailutils@
+# Nonempty if Emacs can assume ctags is installed.
+with_ctags=@with_ctags@
+
# Directory for local state files for all programs.
localstatedir=@localstatedir@
@@ -144,8 +147,8 @@ HAIKU_CFLAGS=
CLIENTW = @CLIENTW@
# Things that a user might actually run, which should be installed in bindir.
-INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
- ebrowse${EXEEXT}
+INSTALLABLES = etags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) ebrowse${EXEEXT} \
+ $(if $(with_ctags), , ctags${EXEEXT})
# Things that Emacs runs internally, or during the build process,
# which should not be installed in bindir.
^ permalink raw reply related [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 15:46 ` [PATCH] " Ergus
@ 2022-04-11 15:51 ` Eli Zaretskii
2022-04-11 16:19 ` Ergus
0 siblings, 1 reply; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 15:51 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Date: Mon, 11 Apr 2022 17:46:35 +0200
> From: Ergus <spacibba@aol.com>
> Cc: emacs-devel@gnu.org
>
> >I'm opposed to dropping stuff just because we can. If you want to add
> >an option not to install ctags if another version is installed
> >(similarly to what we do with movemail), that's fine.
>
> What about the attached patch?
The code should test whether another version of 'ctags' is already
installed, and if so, that it isn't our 'ctags'. _Then_ we could
default to not installing our 'ctags'. Your proposal doesn't make
that test, so please add it.
Thanks.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 15:51 ` Eli Zaretskii
@ 2022-04-11 16:19 ` Ergus
2022-04-11 16:40 ` Eli Zaretskii
0 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 16:19 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
On Mon, Apr 11, 2022 at 06:51:58PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 17:46:35 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: emacs-devel@gnu.org
>>
>> >I'm opposed to dropping stuff just because we can. If you want to add
>> >an option not to install ctags if another version is installed
>> >(similarly to what we do with movemail), that's fine.
>>
>> What about the attached patch?
>
>The code should test whether another version of 'ctags' is already
>installed, and if so, that it isn't our 'ctags'. _Then_ we could
>default to not installing our 'ctags'. Your proposal doesn't make
>that test, so please add it.
>
>Thanks.
>
I do this tests like with mailutils and movemail:
(ctags --version) >/dev/null 2>&1 || with_ctags=no
Isn't this enough?
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 16:19 ` Ergus
@ 2022-04-11 16:40 ` Eli Zaretskii
2022-04-11 19:19 ` Ergus
0 siblings, 1 reply; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 16:40 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Date: Mon, 11 Apr 2022 18:19:42 +0200
> From: Ergus <spacibba@aol.com>
> Cc: emacs-devel@gnu.org
>
> On Mon, Apr 11, 2022 at 06:51:58PM +0300, Eli Zaretskii wrote:
>
> >The code should test whether another version of 'ctags' is already
> >installed, and if so, that it isn't our 'ctags'. _Then_ we could
> >default to not installing our 'ctags'. Your proposal doesn't make
> >that test, so please add it.
> >
> >Thanks.
> >
> I do this tests like with mailutils and movemail:
>
> (ctags --version) >/dev/null 2>&1 || with_ctags=no
>
> Isn't this enough?
No, because AFAIU this test will succeed also if the installed ctags
is (an older version) of the program that came with (an older version)
of Emacs. You need to make sure the text emitted by --version does
NOT include "GNU Emacs".
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 14:09 ` Eli Zaretskii
2022-04-11 14:18 ` Ergus
2022-04-11 15:46 ` [PATCH] " Ergus
@ 2022-04-11 16:46 ` Stefan Monnier
2022-04-11 17:01 ` Eli Zaretskii
2 siblings, 1 reply; 65+ messages in thread
From: Stefan Monnier @ 2022-04-11 16:46 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Ergus, emacs-devel
Eli Zaretskii [2022-04-11 17:09:53] wrote:
> I'm opposed to dropping stuff just because we can. If you want to add
> an option not to install ctags if another version is installed
> (similarly to what we do with movemail), that's fine. But please
> don't argue for dropping parts of Emacs unconditionally because you
> personally find it not useful, that argument will never fly with me.
Maybe we should install it under a different name, to avoid
the conflict but without losing the functionality?
Stefan
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 16:46 ` Stefan Monnier
@ 2022-04-11 17:01 ` Eli Zaretskii
2022-04-11 17:41 ` Stefan Monnier
0 siblings, 1 reply; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 17:01 UTC (permalink / raw)
To: Stefan Monnier; +Cc: spacibba, emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Ergus <spacibba@aol.com>, emacs-devel@gnu.org
> Date: Mon, 11 Apr 2022 12:46:03 -0400
>
> Eli Zaretskii [2022-04-11 17:09:53] wrote:
> > I'm opposed to dropping stuff just because we can. If you want to add
> > an option not to install ctags if another version is installed
> > (similarly to what we do with movemail), that's fine. But please
> > don't argue for dropping parts of Emacs unconditionally because you
> > personally find it not useful, that argument will never fly with me.
>
> Maybe we should install it under a different name, to avoid
> the conflict but without losing the functionality?
No, that would be confusing and will break those who do still use our
ctags.
I think detecting that another kind of ctags is installed is the best
and safest way to have the cake and eat it, too.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 17:01 ` Eli Zaretskii
@ 2022-04-11 17:41 ` Stefan Monnier
2022-04-11 18:15 ` Eli Zaretskii
` (2 more replies)
0 siblings, 3 replies; 65+ messages in thread
From: Stefan Monnier @ 2022-04-11 17:41 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: spacibba, emacs-devel
>> Maybe we should install it under a different name, to avoid
>> the conflict but without losing the functionality?
> No, that would be confusing
If we install it under a name like `firefox`? Yes, no doubt.
But I'm sure we can come up with a sane enough name to avoid this problem.
> and will break those who do still use our ctags.
Yes, that's the main downside.
But it'd be a small matter of adding an alias or symlink, so it's not
that bad.
> I think detecting that another kind of ctags is installed is the best
> and safest way to have the cake and eat it, too.
Rather than "install vs not-install" the test could decide "install as
`ctags` vs install as `somethingelse`", which is closer to having our
cake and eating it too since the user can then have both installed at
the same time.
Still, an install-time test has the downside that it won't adapt if
`ctags` is installed after Emacs is built/installed, as is probably the
case for most users nowadays (who don't build Emacs themselves but
install from a distro or from our prebuilt tarballs).
AFAICT it won't make a big difference for GNU/Linux distros since these
already go through the trouble of renaming our `ctags` (it might just
make their job a bit easier and avoid inconsistencies between distros
where every distro may choose a slightly different name).
BTW, regarding the state of our `ctags` compared to the other ones.
A few years back I remember someone comparing them and finding out that
we support fewer languages but that for some of those languages we
provided better results. If that's not the case any more, maybe we
should check to see if we could make `etags.el` use "Exhuberant ctags"
when available so as to benefit from the better tool.
Stefan
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 17:41 ` Stefan Monnier
@ 2022-04-11 18:15 ` Eli Zaretskii
2022-04-11 19:11 ` Ulrich Mueller
2022-04-12 7:42 ` Thierry Volpiatto
2022-04-11 18:15 ` Ergus
2022-04-11 23:09 ` Ergus
2 siblings, 2 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-11 18:15 UTC (permalink / raw)
To: Stefan Monnier; +Cc: spacibba, emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: spacibba@aol.com, emacs-devel@gnu.org
> Date: Mon, 11 Apr 2022 13:41:00 -0400
>
> > I think detecting that another kind of ctags is installed is the best
> > and safest way to have the cake and eat it, too.
>
> Rather than "install vs not-install" the test could decide "install as
> `ctags` vs install as `somethingelse`", which is closer to having our
> cake and eating it too since the user can then have both installed at
> the same time.
No, the intent is exactly to let users have the program they want
under the name "ctags". Everything else, including renaming, is left
to the users themsleves, because we have no way of second-guessing
their habits. And as someone else pointed out, we already support
installing under a different name, if the user knows what is that
name.
> Still, an install-time test has the downside that it won't adapt if
> `ctags` is installed after Emacs is built/installed, as is probably the
> case for most users nowadays (who don't build Emacs themselves but
> install from a distro or from our prebuilt tarballs).
I don't think we need to make too much out of it. the problem is
easily solved manually, so we just make it a tad easier in one simple
use case.
> BTW, regarding the state of our `ctags` compared to the other ones.
> A few years back I remember someone comparing them and finding out that
> we support fewer languages but that for some of those languages we
> provided better results. If that's not the case any more, maybe we
> should check to see if we could make `etags.el` use "Exhuberant ctags"
> when available so as to benefit from the better tool.
That, too, is already covered by the installation of Exhuberant and
other variants.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 17:41 ` Stefan Monnier
2022-04-11 18:15 ` Eli Zaretskii
@ 2022-04-11 18:15 ` Ergus
2022-04-11 23:09 ` Ergus
2 siblings, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 18:15 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Eli Zaretskii, emacs-devel
Hi Stefan:
I totally agree with you in everything here and this was actually the
reason to start this thread.
There are two points here:
1) We are talking about the ctags executable, not about the etags
one... emacs does not use such ctags executable at all and it is
compiled and installed unconditionally.
2) About etags IMHO, if we could support "Exhuberant/Universal ctags"
(even if not enabled by default) is a much better solution in the long
path and an important step because it will save us to maintain and
support all the languages that they already maintain but also in a
better way. Even no so weird languages like C++ or some very popular
ones like Rust have very poor or null support in etags, the database
creation needs to filter files manually and it is sadly useless for
tramp users that frequently have ctags in remote hosts but not etags or
emacs.
>
>BTW, regarding the state of our `ctags` compared to the other ones.
>A few years back I remember someone comparing them and finding out that
>we support fewer languages but that for some of those languages we
>provided better results. If that's not the case any more, maybe we
>should check to see if we could make `etags.el` use "Exhuberant ctags"
>when available so as to benefit from the better tool.
>
I am not sure when such comparison was made but at the moment Universal
Ctags is very powerful and modular and superior Compared with
"Exhuberant ctags". It works pretty well as backend for other programs
like gtags; adding external modules of backends is relatively easy, so
it is in constant development and active... You just need to give a look
to their repository:
https://github.com/universal-ctags/ctags
>
> Stefan
>
vim users get this working out of the box for all the languages while we
have very poor support for it.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 18:15 ` Eli Zaretskii
@ 2022-04-11 19:11 ` Ulrich Mueller
2022-04-12 7:42 ` Thierry Volpiatto
1 sibling, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-11 19:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: spacibba, Stefan Monnier, emacs-devel
>>>>> On Mon, 11 Apr 2022, Eli Zaretskii wrote:
>> Rather than "install vs not-install" the test could decide "install as
>> `ctags` vs install as `somethingelse`", which is closer to having our
>> cake and eating it too since the user can then have both installed at
>> the same time.
> No, the intent is exactly to let users have the program they want
> under the name "ctags". Everything else, including renaming, is left
> to the users themsleves, because we have no way of second-guessing
> their habits. And as someone else pointed out, we already support
> installing under a different name, if the user knows what is that
> name.
+1
There already are autoconf's --program-prefix, --program-suffix and
--program-transform-name options which can do everything that is needed.
For example, Gentoo uses these configure options to install Emacs' ctags
as (e.g.) "ctags-emacs-28". Exuberant/universal ctags is installed as
"exuberant-ctags". "ctags" is a symlink to one of them and can be
updated by the user.
>> Still, an install-time test has the downside that it won't adapt if
>> `ctags` is installed after Emacs is built/installed, as is probably the
>> case for most users nowadays (who don't build Emacs themselves but
>> install from a distro or from our prebuilt tarballs).
I tend to agree. From a distro point of view, testing for an installed
ctags binary (with the purpose to avoid file name collisions) is not
helpful. The set of files in the installed image should not depend on
random factors like package installation order.
> I don't think we need to make too much out of it. the problem is
> easily solved manually, so we just make it a tad easier in one simple
> use case.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 16:40 ` Eli Zaretskii
@ 2022-04-11 19:19 ` Ergus
2022-04-11 19:39 ` Ulrich Mueller
2022-04-12 12:15 ` Eli Zaretskii
0 siblings, 2 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 19:19 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 886 bytes --]
On Mon, Apr 11, 2022 at 07:40:29PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 18:19:42 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: emacs-devel@gnu.org
>>
>> On Mon, Apr 11, 2022 at 06:51:58PM +0300, Eli Zaretskii wrote:
>>
>> >The code should test whether another version of 'ctags' is already
>> >installed, and if so, that it isn't our 'ctags'. _Then_ we could
>> >default to not installing our 'ctags'. Your proposal doesn't make
>> >that test, so please add it.
>> >
>> >Thanks.
>> >
>> I do this tests like with mailutils and movemail:
>>
>> (ctags --version) >/dev/null 2>&1 || with_ctags=no
>>
>> Isn't this enough?
>
>No, because AFAIU this test will succeed also if the installed ctags
>is (an older version) of the program that came with (an older version)
>of Emacs. You need to make sure the text emitted by --version does
>NOT include "GNU Emacs".
>
Now?
[-- Attachment #2: ctags.patch --]
[-- Type: text/plain, Size: 1610 bytes --]
diff --git a/configure.ac b/configure.ac
index 185e4d0862..ace80aed56 100644
--- a/configure.ac
+++ b/configure.ac
@@ -267,6 +267,19 @@ AC_DEFUN
fi
AC_SUBST([with_mailutils])
+AC_ARG_WITH([ctags],
+ [AS_HELP_STRING([--with-ctags],
+ [rely on System ctags; this is the default if Universal ctags or
+ Exuberant ctags is installed])],
+ [],
+ [with_ctags=$with_features
+ if test "$with_ctags" = yes; then
+ (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
+ fi])
+if test "$with_ctags" = no; then
+ with_ctags=
+fi
+
AC_ARG_WITH([pop],
[AS_HELP_STRING([--with-pop],
[Support POP mail retrieval if Emacs movemail is used (not recommended,
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 0453b93506..ee17576686 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -84,6 +84,9 @@ libexecdir=
# Nonempty if Emacs can assume Mailutils is installed.
with_mailutils=@with_mailutils@
+# Nonempty if Emacs can assume ctags is installed.
+with_ctags=@with_ctags@
+
# Directory for local state files for all programs.
localstatedir=@localstatedir@
@@ -144,8 +147,8 @@ HAIKU_CFLAGS=
CLIENTW = @CLIENTW@
# Things that a user might actually run, which should be installed in bindir.
-INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
- ebrowse${EXEEXT}
+INSTALLABLES = etags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) ebrowse${EXEEXT} \
+ $(if $(with_ctags), , ctags${EXEEXT})
# Things that Emacs runs internally, or during the build process,
# which should not be installed in bindir.
^ permalink raw reply related [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 19:19 ` Ergus
@ 2022-04-11 19:39 ` Ulrich Mueller
2022-04-11 19:53 ` Ergus
2022-04-12 12:15 ` Eli Zaretskii
1 sibling, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-11 19:39 UTC (permalink / raw)
To: Ergus; +Cc: Eli Zaretskii, emacs-devel
>>>>> On Mon, 11 Apr 2022, Ergus wrote:
> Now?
> diff --git a/configure.ac b/configure.ac
> index 185e4d0862..ace80aed56 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -267,6 +267,19 @@ AC_DEFUN
> fi
> AC_SUBST([with_mailutils])
> +AC_ARG_WITH([ctags],
> + [AS_HELP_STRING([--with-ctags],
> + [rely on System ctags; this is the default if Universal ctags or
> + Exuberant ctags is installed])],
> + [],
> + [with_ctags=$with_features
> + if test "$with_ctags" = yes; then
> + (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
Shouldn't this use the actual name under which Emacs will install ctags?
That is, respect AC_ARG_PROGRAM?
In its current form, it would break installation of the Gentoo package
(or require us adding an explicit --without-ctags).
> + fi])
> +if test "$with_ctags" = no; then
> + with_ctags=
> +fi
I still think that any test for an installed binary is a bad idea, from
a distro point of view. Note that distros typically build packages in an
environment that is different from the one of the final target system.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 19:39 ` Ulrich Mueller
@ 2022-04-11 19:53 ` Ergus
2022-04-11 21:04 ` Ulrich Mueller
2022-04-12 2:28 ` Eli Zaretskii
0 siblings, 2 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 19:53 UTC (permalink / raw)
To: Ulrich Mueller; +Cc: Eli Zaretskii, emacs-devel
On Mon, Apr 11, 2022 at 09:39:36PM +0200, Ulrich Mueller wrote:
>>>>>> On Mon, 11 Apr 2022, Ergus wrote:
>
>> Now?
>
>> diff --git a/configure.ac b/configure.ac
>> index 185e4d0862..ace80aed56 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -267,6 +267,19 @@ AC_DEFUN
>> fi
>> AC_SUBST([with_mailutils])
>
>> +AC_ARG_WITH([ctags],
>> + [AS_HELP_STRING([--with-ctags],
>> + [rely on System ctags; this is the default if Universal ctags or
>> + Exuberant ctags is installed])],
>> + [],
>> + [with_ctags=$with_features
>> + if test "$with_ctags" = yes; then
>> + (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
>
>Shouldn't this use the actual name under which Emacs will install ctags?
>That is, respect AC_ARG_PROGRAM?
>
Not needed, if it uses a different name there is no collision, so the
test is not needed.
>In its current form, it would break installation of the Gentoo package
>(or require us adding an explicit --without-ctags).
>
The option --with-ctags means rely on System ctags. I don't think you
need anything new.
>> + fi])
>> +if test "$with_ctags" = no; then
>> + with_ctags=
>> +fi
>
>I still think that any test for an installed binary is a bad idea, from
>a distro point of view. Note that distros typically build packages in an
>environment that is different from the one of the final target system.
>
Here I agree
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 19:53 ` Ergus
@ 2022-04-11 21:04 ` Ulrich Mueller
2022-04-11 22:20 ` Ergus
2022-04-12 2:28 ` Eli Zaretskii
1 sibling, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-11 21:04 UTC (permalink / raw)
To: Ergus; +Cc: Eli Zaretskii, emacs-devel
>>>>> On Mon, 11 Apr 2022, Ergus wrote:
>>> +AC_ARG_WITH([ctags],
>>> + [AS_HELP_STRING([--with-ctags],
>>> + [rely on System ctags; this is the default if Universal ctags or
>>> + Exuberant ctags is installed])],
>>> + [],
>>> + [with_ctags=$with_features
>>> + if test "$with_ctags" = yes; then
>>> + (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
>>
>> Shouldn't this use the actual name under which Emacs will install ctags?
>> That is, respect AC_ARG_PROGRAM?
>>
> Not needed, if it uses a different name there is no collision, so the
> test is not needed.
If universal ctags is installed as "ctags", above test would detect that
the installed version is not Emacs ctags. So, installation of ctags by
Emacs would be suppressed, even if it was under a different name.
Or am I missing something here?
> The option --with-ctags means rely on System ctags. I don't think you
> need anything new.
Universal ctags isn't more "system" than Emacs. They're both packages.
(Again, this is from a distro point of view.)
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 21:04 ` Ulrich Mueller
@ 2022-04-11 22:20 ` Ergus
2022-04-12 7:21 ` Alfred M. Szmidt
0 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-11 22:20 UTC (permalink / raw)
To: Ulrich Mueller; +Cc: Eli Zaretskii, emacs-devel
On Mon, Apr 11, 2022 at 11:04:56PM +0200, Ulrich Mueller wrote:
>>>>>> On Mon, 11 Apr 2022, Ergus wrote:
>
>>>> +AC_ARG_WITH([ctags],
>>>> + [AS_HELP_STRING([--with-ctags],
>>>> + [rely on System ctags; this is the default if Universal ctags or
>>>> + Exuberant ctags is installed])],
>>>> + [],
>>>> + [with_ctags=$with_features
>>>> + if test "$with_ctags" = yes; then
>>>> + (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
>>>
>>> Shouldn't this use the actual name under which Emacs will install ctags?
>>> That is, respect AC_ARG_PROGRAM?
>>>
>> Not needed, if it uses a different name there is no collision, so the
>> test is not needed.
>
>If universal ctags is installed as "ctags", above test would detect that
>the installed version is not Emacs ctags. So, installation of ctags by
>Emacs would be suppressed, even if it was under a different name.
>
>Or am I missing something here?
>
But that's exactly the idea... to do what we do with movemail...
>> The option --with-ctags means rely on System ctags. I don't think you
>> need anything new.
>
>Universal ctags isn't more "system" than Emacs. They're both packages.
>(Again, this is from a distro point of view.)
>
emacs's ctags is not a package but just an executable inside another
package.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 17:41 ` Stefan Monnier
2022-04-11 18:15 ` Eli Zaretskii
2022-04-11 18:15 ` Ergus
@ 2022-04-11 23:09 ` Ergus
2 siblings, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-11 23:09 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Eli Zaretskii, emacs-devel
On Mon, Apr 11, 2022 at 01:41:00PM -0400, Stefan Monnier wrote:
>BTW, regarding the state of our `ctags` compared to the other ones.
>A few years back I remember someone comparing them and finding out that
>we support fewer languages but that for some of those languages we
>provided better results. If that's not the case any more, maybe we
>should check to see if we could make `etags.el` use "Exhuberant ctags"
>when available so as to benefit from the better tool.
>
>
> Stefan
>
Another unmentioned advantage of universal ctags is the supported output
formats. One of them is json, which may simplify and improve the parsing
using our new json API...
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 19:53 ` Ergus
2022-04-11 21:04 ` Ulrich Mueller
@ 2022-04-12 2:28 ` Eli Zaretskii
2022-04-12 2:43 ` Po Lu
` (2 more replies)
1 sibling, 3 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-12 2:28 UTC (permalink / raw)
To: Ergus; +Cc: ulm, emacs-devel
> Date: Mon, 11 Apr 2022 21:53:50 +0200
> From: Ergus <spacibba@aol.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>
> >> + fi])
> >> +if test "$with_ctags" = no; then
> >> + with_ctags=
> >> +fi
> >
> >I still think that any test for an installed binary is a bad idea, from
> >a distro point of view. Note that distros typically build packages in an
> >environment that is different from the one of the final target system.
> >
> Here I agree
How else to test whether this is needed? I'm okay with having
"--without-ctags" with no test, but then the default will have to be
to install our ctags. With the test, we could refrain from installing
it if the test says so.
I'm also okay with leaving things as they are now, obviously, if this
change brings more problems than it solves. I don't consider the
current situation bad enough to necessitate any changes.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 2:28 ` Eli Zaretskii
@ 2022-04-12 2:43 ` Po Lu
2022-04-12 5:03 ` Ulrich Mueller
2022-04-12 7:16 ` Alfred M. Szmidt
2 siblings, 0 replies; 65+ messages in thread
From: Po Lu @ 2022-04-12 2:43 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Ergus, ulm, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> I'm also okay with leaving things as they are now, obviously, if this
> change brings more problems than it solves. I don't consider the
> current situation bad enough to necessitate any changes.
+1. I've always been using the Emacs-installed ctags binary to generate
ctags tables without any problems.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 12:47 ` etags name collision Ergus
2022-04-11 13:18 ` Eli Zaretskii
2022-04-11 13:56 ` Kaushal Modi
@ 2022-04-12 3:19 ` Richard Stallman
2022-04-12 7:16 ` Alfred M. Szmidt
2 siblings, 1 reply; 65+ messages in thread
From: Richard Stallman @ 2022-04-12 3:19 UTC (permalink / raw)
To: Ergus; +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. ]]]
> 1) Why do we have etags+ctags executables so far they do more or less
> the same work right?.
What else would we do?
> GREP had a similar issue some time ago
> with egrep rgrep and similes; and they solved that adding command lines
> to grep; why not to do the same?
What does "adding command lines to grep" mean, concretely?
It isn't clear to me.
--
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] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 2:28 ` Eli Zaretskii
2022-04-12 2:43 ` Po Lu
@ 2022-04-12 5:03 ` Ulrich Mueller
2022-04-12 11:13 ` Ergus
2022-04-12 7:16 ` Alfred M. Szmidt
2 siblings, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-12 5:03 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Ergus, ulm, emacs-devel
>>>>> On Tue, 12 Apr 2022, Eli Zaretskii wrote:
>> Date: Mon, 11 Apr 2022 21:53:50 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>>
>> >I still think that any test for an installed binary is a bad idea, from
>> >a distro point of view. Note that distros typically build packages in an
>> >environment that is different from the one of the final target system.
>> >
>> Here I agree
> How else to test whether this is needed? I'm okay with having
> "--without-ctags" with no test, but then the default will have to be
> to install our ctags.
That sounds good.
> With the test, we could refrain from installing it if the test says
> so.
But then the test should be more specific, and check if there would be a
file collision at the actual target location (with the name modified by
--program-transform-name, if applicable). If there's no collision (e.g.
Emacs ctags has a different name) then Emacs should install it.
> I'm also okay with leaving things as they are now, obviously, if this
> change brings more problems than it solves. I don't consider the
> current situation bad enough to necessitate any changes.
Things are like this since more than a decade, and obviously distros can
cope with the status quo.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 2:28 ` Eli Zaretskii
2022-04-12 2:43 ` Po Lu
2022-04-12 5:03 ` Ulrich Mueller
@ 2022-04-12 7:16 ` Alfred M. Szmidt
2 siblings, 0 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 7:16 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: spacibba, ulm, emacs-devel
> >> + fi])
> >> +if test "$with_ctags" = no; then
> >> + with_ctags=
> >> +fi
> >
> >I still think that any test for an installed binary is a bad idea, from
> >a distro point of view. Note that distros typically build packages in an
> >environment that is different from the one of the final target system.
> >
> Here I agree
How else to test whether this is needed? I'm okay with having
"--without-ctags" with no test, but then the default will have to be
to install our ctags. With the test, we could refrain from installing
it if the test says so.
I think that is a good idea. The ones suggesting to "DWIM" magic are
prone for error and confusion, if you _really_ need to install ctags
(or etags) as something else, ./configure already supports the means
for that.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 3:19 ` Richard Stallman
@ 2022-04-12 7:16 ` Alfred M. Szmidt
0 siblings, 0 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 7:16 UTC (permalink / raw)
To: rms; +Cc: spacibba, emacs-devel
> GREP had a similar issue some time ago
> with egrep rgrep and similes; and they solved that adding command lines
> to grep; why not to do the same?
What does "adding command lines to grep" mean, concretely?
It isn't clear to me.
I think what is being refered to is that the commands egrep/fgrep are
considered deprecated infavor of using "grep -E" and "grep -F"
directly.
GNU grep did not add those command line options to solve "similar
issue" though. Why they added it is of a entierly different nature,
namley POSIX requires it and most Unix grep have it.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 14:25 ` Ergus
@ 2022-04-12 7:16 ` Alfred M. Szmidt
2022-04-12 8:30 ` Andreas Schwab
2022-04-12 10:48 ` Ergus
0 siblings, 2 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 7:16 UTC (permalink / raw)
To: Ergus; +Cc: eliz, dgutov, emacs-devel
>> Do one thing and do it right...
>
>And we don't??
ctags is a different "thing" than the emacs "thing" and with the current
support it has is not right (or good enough)... so... no one thing and
not right either...
Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
ctags is compatible with the Emacs ctags output (which is why it
exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
mg(1) on those systems, and their output is at odds with what is
standardized by POSIX.
So really, you're suggesting to remove a standardized utility and
replace it with non-standard ones that produce incompatible output
from what is generally accepted.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 22:20 ` Ergus
@ 2022-04-12 7:21 ` Alfred M. Szmidt
2022-04-12 7:34 ` Ulrich Mueller
2022-04-12 10:53 ` Ergus
0 siblings, 2 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 7:21 UTC (permalink / raw)
To: Ergus; +Cc: ulm, eliz, emacs-devel
>> The option --with-ctags means rely on System ctags. I don't think you
>> need anything new.
>
>Universal ctags isn't more "system" than Emacs. They're both packages.
>(Again, this is from a distro point of view.)
emacs's ctags is not a package but just an executable inside another
package.
On some systems /usr/bin/ctags is always GNU Emacs ctags (e.g., Gentoo
GNU/Linux); not Exuberant Ctags which is installed as exuberant-ctags.
If Emacs Ctags is missing something, I'm sure Eli et al would be very
happy to see such patches.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 7:21 ` Alfred M. Szmidt
@ 2022-04-12 7:34 ` Ulrich Mueller
2022-04-12 10:53 ` Ergus
1 sibling, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-12 7:34 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: Ergus, eliz, emacs-devel
>>>>> On Tue, 12 Apr 2022, Alfred M Szmidt wrote:
> On some systems /usr/bin/ctags is always GNU Emacs ctags (e.g., Gentoo
> GNU/Linux); not Exuberant Ctags which is installed as exuberant-ctags.
The last part is correct. However, the ctags flavour can be configured:
# ls -l /usr/bin/ctags
lrwxrwxrwx 1 root root 14 Apr 5 09:31 /usr/bin/ctags -> ctags-emacs-28
# eselect ctags list
Available ctags symlink targets:
[1] ctags-emacs-28 *
[2] exuberant-ctags
# eselect ctags set 2
Switching ctags to exuberant-ctags ...
# ls -l /usr/bin/ctags
lrwxrwxrwx 1 root root 15 Apr 12 09:32 /usr/bin/ctags -> exuberant-ctags
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-11 18:15 ` Eli Zaretskii
2022-04-11 19:11 ` Ulrich Mueller
@ 2022-04-12 7:42 ` Thierry Volpiatto
1 sibling, 0 replies; 65+ messages in thread
From: Thierry Volpiatto @ 2022-04-12 7:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: spacibba, Stefan Monnier, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> And as someone else pointed out, we already support installing under a
> different name, if the user knows what is that name.
Alternatively, I am installing my different emacs versions with
make install bindir=/usr/local/sbin/emacs-<version> infodir=/usr/local/share/info-<version>
and then I symlink the contents of sbin/emacs-<version>/ to
/usr/local/bin. Just ommiting symlinking sbin/emacs-<version>/ctags may
fix this.
--
Thierry
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 7:16 ` Alfred M. Szmidt
@ 2022-04-12 8:30 ` Andreas Schwab
2022-04-12 10:48 ` Ergus
1 sibling, 0 replies; 65+ messages in thread
From: Andreas Schwab @ 2022-04-12 8:30 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: Ergus, emacs-devel, eliz, dgutov
On Apr 12 2022, Alfred M. Szmidt wrote:
> Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
> ctags is compatible with the Emacs ctags output (which is why it
> exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
> mg(1) on those systems, and their output is at odds with what is
> standardized by POSIX.
Exuberant ctags was originally distributed with vim, so it is tailored
for that.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 7:16 ` Alfred M. Szmidt
2022-04-12 8:30 ` Andreas Schwab
@ 2022-04-12 10:48 ` Ergus
2022-04-12 10:51 ` Po Lu
2022-04-12 13:45 ` Alfred M. Szmidt
1 sibling, 2 replies; 65+ messages in thread
From: Ergus @ 2022-04-12 10:48 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: eliz, dgutov, emacs-devel
On Tue, Apr 12, 2022 at 03:16:50AM -0400, Alfred M. Szmidt wrote:
> >> Do one thing and do it right...
> >
> >And we don't??
>
> ctags is a different "thing" than the emacs "thing" and with the current
> support it has is not right (or good enough)... so... no one thing and
> not right either...
>
>Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
>ctags is compatible with the Emacs ctags output (which is why it
>exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
>mg(1) on those systems, and their output is at odds with what is
>standardized by POSIX.
>
In what sense it is not standarized by POSIX?
I use OpenBSD in my servers daily and all my team around use vim and
neovim with Universal Ctags with no issue. Universal ctags can generate
emacs tags, json, legacy and modern ctags, xref... if there is some
problem the right to do is to open an issue in their project...
Many distros are already renaming our file and nobody notice.
>So really, you're suggesting to remove a standardized utility and
>replace it with non-standard ones that produce incompatible output
>from what is generally accepted.
>
I am suggesting to avoid the forced installation of a utility that we
are not maintaining very well for another very well maintained, with
more languages, support and formats.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 10:48 ` Ergus
@ 2022-04-12 10:51 ` Po Lu
2022-04-12 11:03 ` Ergus
` (2 more replies)
2022-04-12 13:45 ` Alfred M. Szmidt
1 sibling, 3 replies; 65+ messages in thread
From: Po Lu @ 2022-04-12 10:51 UTC (permalink / raw)
To: Ergus; +Cc: Alfred M. Szmidt, eliz, dgutov, emacs-devel
Ergus <spacibba@aol.com> writes:
> I use OpenBSD in my servers daily and all my team around use vim and
> neovim with Universal Ctags with no issue. Universal ctags can generate
> emacs tags, json, legacy and modern ctags, xref... if there is some
> problem the right to do is to open an issue in their project...
vim and neovim are not vi and mg, and are not standardized utilities
either.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 7:21 ` Alfred M. Szmidt
2022-04-12 7:34 ` Ulrich Mueller
@ 2022-04-12 10:53 ` Ergus
1 sibling, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-12 10:53 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: ulm, eliz, emacs-devel
On Tue, Apr 12, 2022 at 03:21:48AM -0400, Alfred M. Szmidt wrote:
> >> The option --with-ctags means rely on System ctags. I don't think you
> >> need anything new.
> >
> >Universal ctags isn't more "system" than Emacs. They're both packages.
> >(Again, this is from a distro point of view.)
>
> emacs's ctags is not a package but just an executable inside another
> package.
>
>On some systems /usr/bin/ctags is always GNU Emacs ctags (e.g., Gentoo
>GNU/Linux); not Exuberant Ctags which is installed as exuberant-ctags.
>
>If Emacs Ctags is missing something, I'm sure Eli et al would be very
>happy to see such patches.
>
Emacs Ctags IS sadly missing a lot... from Modern C++ to Rust,
Javascript family and so on. I don't think a single man or the small
emacs team can compete with universal-ctags at the moment in any sense:
modular design, extensibility, output formats, modern parsing
infrastructure, filters... etc.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 10:51 ` Po Lu
@ 2022-04-12 11:03 ` Ergus
2022-04-12 11:13 ` Dmitry Gutov
2022-04-12 13:45 ` Alfred M. Szmidt
2 siblings, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-12 11:03 UTC (permalink / raw)
To: Po Lu; +Cc: Alfred M. Szmidt, eliz, dgutov, emacs-devel
On Tue, Apr 12, 2022 at 06:51:11PM +0800, Po Lu wrote:
>Ergus <spacibba@aol.com> writes:
>
>> I use OpenBSD in my servers daily and all my team around use vim and
>> neovim with Universal Ctags with no issue. Universal ctags can generate
>> emacs tags, json, legacy and modern ctags, xref... if there is some
>> problem the right to do is to open an issue in their project...
>
>vim and neovim are not vi and mg, and are not standardized utilities
>either.
>
So you mean that we should maintain this executable with an old name
that collides with a better modern one; useful for all the vim (and
other editors) users, just to support two editors that are not emacs,
very popular and with minimal maintenance...
Any way I am tired of this pointless discussion... When things start
like this in the list we end up going nowhere.
Best,
Ergus
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 5:03 ` Ulrich Mueller
@ 2022-04-12 11:13 ` Ergus
2022-04-12 11:48 ` Eli Zaretskii
2022-04-12 12:50 ` Ulrich Mueller
0 siblings, 2 replies; 65+ messages in thread
From: Ergus @ 2022-04-12 11:13 UTC (permalink / raw)
To: Ulrich Mueller; +Cc: Eli Zaretskii, emacs-devel
On Tue, Apr 12, 2022 at 07:03:23AM +0200, Ulrich Mueller wrote:
>>>>>> On Tue, 12 Apr 2022, Eli Zaretskii wrote:
>
>>> Date: Mon, 11 Apr 2022 21:53:50 +0200
>>> From: Ergus <spacibba@aol.com>
>>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>>>
>>> >I still think that any test for an installed binary is a bad idea, from
>>> >a distro point of view. Note that distros typically build packages in an
>>> >environment that is different from the one of the final target system.
>>> >
>>> Here I agree
>
>> How else to test whether this is needed? I'm okay with having
>> "--without-ctags" with no test, but then the default will have to be
>> to install our ctags.
>
>That sounds good.
>
>> With the test, we could refrain from installing it if the test says
>> so.
>
>But then the test should be more specific, and check if there would be a
>file collision at the actual target location (with the name modified by
>--program-transform-name, if applicable). If there's no collision (e.g.
>Emacs ctags has a different name) then Emacs should install it.
>
If we don't do that with mailutils why should we do it with ctags... It
will be more complex and error prone. I would be even simpler and just
add the option --without-ctags to not build our ctags on demand
unconditionally, keeping things as they are now by default.
as a plus we could make: --with-ctags=no, to not build; and we could
allow to do things like: --with-ctags=ctags.emacs to explicitly create
it as ctags.emacs... But I am sure such method will break some standard
or development agreement.
>> I'm also okay with leaving things as they are now, obviously, if this
>> change brings more problems than it solves. I don't consider the
>> current situation bad enough to necessitate any changes.
>
>Things are like this since more than a decade, and obviously distros can
>cope with the status quo.
1) Then exuberant ctags was not so popular
2) The popular languages then were very different than today (even C++
was very different then)
3) There was not universal ctags which supports all of them and our formats.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 10:51 ` Po Lu
2022-04-12 11:03 ` Ergus
@ 2022-04-12 11:13 ` Dmitry Gutov
2022-04-12 11:28 ` Po Lu
2022-04-12 13:45 ` Alfred M. Szmidt
2 siblings, 1 reply; 65+ messages in thread
From: Dmitry Gutov @ 2022-04-12 11:13 UTC (permalink / raw)
To: Po Lu, Ergus; +Cc: Alfred M. Szmidt, eliz, emacs-devel
On 12.04.2022 13:51, Po Lu wrote:
> Ergus<spacibba@aol.com> writes:
>
>> I use OpenBSD in my servers daily and all my team around use vim and
>> neovim with Universal Ctags with no issue. Universal ctags can generate
>> emacs tags, json, legacy and modern ctags, xref... if there is some
>> problem the right to do is to open an issue in their project...
> vim and neovim are not vi and mg, and are not standardized utilities
> either.
Are you saying vi or mg, as opposed to vim and neovim, cannot work with
the tags output by universal ctags?
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 11:13 ` Dmitry Gutov
@ 2022-04-12 11:28 ` Po Lu
2022-04-12 13:45 ` Alfred M. Szmidt
0 siblings, 1 reply; 65+ messages in thread
From: Po Lu @ 2022-04-12 11:28 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Ergus, Alfred M. Szmidt, eliz, emacs-devel
Dmitry Gutov <dgutov@yandex.ru> writes:
> Are you saying vi or mg, as opposed to vim and neovim, cannot work
> with the tags output by universal ctags?
I'm not, but Alfred evidently is.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 11:13 ` Ergus
@ 2022-04-12 11:48 ` Eli Zaretskii
2022-04-12 11:56 ` Eli Zaretskii
2022-04-12 12:50 ` Ulrich Mueller
1 sibling, 1 reply; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-12 11:48 UTC (permalink / raw)
To: Ergus; +Cc: ulm, emacs-devel
> Date: Tue, 12 Apr 2022 13:13:02 +0200
> From: Ergus <spacibba@aol.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>
> >But then the test should be more specific, and check if there would be a
> >file collision at the actual target location (with the name modified by
> >--program-transform-name, if applicable). If there's no collision (e.g.
> >Emacs ctags has a different name) then Emacs should install it.
> >
> If we don't do that with mailutils why should we do it with ctags...
Our mailutils is a security risk of sorts, because it doesn't support
modern secured protocols for fetching email.
The ctags issue is different: there's no security risks involved, only
functionality and features. Thus, it's justified to treat these cases
differently, as regards to the default.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 11:48 ` Eli Zaretskii
@ 2022-04-12 11:56 ` Eli Zaretskii
0 siblings, 0 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-12 11:56 UTC (permalink / raw)
To: spacibba; +Cc: ulm, emacs-devel
> Date: Tue, 12 Apr 2022 14:48:34 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: ulm@gentoo.org, emacs-devel@gnu.org
>
> Our mailutils is a security risk of sorts,
^^^^^^^^^^^^^
I meant "our movemail". Sorry.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-11 19:19 ` Ergus
2022-04-11 19:39 ` Ulrich Mueller
@ 2022-04-12 12:15 ` Eli Zaretskii
1 sibling, 0 replies; 65+ messages in thread
From: Eli Zaretskii @ 2022-04-12 12:15 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Date: Mon, 11 Apr 2022 21:19:33 +0200
> From: Ergus <spacibba@aol.com>
> Cc: emacs-devel@gnu.org
>
> >> (ctags --version) >/dev/null 2>&1 || with_ctags=no
> >>
> >> Isn't this enough?
> >
> >No, because AFAIU this test will succeed also if the installed ctags
> >is (an older version) of the program that came with (an older version)
> >of Emacs. You need to make sure the text emitted by --version does
> >NOT include "GNU Emacs".
> >
> Now?
Seems like this idea makes some people unhappy, but anyway:
> + (ctags --version | grep "GNU Emacs") 2>/dev/null || with_ctags=no
I think you want
(ctags --version | grep "GNU Emacs") >/dev/null 2>&1 || with_ctags=no
here.
> -INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
> - ebrowse${EXEEXT}
> +INSTALLABLES = etags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) ebrowse${EXEEXT} \
> + $(if $(with_ctags), , ctags${EXEEXT})
Isn't it easier to replace the literal "ctags" with a value computed
by the configure script, than have configure compute a flag variable,
and then use $(if ...) in the Makefile?
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [PATCH] Re: etags name collision.
2022-04-12 11:13 ` Ergus
2022-04-12 11:48 ` Eli Zaretskii
@ 2022-04-12 12:50 ` Ulrich Mueller
1 sibling, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2022-04-12 12:50 UTC (permalink / raw)
To: Ergus; +Cc: Eli Zaretskii, emacs-devel
>>>>> On Tue, 12 Apr 2022, Ergus wrote:
>> But then the test should be more specific, and check if there would be a
>> file collision at the actual target location (with the name modified by
>> --program-transform-name, if applicable). If there's no collision (e.g.
>> Emacs ctags has a different name) then Emacs should install it.
> If we don't do that with mailutils why should we do it with ctags...
> It will be more complex and error prone.
Because it's a different problem. The mailutils flag is there because of
security concerns with the bundled movemail. There is no file collision
in that case, because Emacs doesn't install its movemail program in
/usr/bin but in /usr/libexec/emacs/.
> I would be even simpler and just add the option --without-ctags to not
> build our ctags on demand unconditionally, keeping things as they are
> now by default.
Right. The test doesn't add much value (if any).
> as a plus we could make: --with-ctags=no, to not build; and we could
> allow to do things like: --with-ctags=ctags.emacs to explicitly create
> it as ctags.emacs... But I am sure such method will break some standard
> or development agreement.
Way too complicated IMHO.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 10:48 ` Ergus
2022-04-12 10:51 ` Po Lu
@ 2022-04-12 13:45 ` Alfred M. Szmidt
2022-04-12 16:40 ` Ergus
1 sibling, 1 reply; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 13:45 UTC (permalink / raw)
To: Ergus; +Cc: eliz, emacs-devel, dgutov
>Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
>ctags is compatible with the Emacs ctags output (which is why it
>exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
>mg(1) on those systems, and their output is at odds with what is
>standardized by POSIX.
In what sense it is not standarized by POSIX?
The output from Exuberant ctags is not what POSIX asks for. Programs
that expect the POSIX format will thus not work, or do funny stuff.
>So really, you're suggesting to remove a standardized utility and
>replace it with non-standard ones that produce incompatible output
>from what is generally accepted.
I am suggesting to avoid the forced installation of a utility that we
are not maintaining very well for another very well maintained, with
more languages, support and formats.
That is changing the point I was making, that Emacs ctags produces the
standard ctags output where Exuberant ctags does not.
But, I do think that the Emacs maintainers will disagree that
ctags/etags is not being maintained. Like everything in Emacs,
someone has to do the work, and you're most welcome to send patches to
improve ctags (or etags). We all would appreciate it.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 10:51 ` Po Lu
2022-04-12 11:03 ` Ergus
2022-04-12 11:13 ` Dmitry Gutov
@ 2022-04-12 13:45 ` Alfred M. Szmidt
2 siblings, 0 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 13:45 UTC (permalink / raw)
To: Po Lu; +Cc: spacibba, emacs-devel, eliz, dgutov
> I use OpenBSD in my servers daily and all my team around use vim and
> neovim with Universal Ctags with no issue. Universal ctags can generate
> emacs tags, json, legacy and modern ctags, xref... if there is some
> problem the right to do is to open an issue in their project...
vim and neovim are not vi and mg, and are not standardized utilities
either.
vi(1) (and ex(1) which also accepts tags files) is standardized by
POSX, FWIW
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 11:28 ` Po Lu
@ 2022-04-12 13:45 ` Alfred M. Szmidt
2022-04-12 14:29 ` Dmitry Gutov
0 siblings, 1 reply; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 13:45 UTC (permalink / raw)
To: Po Lu; +Cc: spacibba, emacs-devel, eliz, dgutov
> Are you saying vi or mg, as opposed to vim and neovim, cannot work
> with the tags output by universal ctags?
I'm not, but Alfred evidently is.
Can we please not assume we know what people are "evidently" saying?
Unless you are evidently me....
What I think I said was that ctags has a standardized format by POSIX,
this is what Emacs ctags (and BSD ctags) output; Exuberant ctags does
not output this format.
vi(1) (a POSIX standardized utlity, and ex(1) for that matter) and
mg(1), plus other tools expect the POSIX variant of ctags output.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 13:45 ` Alfred M. Szmidt
@ 2022-04-12 14:29 ` Dmitry Gutov
2022-04-12 15:36 ` Óscar Fuentes
2022-04-12 17:13 ` Ergus
0 siblings, 2 replies; 65+ messages in thread
From: Dmitry Gutov @ 2022-04-12 14:29 UTC (permalink / raw)
To: Alfred M. Szmidt, Po Lu; +Cc: spacibba, eliz, emacs-devel
On 12.04.2022 16:45, Alfred M. Szmidt wrote:
> What I think I said was that ctags has a standardized format by POSIX,
> this is what Emacs ctags (and BSD ctags) output; Exuberant ctags does
> not output this format.
Wikipedia says:
Extended Ctags
This is the format used by Vim's Exuberant Ctags and Universal Ctags.
These programs can generate an original ctags file format or an extended
format that attempts to retain backward compatibility.
Universal Ctags's manual says:
u-ctags, e-ctags u-ctags is the default output format extending the
Exuberant Ctags output format
(e-ctags).
--format=1 and --format=2 are same as --output-format=e-ctags and
--output-format=u-ctags respectively.
See man page tags (5) for details. The difference between u-ctags and
e-ctags are marked as “EX-
CEPTION”. Additional changes in Universal Ctags are described in Changes
to the tags file format.
Somebody should experiment with the --format flag, but if there is
indeed no option for the original format,
https://en.wikipedia.org/wiki/Ctags should be updated.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 14:29 ` Dmitry Gutov
@ 2022-04-12 15:36 ` Óscar Fuentes
2022-04-12 17:13 ` Ergus
1 sibling, 0 replies; 65+ messages in thread
From: Óscar Fuentes @ 2022-04-12 15:36 UTC (permalink / raw)
To: emacs-devel
Dmitry Gutov <dgutov@yandex.ru> writes:
> On 12.04.2022 16:45, Alfred M. Szmidt wrote:
>> What I think I said was that ctags has a standardized format by POSIX,
>> this is what Emacs ctags (and BSD ctags) output; Exuberant ctags does
>> not output this format.
>
> Wikipedia says:
>
> Extended Ctags
> This is the format used by Vim's Exuberant Ctags and Universal Ctags.
> These programs can generate an original ctags file format or an
> extended format that attempts to retain backward compatibility.
>
> Universal Ctags's manual says:
>
> u-ctags, e-ctags u-ctags is the default output format extending the
> Exuberant Ctags output format
> (e-ctags).
> --format=1 and --format=2 are same as --output-format=e-ctags and
> --output-format=u-ctags respectively.
> See man page tags (5) for details. The difference between u-ctags and
> e-ctags are marked as “EX-
> CEPTION”. Additional changes in Universal Ctags are described in
> Changes to the tags file format.
>
> Somebody should experiment with the --format flag, but if there is
> indeed no option for the original format,
> https://en.wikipedia.org/wiki/Ctags should be updated.
FWIW: AFAIK Exhuberant Ctags is unmaintained. Now the action happens in
Universal Ctags.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 13:45 ` Alfred M. Szmidt
@ 2022-04-12 16:40 ` Ergus
2022-04-12 17:21 ` Alfred M. Szmidt
0 siblings, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-12 16:40 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: eliz, emacs-devel, dgutov
On Tue, Apr 12, 2022 at 09:45:03AM -0400, Alfred M. Szmidt wrote:
> >Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
> >ctags is compatible with the Emacs ctags output (which is why it
> >exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
> >mg(1) on those systems, and their output is at odds with what is
> >standardized by POSIX.
>
> In what sense it is not standarized by POSIX?
>
>The output from Exuberant ctags is not what POSIX asks for. Programs
>that expect the POSIX format will thus not work, or do funny stuff.
>
Again, I haven't observed that, that's exactly my point, if there is an
issue in universal ctags output format it should be reported, but I
haven't observed any mismatch.
> >So really, you're suggesting to remove a standardized utility and
> >replace it with non-standard ones that produce incompatible output
> >from what is generally accepted.
>
> I am suggesting to avoid the forced installation of a utility that we
> are not maintaining very well for another very well maintained, with
> more languages, support and formats.
>
>That is changing the point I was making, that Emacs ctags produces the
>standard ctags output where Exuberant ctags does not.
>
Universal ctags DOES generate standard ctags format (and some others
like etags format); they actually explicitly refer to vi in the man
page.
Exuberant is not maintained since 2011.
>But, I do think that the Emacs maintainers will disagree that
>ctags/etags is not being maintained. Like everything in Emacs,
>someone has to do the work,
> and you're most welcome to send patches to
>improve ctags (or etags). We all would appreciate it.
>
If there is the free and active universal ctags with a big and active
team doing that work and supporting many format and languages, then it
is pointless to duplicate effort and invest time on that. Don't
reinvent the wheel.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 14:29 ` Dmitry Gutov
2022-04-12 15:36 ` Óscar Fuentes
@ 2022-04-12 17:13 ` Ergus
1 sibling, 0 replies; 65+ messages in thread
From: Ergus @ 2022-04-12 17:13 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Alfred M. Szmidt, Po Lu, eliz, emacs-devel
On Tue, Apr 12, 2022 at 05:29:50PM +0300, Dmitry Gutov wrote:
>On 12.04.2022 16:45, Alfred M. Szmidt wrote:
>>What I think I said was that ctags has a standardized format by POSIX,
>>this is what Emacs ctags (and BSD ctags) output; Exuberant ctags does
>>not output this format.
>
>Wikipedia says:
>
>Extended Ctags
>This is the format used by Vim's Exuberant Ctags and Universal Ctags.
>These programs can generate an original ctags file format or an
>extended format that attempts to retain backward compatibility.
>
>Universal Ctags's manual says:
>
>u-ctags, e-ctags u-ctags is the default output format extending the
>Exuberant Ctags output format
>(e-ctags).
>--format=1 and --format=2 are same as --output-format=e-ctags and
>--output-format=u-ctags respectively.
>See man page tags (5) for details. The difference between u-ctags and
>e-ctags are marked as “EX-
>CEPTION”. Additional changes in Universal Ctags are described in
>Changes to the tags file format.
>
>Somebody should experiment with the --format flag, but if there is
>indeed no option for the original format,
>https://en.wikipedia.org/wiki/Ctags should be updated.
Hi Dmitry:
The Universal ctags manual says:
--format=(1|2)
Change the format of the output tag file. Currently the only
valid values for level are 1 or 2. Level 1 specifies the original
tag file format and level 2 specifies a new extended format
containing extension fields (but in a manner which retains
backward-compatibility with original vi(1) implementations). The
default level is 2. [Ignored in etags mode]
So if this 1 doesn't generate a vi compatible format it is not a
wikipedia issue, it is an issue to report. As I said before, After a
basic test with my limited vi knowledge the format is compatible (and
BTW it worked out of the box with zero effort configuring vi.)
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 16:40 ` Ergus
@ 2022-04-12 17:21 ` Alfred M. Szmidt
2022-04-12 17:48 ` Ergus
2022-04-12 17:53 ` Stefan Monnier
0 siblings, 2 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 17:21 UTC (permalink / raw)
To: Ergus; +Cc: eliz, dgutov, emacs-devel
> >Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
> >ctags is compatible with the Emacs ctags output (which is why it
> >exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
> >mg(1) on those systems, and their output is at odds with what is
> >standardized by POSIX.
>
> In what sense it is not standarized by POSIX?
>
>The output from Exuberant ctags is not what POSIX asks for. Programs
>that expect the POSIX format will thus not work, or do funny stuff.
Again, I haven't observed that, that's exactly my point, if there is an
issue in universal ctags output format it should be reported, but I
haven't observed any mismatch.
I have observed the case, the POSIX format is stricter, the output
from ctags as specified by POSIX is (there are slight variants, but it
is always three fields):
"%s\t%s\t/%s/\n", <identifier>, <filename>, <pattern>
for example, GNU Emacs ctags outputs:
syms_of_cmds cmds.c /^syms_of_cmds (void)$/
where Exuberant (and Universal) ctags outputs:
syms_of_cmds cmds.c /^syms_of_cmds (void)$/;" f typeref:typename:void
It is fair to fail on not being able to accept the above, or treating
the third field as one. And one might also question how to treat a
pattern with a trailing double quote.
> >So really, you're suggesting to remove a standardized utility and
> >replace it with non-standard ones that produce incompatible output
> >from what is generally accepted.
>
> I am suggesting to avoid the forced installation of a utility that we
> are not maintaining very well for another very well maintained, with
> more languages, support and formats.
>
>That is changing the point I was making, that Emacs ctags produces the
>standard ctags output where Exuberant ctags does not.
Universal ctags DOES generate standard ctags format (and some others
like etags format); they actually explicitly refer to vi in the man
page.
No, it does not. See above; from Universal ctags from 2019.
Exuberant is not maintained since 2011.
People still use software that is older, just that something is "not
maintained" (which can mean many things) doesn't mean that it stops
being useless.
If there is the free and active universal ctags with a big and active
team doing that work and supporting many format and languages, then it
is pointless to duplicate effort and invest time on that. Don't
reinvent the wheel.
That is quite a dismissive comment, Emacs ctags existed long before
any of those existed (and at that point, we did not have any ctags on
GNU) so one might question who is reinventing the wheel here...
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 17:21 ` Alfred M. Szmidt
@ 2022-04-12 17:48 ` Ergus
2022-04-12 19:50 ` Alfred M. Szmidt
2022-04-12 17:53 ` Stefan Monnier
1 sibling, 1 reply; 65+ messages in thread
From: Ergus @ 2022-04-12 17:48 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: eliz, dgutov, emacs-devel
On Tue, Apr 12, 2022 at 01:21:53PM -0400, Alfred M. Szmidt wrote:
> > >Not all systems use Exuberant Ctags or Universal Ctags. On the BSDs,
> > >ctags is compatible with the Emacs ctags output (which is why it
> > >exists, AFAIR). Exuberant Ctags etc do not work with either vi(1) or
> > >mg(1) on those systems, and their output is at odds with what is
> > >standardized by POSIX.
> >
> > In what sense it is not standarized by POSIX?
> >
> >The output from Exuberant ctags is not what POSIX asks for. Programs
> >that expect the POSIX format will thus not work, or do funny stuff.
>
> Again, I haven't observed that, that's exactly my point, if there is an
> issue in universal ctags output format it should be reported, but I
> haven't observed any mismatch.
>
>I have observed the case, the POSIX format is stricter, the output
>from ctags as specified by POSIX is (there are slight variants, but it
>is always three fields):
>
> "%s\t%s\t/%s/\n", <identifier>, <filename>, <pattern>
>
>for example, GNU Emacs ctags outputs:
>
> syms_of_cmds cmds.c /^syms_of_cmds (void)$/
>
>where Exuberant (and Universal) ctags outputs:
>
> syms_of_cmds cmds.c /^syms_of_cmds (void)$/;" f typeref:typename:void
>
Did you tried the format=1 option?
>It is fair to fail on not being able to accept the above, or treating
>the third field as one. And one might also question how to treat a
>pattern with a trailing double quote.
>
> > >So really, you're suggesting to remove a standardized utility and
> > >replace it with non-standard ones that produce incompatible output
> > >from what is generally accepted.
> >
> > I am suggesting to avoid the forced installation of a utility that we
> > are not maintaining very well for another very well maintained, with
> > more languages, support and formats.
> >
> >That is changing the point I was making, that Emacs ctags produces the
> >standard ctags output where Exuberant ctags does not.
>
> Universal ctags DOES generate standard ctags format (and some others
> like etags format); they actually explicitly refer to vi in the man
> page.
>
>No, it does not. See above; from Universal ctags from 2019.
>
See above
> Exuberant is not maintained since 2011.
>
>People still use software that is older, just that something is "not
>maintained" (which can mean many things) doesn't mean that it stops
>being useless.
>
Agree, but any error in Exuberant Ctags has been fixed in Universal
version and can be reported there to be fixed immediately.
> If there is the free and active universal ctags with a big and active
> team doing that work and supporting many format and languages, then it
> is pointless to duplicate effort and invest time on that. Don't
> reinvent the wheel.
>
>That is quite a dismissive comment, Emacs ctags existed long before
>any of those existed (and at that point, we did not have any ctags on
>GNU) so one might question who is reinventing the wheel here...
>
Agree, but now their wheel is better. If they had the motivation, man
power and patience to implement something more complete and compatible,
in a shorter time and share it with the community for 10 years, the fact
that many users prefer it and the backward compatibility they have with
the original version... plus a lack of man power we have... it is
pointless to duplicate the effort. Emacs developers should join effort
in other direction (treesitter, lsp, project features and so on; that's
my personal opinion of course.)
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 17:21 ` Alfred M. Szmidt
2022-04-12 17:48 ` Ergus
@ 2022-04-12 17:53 ` Stefan Monnier
1 sibling, 0 replies; 65+ messages in thread
From: Stefan Monnier @ 2022-04-12 17:53 UTC (permalink / raw)
To: Alfred M. Szmidt; +Cc: Ergus, eliz, dgutov, emacs-devel
> If there is the free and active universal ctags with a big and active
> team doing that work and supporting many format and languages, then it
> is pointless to duplicate effort and invest time on that. Don't
> reinvent the wheel.
>
> That is quite a dismissive comment, Emacs ctags existed long before
> any of those existed (and at that point, we did not have any ctags on
> GNU) so one might question who is reinventing the wheel here...
Hmm... if you're talking about the past then Emacs, Exhuberant Ctags,
and Universal Ctags have all reinventing the wheel here. But that's the
past, what's done is done.
Ergus was talking about current efforts, where indeed it seems that
trying to invest effort into making our etags/ctags code work as well as
Universal Ctags is a kind of reinventing the wheel and the benefit
doesn't seem very clear.
Stefan
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 17:48 ` Ergus
@ 2022-04-12 19:50 ` Alfred M. Szmidt
2022-04-12 20:49 ` Dmitry Gutov
0 siblings, 1 reply; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-12 19:50 UTC (permalink / raw)
To: Ergus; +Cc: eliz, emacs-devel, dgutov
>where Exuberant (and Universal) ctags outputs:
>
> syms_of_cmds cmds.c /^syms_of_cmds (void)$/;" f typeref:typename:void
Did you tried the format=1 option?
No, it is not supported by POSIX -- that is sorta the point of using
standard-ish compliant utilities.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 19:50 ` Alfred M. Szmidt
@ 2022-04-12 20:49 ` Dmitry Gutov
2022-04-13 5:45 ` Alfred M. Szmidt
0 siblings, 1 reply; 65+ messages in thread
From: Dmitry Gutov @ 2022-04-12 20:49 UTC (permalink / raw)
To: Alfred M. Szmidt, Ergus; +Cc: eliz, emacs-devel
On 12.04.2022 22:50, Alfred M. Szmidt wrote:
> >where Exuberant (and Universal) ctags outputs:
> >
> > syms_of_cmds cmds.c /^syms_of_cmds (void)$/;" f typeref:typename:void
>
> Did you tried the format=1 option?
>
> No, it is not supported by POSIX -- that is sorta the point of using
> standard-ish compliant utilities.
What's the point, though?
I can understand trying to support a standard format, but for programs...?
Would you also standardize Emacs and avoid adding new features because
of that?
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: etags name collision.
2022-04-12 20:49 ` Dmitry Gutov
@ 2022-04-13 5:45 ` Alfred M. Szmidt
0 siblings, 0 replies; 65+ messages in thread
From: Alfred M. Szmidt @ 2022-04-13 5:45 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: spacibba, eliz, emacs-devel
I can understand trying to support a standard format, but for programs...?
Programs relay on the standard format to be what it is.
Would you also standardize Emacs and avoid adding new features because
of that?
Nobody said anything about avoiding new features.
^ permalink raw reply [flat|nested] 65+ messages in thread
end of thread, other threads:[~2022-04-13 5:45 UTC | newest]
Thread overview: 65+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220411124736.3qijvtearh6wlen7.ref@Ergus>
2022-04-11 12:47 ` etags name collision Ergus
2022-04-11 13:18 ` Eli Zaretskii
2022-04-11 13:38 ` Dmitry Gutov
2022-04-11 13:52 ` Ergus
2022-04-11 14:11 ` Eli Zaretskii
2022-04-11 14:25 ` Ergus
2022-04-12 7:16 ` Alfred M. Szmidt
2022-04-12 8:30 ` Andreas Schwab
2022-04-12 10:48 ` Ergus
2022-04-12 10:51 ` Po Lu
2022-04-12 11:03 ` Ergus
2022-04-12 11:13 ` Dmitry Gutov
2022-04-12 11:28 ` Po Lu
2022-04-12 13:45 ` Alfred M. Szmidt
2022-04-12 14:29 ` Dmitry Gutov
2022-04-12 15:36 ` Óscar Fuentes
2022-04-12 17:13 ` Ergus
2022-04-12 13:45 ` Alfred M. Szmidt
2022-04-12 13:45 ` Alfred M. Szmidt
2022-04-12 16:40 ` Ergus
2022-04-12 17:21 ` Alfred M. Szmidt
2022-04-12 17:48 ` Ergus
2022-04-12 19:50 ` Alfred M. Szmidt
2022-04-12 20:49 ` Dmitry Gutov
2022-04-13 5:45 ` Alfred M. Szmidt
2022-04-12 17:53 ` Stefan Monnier
2022-04-11 13:59 ` Andreas Schwab
2022-04-11 14:07 ` Eli Zaretskii
2022-04-11 13:47 ` Ergus
2022-04-11 14:09 ` Eli Zaretskii
2022-04-11 14:18 ` Ergus
2022-04-11 15:46 ` [PATCH] " Ergus
2022-04-11 15:51 ` Eli Zaretskii
2022-04-11 16:19 ` Ergus
2022-04-11 16:40 ` Eli Zaretskii
2022-04-11 19:19 ` Ergus
2022-04-11 19:39 ` Ulrich Mueller
2022-04-11 19:53 ` Ergus
2022-04-11 21:04 ` Ulrich Mueller
2022-04-11 22:20 ` Ergus
2022-04-12 7:21 ` Alfred M. Szmidt
2022-04-12 7:34 ` Ulrich Mueller
2022-04-12 10:53 ` Ergus
2022-04-12 2:28 ` Eli Zaretskii
2022-04-12 2:43 ` Po Lu
2022-04-12 5:03 ` Ulrich Mueller
2022-04-12 11:13 ` Ergus
2022-04-12 11:48 ` Eli Zaretskii
2022-04-12 11:56 ` Eli Zaretskii
2022-04-12 12:50 ` Ulrich Mueller
2022-04-12 7:16 ` Alfred M. Szmidt
2022-04-12 12:15 ` Eli Zaretskii
2022-04-11 16:46 ` Stefan Monnier
2022-04-11 17:01 ` Eli Zaretskii
2022-04-11 17:41 ` Stefan Monnier
2022-04-11 18:15 ` Eli Zaretskii
2022-04-11 19:11 ` Ulrich Mueller
2022-04-12 7:42 ` Thierry Volpiatto
2022-04-11 18:15 ` Ergus
2022-04-11 23:09 ` Ergus
2022-04-11 14:10 ` Andreas Schwab
2022-04-11 13:56 ` Kaushal Modi
2022-04-11 14:16 ` Óscar Fuentes
2022-04-12 3:19 ` Richard Stallman
2022-04-12 7:16 ` Alfred M. Szmidt
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.