Error on call of gist-list #28

Closed
zane opened this Issue Apr 7, 2012 · 11 comments

Comments

Projects
None yet
4 participants

zane commented Apr 7, 2012

byte-code: Symbol's function definition is void: eieio--defgeneric-init-form

Gist was installed by way of package-list-packages.

Collaborator

sigma commented Apr 7, 2012

there seems to be a discrepancy between the version of eieio that was used to compile gist.el (or its dependencies) and the one that's used when you load them. I guess that means you installed one as a package dependency, and the stock one gets loaded instead.

Could it be that your emacs configuration loads eieio before you even run (package-initialize) ? (generally speaking, package-initialize should be as close as possible to the top).
Another possibility would be that you explicitely (load "/path/to/old/eieio.el") somewhere, that would override whatever package.el is setting.

If that doesn't help, can you provide the outputs of:

  • M-x version
  • M-: (locate-library "eieio")
  • M-: (locate-library "gist")

thanks !

zane commented Apr 8, 2012

GNU Emacs 24.0.50.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36) of 2011-08-16 on ...
.../el-get/package/elpa/eieio-1.4/eieio.elc
.../el-get/package/elpa/gist-1.0/gist.el

No, thank you!

Collaborator

sigma commented Apr 8, 2012

ok, seems eieio 1.4 is breaking things again. I'm going to try to fix the dependencies properly, but in the meantime, you can probably workaround the issue by just uninstalling eieio 1.4
Since you're using emacs 24, you actually don't need it anyway

Collaborator

sigma commented Apr 8, 2012

should be fixed with gist.el 1.0.1 (just uploaded to marmalade)

@sigma sigma closed this Apr 8, 2012

zane commented Apr 9, 2012

Getting this error on package install now:

gist.el:48:1:Error: Symbol's function definition is void: eieio-defmethod

Tried uninstalling eieio 1.4 (which leaves me with the built-in 1.3).

Collaborator

sigma commented Apr 9, 2012

not sure why that is and I can't reproduce on a clean emacs 24 install.
You might be able to fix the problem by (require 'eieio) yourself early enough in your config

zane commented Apr 10, 2012

It's happening when trying to compile the file on the line where (require 'eieio-base) is called:

Debugger entered--Lisp error: (void-function eieio--defgeneric-init-form)
  eieio--defgeneric-init-form(slot-unbound "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot.  FN is the function signalling the error.")
  byte-code("\300\301!\210\302\303\304\305\306$\210\307\310\311\310\312\"\"\210\313\310\304\303\314$\210\307\315\311\315\316\"\"\210\313\315\304\303\317$\210\307\320\311\320\321\"\"\210\313\320\304\303\322$\210\302\323\304\324\325$\210\307\326\311\326\327\"\"\210\313\326\330\323\331$\210\307\332\311\332\333\"\"\210\313\332\304\323\334$\207" [require eieio eieio-defclass eieio-instance-inheritor nil ((parent-instance :initarg :parent-instance :type eieio-instance-inheritor-child :documentation "The parent of this instance.\nIf a slot of this class is referenced, and is unbound, then the parent\nis checked for a value.")) ("This special class can enable instance inheritance.\nUse `clone' to make a new object that does instance inheritance from\na parent instance.  When a slot in the child is referenced, and has\nnot been set, use values from the parent." :abstract t) eieio--defalias slot-unbound eieio--defgeneric-init-form "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot.  FN is the function signalling the error." eieio--defmethod #[(object class slot-name fn) "\302�\303\"\203��\304\211�\303\" \"\207\305 \207" [object slot-name slot-boundp parent-instance eieio-oref call-next-method] 4 "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot.  FN is the function signalling the error."] clone "Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS." #[(obj &rest params) "\306�G \"�\nH�\205���@;\307����\211��\310\311I\210�������HI\210
\204X�\312 ��\313\216\314\315��\"\203H�\316\317\307��\"!T���\310\211\224O����\n��\320\321\f!QI\210*\202_���\n�@I\210�\203r�\322��
\203o��A\202p��\"\210\323��\324�#\210��,\207" [obj eieio-unbound object-name params num passname make-vector 1 0 object match-data ((byte-code "\301�\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "-\\([0-9]+\\)" string-to-number match-string "-" int-to-string shared-initialize eieio-oset parent-instance nm nobj object-class save-match-data-internal] 7 "Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS."] eieio-instance-inheritor-slot-boundp "Return non-nil if the instance inheritor OBJECT's SLOT is bound.\nSee `slot-boundp' for details on binding slots.\nThe instance inheritor uses unbound slots as a way of cascading cloned\nslot values, so testing for a slot being bound requires extra steps\nfor this kind of object." #[(object slot) "\302�   \"\203  �\303\207\302�\304\"\205��\305\306�\304\"   \"\207" [object slot slot-boundp t parent-instance eieio-instance-inheritor-slot-boundp eieio-oref] 4 "Return non-nil if the instance inheritor OBJECT's SLOT is bound.\nSee `slot-boundp' for details on binding slots.\nThe instance inheritor uses unbound slots as a way of cascading cloned\nslot values, so testing for a slot being bound requires extra steps\nfor this kind of object."] eieio-instance-tracker ((tracking-symbol :type symbol :allocation :class :documentation "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it.")) ("This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." :abstract t) initialize-instance "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments." :AFTER #[(this &rest slots) "\302�\303\"��    J>?\205��   \304    J�C\"L)\207" [this sym eieio-oref tracking-symbol append] 4 "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments."] delete-instance "Remove THIS from the master list of this class." #[(this) "\301�\302\"\303�\301�\302\"J\"L\207" [this eieio-oref tracking-symbol delq] 6 "Remove THIS from the master list of this class."]] 5)
  require(eieio-base)
  eval((require (quote eieio-base)) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)
Collaborator

sigma commented Apr 10, 2012

very strange. what's the output of M-: (locate-library "eieio") now ?

zane commented Apr 18, 2012

eieio is at:

.../emacs/24.0.50/lisp/emacs-lisp/eieio.elc

gist is at:

.../.emacs.d/el-get/package/elpa/gist-1.0.1/gist.el

hoyang commented Apr 18, 2013

i have the same error when i try load cedet/ecb package....

adben commented May 3, 2013

same here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment