[emacs][Tuareg-mode] Определение функции символа недействительно: dolist

Я попытался установить режим Туарега для Ocaml в качестве совета на сайте Inria. Каждый раз, когда я пытаюсь запустить его, у меня появляется эта ошибка:

Определение функции символа недействительно: dolist

С edebug-defun

Debugger entered--Lisp error: (void-function dolist)
  apply(debug error (void-function dolist))
  edebug(error (void-function dolist))
  (dolist (buf (buffer-list)) (save-current-buffer (set-buffer buf) (if (derived-mode-p (quote tuareg-mode)) (progn (abbrev-mode (if val 1 -1))))))
  (lambda (var val) (set-default var val) (dolist (buf (buffer-list)) (save-current-buffer (set-buffer buf) (if (derived-mode-p (quote tuareg-mode)) (progn (abbrev-mode (if val 1 -$
  custom-initialize-reset(tuareg-use-abbrev-mode t)
  custom-declare-variable(tuareg-use-abbrev-mode t "*Non-nil means electrically indent lines starting with leading keywords.\nLeading keywords are such as `end', `done', `else' etc$
  eval-buffer(#<buffer  *load*> nil "/nfs/ring/users/2013/phibonacci/.emacs.d/tuareg-mode/tuareg.el" nil t)  ; Reading at buffer position 13589
  load-with-code-conversion("/nfs/ring/users/2013/phibonacci/.emacs.d/tuareg-mode/tuareg.el" "/nfs/ring/users/2013/phibonacci/.emacs.d/tuareg-mode/tuareg.el" nil t)
  command-execute(tuareg-mode record)
  execute-extended-command(nil "tuareg-mode")
  call-interactively(execute-extended-command nil nil)
  recursive-edit()
  edebug--recursive-edit(before)
  edebug--display(nil 0 before)
  edebug-debugger(0 before nil)
  edebug-before(0)
  (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml code" t))
  (lambda nil (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml code" t)))()
  edebug-enter(edebug-anon0 nil (lambda nil (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml code" t))))
  edebug-enter(edebug-anon0 nil (lambda nil (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml code" t))))
  eval((edebug-enter (quote edebug-anon0) nil (function (lambda nil (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml code" t)))$
  eval-expression((edebug-enter (quote edebug-anon0) nil (function (lambda nil (edebug-after (edebug-before 0) 1 (autoload (quote tuareg-mode) "tuareg" "Major mode for editing Caml$
  edebug-defun()
  call-interactively(edebug-defun record nil)
  command-execute(edebug-defun record)
  execute-extended-command(nil "edebug-defun")
  call-interactively(execute-extended-command nil nil)

"/ nfs / ring / users / 2013 / phibonacci" - это мой домашний каталог.

Я следовал этому: http://www.emacswiki.org/emacs/TuaregMode (только заменил ~/.elisp /tuareg-mode на мой собственный путь ~/.emacs.d /tuareg-mode)

Emacs 24.3.1 (2013) / Tuareg 2.0.6 (2012)

2 ответа

dolist из общей библиотеки Emacs для lisp. Если туарег использует dolist без (eval-when-compile ...(require 'cl)...) это ошибка В качестве обходного пути вы можете сделать (require 'cl) в вашем.emacs. Это не рекомендуется пуристским сообществом Emacs, но это довольно распространено.

IIRC dolist иногда добавлялся в стандартный Elisp вокруг Emacs-21, так что с вашей настройкой что-то не так.

Другие вопросы по тегам