Skip to contentSkip to conversation

tags: Unify emacs and exuberant rules

DISCUSSION Dave Jones 2 participants 2 messages Jan 21, 2016 – Jan 22, 2016 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Dave Jones

author
#1 lore raw
Quoted 22 lines · Linux Kernel
Web:        https://git.kernel.org/torvalds/c/93209d65c1d38f86ffb3f61a1214130b581a9709
Commit:     93209d65c1d38f86ffb3f61a1214130b581a9709
Parent:     a1ccdb63b5535dc3446b0a9efc6d97aca82c72ef
Refname:    refs/heads/master
Author:     Michal Marek <[email protected]>
AuthorDate: Wed Oct 14 11:48:06 2015 +0200
Committer:  Michal Marek <[email protected]>
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:

Quoted 4 lines

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert etags (GNU Emacs 24.5)

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 ?

Dave

#2 lore raw
Quoted 43 lines · Dave Jones
Quoted 22 lines · Linux Kernel
Web:        https://git.kernel.org/torvalds/c/93209d65c1d38f86ffb3f61a1214130b581a9709
Commit:     93209d65c1d38f86ffb3f61a1214130b581a9709
Parent:     a1ccdb63b5535dc3446b0a9efc6d97aca82c72ef
Refname:    refs/heads/master
Author:     Michal Marek <[email protected]>
AuthorDate: Wed Oct 14 11:48:06 2015 +0200
Committer:  Michal Marek <[email protected]>
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:

Quoted 4 lines

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert etags (GNU Emacs 24.5)

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"
Quoted 1 line

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