Subject: 24.1.50; rst-mode: Lisp error: (void-function rst-re)

From: Simon Law <[email-masked]>
Date: Thu, 17 May 2012 11:16:21 -0400

There is a problem with the most recent rst.el in emacs-snapshot. The
rst-re-alist constant uses rst-re, which is defined after it. Looking at
upstream's rst.el, it looks like the order of these two defs got switched.

Solution? Move the (defconst rst-re-alist ...) immediately after the
(defun rst-re ...)

Reproduction steps below...
$ emacs -Q
M-x (require 'rst)

Debugger entered--Lisp error: (void-function rst-re)
  rst-re("[ ]")
  apply(rst-re "[ ]")
  (list (car re) (apply (quote rst-re) (cdr re)))
  (list (list (car re) (apply (quote rst-re) (cdr re))))
  (nconc rst-re-alist (list (list (car re) (apply (quote rst-re) (cdr re)))))
  (setq rst-re-alist (nconc rst-re-alist (list (list (car re) (apply
(quote rst-re) (cdr re))))))
  (while --cl-dolist-temp-- (setq re (car --cl-dolist-temp--)) (setq
rst-re-alist (nconc rst-re-alist (list (list (car re) (apply (quote
rst-re) (cdr re)))))) (setq --cl-dolist-temp-- (cdr
--cl-dolist-temp--)))
  (let ((--cl-dolist-temp-- rst-re-alist-def) re) (while
--cl-dolist-temp-- (setq re (car --cl-dolist-temp--)) (setq
rst-re-alist (nconc rst-re-alist (list (list (car re) (apply (quote
rst-re) (cdr re)))))) (setq --cl-dolist-temp-- (cdr
--cl-dolist-temp--))))
  (catch (quote --cl-block-nil--) (let ((--cl-dolist-temp--
rst-re-alist-def) re) (while --cl-dolist-temp-- (setq re (car
--cl-dolist-temp--)) (setq rst-re-alist (nconc rst-re-alist (list
(list (car re) (apply ... ...))))) (setq --cl-dolist-temp-- (cdr
--cl-dolist-temp--)))))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let
((--cl-dolist-temp-- rst-re-alist-def) re) (while --cl-dolist-temp--
(setq re (car --cl-dolist-temp--)) (setq rst-re-alist (nconc
rst-re-alist (list (list ... ...)))) (setq --cl-dolist-temp-- (cdr
--cl-dolist-temp--))))))
  (block nil (let ((--cl-dolist-temp-- rst-re-alist-def) re) (while
--cl-dolist-temp-- (setq re (car --cl-dolist-temp--)) (setq
rst-re-alist (nconc rst-re-alist (list (list (car re) (apply ...
...))))) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))))
  (dolist (re rst-re-alist-def) (setq rst-re-alist (nconc rst-re-alist
(list (list (car re) (apply (quote rst-re) (cdr re)))))))
  (let (rst-re-alist) (dolist (re rst-re-alist-def) (setq rst-re-alist
(nconc rst-re-alist (list (list (car re) (apply (quote rst-re) (cdr
re))))))) rst-re-alist)
  (defconst rst-re-alist (let (rst-re-alist) (dolist (re
rst-re-alist-def) (setq rst-re-alist (nconc rst-re-alist (list (list
(car re) (apply ... ...)))))) rst-re-alist) "Alist mapping symbols
from `rst-re-alist-def' to regex strings.")
  eval-buffer(#<buffer  *load*> nil
"/usr/share/emacs/24.1.50/lisp/textmodes/rst.el.gz" nil t)  ; Reading
at buffer position 17114
  load-with-code-conversion("/usr/share/emacs/24.1.50/lisp/textmodes/rst.el.gz"
"/usr/share/emacs/24.1.50/lisp/textmodes/rst.el.gz" nil t)
  require(rst)
  eval((require (quote rst)) nil)
  eval-expression((require (quote rst)) nil)
  call-interactively(eval-expression nil nil)

In GNU Emacs 24.1.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.2.0)
 of 2012-05-10 on charichuelo, modified by Debian
 (emacs-snapshot package, version 2:20120510-1~ppa1~oneiric1)
Windowing system distributor `The X.Org Foundation', version 11.0.11004000
Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.1.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1.50/site-lisp:/usr/share/emacs/site-lisp'
 '--without-compress-info' '--with-crt-dir=/usr/lib/x86_64-linux-gnu/'
 '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu'
 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g
 -Wl,--as-needed -znocombreloc' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: en_CA.UTF-8
  value of $LC_CTYPE: en_CA.UTF-8
  value of $LC_MESSAGES: en_CA.UTF-8
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_CA.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Debugger

Minor modes in effect:
  ido-ubiquitous-mode: t
  helm-dired-mode: Enable helm completion in Dired functions.
Bindings affected are C, R, S, H.
This is deprecated for Emacs24+ users, use `helm-mode' instead.
  helm-match-plugin-mode: t
  projectile-mode: t
  projectile-global-mode: t
  yas/global-mode: t
  yas/minor-mode: t
  icomplete-mode: t
  volatile-highlights-mode: t
  show-paren-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  savehist-mode: t
  electric-pair-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  prelude-mode: t
  prelude-global-mode: t
  which-function-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-: M-p <return> M-x M-p <return>

Recent messages:
Loading /home/sfllaw/.emacs.d/personal/tramp.el (source)...done
Prelude is ready to do thy bidding, Master sfllaw!
Prelude tip: Explore the Prelude menu to find out about some of
Prelude extensions to Emacs.
[yas] Loading snippets for emacs-lisp-mode, just in time:
(yas/load-directory-1
/home/sfllaw/.emacs.d/elpa/yasnippet-20120506/snippets/emacs-lisp-mode
(quote emacs-lisp-mode) (quote (text-mode)))!
[yas] Loading snippets for text-mode, just in time:
(yas/load-directory-1
/home/sfllaw/.emacs.d/elpa/yasnippet-20120506/snippets/text-mode
(quote text-mode) (quote nil))!
Starting new Ispell process [default] ...
Package assoc is obsolete!
For information about GNU Emacs and the GNU system, type C-h C-a.
uncompressing rst.el.gz...done
Entering debugger...

Load-path shadows:
/usr/share/emacs/24.1.50/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup
/home/sfllaw/.emacs.d/elpa/python-20120430/python hides
/usr/share/emacs/24.1.50/lisp/progmodes/python
/home/sfllaw/.emacs.d/elpa/magit-20120507/.dir-locals hides
/usr/share/emacs/24.1.50/lisp/gnus/.dir-locals

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils debug jka-compr paredit
noutline outline whitespace flyspell ispell melpa term disp-table ehelp
python-el-fgallina-expansions flymake fill-column-indicator
ido-ubiquitous prelude-global-keybindings prelude-editor re-builder
midnight helm-projectile helm-config helm-misc helm-files image-dired
dired-x dired-aux ffap helm-tags helm-bookmark helm-adaptative helm-info
helm-net browse-url xml url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util url-parse url-vars mailcap
helm-plugin helm-locate helm-help helm-match-plugin helm-grep
helm-regexp grep helm-external helm-buffers rx helm-elscreen helm-utils
dired compile helm projectile yasnippet help-mode view assoc
expand-region expand-region-custom expand-region-core icomplete ido
etags volatile-highlights hl-line paren windmove tramp-cache tramp-sh
tramp tramp-compat auth-source gnus-util mm-util mail-prsvr
password-cache shell pcomplete comint ansi-color ring format-spec
tramp-loaddefs recentf tree-widget wid-edit savehist saveplace uniquify
electric autorevert delsel prelude-mode easy-mmode easymenu edmacro
kmacro prelude-core repeat thingatpt prelude-ui zenburn-theme
prelude-packages ack-and-a-half-autoloads expand-region-autoloads
flymake-css-autoloads flymake-cursor-autoloads gist-autoloads
gh-autoloads eieio helm-projectile-autoloads helm-autoloads
ido-ubiquitous-autoloads less-css-mode-autoloads logito-autoloads
magithub-autoloads magit-autoloads markdown-mode-autoloads
mediawiki-autoloads melpa-autoloads byte-opt warnings bytecomp
byte-compile cconv macroexp advice help-fns advice-preload
paredit-autoloads pcache-autoloads finder-inf pony-mode-autoloads
prelude-programming-autoloads which-func imenu projectile-autoloads
python-autoloads python-magic-autoloads rainbow-mode-autoloads
volatile-highlights-autoloads yasnippet-autoloads
zenburn-theme-autoloads package cl 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 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 loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

--
Cheers,
Simon - http://ca.linkedin.com/in/sfllaw/