GNU bug report logs -
#49291
[akater] [PATCH] lisp/emacs-lisp/eieio.el (initialize-instance): Fix initform
Previous Next
Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>
Date: Wed, 30 Jun 2021 13:33:02 UTC
Severity: normal
Tags: patch
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
> No, not to the eieio--class but to the new object.
Right, I was confused. I left the word FIXME but rephrased the comment
so that we don't mention the non-existent dflt. At the moment, I'm not
ready to reimplement this with aset and to ensure it would not break by
accident in an obscure manner.
> But could you add a test or two to
> test/lisp/emacs-lisp/eieio-tests/eieio-tests.el ?
I added sort of exhaustive tests for initialization. A complete
exhaustive test would also take :default-initargs and inheritance into
account but I'd rather do this gradually. I did not run tests in Emacs
28 but they pass as is in Emacs 27.
Some :initform's needed a fix (quote), some could be improved (search
for “symbol-value” in the patch).
The necessity to quote should be expected to break some packages, maybe
a lot. E.g. helm contained one unquoted such instance. I already fixed
it; nothing else broke for me so far but it was easy to omit this quote.
If authors get confused about initform workings, it may help to note
that :initform actually expects a *form*, i.e. expression to be
evaluated. The attempt to guess what to evaluate and what not was based
on the wrong premise that CL does that.
[0001-lisp-emacs-lisp-eieio.el-initialize-instance-Fix-eva.patch (text/x-diff, attachment)]
This bug report was last modified 3 years and 361 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.