| Server IP : 217.160.0.135 / Your IP : 216.73.217.37 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/emacs/28.2/lisp/emacs-lisp/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
#@27 Current version of EIEIO.
(defvar eieio-version "1.4" (#$ . 84))
#@39 Display the current version of EIEIO.
(defalias 'eieio-version #[0 "\301!\207" [eieio-version message] 2 (#$ . 155) nil])
(require 'eieio-core)
#@2510 Define NAME as a new class derived from SUPERCLASS with SLOTS.
OPTIONS-AND-DOC is used as the class' options and base documentation.
SUPERCLASSES is a list of superclasses to inherit from, with SLOTS
being the slots residing in that class definition. Supported tags are:
:initform - Initializing form.
:initarg - Tag used during initialization.
:accessor - Tag used to create a function to access this slot.
:allocation - Specify where the value is stored.
Defaults to `:instance', but could also be `:class'.
:writer - A function symbol which will `write' an object's slot.
:reader - A function symbol which will `read' an object.
:type - The type of data allowed in this slot (see `typep').
:documentation
- A string documenting use of this slot.
The following are extensions on CLOS:
:custom - When customizing an object, the custom :type. Public only.
:label - A text string label used for a slot when customizing.
:group - Name of a customization group this slot belongs in.
:printer - A function to call to print the value of a slot.
See `eieio-override-prin1' as an example.
A class can also have optional options. These options happen in place
of documentation (including a :documentation tag), in addition to
documentation, or not at all. Supported options are:
:documentation - The doc-string used for this class.
Options added to EIEIO:
:allow-nil-initform - Non-nil to skip typechecking of null initforms.
:custom-groups - List of custom group names. Organizes slots into
reasonable groups for customizations.
:abstract - Non-nil to prevent instances of this class.
If a string, use as an error string if someone does
try to make an instance.
:method-invocation-order
- Control the method invocation order if there is
multiple inheritance. Valid values are:
:breadth-first - The default.
:depth-first
Options in CLOS not supported in EIEIO:
:metaclass - Class to use in place of `standard-class'
:default-initargs - Initargs to use when initializing new objects of
this class.
Due to the way class options are set up, you can add any tags you wish,
and reference them using the function `class-option'.
(fn NAME SUPERCLASSES SLOTS &rest OPTIONS-AND-DOC)
(defalias 'defclass '(macro . #[899 "<\204
\304\305\306\307E\"\210\211@;\203# \211G\310\246\311U\204# \312\313!\210\2026 \211@9\2036 \211G\310\246\314U\2046 \312\313!\210\211@;\203A \315B\262\316>A\242\211\203U \211\317>\204U \312\320\"\210\210\321\322!\323P!\321\324\325\"!\326\211\211\203\334\211@\211\242\243\327\330\"\327\331\"\327\332\"\327\333\"\327\334\"\327\335\"\336\"\204\227 B\337=\203\252 \336 \"\204\252 B\n\203\313 \211\203\312 \211@\340>\204\302 \304\341@C\"\210\211AA\262\202\260 \210\342>\204\330 \304\341\334D\"\210\211\203\350 \211;\204\350 \304\341\335D\"\210\203\374 \337=\203\374 \324\343 \"\fB\262\f\327\344\"\345!\204\346!\204\324\347\"
B\262
\210\203\216\350\351D\352\353DD\354\353\355
D\356BBBFB\262\350\353DC\357\360\f#\361\362\353\355DE\363\353\355DEE\257B\262\203\216\337=\203\216\350\353\364DDC\324\365\f#\361\362\353\355DE\366\353\355DEE\257B\262\203\263\350\353D\367B\324\370\f#\351\371\353\355DE\372BB\257B\262\203\323\350\353DC\324\373\f#\371\353\355DE\257B\262\266A\266\202\202g \210\374\375\376\377\"\201@ \355D\201A \355DDE\201@ \355D\201B \355DDED\2054\321\324\201C \"!\201@ \355D\201D \nDE\201E \355D\324\201F \"\201G BBBD\262\201H \355D\201I \201D DF\201J \355D\355D\355D\355D\257D\201K \f>A\242\203\227\201K \f>A\242\211;\204~\324\201L \"\262\201M \201N \324\201O \"\312D\257\262\202\273\201M \201P \357\201Q \"\201R \201S \201T \355D\201U BBB\257C&B\207" [eieio--known-slot-names eieio--known-class-slot-names eieio-error-unsupported-class-tags eieio-backward-compatibility signal wrong-type-argument list superclasses 2 1 error "Too many arguments to `defclass'" 0 :documentation :method-invocation-order (:depth-first :breadth-first :c3) "Method invocation order %s is not allowed" intern symbol-name "-p" format "%s--eieio-childp" nil plist-get :accessor :initarg :reader :writer :allocation :label memql :class (:accessor :initform :initarg :documentation :protection :reader :writer :allocation :type :custom :label :group :printer :allow-nil-initform :custom-groups) invalid-slot-type (nil :class :instance) "Meaningless :initarg for class allocated slot '%S'" :initform macroexp-const-p eieio--eval-default-p "Ambiguous initform needs quoting: %S" cl-defmethod setf value this eieio-oset quote (value) internal--format-docstring-line "Retrieve the slot `%S' from an object of class `%S'." if slot-boundp eieio-oref subclass "Retrieve the class slot `%S' from a class `%S'.\nThis method is obsolete." eieio-oref-default (value) "Set the slot `%S' of an object of class `%S'." slot-value (value) "Access the slot `%S' from object of class `%S'." progn append mapcar #[257 "\300\301\302DD\303\304$\207" [macroexp-warn-and-return progn quote nil compile-only] 6 "\n\n(fn W)"] defalias eieio-make-class-predicate eieio-make-child-predicate "%s-child-p" function make-obsolete "use (cl-typep ... \\='%s) instead" ("25.1") define-symbol-prop 'cl-deftype-satisfies eieio-defclass-internal :abstract "Class %s is abstract" defun (&rest _) "You cannot create a new object of type `%S'." (&rest slots) "Create a new object of class type `%S'." (declare (compiler-macro (lambda (whole) (if (not (stringp (car slots))) whole (macroexp-warn-and-return (format "Obsolete name arg %S to constructor %S" (car slots) (car whole)) `(,(car whole) (identity ,(car slots)) ,@(cdr slots))))))) apply #'make-instance (slots)] 28 (#$ . 308)]))
(byte-code "\300\301\302\303#\300\207" [function-put defclass doc-string-elt 4] 4)
#@76 Retrieve the value stored in OBJ in the slot named by SLOT.
(fn OBJ SLOT)
(defalias 'oref '(macro . #[514 "\300\301DE\207" [eieio-oref quote] 6 (#$ . 6462)]))
(byte-code "\300\301\302\303#\210\304\305\306\"\210\304\307\310\"\210\311\307\312\313#\207" [put oref edebug-form-spec (form symbolp) defalias slot-value eieio-oref set-slot-value eieio-oset make-obsolete "use (setf (slot-value ..) ..) instead" "25.1"] 4)
#@132 Get the value of class allocated slot SLOT.
CLASS can also be an object, in which case we use the object's class.
(fn CLASS SLOT)
(defalias 'oref-default '(macro . #[514 "\300\301DE\207" [eieio-oref-default quote] 6 (#$ . 6887)]))
(put 'oref-default 'edebug-form-spec '(form symbolp))
#@716 Bind SPEC-LIST lexically to slot values in OBJECT, and execute BODY.
This establishes a lexical environment for referring to the slots in
the instance named by the given slot-names as though they were
variables. Within such a context the value of the slot can be
specified by using its slot name, as if it were a lexically bound
variable. Both setf and setq can be used to set the value of the
slot.
SPEC-LIST is of a form similar to `let'. For example:
((VAR1 SLOT1)
SLOT2
SLOTN
(VARN+1 SLOTN+1))
Where each VAR is the local variable given to the associated
SLOT. A slot specified without a variable name is given a
variable name of the same name as the slot.
(fn SPEC-LIST OBJECT &rest BODY)
(defalias 'with-slots '(macro . #[642 "\300\301!\210\302!\203 \202 \303\304!\305\306\307\310\"\"BB=\203$ \207\311DC\"\207" [require cl-lib macroexp-const-p make-symbol "object" cl-symbol-macrolet mapcar make-closure #[257 "\211<\203\n \211@\202 \211<\203 A@\202 \301\300\302DED\207" [V0 slot-value quote] 8 "\n\n(fn ENTRY)"] macroexp-let*] 9 (#$ . 7182)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-slots lisp-indent-function 2 put edebug-form-spec (sexp sexp def-body)] 5)
#@83 Return some data structure from which can be extracted the slot offset.
(fn OBJ)
(defalias 'eieio-pcase-slot-index-table #[257 "\211\211\211\302H\262\203\"