Subject: 24.3.50; Flymake uses unrelated patterns to match error messages

From: Oleg Sivokon <[email-masked]>
Date: Sat, 17 Aug 2013 19:06:08 +0300

Hello,

This is not entirely a bug, rather a behaviour that could be greatly
improved.

While trying to debug my own code, which deals with Flymake I've
realized that no matter the major mode, Flymake will iterate over ALL
`flymake-err-line-patterns' patterns (this may be a lot of complicated
regular expressions) to match the error message just received. This is
both counterproductive and is difficult to debug. Would it be possible
that Flimake expose this variable for customization to those who want to
use it, and while running a check on the specific mode, only use the
regular epxression defined for that mode?

Best,

Oleg

------------------------------------------------------------------------

In GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.6.4)
 of 2013-08-16 on wvxvvw-laptop
Bzr revision: 113919 [email-masked]
Windowing system distributor `Fedora Project', version 11.0.11303000
System Description:	Fedora release 18 (Spherical Cow)

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  shell-dirtrack-mode: t
  elisp-slime-nav-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-hl-line-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  jabber-activity-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  global-rudel-minor-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC C-n C-p C-x o M-> C-x h C-w C-x o C-c C-f C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-c C-f C-n C-n 
C-n C-n C-n M-b M-b M-b M-b M-b M-b M-b C-SPC M-f M-f 
M-f M-f M-w C-s <return> C-y <return> C-s C-s C-s <return> 
M-f M-b C-p C-p C-p C-p C-p C-p C-p C-p M-b M-b M-b 
M-b M-b M-f M-f M-b C-SPC M-f M-f M-f M-f M-w C-s <return> 
C-y <return> C-s C-s <return> C-l C-n M-. C-M-S-f <tab> 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n 
M-f M-f M-f M-. C-M-S-f <tab> C-x o C-x o C-x h C-w 
C-x o C-x o <M-backspace> m e h C-x o C-x o C-p C-p 
C-u C-c C-f C-x o C-x o C-x h C-w C-x o C-x o <M-backspace> 
b l e r h SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC 
SPC SPC SPC q C-x o C-x h C-w C-x o C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p M-f M-f M-. M-f 
M-f M-b C-SPC M-f M-f M-f M-f M-f M-b M-b M-f M-w C-s 
<return> C-y C-s C-s C-s C-s C-s C-s <return> M-< M-x 
r e p o <tab> r <tab> b u <tab> <return>

Recent messages:
Mark set [2 times]
Searching for flymake-err-line-patterns...
Mark set [2 times]
Mark saved where search started [2 times]
Mark set
Auto-saving...
Making completion list...

Load-path shadows:
~/.emacs.d/ensime/elisp/popup hides /home/wvxvw/.emacs.d/autocomplete/popup
~/.emacs.d/ensime/elisp/fuzzy hides /home/wvxvw/.emacs.d/autocomplete/fuzzy
~/.emacs.d/ensime/elisp/auto-complete hides /home/wvxvw/.emacs.d/autocomplete/auto-complete
/home/wvxvw/.emacs.d/w3m/w3m-bookmark hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-bookmark
/home/wvxvw/.emacs.d/w3m/w3m-form hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-form
/home/wvxvw/.emacs.d/w3m/w3m-cookie hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-cookie
/home/wvxvw/.emacs.d/w3m/w3m-bug hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-bug
/home/wvxvw/.emacs.d/w3m/w3m-mail hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-mail
/home/wvxvw/.emacs.d/w3m/w3m-weather hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-weather
/home/wvxvw/.emacs.d/w3m/w3m-dtree hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-dtree
/home/wvxvw/.emacs.d/w3m/w3m-favicon hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-favicon
/home/wvxvw/.emacs.d/w3m/w3m-proc hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-proc
/home/wvxvw/.emacs.d/w3m/w3m-perldoc hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-perldoc
/home/wvxvw/.emacs.d/w3m/w3m-rss hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-rss
/home/wvxvw/.emacs.d/w3m/w3m-fb hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-fb
/home/wvxvw/.emacs.d/w3m/w3m-tabmenu hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-tabmenu
/home/wvxvw/.emacs.d/w3m/w3m-symbol hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-symbol
/home/wvxvw/.emacs.d/w3m/bookmark-w3m hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/bookmark-w3m
/home/wvxvw/.emacs.d/w3m/w3m-namazu hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-namazu
/home/wvxvw/.emacs.d/w3m/w3m-search hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-search
/home/wvxvw/.emacs.d/w3m/w3m-image hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-image
/home/wvxvw/.emacs.d/w3m/w3m-session hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-session
/home/wvxvw/.emacs.d/w3m/w3m-lnum hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-lnum
/home/wvxvw/.emacs.d/w3m/w3m-filter hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-filter
/home/wvxvw/.emacs.d/w3m/w3m-util hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-util
/home/wvxvw/.emacs.d/w3m/w3m-ccl hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-ccl
/home/wvxvw/.emacs.d/w3m/w3m-antenna hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-antenna
/home/wvxvw/.emacs.d/w3m/w3m-hist hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-hist
/home/wvxvw/.emacs.d/w3m/w3m hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m
/home/wvxvw/.emacs.d/w3m/octet hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/octet
/home/wvxvw/.emacs.d/w3m/w3m-ems hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/w3m-ems
/home/wvxvw/.emacs.d/w3m/mime-w3m hides /home/wvxvw/.emacs.d/elpa/w3m-20121225.147/mime-w3m
/home/wvxvw/.emacs.d/elpa/magit-20130524.1906/.dir-locals hides /usr/local/share/emacs/24.3.50/lisp/gnus/.dir-locals

Features:
(shadow sort mail-extr emacsbug edebug vc-dispatcher bookmark dabbrev
flymake-cursor ac-js2 skewer-mode cache-table simple-httpd js2-mode
imenu quail dunnet misearch multi-isearch tramp-cache sh-script smie
executable network-stream vc-git slime-tramp tramp tramp-compat
tramp-loaddefs trampver shell eldoc slime-fancy slime-fontifying-fu
slime-package-fu slime-references slime-scratch slime-presentations
slime-fuzzy slime-fancy-inspector slime-c-p-c slime-editing-commands
slime-autodoc slime-parse slime-repl elp slime hyperspec dired-aux
elisp-slime-nav etags undo-tree diff hide-region ensime ensime-ui
ensime-semantic-highlight ensime-doc ensime-scalex url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
ensime-search ensime-undo ensime-refactor ensime-builder ensime-debug
ensime-inf ensime-sbt ensime-comint-utils ensime-auto-complete
ensime-config scala-mode2 scala-mode2-map scala-mode2-fontlock
scala-mode2-indent scala-mode2-paragraph scala-mode2-syntax
scala-mode2-lib haxe-mode ede/haxe-speedbar ede/haxe ede/speedbar
ede/files ede ede/base ede/auto ede/source custom/create-project
haxe-completion haxe-compiler-mode haxe-project haxe-log haxe-help
haxe-utils ehelp electric cc-langs cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cc-bytecomp
formatting i-iterate hl-line erc-list erc-menu erc-join erc-ring
erc-networks erc-pcomplete erc-track erc-match erc-button erc-fill
erc-stamp erc-netsplit erc-goodies erc erc-backend erc-compat pp jabber
jabber-awesome jabber-osd jabber-wmii jabber-xmessage jabber-festival
jabber-sawfish jabber-ratpoison jabber-screen jabber-socks5
jabber-ft-server jabber-si-server jabber-ft-client jabber-ft-common
jabber-si-client jabber-si-common jabber-feature-neg jabber-truncate
jabber-time jabber-autoaway jabber-vcard-avatars jabber-chatstates
jabber-events jabber-vcard jabber-avatar mailcap jabber-activity
jabber-watch jabber-modeline jabber-ahc-presence jabber-ahc
jabber-version jabber-ourversion jabber-muc-nick-completion hippie-exp
jabber-browse jabber-search jabber-register jabber-roster
jabber-presence jabber-muc jabber-newdisco jabber-widget jabber-disco
jabber-chat ewoc jabber-history jabber-chatbuffer jabber-alert jabber-iq
jabber-keymap jabber-core jabber-sasl sasl sasl-anonymous sasl-login
sasl-plain fsm jabber-logon jabber-conn srv dns starttls tls jabber-xml
xml jabber-menu jabber-autoloads jabber-util smtpmail sendmail nnir
gnus-sum gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win gnus gnus-ems nnoo nnheader mail-utils w3m
browse-url doc-view jka-compr image-mode timezone w3m-hist w3m-fb
bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util
ecb ecb-symboldef ecb-analyse ecb-compatibility ecb-winman-support
ecb-autogen autoload lisp-mnt ecb-tod ecb-cycle ecb-eshell ecb-help
ecb-jde ecb-method-browser hideshow ecb-semantic ecb-file-browser
ecb-speedbar ecb-layout ecb-create-layout ecb-compilation
ecb-common-browser assoc ecb-navigate ecb-mode-line ecb-face tree-buffer
ecb-upgrade ecb-cedet-wrapper semantic/db-mode semantic/db-find
semantic/db-ref semantic/analyze semantic/sort semantic/scope
semantic/analyze/fcn semantic/db semantic/format semantic/tag-ls
semantic/find semantic/ctxt semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet ecb-util
thingatpt scheme flymake-jshint js-comint flymake compile yasnippet
dropdown-list derived help-mode auto-complete-config auto-complete popup
ropemacs pymacs tron-dark-theme dired org-redmine anything
org-location-google-maps org-agenda google-maps google-maps-static
url-util url-parse auth-source gnus-util mm-util mail-prsvr
password-cache url-vars google-maps-geocode google-maps-base json org
ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys
org-pcomplete pcomplete comint ansi-color ring org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob org-compat
org-macs ob-eval org-loaddefs find-func cal-menu calendar cal-loaddefs
edmacro kmacro slime-autoloads ac-js2-autoloads ac-slime-autoloads
actionscript-mode-autoloads anything-autoloads auctex-autoloads tex-site
bash-completion-autoloads bbdb-autoloads csharp-mode-autoloads
cyberpunk-theme-autoloads dic-lookup-w3m-autoloads dsvn-autoloads
elisp-slime-nav-autoloads elnode-autoloads db-autoloads creole-autoloads
erlang-autoloads expand-region-autoloads fakir-autoloads dash-autoloads
flymake-cursor-autoloads google-maps-autoloads impatient-mode-autoloads
htmlize-autoloads kv-autoloads linear-undo-autoloads magit-autoloads
minimap-autoloads noflet-autoloads paredit-autoloads psvn-autoloads
redo+-autoloads scala-mode2-autoloads skewer-mode-autoloads
js2-mode-autoloads simple-httpd-autoloads stem-autoloads
tuareg-autoloads caml-autoloads undo-tree-autoloads w3m-autoloads info
web-autoloads rudel-obby-display rudel-obby rudel-protocol rudel-tls
format-spec rudel-socket rudel-transport rudel-mode advice help-fns
rudel-display rudel rudel-icons rudel-interactive rudel-compat
rudel-hooks rudel-operators rudel-overlay rudel-operations
rudel-session-initiation rudel-backend warnings rudel-util rudel-errors
eieio-speedbar speedbar sb-image ezimage dframe eieio-custom wid-edit
eieio-base eieio byte-opt bytecomp byte-compile cconv eieio-core
easymenu easy-mmode cl-macs gv cl cl-loaddefs cl-lib vc-svn package
server time time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp
files text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)