all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Francesco Potortì" <Potorti@isti.cnr.it>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 20629@debbugs.gnu.org, Richard Stallman <rms@gnu.org>, dgutov@yandex.ru
Subject: bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files.
Date: Fri, 29 May 2015 14:34:55 +0200	[thread overview]
Message-ID: <E1YyJV1-0000hk-Gg@tucano.isti.cnr.it> (raw)
In-Reply-To: <83h9qvx0t7.fsf@gnu.org>

Eli Zaretskii:
>> From: Glenn Morris <rgm@gnu.org>
>> Cc: Eli Zaretskii <eliz@gnu.org>,  20629@debbugs.gnu.org
>> Date: Fri, 29 May 2015 02:48:57 -0400
>> 
>> Dmitry Gutov wrote:
>> 
>> > If you want my opinion (please keep in mind: not an etags user),
>> > following in Exuberant Ctags's footsteps sounds best.
>> 
>> I'm not one either, but I've been meaning to ask: why is etags in Emacs?
>
>The answer to that is lost in history (for me).  Perhaps Richard and
>Francesco (cc'ed) will remember.

When Etags was written, the only alternative was the traditional Unix
Ctags, to which Etags was an improvement.  Since Etags is able to
produce traditional Ctags-style files, yuo can look at the macro CTAGS
in etags.c to spot the differences.  This is a historical summary:

 * 1983 Ctags originally by Ken Arnold.
 * 1984 Fortran added by Jim Kleckner.
 * 1984 Ed Pelegri-Llopart added C typedefs.
 * 1985 Emacs TAGS format by Richard Stallman.
 * 1989 Sam Kendall added C++.
 * 1992 Joseph B. Wells improved C and C++ parsing.
 * 1993 Francesco Potortì reorganized C and C++.
 * 1994 Line-by-line regexp tags by Tom Tromey.
 * 2001 Nested classes by Francesco Potortì (concept by Mykola Dzyuba).
 * 2002 #line directives by Francesco Potortì.

/* Define CTAGS to make the program "ctags" compatible with the usual one.
 Leave it undefined to make the program "etags", which makes emacs-style
 tag tables and tags typedefs, #defines and struct/union/enum by default. */

>But since it is here, it is, IMO, a Good Thing, because we can easily
>affect its operation where it's important to us.  Especially lately,
>when the front-end was changed, and the new one has different
>expectations.

Yes.  This is important.  Obviously, this could be done in any similar
program having an --emacs option (see for example ls --dired).

>> It's my (superficial) impression that etags hasn't progressed much since
>> then. The majority of the changes seem to have been generic code-cleanup
>> stuff.
>
>That's not true, there were a couple of non-trivial changes lately
>that are not cleanups, and I think there will be one more soon.  This
>thread discusses some of them, the other one is discussed here:
>
>  http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00291.html

There have been significant bug squashing, tagging improvements and
language supporting features added at least until 2004.  Very few after
that time from my part.

>> Is it that etags recognizes Emacs-specific C code that ctags does not?
>
>Which ctags do you allude to here?  There are quite a few of them out
>there.
>
>> My only motivation for asking is that it's good to reduce the number of
>> things that need to be maintained in Emacs, where possible.
>
>I don't think we should remove this one, no.

This is from an old mail, referring to around 2004:

>In fact, some years ago I run an in-depth comparison between etags and
>exhuberant ctags, with mixed results.  None excelled clearly with
>respect to the other.  Only two functionality I missed in etags: the
>ability to read directories (with optional recursion) and the ability to
>generate the new tags types introduced by ctags.

On the other hand, Ex-C is much more customisable on the command line
and has a much clearer code (even if I don't know whether this in fact
translates to easier code management).  At that time, I had even had an
email exchange with Ex-c authors to try and merge the code bases, but
this did not went on for lack of time.

So Etags was not bad at all some ten years ago.  I don't know if Ex-c or
others have significantly progressed in the meantime.





  reply	other threads:[~2015-05-29 12:34 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-22  5:57 bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files Jan D.
2015-05-23 11:54 ` Jan Djärv
2015-05-23 12:04   ` Dmitry Gutov
2015-05-23 12:15     ` Jan Djärv
2015-05-23 12:18       ` Dmitry Gutov
2015-05-23 12:28         ` Jan Djärv
2015-05-23 12:39           ` Dmitry Gutov
2015-05-23 13:51           ` Eli Zaretskii
2015-05-23 13:50       ` Eli Zaretskii
2015-05-23 14:46         ` Eli Zaretskii
2015-05-23 15:56           ` Eli Zaretskii
2015-05-25 15:15             ` Eli Zaretskii
2015-05-25 21:17               ` Dmitry Gutov
2015-05-26  2:35                 ` Eli Zaretskii
2015-05-26 10:16                   ` Dmitry Gutov
2015-05-26 15:06                     ` Eli Zaretskii
2015-05-26 19:00                       ` Dmitry Gutov
2015-05-26 19:23                         ` Eli Zaretskii
2015-05-26 21:01                           ` Stefan Monnier
2015-05-28 11:54                             ` Dmitry Gutov
2015-05-28 12:59                               ` Dmitry Gutov
2015-05-26 23:56                           ` Dmitry Gutov
2015-05-27 14:28                             ` Eli Zaretskii
2015-05-27 15:28                               ` Dmitry Gutov
2015-05-27 15:46                                 ` Eli Zaretskii
2015-05-27 15:54                                   ` Dmitry Gutov
2015-05-27 16:23                                     ` Eli Zaretskii
2015-05-27 23:50                                       ` Dmitry Gutov
2015-05-28  2:50                                         ` Eli Zaretskii
2015-05-28 10:22                                           ` Dmitry Gutov
2015-05-28 14:56                                             ` Eli Zaretskii
2015-05-28 15:32                                               ` Dmitry Gutov
2015-05-28 16:34                                                 ` Eli Zaretskii
2015-05-29  0:09                                                   ` Dmitry Gutov
2015-05-29  6:48                                                     ` Glenn Morris
2015-05-29  8:09                                                       ` Eli Zaretskii
2015-05-29 12:34                                                         ` Francesco Potortì [this message]
2015-05-29  9:27                                                       ` Dmitry Gutov
2015-05-29  8:12                                                     ` Eli Zaretskii
2015-05-29 14:05                                                       ` Dmitry Gutov
2015-05-29 16:51                                                         ` Stefan Monnier
2015-05-29 17:12                                                           ` Dmitry Gutov
2015-05-29 19:19                                                             ` Stefan Monnier
2015-05-29 20:33                                                               ` Dmitry Gutov
2015-05-29 21:41                                                                 ` etags completion table (was: bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files) Stefan Monnier
2015-05-29 23:58                                                                   ` etags completion table Dmitry Gutov
2015-05-30  4:00                                                                     ` Stefan Monnier
2015-05-30 11:50                                                                       ` Dmitry Gutov
2015-05-31  0:57                                                                         ` Stefan Monnier
2015-05-29 18:28                                                         ` bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files Eli Zaretskii
2015-05-29 20:01                                                           ` Dmitry Gutov
2015-05-29 20:35                                                             ` Eli Zaretskii
2015-05-29 22:36                                                               ` Dmitry Gutov
2015-05-30  6:52                                                                 ` Eli Zaretskii
2015-05-30 12:52                                                                   ` Dmitry Gutov
2015-05-30 13:03                                                                     ` Eli Zaretskii
2015-05-30 14:21                                                                     ` Francesco Potortì
2015-05-30 14:44                                                                       ` Dmitry Gutov
2015-05-28 11:35                                   ` Francesco Potortì
2015-05-28 11:46                                     ` Dmitry Gutov
2015-05-28 12:16                                       ` Francesco Potortì
2015-05-28 13:00                                         ` Dmitry Gutov
2015-05-28 13:12                                           ` Francesco Potortì
2015-05-28 15:04                                             ` Eli Zaretskii
2015-05-28 15:14                                               ` Francesco Potortì
2015-05-28 15:29                                                 ` Francesco Potortì
2015-05-29 17:13                                                 ` Dmitry Gutov
2015-05-30 12:06                             ` Eli Zaretskii
2015-05-30 12:30                               ` Dmitry Gutov
2015-05-30 12:46                                 ` Eli Zaretskii
2015-05-30 13:42                                   ` Dmitry Gutov
2015-05-30 14:31                                     ` Eli Zaretskii
2015-05-30 15:03                                       ` Dmitry Gutov
2015-05-30 16:37                                         ` Eli Zaretskii
2015-05-30 17:46                                           ` Dmitry Gutov
2015-05-30 18:46                                             ` Eli Zaretskii
2015-05-30 19:42                                               ` Dmitry Gutov
2015-11-26  3:23                                                 ` Dmitry Gutov
2015-11-26 15:43                                                   ` Eli Zaretskii
2015-11-26 16:12                                                     ` Dmitry Gutov
2015-11-26 16:32                                                       ` Eli Zaretskii
2015-11-27  3:54                                                         ` Dmitry Gutov
2016-03-19 18:45                                                           ` Eli Zaretskii
2015-05-30 17:01                                       ` Francesco Potortì
2015-05-30 18:13                                         ` Dmitry Gutov
2015-05-30 18:42                                           ` Eli Zaretskii
2015-05-30 19:35                                           ` Francesco Potortì
2015-05-30 20:04                                             ` Dmitry Gutov
2015-05-30 22:35                                               ` Francesco Potortì
2015-05-31  0:34                                                 ` Dmitry Gutov
2015-05-31 21:46 ` bug#20629: Fwd: bug#20703: 24.4; Stack overflow in regexp matcher Francesco Potortì
2015-05-31 22:20   ` Dmitry Gutov
2015-05-31 22:40     ` Francesco Potortì

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=E1YyJV1-0000hk-Gg@tucano.isti.cnr.it \
    --to=potorti@isti.cnr.it \
    --cc=20629@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

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

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

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

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