diff options
| author | Stefan Monnier | 2014-12-29 12:11:09 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2014-12-29 12:11:09 -0500 |
| commit | 232823a1f163cebeafdab20ea2eb3f2da9645185 (patch) | |
| tree | 59df22737fb162918c05c533ee9b19548a6b21b3 /lisp/ChangeLog | |
| parent | ee93d7ad4291a0946efe3197481cfbeff92f29b8 (diff) | |
| download | emacs-232823a1f163cebeafdab20ea2eb3f2da9645185.tar.gz emacs-232823a1f163cebeafdab20ea2eb3f2da9645185.zip | |
lisp/emacs-lisp/eieio*.el: Reduce object header to 1 slot
* lisp/emacs-lisp/eieio-core.el (eieio--with-scoped-class): Use let-binding.
(object): Remove first (constant) slot; rename second to `class-tag'.
(eieio--object-class-object, eieio--object-class-name): New funs
to replace eieio--object-class.
(eieio--class-object, eieio--class-p): New functions.
(same-class-fast-p): Make it a defsubst, change its implementation
to check the class objects rather than their names.
(eieio-object-p): Rewrite.
(eieio-defclass): Adjust the object initialization according to the new
object layout.
(eieio--scoped-class): Declare it returns a class object (not a class
name any more). Adjust calls accordingly (along with calls to
eieio--with-scoped-class).
(eieio--slot-name-index): Rename from eieio-slot-name-index and change
its class arg to be a class object. Adjust callers accordingly.
(eieio-slot-originating-class-p): Make its start-class arg a class
object. Adjust all callers.
(eieio--initarg-to-attribute): Rename from eieio-initarg-to-attribute.
Make its `class' arg a class object. Adjust all callers.
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
Use eieio--slot-name-index rather than eieio-slot-name-index.
* lisp/emacs-lisp/eieio.el (child-of-class-p): Make it accept class objects
additionally to class names.
* test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
Adjust to new semantics of eieio--scoped-class.
(eieio-test-match): Improve error feedback.
Diffstat (limited to 'lisp/ChangeLog')
| -rw-r--r-- | lisp/ChangeLog | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a0383814cd..209c833fbe3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,31 @@ | |||
| 1 | 2014-12-29 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * emacs-lisp/eieio.el (child-of-class-p): Make it accept class objects | ||
| 4 | additionally to class names. | ||
| 5 | |||
| 6 | * emacs-lisp/eieio-core.el (eieio--with-scoped-class): Use let-binding. | ||
| 7 | (object): Remove first (constant) slot; rename second to `class-tag'. | ||
| 8 | (eieio--object-class-object, eieio--object-class-name): New funs | ||
| 9 | to replace eieio--object-class. | ||
| 10 | (eieio--class-object, eieio--class-p): New functions. | ||
| 11 | (same-class-fast-p): Make it a defsubst, change its implementation | ||
| 12 | to check the class objects rather than their names. | ||
| 13 | (eieio-object-p): Rewrite. | ||
| 14 | (eieio-defclass): Adjust the object initialization according to the new | ||
| 15 | object layout. | ||
| 16 | (eieio--scoped-class): Declare it returns a class object (not a class | ||
| 17 | name any more). Adjust calls accordingly (along with calls to | ||
| 18 | eieio--with-scoped-class). | ||
| 19 | (eieio--slot-name-index): Rename from eieio-slot-name-index and change | ||
| 20 | its class arg to be a class object. Adjust callers accordingly. | ||
| 21 | (eieio-slot-originating-class-p): Make its start-class arg a class | ||
| 22 | object. Adjust all callers. | ||
| 23 | (eieio--initarg-to-attribute): Rename from eieio-initarg-to-attribute. | ||
| 24 | Make its `class' arg a class object. Adjust all callers. | ||
| 25 | |||
| 26 | * emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value): | ||
| 27 | Use eieio--slot-name-index rather than eieio-slot-name-index. | ||
| 28 | |||
| 1 | 2014-12-23 Stefan Monnier <monnier@iro.umontreal.ca> | 29 | 2014-12-23 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 30 | ||
| 3 | * emacs-lisp/eieio.el (make-instance): Simplify by not adding an object | 31 | * emacs-lisp/eieio.el (make-instance): Simplify by not adding an object |