FS#37131 - [ecb] current version doesn't work with cedet 2.0 from emacs

Attached to Project: Community Packages
Opened by Uwe Koloska (kolewu) - Sunday, 29 September 2013, 22:02 GMT
Last edited by Sergej Pupykin (sergej) - Tuesday, 01 October 2013, 08:40 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
current version of ecb 2.40.1pre-7 does not work with cedet 2.0 from emacs 24.3-4.

Error message:
let: ECB 2.40 - Error: ECB can only be used with cedet [1.0pre6, 1.2alpha]! Please install it and restart Emacs!

This task depends upon

Closed by  Sergej Pupykin (sergej)
Tuesday, 01 October 2013, 08:40 GMT
Reason for closing:  Fixed
Comment by Sergej Pupykin (sergej) - Monday, 30 September 2013, 10:40 GMT
please try ecb-2.40.1pre-8
Comment by Uwe Koloska (kolewu) - Monday, 30 September 2013, 23:14 GMT
Thanks for the fast reaction!

Unfortunately this doesn't help. There seems to be a problem with the byte compiled code.

To test the new version without all my other initialization cruft I just do:
emacs -q
and then evaluate
(add-to-list 'load-path "/usr/share/emacs/site-lisp/ecb")
(require 'ecb)

This gives a very cryptic error message:

Debugger entered--Lisp error: (void-function eieio--defgeneric-init-form)
eieio--defgeneric-init-form(ecb-get-data "Generically created method `ecb-get-data'.")
byte-code("..." <<left out very long line>> 5)
require(ecb-navigate)
byte-code("..." <<left out very long line>> 8)
require(ecb)

So to get a readable error, I did
cp -a /usr/share/emacs/site-lisp/ecb ~/tmp
find ~/tmp -name "*.elc" -delete
and then used this uncompiled version
(add-to-list 'load-path "~/tmp/ecb")
(require 'ecb)

But guess what: there is no error anymore ... (beside the already known 'Package assoc is obsolete!')
and ecb can be successfully activated.

When doing the ecb-byte-compile from this new directory, it works without error after the next restart.


The Makefile doesn't work in this directory:

$ make
Byte-compiling ECB with LOADPATH= ...
emacs -batch -no-site-file -l ecb-compile-script --eval '(ecb-byte-compile t)'
Autoloading failed to define function semantic-mode
make: *** [ecb] Fehler 255
Comment by Uwe Koloska (kolewu) - Monday, 30 September 2013, 23:29 GMT
AFAICS the version of alex ott has been merged completely into the emacsmirror repo.

And according to the comment in the Makefile it's not necessary to set the CEDET variable, cause we want to use the cedet version included with emacs -- but then, this is the cause of the compile time error message.

Maybe you should build both ecb and autoloads.
Comment by Uwe Koloska (kolewu) - Monday, 30 September 2013, 23:41 GMT
Forget about the last two entries ...

I have forgotten to uninstall the old cedet package. Without this the make works without errors.

So: version 8 fixes the problem with cedet from emacs -- and as a bonus the assoc warning.

Thank you!

Loading...