]> code.delx.au - gnu-emacs/commit
Tighten up the tagcode used for eieio and cl-struct objects
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 28 Jan 2015 03:41:31 +0000 (22:41 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 28 Jan 2015 03:41:31 +0000 (22:41 -0500)
commit2668ac1aaecfe62c80a4fbdfc27a38e384594d26
treef467b3db81d3510c67c01052ca620e6ade7a357d
parent7f4f16b3ae6fdb59d83cfc01017668f2a564309f
Tighten up the tagcode used for eieio and cl-struct objects

* lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Set the function
slot of the tag symbol to :quick-object-witness-check.
(eieio-object-p): Use :quick-object-witness-check.
(eieio--generic-tagcode): Use cl--generic-struct-tag.
* lisp/emacs-lisp/cl-preloaded.el: New file.
* lisp/emacs-lisp/cl-macs.el (cl--bind-inits): Remove, unused.
(cl--transform-lambda, cl-destructuring-bind): Remove cl--bind-inits.
(cl--make-usage-args): Strip away &aux args.
(cl-case, cl-typecase, cl--parse-loop-clause): Use macroexp-let2.
(cl-the, cl-check-type): Use macroexp-let2 and cl-typep.
(cl-defstruct): Use `declare' and cl-struct-define.
* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): New function.
(cl--generic-struct-tagcode): Use it to tighten the tagcode.
* lisp/loadup.el: Load cl-preloaded.
* src/lisp.mk (lisp): Add cl-preloaded.
lisp/ChangeLog
lisp/emacs-lisp/cl-generic.el
lisp/emacs-lisp/cl-macs.el
lisp/emacs-lisp/cl-preloaded.el [new file with mode: 0644]
lisp/emacs-lisp/eieio-core.el
lisp/loadup.el
src/ChangeLog
src/lisp.mk