Re: tags: Unify emacs and exuberant rules

From: Michal Marek
Date: Fri Jan 22 2016 - 02:48:16 EST


On 2016-01-21 06:22, Dave Jones wrote:
> On Wed, Jan 20, 2016 at 06:22:04PM +0000, Linux Kernel wrote:
> > Web: https://git.kernel.org/torvalds/c/93209d65c1d38f86ffb3f61a1214130b581a9709
> > Commit: 93209d65c1d38f86ffb3f61a1214130b581a9709
> > Parent: a1ccdb63b5535dc3446b0a9efc6d97aca82c72ef
> > Refname: refs/heads/master
> > Author: Michal Marek <mmarek@xxxxxxxx>
> > AuthorDate: Wed Oct 14 11:48:06 2015 +0200
> > Committer: Michal Marek <mmarek@xxxxxxxx>
> > CommitDate: Tue Jan 5 22:18:48 2016 +0100
> >
> > tags: Unify emacs and exuberant rules
> >
> > The emacs rules were constantly lagging behind the exuberant ones. Use a
> > single set of rules for both, to make the script easier to maintain.
> > The language understood by both tools is basic regular expression with
> > some limitations, which are documented in a comment. To be able to store
> > the rules in an array and easily iterate over it, the script requires
> > bash now. In the exuberant case, the change fixes some false matches in
> > <linux/page-flags.h> and also some too greedy matches in the arguments
> > of the DECLARE_*/DEFINE_* macros. In the emacs case, several previously
> > not working rules are matching now. Tested with these versions of the
> > tools:
> >
> > Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
> > etags (GNU Emacs 24.5)
> >
> > Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
>
> Since today, make tags got a lot more noisy for me on Debian unstable
> (exuberant-ctags 1:5.9~svn20110310-10)
>
> $ make tags
> GEN tags
> ctags: Warning: drivers/xen/events/events_2l.c:41: null expansion of name pattern "\1"
> ctags: Warning: drivers/acpi/processor_idle.c:64: null expansion of name pattern "\1"
> ctags: Warning: kernel/locking/lockdep.c:153: null expansion of name pattern "\1"
> ctags: Warning: kernel/workqueue.c:307: null expansion of name pattern "\1"
> ctags: Warning: kernel/rcu/rcutorture.c:133: null expansion of name pattern "\1"
> ctags: Warning: kernel/rcu/rcutorture.c:135: null expansion of name pattern "\1"
> ctags: Warning: net/rds/page.c:45: null expansion of name pattern "\1"
> ctags: Warning: net/ipv6/syncookies.c:44: null expansion of name pattern "\1"
> ctags: Warning: net/ipv4/syncookies.c:53: null expansion of name pattern "\1"
>
> Looks like it's choking on DEFINE_PER_CPU definitions ?

Yes. But each time I submitted a patch to remove the line breaks in
DEFINE_PER_CPU, somebody came up with the clever idea to fix ctags instead.

Michal