Current File : //proc/self/root/kunden/usr/share/emacs/27.2/lisp/emacs-lisp/cl-generic.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\301\302!B\301\207" [package--builtin-versions purecopy (cl-generic 1 0)] 2)
#@82 compiler-macro for inlining `cl--generic-generalizer-p'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-generalizer-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-generalizer-p (and (memq (type-of cl-x) cl-struct-cl--generic-generalizer-tags) t)) nil] 9 (#$ . 499)])
(put 'cl--generic-generalizer-p 'compiler-macro 'cl--generic-generalizer-p--cmacro)
#@13
(fn CL-X)
(defalias 'cl--generic-generalizer-p #[257 "\301!>\205 \302\207" [cl-struct-cl--generic-generalizer-tags type-of t] 3 (#$ . 910)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put cl--generic-generalizer-p side-effect-free error-free put cl--generic-generalizer cl-deftype-satisfies] 5)
#@85 compiler-macro for inlining `cl--generic-generalizer-name'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-generalizer-name--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-generalizer-name (progn (or (cl--generic-generalizer-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-generalizer cl-x))) (aref cl-x 1))) nil] 9 (#$ . 1235)])
(put 'cl--generic-generalizer-name 'compiler-macro 'cl--generic-generalizer-name--cmacro)
#@73 Access slot "name" of `cl--generic-generalizer' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-generalizer-name #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-generalizer-tags type-of signal wrong-type-argument cl--generic-generalizer 1] 5 (#$ . 1720)])
(byte-code "\300\301\302\303#\300\207" [function-put cl--generic-generalizer-name side-effect-free t] 4)
#@89 compiler-macro for inlining `cl--generic-generalizer-priority'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-generalizer-priority--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-generalizer-priority (progn (or (cl--generic-generalizer-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-generalizer cl-x))) (aref cl-x 2))) nil] 9 (#$ . 2117)])
(put 'cl--generic-generalizer-priority 'compiler-macro 'cl--generic-generalizer-priority--cmacro)
#@77 Access slot "priority" of `cl--generic-generalizer' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-generalizer-priority #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-generalizer-tags type-of signal wrong-type-argument cl--generic-generalizer 2] 5 (#$ . 2622)])
(byte-code "\300\301\302\303#\300\207" [function-put cl--generic-generalizer-priority side-effect-free t] 4)
#@97 compiler-macro for inlining `cl--generic-generalizer-tagcode-function'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-generalizer-tagcode-function--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-generalizer-tagcode-function (progn (or (cl--generic-generalizer-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-generalizer cl-x))) (aref cl-x 3))) nil] 9 (#$ . 3031)])
(put 'cl--generic-generalizer-tagcode-function 'compiler-macro 'cl--generic-generalizer-tagcode-function--cmacro)
#@85 Access slot "tagcode-function" of `cl--generic-generalizer' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-generalizer-tagcode-function #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-generalizer-tags type-of signal wrong-type-argument cl--generic-generalizer 3] 5 (#$ . 3576)])
(byte-code "\300\301\302\303#\300\207" [function-put cl--generic-generalizer-tagcode-function side-effect-free t] 4)
#@102 compiler-macro for inlining `cl--generic-generalizer-specializers-function'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-generalizer-specializers-function--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-generalizer-specializers-function (progn (or (cl--generic-generalizer-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-generalizer cl-x))) (aref cl-x 4))) nil] 9 (#$ . 4010)])
(put 'cl--generic-generalizer-specializers-function 'compiler-macro 'cl--generic-generalizer-specializers-function--cmacro)
#@90 Access slot "specializers-function" of `cl--generic-generalizer' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-generalizer-specializers-function #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-generalizer-tags type-of signal wrong-type-argument cl--generic-generalizer 4] 5 (#$ . 4580)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put cl--generic-generalizer-specializers-function side-effect-free t defalias copy-cl--generic-generalizer copy-sequence] 4)
#@132 compiler-macro for inlining `cl-generic-make-generalizer'.
(fn CL-WHOLE-ARG NAME PRIORITY TAGCODE-FUNCTION SPECIALIZERS-FUNCTION)
(defalias 'cl-generic-make-generalizer--cmacro #[1285 "\300\301\302\303\211\211 & \207" [cl--defsubst-expand (name priority tagcode-function specializers-function) (cl-block cl-generic-make-generalizer (record 'cl--generic-generalizer name priority tagcode-function specializers-function)) nil] 15 (#$ . 5091)])
(put 'cl-generic-make-generalizer 'compiler-macro 'cl-generic-make-generalizer--cmacro)
#@119 Constructor for objects of type `cl--generic-generalizer'.
(fn NAME PRIORITY TAGCODE-FUNCTION SPECIALIZERS-FUNCTION)
(defalias 'cl-generic-make-generalizer #[1028 "\300\301%\207" [record cl--generic-generalizer] 10 (#$ . 5636)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put cl-generic-make-generalizer side-effect-free t cl-struct-define cl--generic-generalizer nil cl-structure-object record ((cl-tag-slot) (name nil :type string) (priority nil :type integer) (tagcode-function) (specializers-function)) cl-struct-cl--generic-generalizer-tags] 11)
#@650 Define a new kind of generalizer.
NAME is the name of the variable that will hold it.
PRIORITY defines which generalizer takes precedence.
The catch-all generalizer has priority 0.
Then `eql' generalizer has priority 100.
TAGCODE-FUNCTION takes as first argument a varname and should return
a chunk of code that computes the tag of the value held in that variable.
Further arguments are reserved for future use.
SPECIALIZERS-FUNCTION takes as first argument a tag value TAG
and should return a list of specializers that match TAG.
Further arguments are reserved for future use.
(fn NAME PRIORITY TAGCODE-FUNCTION SPECIALIZERS-FUNCTION)
(defalias 'cl-generic-define-generalizer '(macro . #[1028 "\300\301\302D\257E\207" [defconst cl-generic-make-generalizer quote] 11 (#$ . 6243)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put cl-generic-define-generalizer lisp-indent-function 1 put edebug-form-spec (symbolp body)] 5)
(defconst cl--generic-t-generalizer (byte-code "\300\301\302\303\304\305%\207" [#[385 "\300\207" [nil] 3 "\n\n(fn NAME &rest _)"] #[385 "\300\207" [(t)] 3 "\n\n(fn TAG &rest _)"] record cl--generic-generalizer cl--generic-t-generalizer 0] 8))
#@88 compiler-macro for inlining `cl--struct-cl--generic-method-p'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--struct-cl--generic-method-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--struct-cl--generic-method-p (and (memq (type-of cl-x) cl-struct-cl--generic-method-tags) t)) nil] 9 (#$ . 7458)])
(put 'cl--struct-cl--generic-method-p 'compiler-macro 'cl--struct-cl--generic-method-p--cmacro)
#@13
(fn CL-X)
(defalias 'cl--struct-cl--generic-method-p #[257 "\301!>\205 \302\207" [cl-struct-cl--generic-method-tags type-of t] 3 (#$ . 7895)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put cl--struct-cl--generic-method-p side-effect-free error-free put cl--generic-method cl-deftype-satisfies] 5)
#@88 compiler-macro for inlining `cl--generic-method-specializers'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-method-specializers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-method-specializers (progn (or (cl--struct-cl--generic-method-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-method cl-x))) (aref cl-x 1))) nil] 9 (#$ . 8223)])
(put 'cl--generic-method-specializers 'compiler-macro 'cl--generic-method-specializers--cmacro)
#@76 Access slot "specializers" of `cl--generic-method' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-method-specializers #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-method-tags type-of signal wrong-type-argument cl--generic-method 1] 5 (#$ . 8724)])
(byte-code "\300\301\302\303#\300\301\304\305#\300\207" [function-put cl--generic-method-specializers side-effect-free t gv-expander #[514 "\300\301\302\"\207" [error "%s is a read-only slot" cl--generic-method-specializers] 5 "\n\n(fn CL-DO CL-X)"]] 5)
#@86 compiler-macro for inlining `cl--generic-method-qualifiers'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-method-qualifiers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-method-qualifiers (progn (or (cl--struct-cl--generic-method-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-method cl-x))) (aref cl-x 2))) nil] 9 (#$ . 9266)])
(put 'cl--generic-method-qualifiers 'compiler-macro 'cl--generic-method-qualifiers--cmacro)
#@74 Access slot "qualifiers" of `cl--generic-method' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-method-qualifiers #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-method-tags type-of signal wrong-type-argument cl--generic-method 2] 5 (#$ . 9757)])
(byte-code "\300\301\302\303#\300\301\304\305#\300\207" [function-put cl--generic-method-qualifiers side-effect-free t gv-expander #[514 "\300\301\302\"\207" [error "%s is a read-only slot" cl--generic-method-qualifiers] 5 "\n\n(fn CL-DO CL-X)"]] 5)
#@84 compiler-macro for inlining `cl--generic-method-uses-cnm'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-method-uses-cnm--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-method-uses-cnm (progn (or (cl--struct-cl--generic-method-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-method cl-x))) (aref cl-x 3))) nil] 9 (#$ . 10291)])
(put 'cl--generic-method-uses-cnm 'compiler-macro 'cl--generic-method-uses-cnm--cmacro)
#@72 Access slot "uses-cnm" of `cl--generic-method' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-method-uses-cnm #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-method-tags type-of signal wrong-type-argument cl--generic-method 3] 5 (#$ . 10773)])
(byte-code "\300\301\302\303#\300\301\304\305#\300\207" [function-put cl--generic-method-uses-cnm side-effect-free t gv-expander #[514 "\300\301\302\"\207" [error "%s is a read-only slot" cl--generic-method-uses-cnm] 5 "\n\n(fn CL-DO CL-X)"]] 5)
#@84 compiler-macro for inlining `cl--generic-method-function'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-method-function--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-method-function (progn (or (cl--struct-cl--generic-method-p cl-x) (signal 'wrong-type-argument (list 'cl--generic-method cl-x))) (aref cl-x 4))) nil] 9 (#$ . 11300)])
(put 'cl--generic-method-function 'compiler-macro 'cl--generic-method-function--cmacro)
#@72 Access slot "function" of `cl--generic-method' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-method-function #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-method-tags type-of signal wrong-type-argument cl--generic-method 4] 5 (#$ . 11782)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\"\207" [function-put cl--generic-method-function side-effect-free t gv-expander #[514 "\300\301\302\"\207" [error "%s is a read-only slot" cl--generic-method-function] 5 "\n\n(fn CL-DO CL-X)"] defalias copy-cl--generic-method copy-sequence] 5)
#@117 compiler-macro for inlining `cl--generic-make-method'.
(fn CL-WHOLE-ARG SPECIALIZERS QUALIFIERS USES-CNM FUNCTION)
(defalias 'cl--generic-make-method--cmacro #[1285 "\300\301\302\303\211\211 & \207" [cl--defsubst-expand (specializers qualifiers uses-cnm function) (cl-block cl--generic-make-method (record 'cl--generic-method specializers qualifiers uses-cnm function)) nil] 15 (#$ . 12367)])
(put 'cl--generic-make-method 'compiler-macro 'cl--generic-make-method--cmacro)
#@103 Constructor for objects of type `cl--generic-method'.
(fn SPECIALIZERS QUALIFIERS USES-CNM FUNCTION)
(defalias 'cl--generic-make-method #[1028 "\300\301%\207" [record cl--generic-method] 10 (#$ . 12855)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put cl--generic-make-method side-effect-free t cl-struct-define cl--generic-method nil cl-structure-object record ((cl-tag-slot) (specializers nil :read-only t :type list) (qualifiers nil :read-only t :type (list-of atom)) (uses-cnm nil :read-only t :type boolean) (function nil :read-only t :type function)) cl-struct-cl--generic-method-tags] 11)
#@81 compiler-macro for inlining `cl--struct-cl--generic-p'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--struct-cl--generic-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--struct-cl--generic-p (and (memq (type-of cl-x) cl-struct-cl--generic-tags) t)) nil] 9 (#$ . 13506)])
(put 'cl--struct-cl--generic-p 'compiler-macro 'cl--struct-cl--generic-p--cmacro)
#@13
(fn CL-X)
(defalias 'cl--struct-cl--generic-p #[257 "\301!>\205 \302\207" [cl-struct-cl--generic-tags type-of t] 3 (#$ . 13902)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put cl--struct-cl--generic-p side-effect-free error-free put cl--generic cl-deftype-satisfies] 5)
#@73 compiler-macro for inlining `cl--generic-name'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-name--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-name (progn (or (cl--struct-cl--generic-p cl-x) (signal 'wrong-type-argument (list 'cl--generic cl-x))) (aref cl-x 1))) nil] 9 (#$ . 14203)])
(put 'cl--generic-name 'compiler-macro 'cl--generic-name--cmacro)
#@61 Access slot "name" of `cl--generic' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-name #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-tags type-of signal wrong-type-argument cl--generic 1] 5 (#$ . 14616)])
(byte-code "\300\301\302\303#\300\301\304\305#\300\207" [function-put cl--generic-name side-effect-free t gv-expander #[514 "\300\301\302\"\207" [error "%s is a read-only slot" cl--generic-name] 5 "\n\n(fn CL-DO CL-X)"]] 5)
#@79 compiler-macro for inlining `cl--generic-dispatches'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-dispatches--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-dispatches (progn (or (cl--struct-cl--generic-p cl-x) (signal 'wrong-type-argument (list 'cl--generic cl-x))) (aref cl-x 2))) nil] 9 (#$ . 15085)])
(put 'cl--generic-dispatches 'compiler-macro 'cl--generic-dispatches--cmacro)
#@67 Access slot "dispatches" of `cl--generic' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-dispatches #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-tags type-of signal wrong-type-argument cl--generic 2] 5 (#$ . 15528)])
(byte-code "\300\301\302\303#\300\207" [function-put cl--generic-dispatches side-effect-free t] 4)
#@81 compiler-macro for inlining `cl--generic-method-table'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-method-table--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-method-table (progn (or (cl--struct-cl--generic-p cl-x) (signal 'wrong-type-argument (list 'cl--generic cl-x))) (aref cl-x 3))) nil] 9 (#$ . 15884)])
(put 'cl--generic-method-table 'compiler-macro 'cl--generic-method-table--cmacro)
#@69 Access slot "method-table" of `cl--generic' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-method-table #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-tags type-of signal wrong-type-argument cl--generic 3] 5 (#$ . 16337)])
(byte-code "\300\301\302\303#\300\207" [function-put cl--generic-method-table side-effect-free t] 4)
#@76 compiler-macro for inlining `cl--generic-options'.
(fn CL-WHOLE-ARG CL-X)
(defalias 'cl--generic-options--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block cl--generic-options (progn (or (cl--struct-cl--generic-p cl-x) (signal 'wrong-type-argument (list 'cl--generic cl-x))) (aref cl-x 4))) nil] 9 (#$ . 16699)])
(put 'cl--generic-options 'compiler-macro 'cl--generic-options--cmacro)
#@64 Access slot "options" of `cl--generic' struct CL-X.
(fn CL-X)
(defalias 'cl--generic-options #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-tags type-of signal wrong-type-argument cl--generic 4] 5 (#$ . 17127)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put cl--generic-options side-effect-free t defalias copy-cl--generic copy-sequence] 4)
#@73 compiler-macro for inlining `cl--generic-make'.
(fn CL-WHOLE-ARG NAME)
(defalias 'cl--generic-make--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (name) (cl-block cl--generic-make (record 'cl--generic name nil nil nil)) nil] 9 (#$ . 17524)])
(put 'cl--generic-make 'compiler-macro 'cl--generic-make--cmacro)
#@59 Constructor for objects of type `cl--generic'.
(fn NAME)
(defalias 'cl--generic-make #[257 "\300\301\302\211\211%\207" [record cl--generic nil] 7 (#$ . 17862)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put cl--generic-make side-effect-free t cl-struct-define cl--generic nil cl-structure-object record ((cl-tag-slot) (name nil :type symbol :read-only t) (dispatches nil :type (list-of (cons natnum (list-of generalizers)))) (method-table nil :type (list-of cl--generic-method)) (options nil :type list)) cl-struct-cl--generic-tags] 11)
#@67 Return the options of the generic function GENERIC.
(fn GENERIC)
(defalias 'cl-generic-function-options #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-cl--generic-tags type-of signal wrong-type-argument cl--generic 4] 5 (#$ . 18452)])
#@13
(fn NAME)
(defalias 'cl--generic '(macro . #[257 "\300\301BB\207" [get ('cl--generic)] 4 (#$ . 18714)]))
#@52 Return non-nil if F is a generic function.
(fn F)
(defalias 'cl-generic-p #[257 "\2119\205 \211\300N\207" [cl--generic] 3 (#$ . 18828)])
#@31
(fn NAME &optional NOERROR)
(defalias 'cl-generic-ensure-function #[513 "\301\302N\211\262\204\"