GNU bug report logs - #9313
24.0.50; Emacs 24 cannot load byte-compiled code from Emacs 23.3 when using EIEIO's defmethod

Previous Next

Package: emacs;

Reported by: David Engster <deng <at> randomsample.de>

Date: Wed, 17 Aug 2011 15:55:01 UTC

Severity: normal

Found in version 24.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: David Engster <deng <at> randomsample.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.50;
	Emacs 24 cannot load byte-compiled code from Emacs 23.3 when using
	EIEIO's defmethod
Date: Wed, 17 Aug 2011 17:52:03 +0200
This is a very late followup to an older message from emacs-devel,
regarding the issue that Emacs24 after the lexbind merge cannot run
byte-compiled code from Emacs23.3 if that is using EIEIO's 'defmethod':

http://thread.gmane.org/gmane.emacs.devel/138030/focus=78338

In that message Stefan Monnier says that this is considered a bug, so
I'm writing this report. Also, this issue is popping up more frequently
now as people are migrating to Emacs24-bzr, but still have compiled Gnus
or CEDET sources with Emacs23, so I think this should be fixed before a
release.

Here's a recipe:

* Create a file ~/eieio-test/eieio-test.el with the following contents:

 (require 'eieio)

 (defclass someclass ()
   ((astring :initarg :astring
             :initform ""))
   "Some test class.")

 (defmethod somemethod ((arg someclass))
   "Some method."
   (message "Somemethod called."))

 (provide 'eieio-test)

* Byte-compile the file using Emacs 23.3:

  emacs23 --batch -f batch-byte-compile eieio-test.el

* Load Emacs24-bzr with

  emacs24 -Q -L ~/eieio-test

  and evaluate

  (require 'eieio-test)

* The following backtrace will appear:

Debugger entered--Lisp error: (void-function eieio-defmethod)
  (eieio-defmethod (quote somemethod) (quote (((arg someclass)) #[(arg) "\300\301!\207" [message "Somemethod called."] 2 "Some method."])))
  require(eieio-test)
  eval((require (quote eieio-test)) nil)


* Note that the following setups work:

  - Byte compile with Emacs23, require with Emacs23
  - Byte compile with Emacs24, require with Emacs24
  - Require uncompiled el-file.

* This issue is occuring since the lexbind merge.


Cheers,
David




This bug report was last modified 13 years and 331 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.