DarwinAwardWinner/ido-completing-read-plus

Backtrace from one of my users

Closed this issue · 2 comments

Hi - one of the users of my emacs.d reports getting this error. Is it due to a missing declaration of a dependency on a particularly recent emacs version?

Debugger entered--Lisp error: (void-function define-error) 
  define-error(ido-cr+-fallback "ido-cr+-fallback") 
  byte-code("\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\304\301&�\210\306\316\310\311\317DD\320\314\321\304\301&�\210\306\322\310\311\323DD\324\314\325%\210\326\327\330\"\207" [custom-declare-group ido-completing-read-plus nil "Extra features and compatibility for `ido-completing-read'." :group ido custom-declare-variable ido-cr+-fallback-function funcall function #[0 "�\301>\203�\302\207�\207" [completing-read-function (ido-completing-read+ ido-completing-read completing-read-ido ido-ubiquitous-completing-read) completing-read-default] 2 "\n\n(fn)"] "Alternate completing-read function to use when ido is not wanted.\n\nThis will be used for functions that are incompatibile with ido\nor if ido cannot handle the completion arguments. It will also be\nused when the user requests non-ido completion manually via C-f\nor C-b." :type (choice (const :tag "Standard emacs completion" completing-read-default) (function :tag "Other function")) ido-cr+-max-items #[0 "\300\207" [30000] 1 "\n\n(fn)"] "Max collection size to use ido-cr+ on.\n\nIf `ido-completing-read+' is called on a collection larger than\nthis, the fallback completion method will be used instead. To\ndisable fallback based on collection size, set this to nil." (choice (const :tag "No limit" nil) (integer :tag "Limit" :value 30000 :validate (lambda (widget) (let ((v (widget-value widget))) (if (and (integerp v) (> v 0)) nil (widget-put widget :error "This field should contain a positive integer") widget))))) ido-cr+-replace-completely #[0 "\300\207" [nil] 1 "\n\n(fn)"] "If non-nil, replace `ido-completeing-read' completely with ido-cr+.\n\nEnabling this may interfere with or cause errors in other\npackages that use `ido-completing-read'. If you discover any such\nincompatibilites, please file a bug report at\nhttps://github.com/DarwinAwardWinner/ido-ubiquitous/issues" boolean define-error ido-cr+-fallback "ido-cr+-fallback"] 8) 
  ad-Orig-require(ido-completing-read+ nil nil) 
  (with-no-warnings (ad-Orig-require feature filename noerror)) 
  (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) 
  (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t))) 
  (let* ((already-loaded (memq feature features)) (require-start-time (and (not already-loaded) (current-time)))) (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t)))) 
  (let (ad-return-value) (let* ((already-loaded (memq feature features)) (require-start-time (and (not already-loaded) (current-time)))) (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t)))) ad-return-value) 
  require(ido-completing-read+) 
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305\306\307#\207" [require ido advice cl-lib ido-completing-read+ nadvice nil noerror] 4) 
  (ido-ubiquitous-mode t) 
  (progn (ido-ubiquitous-mode t)) 
  (if (maybe-require-package (quote ido-ubiquitous)) (progn (ido-ubiquitous-mode t))) 
  eval-buffer(#<buffer  *load*-884219> nil "/home/simonqian/.emacs.d/lisp/init-ido.el" nil t)  ; Reading at buffer position 337 
  load-with-code-conversion("/home/simonqian/.emacs.d/lisp/init-ido.el" "/home/simonqian/.emacs.d/lisp/init-ido.el" nil t) 
  ad-Orig-require(init-ido nil nil) 
  (with-no-warnings (ad-Orig-require feature filename noerror)) 
  (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) 
  (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t))) 
  (let* ((already-loaded (memq feature features)) (require-start-time (and (not already-loaded) (current-time)))) (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t)))) 
  (let (ad-return-value) (let* ((already-loaded (memq feature features)) (require-start-time (and (not already-loaded) (current-time)))) (prog1 (setq ad-return-value (with-no-warnings (ad-Orig-require feature filename noerror))) (when (and (not already-loaded) (memq feature features)) (add-to-list (quote sanityinc/require-times) (cons feature (sanityinc/time-subtract-millis (current-time) require-start-time)) t)))) ad-return-value) 
  require(init-ido) 
  eval-buffer(#<buffer  *load*> nil "/home/simonqian/.emacs.d/init.el" nil t)  ; Reading at buffer position 2028 
  load-with-code-conversion("/home/simonqian/.emacs.d/init.el" "/home/simonqian/.emacs.d/init.el" t t) 
  load("/home/simonqian/.emacs.d/init" t t) 
  #[0 "�\205\262 \306=\203�\307�\310Q\202; \311=\204�\307�\312Q\202;\313\307\314\315#\203*\316\202;\313\307\314\317#\203:\320\nB�\321\202;\316\322�\323�\322\211#\210�\322=\203a\324\325\326\307�\327Q!\"\323�\322\211#\210�\322=\203`��\210�\203\243\330�!\331\232\203\243\332�!\211\333P\334�!\203}\211\202\210\334�!\203\207�\202\210\314\262��\203\241\335��\"\203\237\336\337��#\210\340\341!\210��\266�\f?\205\260\314�\323\342\322\211#)\262�\207" [init-file-user system-type delayed-warnings-list user-init-file inhibit-default-init inhibit-startup-screen ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "^_emacs\\(\\.elc?\\)?$" (initialization "`_emacs' init file is deprecated, please use `.emacs'") "~/_emacs" t load expand-file-name "init" file-name-as-directory "/.emacs.d" file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default"] 7 "\n\n(fn)"]() 
  command-line() 

It's because define-error was only recently added into Emacs (24.4), and ido-ubiquitous is supposed to support slightly older Emacs versions. This was already reported and fixed. The user just has to update: #71

Ah, great -- sorry for missing that other issue. Will pass on the good news.