* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
@ 2019-09-26 1:45 Tim Cross
2019-09-26 10:01 ` Mattias Engdegård
0 siblings, 1 reply; 11+ messages in thread
From: Tim Cross @ 2019-09-26 1:45 UTC (permalink / raw)
To: 37517
[-- Attachment #1: Type: text/plain, Size: 26221 bytes --]
The latest version of rx.el added in commit 2ed71227c626c6cfdc684 seems
to have broken a number of packages with the error
Symbol’s function definition is void: rx-submatch-n
Packages affected include flycheck-color-mode-line, flycheck-joker and
tide from MELPA.
Checking the NEWS file, it states the new version of rx.el is backwards
compatible, which is why I figure this is a bug. There is no mention of
rx-submatch or rx-submatch-n in the NEWS file. There is no reference to
rx-submatch-n or rx-submatch in the new rx.el. However, in previous
version, it is defined as
(defun rx-submatch-n (form)
"Parse and produce code from FORM, which is `(submatch-n N ...)'."
(let ((n (nth 1 form))
(subforms (rx--subforms (cddr form) ':)))
(unless (and (integerp n) (> n 0))
(error "rx `submatch-n' argument must be positive"))
(if (stringp subforms)
(concat "\\(?" (number-to-string n) ":" subforms "\\)")
`("\\(?" ,(number-to-string n) ":" ,@subforms "\\)"))))
Recent messages:
Loading /home/tim/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
[yas] Prepared just-in-time loading of snippets successfully.
Package cl is deprecated
Loading /home/tim/quicklisp/slime-helper.el (source)...done
Loading org-mime...done
Loading my emacspeak key bindings...
Package iswitchb is deprecated
Starting new Ispell process /usr/bin/hunspell with en_AU dictionary...
For information about GNU Emacs and the GNU system, type C-h C-a.
Configured using:
'configure --with-cairo'
Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP
Important settings:
value of $LANG: en_AU.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: ELisp
Minor modes in effect:
display-line-numbers-mode: t
doom-modeline-mode: t
ipretty-mode: t
elisp-slime-nav-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
flyspell-mode: t
projectile-mode: t
global-diff-hl-mode: t
paredit-mode: t
rainbow-delimiters-mode: t
rainbow-mode: t
electric-pair-mode: t
company-quickhelp-mode: t
company-quickhelp-local-mode: t
global-company-mode: t
company-mode: t
TeX-PDF-mode: t
yas-global-mode: t
yas-minor-mode: t
whitespace-cleanup-mode: t
whitespace-mode: t
whole-line-or-region-global-mode: t
whole-line-or-region-local-mode: t
recentf-mode: t
ido-ubiquitous-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
global-emojify-mode: t
emojify-mode: t
global-auto-revert-mode: t
delete-selection-mode: t
show-paren-mode: t
save-place-mode: t
winner-mode: t
override-global-mode: t
shell-dirtrack-mode: t
ido-everywhere: t
global-voice-lock-mode: t
voice-lock-mode: t
tooltip-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
global-prettify-symbols-mode: t
prettify-symbols-mode: t
menu-bar-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
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
/home/tim/quicklisp/dists/quicklisp/software/slime-v2.23/slime-tests hides
/home/tim/.emacs.d/elpa/slime-20190925.1213/slime-tests
/home/tim/quicklisp/dists/quicklisp/software/slime-v2.23/slime hides
/home/tim/.emacs.d/elpa/slime-20190925.1213/slime
/home/tim/quicklisp/dists/quicklisp/software/slime-v2.23/slime-autoloads
hides /home/tim/.emacs.d/elpa/slime-20190925.1213/slime-autoloads
/home/tim/git/emacspeak/trunk/lisp/tetris hides
/usr/local/share/emacs/27.0.50/lisp/play/tetris
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-lua hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-lua
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ebnf hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ebnf
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-abc hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-abc
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-pcomplete hides
/usr/local/share/emacs/27.0.50/lisp/org/org-pcomplete
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-dot hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-dot
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-io hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-io
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-macro hides
/usr/local/share/emacs/27.0.50/lisp/org/org-macro
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-sqlite hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-sqlite
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-md hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-md
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-indent hides
/usr/local/share/emacs/27.0.50/lisp/org/org-indent
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-archive hides
/usr/local/share/emacs/27.0.50/lisp/org/org-archive
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-agenda hides
/usr/local/share/emacs/27.0.50/lisp/org/org-agenda
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-table hides
/usr/local/share/emacs/27.0.50/lisp/org/org-table
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-gnuplot hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-gnuplot
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-habit hides
/usr/local/share/emacs/27.0.50/lisp/org/org-habit
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-faces hides
/usr/local/share/emacs/27.0.50/lisp/org/org-faces
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-clojure hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-clojure
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-calc hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-calc
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-docview hides
/usr/local/share/emacs/27.0.50/lisp/org/org-docview
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-rmail hides
/usr/local/share/emacs/27.0.50/lisp/org/org-rmail
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-matlab hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-matlab
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-vala hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-vala
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-hledger hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-hledger
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-haskell hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-haskell
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-groovy hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-groovy
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-python hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-python
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-beamer hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-beamer
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-bibtex hides
/usr/local/share/emacs/27.0.50/lisp/org/org-bibtex
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-plot hides
/usr/local/share/emacs/27.0.50/lisp/org/org-plot
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ocaml hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ocaml
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-crypt hides
/usr/local/share/emacs/27.0.50/lisp/org/org-crypt
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-processing hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-processing
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-forth hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-forth
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-clock hides
/usr/local/share/emacs/27.0.50/lisp/org/org-clock
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-mscgen hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-mscgen
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-fortran hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-fortran
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-ctags hides
/usr/local/share/emacs/27.0.50/lisp/org/org-ctags
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-w3m hides
/usr/local/share/emacs/27.0.50/lisp/org/org-w3m
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-coq hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-coq
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-src hides
/usr/local/share/emacs/27.0.50/lisp/org/org-src
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-duration hides
/usr/local/share/emacs/27.0.50/lisp/org/org-duration
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-js hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-js
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-eshell hides
/usr/local/share/emacs/27.0.50/lisp/org/org-eshell
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org hides
/usr/local/share/emacs/27.0.50/lisp/org/org
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob hides
/usr/local/share/emacs/27.0.50/lisp/org/ob
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-R hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-R
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-publish hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-publish
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-sass hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-sass
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-html hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-html
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-entities hides
/usr/local/share/emacs/27.0.50/lisp/org/org-entities
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-maxima hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-maxima
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-texinfo hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-texinfo
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-scheme hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-scheme
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-awk hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-awk
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ruby hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ruby
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ditaa hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ditaa
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-lisp hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-lisp
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-eww hides
/usr/local/share/emacs/27.0.50/lisp/org/org-eww
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-timer hides
/usr/local/share/emacs/27.0.50/lisp/org/org-timer
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-table hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-table
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-man hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-man
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-shen hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-shen
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-comint hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-comint
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-eval hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-eval
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-sed hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-sed
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-java hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-java
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-latex hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-latex
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox hides
/usr/local/share/emacs/27.0.50/lisp/org/ox
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-exp hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-exp
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-asymptote hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-asymptote
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-lint hides
/usr/local/share/emacs/27.0.50/lisp/org/org-lint
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ref hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ref
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-info hides
/usr/local/share/emacs/27.0.50/lisp/org/org-info
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-element hides
/usr/local/share/emacs/27.0.50/lisp/org/org-element
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-org hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-org
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-ascii hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-ascii
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-core hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-core
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-macs hides
/usr/local/share/emacs/27.0.50/lisp/org/org-macs
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-datetree hides
/usr/local/share/emacs/27.0.50/lisp/org/org-datetree
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-plantuml hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-plantuml
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-mobile hides
/usr/local/share/emacs/27.0.50/lisp/org/org-mobile
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-org hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-org
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-capture hides
/usr/local/share/emacs/27.0.50/lisp/org/org-capture
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-latex hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-latex
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-bbdb hides
/usr/local/share/emacs/27.0.50/lisp/org/org-bbdb
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-perl hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-perl
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-odt hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-odt
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ox-icalendar hides
/usr/local/share/emacs/27.0.50/lisp/org/ox-icalendar
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-lilypond hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-lilypond
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-colview hides
/usr/local/share/emacs/27.0.50/lisp/org/org-colview
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-stan hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-stan
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-gnus hides
/usr/local/share/emacs/27.0.50/lisp/org/org-gnus
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-C hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-C
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-emacs-lisp hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-emacs-lisp
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-mhe hides
/usr/local/share/emacs/27.0.50/lisp/org/org-mhe
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-inlinetask hides
/usr/local/share/emacs/27.0.50/lisp/org/org-inlinetask
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-lob hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-lob
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-J hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-J
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-list hides
/usr/local/share/emacs/27.0.50/lisp/org/org-list
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-css hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-css
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-tangle hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-tangle
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-irc hides
/usr/local/share/emacs/27.0.50/lisp/org/org-irc
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-sql hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-sql
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-protocol hides
/usr/local/share/emacs/27.0.50/lisp/org/org-protocol
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-octave hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-octave
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-footnote hides
/usr/local/share/emacs/27.0.50/lisp/org/org-footnote
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-compat hides
/usr/local/share/emacs/27.0.50/lisp/org/org-compat
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-makefile hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-makefile
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-ledger hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-ledger
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-mouse hides
/usr/local/share/emacs/27.0.50/lisp/org/org-mouse
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-screen hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-screen
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-id hides
/usr/local/share/emacs/27.0.50/lisp/org/org-id
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-version hides
/usr/local/share/emacs/27.0.50/lisp/org/org-version
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-picolisp hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-picolisp
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-shell hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-shell
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/ob-keys hides
/usr/local/share/emacs/27.0.50/lisp/org/ob-keys
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-attach hides
/usr/local/share/emacs/27.0.50/lisp/org/org-attach
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-loaddefs hides
/usr/local/share/emacs/27.0.50/lisp/org/org-loaddefs
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-install hides
/usr/local/share/emacs/27.0.50/lisp/org/org-install
/home/tim/.emacs.d/elpa/org-plus-contrib-20190923/org-feed hides
/usr/local/share/emacs/27.0.50/lisp/org/org-feed
Features:
(shadow sort org-protocol org-irc org-info org-eww org-docview org-crypt
org-bibtex emacspeak-bibtex bibtex mail-extr emacsbug
display-line-numbers doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core shrink-path f all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons mu4e-alert time org-mime
ox-org ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-md ox-texinfo
ox-html emacspeak-etable table ox-beamer ox-latex ox-ascii ox-publish ox
org-mu4e emacspeak-mu4e mu4e mu4e-speedbar emacspeak-speedbar speedbar
sb-image ezimage dframe mu4e-main mu4e-view mu4e-headers mu4e-compose
mu4e-context mu4e-draft mu4e-actions rfc2368 smtpmail sendmail mu4e-mark
mu4e-message flow-fill mu4e-proc mu4e-utils doc-view jka-compr
image-mode exif mu4e-lists mu4e-vars hl-line mu4e-meta slime-company
emacspeak-slime slime-fancy slime-trace-dialog slime-fontifying-fu
slime-package-fu slime-references slime-compiler-notes-tree
slime-scratch slime-presentations bridge slime-macrostep macrostep
slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl slime-parse slime hyperspec js-doc iswitchb ng2-mode ng2-html
ng2-ts ng2-shared typescript-mode json-mode json-reformat json-snatcher
prettier-js emacspeak-indium indium indium-list-sources indium-scratch
indium-interaction indium-chrome indium-nodejs indium-repl
indium-debugger indium-debugger-litable indium-debugger-locals
indium-breakpoint indium-inspector indium-render indium-faces
indium-seq-fix indium-client indium-structs json-process-client
company-tern dash-functional tern js2-refactor js2r-paredit
js2r-conveniences js2r-conditionals js2r-wrapping js2r-functions
js2r-vars multiple-cursors-core js2r-iife js2r-formatting js2r-helpers
xref-js2 js2-imenu-extras emacspeak-js2 js2-mode js emmet-mode
less-css-mode css-mode smie emacspeak-sgml-mode sgml-mode web-mode
disp-table sqlup-mode emacspeak-sql sql emacspeak-view view sesman
clojure-mode lisp-mnt align ipretty elisp-slime-nav company-web-html
company-web-jade company-web-slim elfeed-org emacspeak-elfeed
elfeed-show elfeed-search emacspeak-bookmark bookmark elfeed-csv elfeed
elfeed-curl elfeed-log elfeed-db elfeed-lib xml-query magit-popup
gitignore-mode conf-mode git-commit with-editor async-bytecomp async
server magit-git magit-section magit-utils log-edit pcvs-util
emacspeak-add-log add-log emacspeak-find-dired find-dired dired-x alert
log4e notifications gntp restclient wgrep time-stamp emacspeak-flyspell
flyspell emacspeak-ispell ispell emacspeak-projectile projectile grep
ibuf-ext emacspeak-ibuffer ibuffer ibuffer-loaddefs diff-hl vc-dir ewoc
vc vc-dispatcher emacspeak-diff-mode diff-mode imenu-anywhere
emacspeak-imenu imenu paredit-everywhere paredit rainbow-delimiters
rainbow-mode color elec-pair company-web company-css web-completion-data
company-quickhelp pos-tip company-auctex company-oddmuse
company-keywords company-etags etags fileloop emacspeak-xref xref
project company-gtags company-dabbrev-code company-dabbrev company-files
company-capf company-cmake company-xcode company-clang company-semantic
company-eclim company-template company-bbdb emacspeak-company company
latex latex-flymake flymake-proc flymake emacspeak-compile compile
tex-ispell tex-style tex dbus crm clojure-snippets yasnippet-snippets
emacspeak-yasnippet yasnippet whitespace-cleanup-mode whitespace delight
whole-line-or-region recentf tree-widget ibuf-macs smex
ido-completing-read+ memoize s emacspeak-custom cus-edit cus-start
minibuf-eldef undo-tree diff emacspeak-browse-kill-ring browse-kill-ring
cl exec-path-from-shell emojify apropos emacspeak-tar tar-mode
emacspeak-arc arc-mode archive-mode pcase ht dash hide-mode-line
autorevert filenotify delsel paren saveplace emacspeak-hydra hydra lv
emacspeak-windmove windmove winner ob-gnuplot ob-plantuml ob-ditaa ob-C
emacspeak-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs ob-sql ob-shell ob-scheme ob-ruby
ob-python ob-perl ob-org ob-makefile ob-lisp ob-ledger ob-latex ob-js
ob-java ob-dot ob-css ob-clojure org-clock org-element avl-tree
generator emacspeak-org org-table emacspeak-feeds emacspeak-eww
emacspeak-google gmaps gweb emacspeak-we emacspeak-xslt dom-addons pp
eww mm-url emacspeak-gnus gm-nnir nnir gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec
gnus-int gnus-range emacspeak-message message rfc822 mml mml-sec
emacspeak-epa epa epg epg-config mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader gnus-win emacspeak-hide gnus nnheader
gnus-util emacspeak-rmail rmailsort rmail rmail-loaddefs mail-utils
url-queue org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint ob-keys org-pcomplete org-list org-faces
org-entities emacspeak-outline foldout noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-compat org-macs org-loaddefs
format-spec emacspeak-find-func find-func diminish use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key use-package-core night-owl-theme bind-key
easy-mmode emacspeak-setup emacspeak-m-player emacspeak-dired locate
emacspeak-desktop desktop frameset dired dired-loaddefs emacspeak-amark
emacspeak-advice shell pcomplete comint ring emacspeak-ansi-color
ansi-color emacspeak-redefine emacspeak-personality emacspeak
emacspeak-widget emacspeak-webutils shr text-property-search svg xml dom
url-http url url-proxy url-privacy url-expand url-methods url-history
mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-cookie url-domsuf url-util url-gw nsm rmc puny
emacspeak-auctex emacspeak-package emacspeak-calendar appt diary-lib
diary-loaddefs g-utils solar cal-dst cal-menu calendar cal-loaddefs
emacspeak-kmacro emacspeak-info emacspeak-ido emacspeak-facemenu
emacspeak-buff-menu g-cus-load cus-load emacspeak-fix-interactive
warnings emacspeak-sox emacspeak-preamble finder-inf tex-site rx
slime-autoloads package browse-url url-handlers url-parse auth-source
eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars
emacspeak-keymap wid-edit emacspeak-speak sox-gen sox cl-seq ladspa
edmacro kmacro derived rect time-date ido seq gv emacspeak-pronounce
thingatpt dtk-speak dtk-interp voice-setup cl-extra emacspeak-sounds
dectalk-voices espeak-voices mac-voices outloud-voices dtk-unicode
descr-text help-mode acss-structure tts emacspeak-load-path byte-opt
bytecomp byte-compile cconv advice subr-x cl-loaddefs cl-lib info
easymenu tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded 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 threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 751885 990782)
(symbols 48 61916 3)
(strings 32 271031 149515)
(string-bytes 1 7219869)
(vectors 16 129574)
(vector-slots 8 3183864 1222252)
(floats 8 1548 2065)
(intervals 56 666 842)
(buffers 992 16))
--
Tim Cross
--
regards,
Tim
--
Tim Cross
[-- Attachment #2: Type: text/html, Size: 27238 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 1:45 bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n Tim Cross
@ 2019-09-26 10:01 ` Mattias Engdegård
2019-09-26 10:53 ` Eli Zaretskii
2019-09-26 14:04 ` Clément Pit-Claudel
0 siblings, 2 replies; 11+ messages in thread
From: Mattias Engdegård @ 2019-09-26 10:01 UTC (permalink / raw)
To: 37517; +Cc: Clément Pit-Claudel, Tim Cross, fmdkdd
[-- Attachment #1: Type: text/plain, Size: 1034 bytes --]
[CC:ed the flycheck maintainers; hope you don't mind]
Tim Cross skrev:
>The latest version of rx.el added in commit 2ed71227c626c6cfdc684 seems
>to have broken a number of packages with the error
>Symbol’s function definition is void: rx-submatch-n
>Packages affected include flycheck-color-mode-line, flycheck-joker and
>tide from MELPA.
Thanks for the report. The old rx code was apparently written prior to the double-hyphen convention for marking package-internal symbols, and `rx-submatch-n' is clearly an internal function; I'm not sure why it is used by flycheck.
Of course we could attempt to implement `rx-submatch-n' and what other internal stuff happen to be used by external packages, but that's an open-ended endeavour. Furthermore, it may not always be possible to replicate the expected semantics (internal variables are particularly difficult in that respect).
I'd much rather work with package maintainers to promote the use of stable interfaces. What about the attached patch (untested)?
[-- Attachment #2: 0001-Don-t-use-internal-rx-functions.patch --]
[-- Type: application/octet-stream, Size: 1482 bytes --]
From be57a682edb63b071b10b989db0f2e4c0ccca800 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org>
Date: Thu, 26 Sep 2019 11:56:39 +0200
Subject: [PATCH] Don't use internal rx functions
Use rx-to-string instead of the internal rx-submatch-n, which is gone
in Emacs 27 and never was intended for public use.
---
flycheck.el | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/flycheck.el b/flycheck.el
index 99cf70a6..62090df2 100644
--- a/flycheck.el
+++ b/flycheck.el
@@ -1400,16 +1400,16 @@ Safely delete all files and directories listed in
"Translate the `(file-name)' FORM into a regular expression."
(let ((body (or (cdr form) '((minimal-match
(one-or-more not-newline))))))
- (rx-submatch-n `(group-n 1 ,@body))))
+ (rx-to-string `(group-n 1 ,@body) t)))
(defun flycheck-rx-message (form)
"Translate the `(message)' FORM into a regular expression."
(let ((body (or (cdr form) '((one-or-more not-newline)))))
- (rx-submatch-n `(group-n 4 ,@body))))
+ (rx-to-string `(group-n 4 ,@body) t)))
(defun flycheck-rx-id (form)
"Translate the `(id)' FORM into a regular expression."
- (rx-submatch-n `(group-n 5 ,@(cdr form))))
+ (rx-to-string `(group-n 5 ,@(cdr form)) t))
(defun flycheck-rx-to-string (form &optional no-group)
"Like `rx-to-string' for FORM, but with special keywords:
--
2.21.0 (Apple Git-122)
^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 10:01 ` Mattias Engdegård
@ 2019-09-26 10:53 ` Eli Zaretskii
2019-09-26 12:42 ` Mattias Engdegård
2019-09-26 14:04 ` Clément Pit-Claudel
1 sibling, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2019-09-26 10:53 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: cpitclaudel, theophilusx, 37517, fmdkdd
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Thu, 26 Sep 2019 12:01:46 +0200
> Cc: Clément Pit-Claudel <cpitclaudel@gmail.com>,
> Tim Cross <theophilusx@gmail.com>, fmdkdd <fmdkdd@gmail.com>
>
> Thanks for the report. The old rx code was apparently written prior to the double-hyphen convention for marking package-internal symbols, and `rx-submatch-n' is clearly an internal function; I'm not sure why it is used by flycheck.
>
> Of course we could attempt to implement `rx-submatch-n' and what other internal stuff happen to be used by external packages, but that's an open-ended endeavour. Furthermore, it may not always be possible to replicate the expected semantics (internal variables are particularly difficult in that respect).
>
> I'd much rather work with package maintainers to promote the use of stable interfaces. What about the attached patch (untested)?
At the very least, this information, including how to emulate
functions you removed, should be in NEWS. Bonus points for providing
the missing APIs, even if you consider them internal. The package is
so old that by now we should consider its APIs to be a de-facto
standard. A re-implementation that claims to be compatible cannot
just toss them.
Thanks.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 10:53 ` Eli Zaretskii
@ 2019-09-26 12:42 ` Mattias Engdegård
2019-09-26 14:28 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Mattias Engdegård @ 2019-09-26 12:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: cpitclaudel, theophilusx, 37517, fmdkdd
26 sep. 2019 kl. 12.53 skrev Eli Zaretskii <eliz@gnu.org>:
>
> At the very least, this information, including how to emulate
> functions you removed, should be in NEWS.
Right, I took the liberty to adding a note in e98e8549b0. It can of course be amended if desired.
> Bonus points for providing
> the missing APIs, even if you consider them internal. The package is
> so old that by now we should consider its APIs to be a de-facto
> standard. A re-implementation that claims to be compatible cannot
> just toss them.
Using internal functions doesn't make them APIs. All we have now is a single datum, which was for all I could see just a mistake. Let's wait for evidence about which, if any, internal symbols that have been used, and for what reasons.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 10:01 ` Mattias Engdegård
2019-09-26 10:53 ` Eli Zaretskii
@ 2019-09-26 14:04 ` Clément Pit-Claudel
2019-09-26 14:33 ` Mattias Engdegård
1 sibling, 1 reply; 11+ messages in thread
From: Clément Pit-Claudel @ 2019-09-26 14:04 UTC (permalink / raw)
To: Mattias Engdegård, 37517; +Cc: Tim Cross, fmdkdd
On 2019-09-26 06:01, Mattias Engdegård wrote:
> I'd much rather work with package maintainers to promote the use of stable interfaces. What about the attached patch (untested)?
These functions are used to produce items that go into rx-constituents — is it safe to use rx-to-string for that?
Clément.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 12:42 ` Mattias Engdegård
@ 2019-09-26 14:28 ` Eli Zaretskii
2019-09-29 12:57 ` Mattias Engdegård
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2019-09-26 14:28 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: cpitclaudel, theophilusx, 37517, fmdkdd
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Thu, 26 Sep 2019 14:42:55 +0200
> Cc: 37517@debbugs.gnu.org, cpitclaudel@gmail.com, theophilusx@gmail.com,
> fmdkdd@gmail.com
>
> > Bonus points for providing
> > the missing APIs, even if you consider them internal. The package is
> > so old that by now we should consider its APIs to be a de-facto
> > standard. A re-implementation that claims to be compatible cannot
> > just toss them.
>
> Using internal functions doesn't make them APIs. All we have now is a single datum, which was for all I could see just a mistake. Let's wait for evidence about which, if any, internal symbols that have been used, and for what reasons.
We've heard about one such symbol, which you consider internal, but
someone else didn't. Why not provide that one symbol right now? If
no other symbol is reported, that will be the only one, but I don't
see why it should wait for others to be granted that status.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 14:04 ` Clément Pit-Claudel
@ 2019-09-26 14:33 ` Mattias Engdegård
0 siblings, 0 replies; 11+ messages in thread
From: Mattias Engdegård @ 2019-09-26 14:33 UTC (permalink / raw)
To: Clément Pit-Claudel; +Cc: Tim Cross, 37517, fmdkdd
[-- Attachment #1: Type: text/html, Size: 586 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-26 14:28 ` Eli Zaretskii
@ 2019-09-29 12:57 ` Mattias Engdegård
2019-09-29 13:05 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Mattias Engdegård @ 2019-09-29 12:57 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: cpitclaudel, theophilusx, 37517, fmdkdd
26 sep. 2019 kl. 16.28 skrev Eli Zaretskii <eliz@gnu.org>:
>
>> Using internal functions doesn't make them APIs. All we have now is a single datum, which was for all I could see just a mistake. Let's wait for evidence about which, if any, internal symbols that have been used, and for what reasons.
>
> We've heard about one such symbol, which you consider internal, but
> someone else didn't. Why not provide that one symbol right now? If
> no other symbol is reported, that will be the only one, but I don't
> see why it should wait for others to be granted that status.
Given that flycheck was rapidly fixed and the single internal function used was tied to their particular rx use (because the old mechanism for extending rx was under-documented, as alluded by Clément), do you still think we need to add rx-submatch-n for the benefit of old flycheck versions?
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-29 12:57 ` Mattias Engdegård
@ 2019-09-29 13:05 ` Eli Zaretskii
2019-09-29 15:07 ` Mattias Engdegård
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2019-09-29 13:05 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: cpitclaudel, theophilusx, 37517, fmdkdd
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Sun, 29 Sep 2019 14:57:23 +0200
> Cc: 37517@debbugs.gnu.org, cpitclaudel@gmail.com, theophilusx@gmail.com,
> fmdkdd@gmail.com
>
> > We've heard about one such symbol, which you consider internal, but
> > someone else didn't. Why not provide that one symbol right now? If
> > no other symbol is reported, that will be the only one, but I don't
> > see why it should wait for others to be granted that status.
>
> Given that flycheck was rapidly fixed and the single internal function used was tied to their particular rx use (because the old mechanism for extending rx was under-documented, as alluded by Clément), do you still think we need to add rx-submatch-n for the benefit of old flycheck versions?
Yes. It's just one defalias...
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-29 13:05 ` Eli Zaretskii
@ 2019-09-29 15:07 ` Mattias Engdegård
2019-09-29 15:17 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Mattias Engdegård @ 2019-09-29 15:07 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Clément Pit-Claudel, Tim Cross, 37517-done, fmdkdd
29 sep. 2019 kl. 15.05 skrev Eli Zaretskii <eliz@gnu.org>:
>
> Yes. It's just one defalias...
Added, thank you.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n
2019-09-29 15:07 ` Mattias Engdegård
@ 2019-09-29 15:17 ` Eli Zaretskii
0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2019-09-29 15:17 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: cpitclaudel, theophilusx, 37517-done, fmdkdd
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Sun, 29 Sep 2019 17:07:42 +0200
> Cc: 37517-done@debbugs.gnu.org,
> Clément Pit-Claudel <cpitclaudel@gmail.com>,
> Tim Cross <theophilusx@gmail.com>, fmdkdd <fmdkdd@gmail.com>
>
> 29 sep. 2019 kl. 15.05 skrev Eli Zaretskii <eliz@gnu.org>:
> >
> > Yes. It's just one defalias...
>
> Added, thank you.
Thanks!
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-09-29 15:17 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-26 1:45 bug#37517: New rx.el breaks a number of packages - missing symbol rx-submatch-n Tim Cross
2019-09-26 10:01 ` Mattias Engdegård
2019-09-26 10:53 ` Eli Zaretskii
2019-09-26 12:42 ` Mattias Engdegård
2019-09-26 14:28 ` Eli Zaretskii
2019-09-29 12:57 ` Mattias Engdegård
2019-09-29 13:05 ` Eli Zaretskii
2019-09-29 15:07 ` Mattias Engdegård
2019-09-29 15:17 ` Eli Zaretskii
2019-09-26 14:04 ` Clément Pit-Claudel
2019-09-26 14:33 ` Mattias Engdegård
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).