From: Ján Tomko Date: Tue, 2 Aug 2016 13:41:13 +0000 (+0200) Subject: maint.mk: expand the prohibit_doubled_word regex X-Git-Tag: v1.0~6701 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=0fe8b3c8116168e3b8b058df63ddedd45c3fcab0;p=gnulib.git maint.mk: expand the prohibit_doubled_word regex This check has a static list of words that are checked for repetitions. Expand it before running the perl script to avoid using expensive captures. This decreases the cost for libvirt from 1.66s to 0.66s. * top/maint.mk (prohibit_doubled_word_expanded_): Define. (sc_prohibit_doubled_word): Use it. --- diff --git a/ChangeLog b/ChangeLog index 8e8ba77718..7cfc6f73c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2016-08-02 Ján Tomko + + maint.mk: expand the prohibit_doubled_word regex + This check has a static list of words that are checked for + repetitions. Expand it before running the perl script to + avoid using expensive captures. This decreases the cost + for libvirt from 1.66s to 0.66s. + * top/maint.mk (prohibit_doubled_word_expanded_): Define. + (sc_prohibit_doubled_word): Use it. + 2016-07-26 Ján Tomko useless-if-before-free: skip non-matching lines early diff --git a/top/maint.mk b/top/maint.mk index 9ca2bd3b32..868e10f004 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -962,8 +962,13 @@ perl_filename_lineno_text_ = \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' +prohibit_doubled_words_ = \ + the then in an on if is it but for or at and do to +# expand the regex before running the check to avoid using expensive captures +prohibit_doubled_word_expanded_ = \ + $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_))) prohibit_doubled_word_RE_ ?= \ - /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims + /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_)