Hi,
I believe this is a bug in EFC, where someone used 'typep' instead
of 'type-of' in a method. The method is not being compiled at
run-time as an optimization step that was not done in the past, and is
tripping over this problem.
I think this was already fixed in JDEE, so the fix is likely in CVS
somewhere.
Eric
>>> poppyer <poppyer@...> seems to think that:
>Hi Eric,
>
>This might be a jdee issue, or eioio API change. It is better that if
>you can confirm it here, or I need to re-post this to jdee's maillist.
>
>CVS CEDET unable to load jde/lisp/efc.el with the following error:
>
>Debugger entered--Lisp error: (wrong-number-of-arguments #[(form val type) "Ĺ!2 \"É>0#E))" [type val res temp form cl-const-exppr-p cl-make-type-test cl-const-expr-val cl-expr-contains (nil 1) cl-simple-expr-p make-symbol "--cl-var--" let subst] 6] 2)
> #[(form val type) "Ĺ!2 apply(#[(form val type) "Ĺ!2 compiler-macroexpand((typep item))
> byte-optimize-form-code-walker((typep item) nil)
> byte-optimize-form((typep item))
> mapcar(byte-optimize-form ("Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type)))
> byte-optimize-form-code-walker((error "Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type)) nil)
> byte-optimize-form((error "Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type)) nil)
> byte-optimize-body(((error "Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type))) nil)
> byte-optimize-form-code-walker((if (efc-coll-type-compatible-p this item) (oset this items (append ... ...)) (error "Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type))) nil)
> byte-optimize-form((if (efc-coll-type-compatible-p this item) (oset this items (append ... ...)) (error "Tried to add an item of type %s to a list of items of type %s" (typep item) (oref this elem-type))) nil)
> byte-optimize-form-code-walker((progn (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))) nil)
> byte-optimize-form((progn (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))) nil)
> byte-compile-top-level((progn (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))) nil lambda)
> byte-compile-lambda((lambda (this item) "Adds an item to the list." (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))))
> byte-compile-function-form((function (lambda (this item) "Adds an item to the list." (if ... ... ...))))
> byte-compile-form((function (lambda (this item) "Adds an item to the list." (if ... ... ...))))
> mapc(byte-compile-form ((function (lambda ... "Adds an item to the list." ...)) local-args))
> byte-compile-normal-call((apply (function (lambda ... "Adds an item to the list." ...)) local-args))
> byte-compile-funarg((apply (quote (lambda ... "Adds an item to the list." ...)) local-args))
> byte-compile-form((apply (quote (lambda ... "Adds an item to the list." ...)) local-args) nil)
> byte-compile-body(((apply (quote ...) local-args)) nil)
> byte-compile-let((let ((scoped-class ...) (eieio-generic-call-next-method-list nil) (eieio-generic-call-key method-primary) (eieio-generic-call-methodname ...) (eieio-generic-call-arglst local-args)) (apply (quote ...) local-args)))
> byte-compile-form((let ((scoped-class ...) (eieio-generic-call-next-method-list nil) (eieio-generic-call-key method-primary) (eieio-generic-call-methodname ...) (eieio-generic-call-arglst local-args)) (apply (quote ...) local-args)) nil)
> byte-compile-body(((let (... ... ... ... ...) (apply ... local-args))) nil)
> byte-compile-if((if (not (child-of-class-p ... ...)) (apply (quote no-applicable-method) (car local-args) (quote efc-coll-add) local-args) (let (... ... ... ... ...) (apply ... local-args))))
> byte-compile-form((if (not (child-of-class-p ... ...)) (apply (quote no-applicable-method) (car local-args) (quote efc-coll-add) local-args) (let (... ... ... ... ...) (apply ... local-args))) nil)
> byte-compile-body(((if (not ...) (apply ... ... ... local-args) (let ... ...))) nil)
> byte-compile-if((if (not (condition-case nil ... ...)) (signal (quote no-method-definition) (list ... local-args)) (if (not ...) (apply ... ... ... local-args) (let ... ...))))
> byte-compile-form((if (not (condition-case nil ... ...)) (signal (quote no-method-definition) (list ... local-args)) (if (not ...) (apply ... ... ... local-args) (let ... ...))) nil)
> byte-compile-top-level((progn (if (not ...) (signal ... ...) (if ... ... ...))) nil lambda)
> byte-compile-lambda((lambda (&rest local-args) "Adds an item to the list." (if (not ...) (signal ... ...) (if ... ... ...))))
> eieio-defgeneric-form-primary-only-one(efc-coll-add "Adds an item to the list." efc-list (lambda (this item) "Adds an item to the list." (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))))
> eieio-defmethod(efc-coll-add (((this efc-list) item) "Adds an item to the list." (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...))))
> (defmethod efc-coll-add ((this efc-list) item) "Adds an item to the list." (if (efc-coll-type-compatible-p this item) (oset this items ...) (error "Tried to add an item of type %s to a list of items of type %s" ... ...)))
> eval-buffer(#<buffer *load*> nil "/Users/poppyer/.emacs.d/jde/lisp/efc.el" nil t) ; Reading at buffer position 23806
> load-with-code-conversion("/Users/poppyer/.emacs.d/jde/lisp/efc.el" "/Users/poppyer/.emacs.d/jde/lisp/efc.el" nil nil)
> load("~/.emacs.d/jde/lisp/efc")
> load-library("~/.emacs.d/jde/lisp/efc")
> call-interactively(load-library t nil)
> execute-extended-command(nil)
> call-interactively(execute-extended-command nil nil)
>
>Cheers,
>poppyer
>
>
>"Eric M. Ludlam" <eric@...> writes:
>
>> Hi all,
>>
>> Feeling a bit inspired by Arne's release request a few weeks back, I
>> started back into getting this ready to put another release together.
>> Over the past couple weeks I've been checking in bug fixes to get all
>> the tests suites running on both XEmacs and Emacs across the various
>> versions of Emacs I have installed, and fixing up byte-compiler
>> warnings.
>>
>> There is still a bit left to do, but it is progressing well. I
>> would be most appreciative if folks could try out the latest CVS on
>> any older Emacsen you may have, or newer XEmacses. A quick way to
>> validate is to do this:
>>
>> make EMACS=myoldemacs # ie - compile it
>> myoldemacs -q
>> M-x load-file RET ~/path/to/cedet/common/cedet.el RET
>> M-x cedet-utest
>>
>>
>> If the tests pass, then we are good. Some tests only pass on newer
>> Emacs, such as "pulse" tests that require the newer RGB color APIs.
>>
>> Reports of success or failure would be appreciated, and patches
>> welcome.
>>
>> Thanks.
>> Eric
>
|