emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH, RFC] etags/ctags v22.0.92 break Linux kernel `make TAGS/tags


From: Francesco Potorti`
Subject: Re: [PATCH, RFC] etags/ctags v22.0.92 break Linux kernel `make TAGS/tags`
Date: Wed, 03 Jan 2007 02:24:56 +0100

>Why shipping an own ctags/etags implementation at all? I mean Exuberant
>ctags works really well

The reason etags is there is fundamentally that it always was there, and
that it works well.  Its maintenance has very low cost (I do it myself,
and I spend very little time on it), and having two more or less
equivalent implementation is not a bad thing, until they are
approximately the same quality.  Finally, etags' copyright is FSF's,
like most GNU software.

That said, your question makes a lot of sense.  Duplicating effort is
not a wise thing.  For a start, I worked a lot with Xemacs people in the
past, and we succeded in using the exact same version of etags for both
the Emacs and the Xemacs distributions.

As far as four years ago, I had a brief mail exchange with Darren
Hiebert, the author of exuberant ctags.  We both said we were interested
in studying the possibility of dropping etags in favour of exctags
(short for the real name), but no one of us had then the time to do a
deeper research on the relative strenghts and weaknesses.

What I discovered by then (note, four years ago) is that:
- etags was faster and generated a smaller tags file
- exctags has a much cleaner code, which is probably easier to maintain
- etags made a slightly better job at tagging complex C/C++ constructs
- etags knew about some structures for Emacs code (DEFUN, etc.)
- etags had a slightly wider choice of known languages
- exctags has an -R option for recursively tagging files in a dir tree
- exctags has a way of specifying some constructs on the command line

In fact, the only really significant differences I found was the code
cleanliness of exctags, and the -R option.  The former is really
important only for the C/C++ parsing, which in etags is really
unreadable, but incredibly it works very well.  The latter *the -R
option) is very nice, but I never had the time to implement it in etags.

Since then, maybe exctags has progressed.  Etags has progressed little,
but something was done:
- etags recognises and parses #line directives
- etags supports regular expressions with regexp modifiers à la Perl
- etags now parses Html, Lua, Php and, to a lesser extent, Forth

>(at least in my experience as a C++ coder much better than the Emacs
>etags) and it's GPL software.

I am interested in this.  Have you ever tried the version of ctags in
pretest?  Even if in pretest, it is quite mature, and should perform
better than the etags shipped with Emacs 21.  Would you send me a source
file where exctags performs better than etags?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]