emacs/lisp/emacs-lisp
Stefan Monnier 21c547863d Replace *-function vars with generic functions in cl-generic.
* lisp/emacs-lisp/cl-generic.el (cl--generic-generalizer): New struct.
(cl-generic-tagcode-function, cl-generic-tag-types-function): Remove.
(cl--generic-t-generalizer): New const.
(cl--generic-make-method): Rename from `cl--generic-method-make'.
(cl--generic-make): Change calling convention.
(cl--generic): Add `options' field.
(cl-generic-function-options): New function.
(cl-defgeneric): Rewrite handling of options.  Add support for :method
options and allow the use of a default body.
(cl-generic-define): Save options in the corresponding new field.
(cl-defmethod): Fix ordering of qualifiers.
(cl-generic-define-method): Use cl-generic-generalizers.
(cl--generic-get-dispatcher): Change calling convention, and change
calling convention of the returned function as well so as to take the
list of methods separately from the generic function object, so that it
can receive the original generic function object.
(cl--generic-make-next-function): New function, extracted from
cl--generic-make-function.
(cl--generic-make-function): Use it.
(cl-generic-method-combination-function): Remove.
(cl--generic-cyclic-definition): New error.
(cl-generic-call-method): Take a generic function object rather than
its name.
(cl-method-qualifiers): New alias.
(cl--generic-build-combined-method): Use cl-generic-combine-methods,
don't segregate by qualifiers here any more.
(cl--generic-standard-method-combination): Segregate by qualifiers
here instead.  Add support for the `:extra' qualifier.
(cl--generic-cache-miss): Move earlier, adjust to new calling convention.
(cl-generic-generalizers, cl-generic-combine-methods):
New generic functions.
(cl-no-next-method, cl-no-applicable-method, cl-no-primary-method):
Use the new "default method in defgeneric" functionality, change
calling convention to receive a generic function object.
(cl--generic-head-used): New var.
(cl--generic-head-generalizer, cl--generic-eql-generalizer)
(cl--generic-struct-generalizer, cl--generic-typeof-generalizer):
New consts.
* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-generalizer): New consts.
(cl-generic-generalizers): New methods.
* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer)
(eieio--generic-static-object-generalizer): New consts.
(cl-generic-generalizers) <(head eieio--static)>: New method.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Unfold closures like lambdas.
2015-03-04 20:04:57 -05:00
..
advice.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
autoload.el Less 'make' chatter in batch mode 2015-01-03 18:29:23 -08:00
avl-tree.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
backquote.el * lisp/emacs-lisp/backquote.el: Fix bug with unoptimized exp. 2015-01-30 16:00:29 -05:00
benchmark.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
bindat.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
byte-opt.el Replace *-function vars with generic functions in cl-generic. 2015-03-04 20:04:57 -05:00
byte-run.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
bytecomp.el * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Keep type=nil by default. 2015-02-16 01:37:57 -05:00
cconv.el Add (:documentation <form>) for dynamically-generated docstrings 2015-02-05 14:28:16 -05:00
chart.el Shrink EIEIO object header. Move generics to eieio-generic.el. 2015-01-08 16:03:04 -05:00
check-declare.el Spelling fixes 2015-03-03 15:10:40 -08:00
checkdoc.el * lisp/emacs-lisp/checkdoc.el (checkdoc-show-diagnostics): Don't make bogus 2015-02-18 11:04:15 -05:00
cl-extra.el Fix seq-subseq and cl-subseq for bad bounding indices 2015-01-18 14:04:31 +08:00
cl-generic.el Replace *-function vars with generic functions in cl-generic. 2015-03-04 20:04:57 -05:00
cl-indent.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
cl-lib.el * lisp/emacs-lisp/cl*.el: Use define-inline and move some code 2015-02-14 00:46:29 -05:00
cl-macs.el Add cl-iter-defun 2015-03-02 16:41:59 -08:00
cl-preloaded.el * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Keep type=nil by default. 2015-02-16 01:37:57 -05:00
cl-seq.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
cl.el * lisp/emacs-lisp/cl.el (cl--function-convert): Simplify. 2015-01-28 08:18:50 -05:00
copyright.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
crm.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
debug.el * lisp/emacs-lisp/edebug.el (edebug--display): Save-excursion. 2015-02-25 01:03:14 -05:00
derived.el lisp/emacs-lisp/derived.el (define-derived-mode): Declare indent 3. 2015-01-27 10:48:40 +01:00
disass.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
easy-mmode.el emacs-lisp/easy-mmode.el: Clarify mode switch messages 2015-02-17 22:16:22 -02:00
easymenu.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
edebug.el * lisp/emacs-lisp/edebug.el (edebug--display): Save-excursion. 2015-02-25 01:03:14 -05:00
eieio-base.el * lisp/emacs-lisp/eieio*.el: Align a bit better with CLOS 2015-02-16 02:22:46 -05:00
eieio-compat.el Replace *-function vars with generic functions in cl-generic. 2015-03-04 20:04:57 -05:00
eieio-core.el Replace *-function vars with generic functions in cl-generic. 2015-03-04 20:04:57 -05:00
eieio-custom.el * lisp/emacs-lisp/eieio*.el: Fix up warnings and improve compatibility 2015-01-21 14:39:06 -05:00
eieio-datadebug.el EIEIO: Simplify help hyperlinks; Try and reduce hardcoding in .elc 2015-01-31 00:48:14 -05:00
eieio-opt.el * lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Fix bug#19891 2015-02-19 13:22:21 -05:00
eieio-speedbar.el * lisp/emacs-lisp/eieio*.el: Fix up warnings and improve compatibility 2015-01-21 14:39:06 -05:00
eieio.el # Auto-commit of loaddefs files. 2015-02-20 06:18:36 -05:00
eldoc.el eldoc: modify eldoc-documentation-function' using add-function' 2015-01-20 15:04:15 +01:00
elint.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
elp.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
ert-x.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
ert.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
ewoc.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
find-func.el (find-function-regexp): Don't match `defgroup' 2015-01-25 02:20:01 +02:00
float-sup.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
generator.el Spelling fixes 2015-03-03 15:10:40 -08:00
generic.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
gv.el * lisp/progmodes/gud.el: Use lexical-binding. 2015-03-03 14:23:49 -05:00
helper.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
inline.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
lisp-mnt.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
lisp-mode.el Add macro pcase-lambda 2015-02-09 10:05:44 +08:00
lisp.el Push mark before goto-char in jump-to-register and check-parens 2015-02-18 16:36:24 -02:00
macroexp.el * lisp/emacs-lisp/macroexp.el (macroexp-parse-body): Handle cl-declare 2015-02-22 23:50:03 -05:00
map-ynp.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
nadvice.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
package-x.el emacs-lisp/package-x.el: Create valid tar files 2015-02-17 22:08:51 -02:00
package.el emacs-lisp/package.el (package-autoremove): Fix if logic. 2015-03-03 15:15:26 +00:00
pcase.el * lisp/emacs-lisp/macroexp.el (macroexp-parse-body): Handle cl-declare 2015-02-22 23:50:03 -05:00
pp.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
re-builder.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
regexp-opt.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
regi.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
ring.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
rx.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
seq.el Add a backward-compatible version of seq-reverse 2015-02-11 14:48:18 +01:00
shadow.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
smie.el * lisp/emacs-lisp/smie.el (smie-prec2->grammar): Fix corner case problem. 2015-02-18 20:31:17 -05:00
subr-x.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
syntax.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
tabulated-list.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
tcover-ses.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
tcover-unsafep.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
testcover.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
timer.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
tq.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
trace.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
unsafep.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00
warnings.el Update copyright year to 2015 2015-01-01 14:26:41 -08:00