bug-auctex
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19517: [SOLVED-sort of] recursive requires with recent auctex versio


From: Bernard Hurley
Subject: bug#19517: [SOLVED-sort of] recursive requires with recent auctex versions.
Date: Mon, 5 Jan 2015 17:28:58 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

Hi All,

I'm new to this list but I gather some of you have been having problems with
recursive require in latest versions of auctex.

The problem seems to arise because elpa does not initialise auctex properly (see
below).  I'm not sure exactly why and when it happens but it seems to have
something to do with what other packages are being initialised; either that or
it has something to do with the way "auctex.el" loads "tex.el".  Personally I
don't have time to work out exactly what is happening - I am more concerned with
getting it working- so I have come up with a stop-gap solution, which may help
others.

The "solution" is simple, stop ELPA initialising auctex and then initialise it
by hand by putting something like this in the emacs init file:

------- snip ------
(defvar package-load-list)
;; This will ensure all ELPA packages EXCEPT auctex are initialised:
(setf package-load-list '((auctex nil) all))
;;
(defun auctex-kludge ()
  "Kludge to initialise auctex by hand."
  ;; Find the current auctex package.
  (let ((auctex-info  (assoc 'auctex package-alist)))
    ;; If it exists initialise it "by hand".
    (when auctex-info
      (add-to-list 'load-path (aref (cadr auctex-info) 7))
      (load "auctex")
      (load "auctex-autoloads"))))
;; This assumes packages are loaded after initialisation as is standard.  Your
;; setup may be different.
(add-hook 'after-init-hook 'auctex-kludge)
------- snip ------

Below is a backtrace made with emacs --debug-init without the above kludge.  You
clearly see that ELPA is not initialising auctex properly.  I hope this helps
anyone else with this problem.

Bernard

------- snip ------

Debugger entered--Lisp error: (error "Recursive `require' for feature
`tex-site'")
  require(tex-site)
  eval-buffer(#<buffer  *load*-133113> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)  ; Reading at buffer
position 1122
  load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)
  require(tex)
  eval-buffer(#<buffer  *load*-523864> nil
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)  ; Reading at
buffer position 995
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/latex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)
  interactive-form(TeX-doctex-mode)
  advice--interactive-form(TeX-doctex-mode)
  advice--make-interactive-form(TeX-doctex-mode nil)
  advice--make-1("\300\30\"\207" 4 TeX-doctex-mode nil nil)
  advice--make(:override TeX-doctex-mode nil nil)
  advice--add-function(:override (#[0 "\300@ \207" [(#[0 "\300\301N\207"
[doctex-mode advice--pending] 2 "\n\n(fn)"] . #[257 "\301\300\302#\207"
[doctex-mode put advice--pending] 5 "\n\n(fn V)"])] 1 "\n\n(fn)"] . #[257
!\207" [(#[0 "\300\301N\207" [doctex-mode advice--pending] 2
"\n\n(fn)"] . #[257 "\301\300\302#\207" [doctex-mode put advice--pending] 5
"\n\n(fn V)"])] 3 "\n\n(fn GV--VAL)"]) TeX-doctex-mode nil)
  advice-add(doctex-mode :override TeX-doctex-mode)
  (if (memq elt value) (advice-add elt :override dst) (advice-remove elt dst))
  (if (fboundp (quote advice-add)) (if (memq elt value) (advice-add elt
:override dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt (quote tex-saved)
(symbol-function elt)))))) (defalias elt (if (memq elt value) dst (get elt
(quote tex-saved)))))
  (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if (fboundp
(quote advice-add)) (if (memq elt value) (advice-add elt :override dst)
(advice-remove elt dst)) (if (or update (null (get elt (quote tex-saved))))
(progn (if (fboundp elt) (progn (put elt (quote tex-saved) (symbol-function
elt)))))) (defalias elt (if (memq elt value) dst (get elt (quote tex-saved))))))
  (while list (setq elt (car (car-safe (prog1 list (setq list (cdr
list)))))) (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if
(fboundp (quote advice-add)) (if (memq elt value) (advice-add elt :override
dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt ... ...)))))
(defalias elt (if (memq elt value) dst (get elt (quote tex-saved)))))))
  (let ((list TeX-mode-alist) elt) (while list (setq elt (car (car-safe
(prog1 list (setq list (cdr list)))))) (let ((dst (intern (concat "TeX-"
(symbol-name elt))))) (if (fboundp (quote advice-add)) (if (memq elt value)
(advice-add elt :override dst) (advice-remove elt dst)) (if (or update (null
(get elt ...))) (progn (if (fboundp elt) (progn ...)))) (defalias elt (if
(memq elt value) dst (get elt (quote tex-saved))))))))
  TeX-modes-set(TeX-modes (tex-mode plain-tex-mode texinfo-mode latex-mode
doctex-mode))
  custom-initialize-reset(TeX-modes (mapcar (quote car) TeX-mode-alist))
  (lambda (var value) (custom-initialize-reset var value) (if (fboundp
(quote advice-add)) nil (let ((list TeX-mode-alist)) (while list
(eval-after-load (cdar list) (cons (quote TeX-modes-set) (cons (list ...
var) (cons var ...)))) (setq list (cdr list))))))(TeX-modes (mapcar (quote
car) TeX-mode-alist))
  custom-declare-variable(TeX-modes (mapcar (quote car) TeX-mode-alist)
"List of modes provided by AUCTeX.\n\nThis variable can't be set normally;
use customize for that, or\nset it with `TeX-modes-set'." :type (set (const
tex-mode) (const plain-tex-mode) (const texinfo-mode) (const latex-mode)
(const doctex-mode)) :set TeX-modes-set :group AUCTeX :initialize (lambda
(var value) (custom-initialize-reset var value) (if (fboundp (quote
advice-add)) nil (let ((list TeX-mode-alist)) (while list (eval-after-load
(cdar list) (cons (quote TeX-modes-set) (cons (list ... var) (cons var
...)))) (setq list (cdr list)))))))
  eval-buffer(#<buffer  *load*-891285> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)  ; Reading at
buffer position 5061
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)
  require(tex-site)
  eval-buffer(#<buffer  *load*-657531> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)  ; Reading at buffer
position 1122
  load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)
  require(tex)
  eval-buffer(#<buffer  *load*-243248> nil
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)  ; Reading at
buffer position 995
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/latex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)
  interactive-form(TeX-doctex-mode)
  advice--interactive-form(TeX-doctex-mode)
  advice--make-interactive-form(TeX-doctex-mode nil)
  advice--make-1("\300\30\"\207" 4 TeX-doctex-mode nil nil)
  advice--make(:override TeX-doctex-mode nil nil)
  advice--add-function(:override (#[0 "\300@ \207" [(#[0 "\300\301N\207"
[doctex-mode advice--pending] 2 "\n\n(fn)"] . #[257 "\301\300\302#\207"
[doctex-mode put advice--pending] 5 "\n\n(fn V)"])] 1 "\n\n(fn)"] . #[257
!\207" [(#[0 "\300\301N\207" [doctex-mode advice--pending] 2
"\n\n(fn)"] . #[257 "\301\300\302#\207" [doctex-mode put advice--pending] 5
"\n\n(fn V)"])] 3 "\n\n(fn GV--VAL)"]) TeX-doctex-mode nil)
  advice-add(doctex-mode :override TeX-doctex-mode)
  (if (memq elt value) (advice-add elt :override dst) (advice-remove elt dst))
  (if (fboundp (quote advice-add)) (if (memq elt value) (advice-add elt
:override dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt (quote tex-saved)
(symbol-function elt)))))) (defalias elt (if (memq elt value) dst (get elt
(quote tex-saved)))))
  (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if (fboundp
(quote advice-add)) (if (memq elt value) (advice-add elt :override dst)
(advice-remove elt dst)) (if (or update (null (get elt (quote tex-saved))))
(progn (if (fboundp elt) (progn (put elt (quote tex-saved) (symbol-function
elt)))))) (defalias elt (if (memq elt value) dst (get elt (quote tex-saved))))))
  (while list (setq elt (car (car-safe (prog1 list (setq list (cdr
list)))))) (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if
(fboundp (quote advice-add)) (if (memq elt value) (advice-add elt :override
dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt ... ...)))))
(defalias elt (if (memq elt value) dst (get elt (quote tex-saved)))))))
  (let ((list TeX-mode-alist) elt) (while list (setq elt (car (car-safe
(prog1 list (setq list (cdr list)))))) (let ((dst (intern (concat "TeX-"
(symbol-name elt))))) (if (fboundp (quote advice-add)) (if (memq elt value)
(advice-add elt :override dst) (advice-remove elt dst)) (if (or update (null
(get elt ...))) (progn (if (fboundp elt) (progn ...)))) (defalias elt (if
(memq elt value) dst (get elt (quote tex-saved))))))))
  TeX-modes-set(TeX-modes (tex-mode plain-tex-mode texinfo-mode latex-mode
doctex-mode))
  custom-initialize-reset(TeX-modes (mapcar (quote car) TeX-mode-alist))
  (lambda (var value) (custom-initialize-reset var value) (if (fboundp
(quote advice-add)) nil (let ((list TeX-mode-alist)) (while list
(eval-after-load (cdar list) (cons (quote TeX-modes-set) (cons (list ...
var) (cons var ...)))) (setq list (cdr list))))))(TeX-modes (mapcar (quote
car) TeX-mode-alist))
  custom-declare-variable(TeX-modes (mapcar (quote car) TeX-mode-alist)
"List of modes provided by AUCTeX.\n\nThis variable can't be set normally;
use customize for that, or\nset it with `TeX-modes-set'." :type (set (const
tex-mode) (const plain-tex-mode) (const texinfo-mode) (const latex-mode)
(const doctex-mode)) :set TeX-modes-set :group AUCTeX :initialize (lambda
(var value) (custom-initialize-reset var value) (if (fboundp (quote
advice-add)) nil (let ((list TeX-mode-alist)) (while list (eval-after-load
(cdar list) (cons (quote TeX-modes-set) (cons (list ... var) (cons var
...)))) (setq list (cdr list)))))))
  eval-buffer(#<buffer  *load*-739758> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)  ; Reading at
buffer position 5061
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)
  require(tex-site)
  eval-buffer(#<buffer  *load*-710409> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)  ; Reading at buffer
position 1122
  load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)
  require(tex)
  eval-buffer(#<buffer  *load*-856119> nil
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)  ; Reading at
buffer position 995
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/latex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)
  interactive-form(TeX-doctex-mode)
  advice--interactive-form(TeX-doctex-mode)
  advice--make-interactive-form(TeX-doctex-mode nil)
  advice--make-1("\300\30\"\207" 4 TeX-doctex-mode nil nil)
  advice--make(:override TeX-doctex-mode nil nil)
  advice--add-function(:override (#[0 "\300@ \207" [(#[0 "\300\301N\207"
[doctex-mode advice--pending] 2 "\n\n(fn)"] . #[257 "\301\300\302#\207"
[doctex-mode put advice--pending] 5 "\n\n(fn V)"])] 1 "\n\n(fn)"] . #[257
!\207" [(#[0 "\300\301N\207" [doctex-mode advice--pending] 2
"\n\n(fn)"] . #[257 "\301\300\302#\207" [doctex-mode put advice--pending] 5
"\n\n(fn V)"])] 3 "\n\n(fn GV--VAL)"]) TeX-doctex-mode nil)
  advice-add(doctex-mode :override TeX-doctex-mode)
  (if (memq elt value) (advice-add elt :override dst) (advice-remove elt dst))
  (if (fboundp (quote advice-add)) (if (memq elt value) (advice-add elt
:override dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt (quote tex-saved)
(symbol-function elt)))))) (defalias elt (if (memq elt value) dst (get elt
(quote tex-saved)))))
  (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if (fboundp
(quote advice-add)) (if (memq elt value) (advice-add elt :override dst)
(advice-remove elt dst)) (if (or update (null (get elt (quote tex-saved))))
(progn (if (fboundp elt) (progn (put elt (quote tex-saved) (symbol-function
elt)))))) (defalias elt (if (memq elt value) dst (get elt (quote tex-saved))))))
  (while list (setq elt (car (car-safe (prog1 list (setq list (cdr
list)))))) (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if
(fboundp (quote advice-add)) (if (memq elt value) (advice-add elt :override
dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt ... ...)))))
(defalias elt (if (memq elt value) dst (get elt (quote tex-saved)))))))
  (let ((list TeX-mode-alist) elt) (while list (setq elt (car (car-safe
(prog1 list (setq list (cdr list)))))) (let ((dst (intern (concat "TeX-"
(symbol-name elt))))) (if (fboundp (quote advice-add)) (if (memq elt value)
(advice-add elt :override dst) (advice-remove elt dst)) (if (or update (null
(get elt ...))) (progn (if (fboundp elt) (progn ...)))) (defalias elt (if
(memq elt value) dst (get elt (quote tex-saved))))))))
  TeX-modes-set(TeX-modes (tex-mode plain-tex-mode texinfo-mode latex-mode
doctex-mode))
  custom-initialize-reset(TeX-modes (mapcar (quote car) TeX-mode-alist))
  (lambda (var value) (custom-initialize-reset var value) (if (fboundp
(quote advice-add)) nil (let ((list TeX-mode-alist)) (while list
(eval-after-load (cdar list) (cons (quote TeX-modes-set) (cons (list ...
var) (cons var ...)))) (setq list (cdr list))))))(TeX-modes (mapcar (quote
car) TeX-mode-alist))
  custom-declare-variable(TeX-modes (mapcar (quote car) TeX-mode-alist)
"List of modes provided by AUCTeX.\n\nThis variable can't be set normally;
use customize for that, or\nset it with `TeX-modes-set'." :type (set (const
tex-mode) (const plain-tex-mode) (const texinfo-mode) (const latex-mode)
(const doctex-mode)) :set TeX-modes-set :group AUCTeX :initialize (lambda
(var value) (custom-initialize-reset var value) (if (fboundp (quote
advice-add)) nil (let ((list TeX-mode-alist)) (while list (eval-after-load
(cdar list) (cons (quote TeX-modes-set) (cons (list ... var) (cons var
...)))) (setq list (cdr list)))))))
  eval-buffer(#<buffer  *load*-353564> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)  ; Reading at
buffer position 5061
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)
  require(tex-site)
  eval-buffer(#<buffer  *load*-504165> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)  ; Reading at buffer
position 1122
  load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex.el" nil t)
  require(tex)
  eval-buffer(#<buffer  *load*-770825> nil
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)  ; Reading at
buffer position 995
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/latex.el"
"/home/think/.emacs.d/elpa/auctex-11.88/latex.el" nil t)
  interactive-form(TeX-doctex-mode)
  advice--interactive-form(TeX-doctex-mode)
  advice--make-interactive-form(TeX-doctex-mode nil)
  advice--make-1("\300\30\"\207" 4 TeX-doctex-mode nil nil)
  advice--make(:override TeX-doctex-mode nil nil)
  advice--add-function(:override (#[0 "\300@ \207" [(#[0 "\300\301N\207"
[doctex-mode advice--pending] 2 "\n\n(fn)"] . #[257 "\301\300\302#\207"
[doctex-mode put advice--pending] 5 "\n\n(fn V)"])] 1 "\n\n(fn)"] . #[257
!\207" [(#[0 "\300\301N\207" [doctex-mode advice--pending] 2
"\n\n(fn)"] . #[257 "\301\300\302#\207" [doctex-mode put advice--pending] 5
"\n\n(fn V)"])] 3 "\n\n(fn GV--VAL)"]) TeX-doctex-mode nil)
  advice-add(doctex-mode :override TeX-doctex-mode)
  (if (memq elt value) (advice-add elt :override dst) (advice-remove elt dst))
  (if (fboundp (quote advice-add)) (if (memq elt value) (advice-add elt
:override dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt (quote tex-saved)
(symbol-function elt)))))) (defalias elt (if (memq elt value) dst (get elt
(quote tex-saved)))))
  (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if (fboundp
(quote advice-add)) (if (memq elt value) (advice-add elt :override dst)
(advice-remove elt dst)) (if (or update (null (get elt (quote tex-saved))))
(progn (if (fboundp elt) (progn (put elt (quote tex-saved) (symbol-function
elt)))))) (defalias elt (if (memq elt value) dst (get elt (quote tex-saved))))))
  (while list (setq elt (car (car-safe (prog1 list (setq list (cdr
list)))))) (let ((dst (intern (concat "TeX-" (symbol-name elt))))) (if
(fboundp (quote advice-add)) (if (memq elt value) (advice-add elt :override
dst) (advice-remove elt dst)) (if (or update (null (get elt (quote
tex-saved)))) (progn (if (fboundp elt) (progn (put elt ... ...)))))
(defalias elt (if (memq elt value) dst (get elt (quote tex-saved)))))))
  (let ((list TeX-mode-alist) elt) (while list (setq elt (car (car-safe
(prog1 list (setq list (cdr list)))))) (let ((dst (intern (concat "TeX-"
(symbol-name elt))))) (if (fboundp (quote advice-add)) (if (memq elt value)
(advice-add elt :override dst) (advice-remove elt dst)) (if (or update (null
(get elt ...))) (progn (if (fboundp elt) (progn ...)))) (defalias elt (if
(memq elt value) dst (get elt (quote tex-saved))))))))
  TeX-modes-set(TeX-modes (tex-mode plain-tex-mode texinfo-mode latex-mode
doctex-mode))
  custom-initialize-reset(TeX-modes (mapcar (quote car) TeX-mode-alist))
  (lambda (var value) (custom-initialize-reset var value) (if (fboundp
(quote advice-add)) nil (let ((list TeX-mode-alist)) (while list
(eval-after-load (cdar list) (cons (quote TeX-modes-set) (cons (list ...
var) (cons var ...)))) (setq list (cdr list))))))(TeX-modes (mapcar (quote
car) TeX-mode-alist))
  custom-declare-variable(TeX-modes (mapcar (quote car) TeX-mode-alist)
"List of modes provided by AUCTeX.\n\nThis variable can't be set normally;
use customize for that, or\nset it with `TeX-modes-set'." :type (set (const
tex-mode) (const plain-tex-mode) (const texinfo-mode) (const latex-mode)
(const doctex-mode)) :set TeX-modes-set :group AUCTeX :initialize (lambda
(var value) (custom-initialize-reset var value) (if (fboundp (quote
advice-add)) nil (let ((list TeX-mode-alist)) (while list (eval-after-load
(cdar list) (cons (quote TeX-modes-set) (cons (list ... var) (cons var
...)))) (setq list (cdr list)))))))
  eval-buffer(#<buffer  *load*-851084> nil
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)  ; Reading at
buffer position 5061
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el"
"/home/think/.emacs.d/elpa/auctex-11.88/tex-site.el" nil t)
  require(tex-site)
  eval-buffer(#<buffer  *load*> nil
"/home/think/.emacs.d/elpa/auctex-11.88/auctex-autoloads.el" nil t)  ;
Reading at buffer position 9576
 
load-with-code-conversion("/home/think/.emacs.d/elpa/auctex-11.88/auctex-autoloads.el"
"/home/think/.emacs.d/elpa/auctex-11.88/auctex-autoloads.el" nil t)
  load("/home/think/.emacs.d/elpa/auctex-11.88/auctex-autoloads" nil t)
  #[0 "\302\303\304\305\300\"\301\"\306\307#\207" [auctex
"/home/think/.emacs.d/elpa/auctex-11.88" load expand-file-name format
"%s-autoloads" nil t] 5 "\n\n(fn)"]()
  funcall(#[0 "\302\303\304\305\300\"\301\"\306\307#\207" [auctex
"/home/think/.emacs.d/elpa/auctex-11.88" load expand-file-name format
"%s-autoloads" nil t] 5 "\n\n(fn)"])
  package-activate-1([cl-struct-package-desc auctex (11 88) "Integrated
environment for *TeX*" nil nil nil "/home/think/.emacs.d/elpa/auctex-11.88"
((:url . "http://www.gnu.org/software/auctex/";)) nil])
  package-activate(auctex)
  package-initialize()
  command-line()
  normal-top-level()
------- snip ------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]