summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/timer-list.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2022-03-30 13:54:56 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2022-03-30 17:08:28 -0400
commit6f973faa912a5ac1ba643c6f5deb0c02baa0ba6d (patch)
tree96071fd19e3863ec34b4d32235e573d9106bf1b2 /lisp/emacs-lisp/timer-list.el
parentb12ad270ebffb2b048f01d2992b472503b78dc33 (diff)
downloademacs-6f973faa912a5ac1ba643c6f5deb0c02baa0ba6d.tar.gz
emacs-6f973faa912a5ac1ba643c6f5deb0c02baa0ba6d.tar.bz2
emacs-6f973faa912a5ac1ba643c6f5deb0c02baa0ba6d.zip
cl-generic: Use OClosures for `cl--generic-isnot-nnm-p`
Rewrite the handling of `cl-no-next-method` to get rid of the hideous hack used in `cl--generic-isnot-nnm-p` and also to try and move some of the cost to the construction of the effective method rather than its invocation. This speeds up method calls measurably when there's a `cl-call-next-method` in the body. * lisp/loadup.el ("emacs-lisp/oclosure"): Load. * lisp/emacs-lisp/oclosure.el (oclosure-define): Remove workaround now that we're preloaded. * lisp/emacs-lisp/cl-generic.el (cl--generic-method): Rename `uses-cnm` to `call-con` to reflect it's not a boolean any more. (cl-defmethod): Adjust to the new name and new values. (cl-generic-define-method): Adjust to the new name. (cl--generic-lambda): Use the new `curried` calling convention. (cl--generic-no-next-method-function): Delete function. (cl--generic-nnm): New type. (cl-generic-call-method): Rewrite to support the various calling conventions. (cl--generic-nnm-sample, cl--generic-cnm-sample): Delete consts. (cl--generic-isnot-nnm-p): Rewrite using `oclosure-type`. (cl--generic-method-info): Add support for new calling convention.
Diffstat (limited to 'lisp/emacs-lisp/timer-list.el')
0 files changed, 0 insertions, 0 deletions