abo-abo / ace-window

Quickly switch windows in Emacs
977 stars 87 forks source link

Error (void-function aw-set-make-frame-char) with ace-window-20171210.152 #117

Closed philippe-grenet closed 6 years ago

philippe-grenet commented 6 years ago

Hello,

I am seeing this error when my emacs config (Exordium) loads and tries to evaluate (require 'ace-window):

Debugger entered--Lisp error: (void-function aw-set-make-frame-char)
  aw-set-make-frame-char(aw-make-frame-char 122)
  custom-initialize-reset(aw-make-frame-char (funcall (function #[0 "\300\207" [122] 1])))
  custom-declare-variable(aw-make-frame-char (funcall (function #[0 "\300\207" [122] 1])) "Character that triggers creation of a new single-window frame for display." :set aw-set-make-frame-char :type character)
  byte-code("\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable aw-make-frame-char funcall function #[0 "\300\207" [122] 1] "Character that triggers creation of a new single-window frame for display." :set aw-set-make-frame-char :type character] 8)
  require(ace-window)
  eval-region(4791 4812 t #[257 "\300\242b\210\301\207" [(4812) (require (quote ace-window))] 2 "\n\n(fn IGNORE)"])  ; Reading at buffer position 4793
  elisp--eval-defun()
  #[257 "\211\203
\304\305!\210\306?!\207   \204\307 \207\310\211\n\307 \262\262)\n=\204(\207" [edebug-all-defs eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error require edebug eval-defun elisp--eval-defun nil] 5 2270373 "P"](nil)
  #[(&rest _it) "  !\211\207" [ad--addoit-function edebug-it ad-return-value] 2]()
  eval-sexp-fu-flash-doit-simple(#[(&rest _it) "   !\211\207" [ad--addoit-function edebug-it ad-return-value] 2] #[128 "\302\300\303\301\"\"\207" [esf-hl-highlight-bounds ((4791 . 4812) eval-sexp-fu-flash #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"] #[128 "\302\300\303\301\"\"\207" [esf-hl-unhighlight-bounds ((4791 . 4812) #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"])
  eval-sexp-fu-flash-doit(#[(&rest _it) "  !\211\207" [ad--addoit-function edebug-it ad-return-value] 2] #[128 "\302\300\303\301\"\"\207" [esf-hl-highlight-bounds ((4791 . 4812) eval-sexp-fu-flash #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"] #[128 "\302\300\303\301\"\"\207" [esf-hl-unhighlight-bounds ((4791 . 4812) #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"])
  esf-flash-doit(#[(&rest _it) "   !\211\207" [ad--addoit-function edebug-it ad-return-value] 2] #[128 "\302\300\303\301\"\"\207" [esf-hl-highlight-bounds ((4791 . 4812) eval-sexp-fu-flash #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"] #[128 "\302\300\303\301\"\"\207" [esf-hl-unhighlight-bounds ((4791 . 4812) #<buffer init-window-manager.el>) apply append] 6 "\n\n(fn &rest ARGS2)"] #[128 "\302\300\303\301\"\"\207" [esf-flash-error-bounds ((4791 . 4812) #<buffer init-window-manager.el> eval-sexp-fu-flash-error) apply append] 6 "\n\n(fn &rest ARGS2)"])
  ad-Advice-eval-defun(#[257 "\211\203
\304\305!\210\306?!\207   \204\307 \207\310\211\n\307 \262\262)\n=\204(\207" [edebug-all-defs eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error require edebug eval-defun elisp--eval-defun nil] 5 2270373 "P"] nil)
  apply(ad-Advice-eval-defun #[257 "\211\203
\304\305!\210\306?!\207   \204\307 \207\310\211\n\307 \262\262)\n=\204(\207" [edebug-all-defs eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error require edebug eval-defun elisp--eval-defun nil] 5 2270373 "P"] nil)
  eval-defun(nil)
  funcall-interactively(eval-defun nil)
  #<subr call-interactively>(eval-defun nil nil)
  apply(#<subr call-interactively> eval-defun (nil nil))
  call-interactively@ido-cr+-record-current-command(#<subr call-interactively> eval-defun nil nil)
  apply(call-interactively@ido-cr+-record-current-command #<subr call-interactively> (eval-defun nil nil))
  call-interactively(eval-defun nil nil)
  command-execute(eval-defun)

This started to happen when I updated ace-window to version 20171210.152. It might be related to commit 15b0639ba5ad6d196550ba615ab2804309fa38bb

I use Emacs on OSX. emacs-version reports GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Version 10.9.5 (Build 13F1911)) of 2016-09-17. Force recompiling all Elpa packages and all files in my own configuration did not fix the problem.

If it helps, the offending line in my config is here. One workaround that I found is to copy and paste this function definition before that "require" line, like so:

(defun aw-set-make-frame-char (symbol value)
  "Set SYMBOL `aw-make-frame-char' to VALUE after checking it."
  (when value
    (cond ((not (characterp value))
           (user-error
            "must be a character, not `%s'" value))
          ((memq value aw-keys)
           (user-error
            "`%c' conflicts with the same character in `aw-keys'" value))
          ((assq value aw-dispatch-alist)
           (user-error
            "`%c' conflicts with the same character in `aw-dispatch-alist'" value))))
  (set symbol value))

(require 'ace-window)

Let me know if you need more information. Thanks!

abo-abo commented 6 years ago

Thanks for the report, but it's already fixed in #116. MELPA should rebuild soon, or is rebuilt already. Update and the error will go away.

philippe-grenet commented 6 years ago

Great. I'll close this issue then.