Server IP : 111.118.215.189 / Your IP : 3.133.106.74 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/emacs-lisp/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:02 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emacs-lisp/eieio.el ;;; in Emacs version 24.3.1 ;;; 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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@27 Current version of EIEIO. (defvar eieio-version "1.4" (#$ . 559)) #@39 Display the current version of EIEIO. (defalias 'eieio-version #[nil "\301!\207" [eieio-version message] 2 (#$ . 631) nil]) (byte-code "\300\301!\203 \302\303\301\"\210\202 \302\303\304\"\210\300\207" [fboundp compiled-function-arglist defalias eieio-compiled-function-arglist #[(func) "\301H\207" [func 0] 2 "Return the argument list for the compiled function FUNC."]] 3) #@69 This hook is executed, then cleared each time `defclass' is called. (defvar eieio-hook nil (#$ . 1014)) #@184 Non-nil to throw an error if an encountered tag is unsupported. This may prevent classes from CLOS applications from being used with EIEIO since EIEIO does not support all CLOS tags. (defvar eieio-error-unsupported-class-tags nil (#$ . 1125)) #@223 If non-nil, skip all slot typechecking. Set this to t permanently if a program is functioning well to get a small speed increase. This variable is also used internally to handle default setting for optimization purposes. (defvar eieio-skip-typecheck nil (#$ . 1375)) #@67 Non-nil means to optimize the method dispatch on primary methods. (defvar eieio-optimize-primary-methods-flag t (#$ . 1649)) #@46 Set to non-nil while initializing an object. (defvar eieio-initializing-object nil (#$ . 1780)) #@62 Uninterned symbol representing an unbound slot in an object. (defconst eieio-unbound (byte-code "\301\300!\203 9\203 \207\302\303!\207" [eieio-unbound boundp make-symbol "unbound"] 2) (#$ . 1882)) (defvar eieio-default-superclass nil) #@37 Class's symbol (self-referencing.). (defconst class-symbol 1 (#$ . 2127)) #@20 Class parent slot. (defconst class-parent 2 (#$ . 2207)) #@28 Class children class slot. (defconst class-children 3 (#$ . 2270)) #@62 Obarray permitting fast access to variable position indexes. (defconst class-symbol-obarray 4 (#$ . 2343)) #@24 Class attribute index. (defconst class-public-a 5 (#$ . 2456)) #@33 Class attribute defaults index. (defconst class-public-d 6 (#$ . 2525)) #@45 Class documentation strings for attributes. (defconst class-public-doc 7 (#$ . 2603)) #@24 Class type for a slot. (defconst class-public-type 8 (#$ . 2695)) #@31 Class custom type for a slot. (defconst class-public-custom 9 (#$ . 2767)) #@32 Class custom group for a slot. (defconst class-public-custom-label 10 (#$ . 2848)) #@32 Class custom group for a slot. (defconst class-public-custom-group 11 (#$ . 2937)) #@21 Printer for a slot. (defconst class-public-printer 12 (#$ . 3026)) #@30 Class protection for a slot. (defconst class-protection 13 (#$ . 3099)) #@28 Class initarg tuples list. (defconst class-initarg-tuples 14 (#$ . 3177)) #@29 Class allocated attributes. (defconst class-class-allocation-a 15 (#$ . 3257)) #@32 Class allocated documentation. (defconst class-class-allocation-doc 16 (#$ . 3342)) #@29 Class allocated value type. (defconst class-class-allocation-type 17 (#$ . 3432)) #@36 Class allocated custom descriptor. (defconst class-class-allocation-custom 18 (#$ . 3520)) #@36 Class allocated custom descriptor. (defconst class-class-allocation-custom-label 19 (#$ . 3617)) #@31 Class allocated custom group. (defconst class-class-allocation-custom-group 20 (#$ . 3720)) #@37 Class allocated printer for a slot. (defconst class-class-allocation-printer 21 (#$ . 3818)) #@34 Class allocated protection list. (defconst class-class-allocation-protection 22 (#$ . 3917)) #@31 Class allocated value vector. (defconst class-class-allocation-values 23 (#$ . 4016)) #@215 Cache index of what a newly created object would look like. This will speed up instantiation time as only a `copy-sequence' will be needed, instead of looping over all the values and setting them from the default. (defconst class-default-object-cache 24 (#$ . 4109)) #@95 Storage location of tagged class options. Stored outright without modifications or stripping. (defconst class-options 25 (#$ . 4382)) #@49 Number of slots in the class definition object. (defconst class-num-slots 26 (#$ . 4522)) #@54 Index in an object vector where the class is stored. (defconst object-class 1 (#$ . 4618)) #@46 Index in an object where the name is stored. (defconst object-name 2 (#$ . 4715)) #@37 Index into :static tag on a method. (defconst method-static 0 (#$ . 4803)) #@37 Index into :before tag on a method. (defconst method-before 1 (#$ . 4884)) #@38 Index into :primary tag on a method. (defconst method-primary 2 (#$ . 4965)) #@36 Index into :after tag on a method. (defconst method-after 3 (#$ . 5048)) #@78 Number of indexes into methods vector in which groups of functions are kept. (defconst method-num-lists 4 (#$ . 5127)) #@45 Index into generic :before tag on a method. (defconst method-generic-before 4 (#$ . 5252)) #@46 Index into generic :primary tag on a method. (defconst method-generic-primary 5 (#$ . 5349)) #@44 Index into generic :after tag on a method. (defconst method-generic-after 6 (#$ . 5448)) #@43 Number of indexes into a method's vector. (defconst method-num-slots 7 (#$ . 5543)) #@54 Convert a specialized KEY into a generic method key. (defalias 'eieio-specialized-key-to-generic-key #[(key) " =\203 \303\207\nW\203 \304\\\207\207" [key method-static method-num-lists 0 3] 2 (#$ . 5633)]) (put 'eieio-specialized-key-to-generic-key 'byte-optimizer 'byte-compile-inline-expand) #@58 Internal: Return the class vector from the CLASS symbol. (defalias 'class-v '(macro . #[(class) "\301\302BB\207" [class get ('eieio-class-definition)] 3 (#$ . 5939)])) #@63 Return t if CLASS is a valid class vector. CLASS is a symbol. (defalias 'class-p '(macro . #[(class) "\301\302\303\304\305D\306BB\307BB\310BBB\207" [class condition-case nil eq aref class-v (0) ('defclass) ((error nil))] 6 (#$ . 6114)])) #@43 Return non-nil if OBJ is an EIEIO object. (defalias 'eieio-object-p '(macro . #[(obj) "\301\302\303\304DC\305BB\306BBB\207" [obj condition-case nil let tobj ((and (eq (aref tobj 0) 'object) (class-p (aref tobj object-class)))) ((error nil))] 5 (#$ . 6359)])) (defalias 'object-p 'eieio-object-p) #@58 Return the symbol representing the constructor of CLASS. (defalias 'class-constructor '(macro . #[(class) "\301\302D\303BB\207" [class aref class-v (class-symbol)] 3 (#$ . 6662)])) #@177 Return t if symbol METHOD is a generic function. Only methods have the symbol `eieio-method-obarray' as a property (which contains a list of all bindings to that method type.) (defalias 'generic-p '(macro . #[(method) "\301\302D\303\304BBE\207" [method and fboundp get ('eieio-method-obarray)] 5 (#$ . 6851)])) #@279 Return t if symbol METHOD is a generic function with only primary methods. Only methods have the symbol `eieio-method-obarray' as a property (which contains a list of all bindings to that method type.) Methods with only primary implementations are executed in an optimized way. (defalias 'generic-primary-only-p #[(method) "\306!\205D \307N\205D \310N\311 \nHGW\205C H?\205C \fH?\205C H?\205C \nH?\205C H?\205C \fH?)\207" [method M method-primary method-static method-before method-after fboundp eieio-method-obarray eieio-method-tree 0 method-generic-before method-generic-primary method-generic-after] 3 (#$ . 7171)]) #@279 Return t if symbol METHOD is a generic function with only primary methods. Only methods have the symbol `eieio-method-obarray' as a property (which contains a list of all bindings to that method type.) Methods with only primary implementations are executed in an optimized way. (defalias 'generic-primary-only-one-p #[(method) "\306!\205D \307N\205D \310N\211\nHG\311U\205C H?\205C \fH?\205C H?\205C \nH?\205C H?\205C \fH?)\207" [method M method-primary method-static method-before method-after fboundp eieio-method-obarray eieio-method-tree 1 method-generic-before method-generic-primary method-generic-after] 3 (#$ . 7814)]) #@64 Return from LIST the found OPTION, or nil if it doesn't exist. (defalias 'class-option-assoc '(macro . #[(list option) "\302\303\304 EDD\207" [option list car-safe cdr memq] 5 (#$ . 8463)])) #@85 Return the value stored for CLASS' OPTION. Return nil if that option doesn't exist. (defalias 'class-option '(macro . #[(class option) "\302\303\304D\305BB\306 DE\207" [class option class-option-assoc aref class-v (class-options) quote] 4 (#$ . 8661)])) #@79 Return non-nil if CLASS is abstract. Abstract classes cannot be instantiated. (defalias 'class-abstract-p '(macro . #[(class) "\301\302BB\207" [class class-option (:abstract)] 3 (#$ . 8922)])) #@80 Return the invocation order of CLASS. Abstract classes cannot be instantiated. (defalias 'class-method-invocation-order '(macro . #[(class) "\301\302\303BB\304BB\207" [class or class-option (:method-invocation-order) (:breadth-first)] 4 (#$ . 9122)])) #@2685 Define NAME as a new class derived from SUPERCLASS with SLOTS. OPTIONS-AND-DOC is used as the class' options and base documentation. SUPERCLASS is a list of superclasses to inherit from, with SLOTS being the slots residing in that class definition. NOTE: Currently only one slot may exist in SUPERCLASS as multiple inheritance is not yet supported. 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: :protection - Specify protection for this slot. Defaults to `:public'. Also use `:protected', or `:private'. :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'. (defalias 'defclass '(macro . #[(name superclass slots &rest options-and-doc) "\304\305\306D\306 D\306\nD\306D\257D\207" [name superclass slots options-and-doc eval-and-compile eieio-defclass quote] 7 (#$ . 9383)])) #@50 Symbol map of superclasses we find in autoloads. (defvar eieio-defclass-autoload-map (make-vector 7 nil) (#$ . 12292)) #@289 Create autoload symbols for the EIEIO class CNAME. SUPERCLASSES are the superclasses that CNAME inherits from. DOC is the docstring for CNAME. This function creates a mock-class for CNAME and adds it into SUPERCLASSES as children. It creates an autoload function for CNAME's constructor. (defalias 'eieio-defclass-autoload #[(cname superclasses filename doc) "\306\307\310\217\205\n \311N\312\n\306\" ?\205\344 \313\314I\210\fI\210\306\204+ \315\316\306\211\203\230 @\306\317\320\217\204f \321\322!\"\323!\204\\ CL\210\202b \324\"\210)\202\203 \311N H\235\204\203 \311N \311N HBI\210!!HBI\210A\211\2046 *\211L\210\325\311#\210 \203\255 !\306I\210\326\"#\306\211%\210\326\321\322!\327P!\"\330\306\211%\210\326\321\322!\331P!\"\330\306\211%\210\326\321\322!\332P!\"\330\306\211%)*\207" [cname oldc class-num-slots newc class-symbol clear-parent nil (byte-code "\301N\302H\303=\207" [cname eieio-class-definition 0 defclass] 2) ((error)) eieio-class-definition make-vector 0 defclass (eieio-default-superclass) t (byte-code "\301N\302H\303=\207" [SC eieio-class-definition 0 defclass] 2) ((error)) intern symbol-name boundp add-to-list put autoload "-p" "" "-child-p" "-list-p" superclasses SC --dolist-tail-- eieio-defclass-autoload-map sym class-children class-parent filename doc] 7 (#$ . 12418)]) #@56 If class CNAME is in an autoload state, load its file. (defalias 'eieio-class-un-autoload #[(cname) "K\242\301=\205 \302KA@!\207" [cname autoload load-library] 2 (#$ . 13795)]) (put 'eieio-class-un-autoload 'byte-optimizer 'byte-compile-inline-expand) #@232 Define CNAME as a new subclass of SUPERCLASSES. SLOTS are the slots residing in that class definition, and options or documentation OPTIONS-AND-DOC is the toplevel documentation for this class. See `defclass' for more information. (defalias 'eieio-defclass #[(cname superclasses slots options-and-doc) "\306\300!\210\307 <\204 \310\311\312\"\210 \313\307\"\307\314\315\217\205! \316N@\307\211AB\307C\f\317\320I\210\fD I\210@\203I \fE@EHI\210\202d \321\322 !F\"\211G\203c \307\323\324\217\210\325\322 !F\"\210)H@;\203| HG\326\246\327U\204| \330\331!\210\202\221 H@9\203\221 HG\326\246\317U\204\221 \330\331!\210H@;\203\237 \332HB\202\241 HB\n\203\n\203 \n@\203\n@9\203\307\333\334\217\204\306 \330\335\n@\"\210\202 \n@\316NEH\235\204\343 \n@\316NE \n@\316NEHBI\210\336\337\340\n@\316NIH>A\242\"\210\fJ\n@\fJHBI\210\202\330\341\n\"\210\nA\211\204\253 \fJ\fJH\237I\210\202E \342=\204E\343C \342\316NEH\235\204=\342\316NE \342\316NEHBI\210\fJ\"CI\210 \211L\210\344\322 !\345P!\211K\346\347C\350\351 \"\352\353\354\347 EEFM\210)\355B>A\242\211L\203~L\356\235\204~\330\357L\"\210)\344\322 !\360P!\211K\346\361\350\362 \"\352\363\364\347 EEFM\210\344\322 !\365P!\211K\346\366\350\367 \"\370\371\372\373\374\375\376\377\352\201\203 \364\201\204 EEE\201\205 BBB\201\206 BBBEFM\210)\201\207 \201\210 \346\307\201\211 \201\212 \201\213 KDEE#\210)\201\214 \f \"\210\201\207 \316\f#\210M\203M@\211N@ONAP\201\215 P\201\216 \"Q\201\215 P\201\217 \"\206-\201\217 P\235?\205-RS\201\215 P\201\220 \"T\201\215 P\332\"U\201\215 P\201\221 \"V\201\215 P\201\222 \"W\201\215 P\201\223 \"X\201\215 P\201\224 \"Y\201\215 P\201\225 \"Z\201\215 P\201\226 \"[\201\215 P\201\227 \"\\\201\215 P\201\230 \"]\201\215 P\201\231 \"^\201\232 B>A\242_`\203\334P\211a\203\333a@\201\233 \235\204\321\310\201\234 a@C\"\210aAA\211a\204\275)V\201\235 =\204\356V\201\236 =\203\364\307V\202;V\201\237 =\204V\201\240 =\203\201\237 V\202;V\201\241 =\204 V\201\242 =\203(\201\241 V\202;V\307=\204;\310\201\234 \201\221 VD\"\210Y\203^Y\201\243 =\204^Y\201\244 =\204^\310\201\234 \201\224 YD\"\210Z\204f\343Z\\\203}\\;\204}\310\201\234 \201\227 \\D\"\210T\203\223Y\201\243 =\203\223\201\245 \201\246 !\210T\203\235T\211L\210]\204\252\201\247 ]\202\265]<\204\265]C]\336\201\250 ]\"\210\201\251 \fOSUZ[\\]^VTY\201\252 _&\210\336\201\253 ]\"\210Q\203\253\201\254 QY\201\243 =\203 \201\255 \202\201\256 \346\201\257 \350\201\260 O #\201\261 \201\262 \201\263 \201\213 ODE\201\264 \201\263 \201\213 ODE\201\265 BBBF$\210\201\266 \201\267 !\203i\201\270 \201\267 Q\201\271 \201\211 \201\272 \201\273 \201\213 \211ODD\201\274 BBBBF!\210\202\253\201\207 Q\201\275 \346\201\276 \201\277 \201\300 \201\211 \201\301 \201\302 \201\303 \201\211 \201\304 \201\305 \201\213 \211ODD\201\306 BBBB\201\307 BBBBBEE#\210X\203\333\201\254 X\307 \346\201\310 \350\201\311 O #\201\312 \201\313 \201\263 \201\213 ODE\201\314 BBF$\210W\203\201\254 W\307 \346\201\315 \350\201\316 O #\201\313 \201\263 \201\213 ODEF$\210.MA\211M\204\374\fb\fbH\237I\210\fc\fcH\237I\210\fd\fdH\237I\210\fe\201\317 \201\320 \feH\237\"I\210\ff\ffH\237I\210\fg\fgH\237I\210\fh\fhH\237I\210\fi\fiH\237I\210\fj\fjH\237I\210\fk\fkH\237I\210\fl\201\317 \201\320 \flH\"I\210\fm\201\317 \201\320 \fmH\"I\210\317n\fbHo\fjHpoGq\201\321 rr@qW\203\304rA\211r\204\262r@)s\313s\317\"t\307uo\203\344\322o@!t\"\211unL\210nTnp@\203\201\207 u\201\322 p@#\210oAopAp\202\324\fvtI\210.\201\323 B>A\242\203O\201\323 B>A\242\211w;\2049\350\201\324 \"w \346\201\325 \350\201\326 \"\330wDFM\210)\202j \346\201\327 \350\201\330 \"\201\317 \201\331 \201\332 BBBFM\210\201\207 \201\333 \332B>A\242#\210x\203\203y\202\205z\307{\211|\203\257\201\334 \201\335 |\"\203\244|\317|GSO|\201\207 \201\336 |#\210*\340B>A\242}\336\201\337 A\"\210\340B>\203\323\340B>A}\240\210\202\334\340}BBBB)\fIBI\210C\203\357\fJ\307I\210\313\fbHG\201\340 \\\307\"\211~\317\201\341 I\210~ I\210~\200\201\342 I\210\343\201\201\343 ~\343\"\210)\f\202~I\210) .\207" [eieio-hook superclasses pname class-num-slots newc cname run-hooks nil signal wrong-type-argument (listp superclasses) make-vector (byte-code "\301N\302H\303=\207" [cname eieio-class-definition 0 defclass] 2) ((error)) eieio-class-definition 0 defclass intern-soft symbol-name (byte-code " \nJI\207" [newc class-children sym] 3) ((error)) unintern 2 1 error "Too many arguments to `defclass'" :documentation (byte-code "@\301N\302H\303=\207" [pname eieio-class-definition 0 defclass] 2) ((error)) "Given parent class %s is not a class" mapc #[(g) "\301\302\"\207" [g add-to-list groups] 3] :custom-groups "Invalid parent class %s" eieio-default-superclass t intern "-p" lambda obj format "Test OBJ to see if it an object of type %s" and (eieio-object-p obj) same-class-p :method-invocation-order (:depth-first :breadth-first :c3) "Method invocation order %s is not allowed" "-child-p" (obj) "Test OBJ to see if it an object is a child of type %s" (eieio-object-p obj) object-of-class-p "-list-p" (obj) "Test OBJ to see if it a list of objects which are a child of type %s" when (listp obj) let ((ans t)) while (and obj ans) setq ans oldc groups options clearparent class-symbol class-children eieio-defclass-autoload-map sym options-and-doc class-options class-parent csym io slots slot1 name slot acces eieio-unbound init initarg docstr prot reader writer alloc type custom label customg printer skip-nil eieio-error-unsupported-class-tags tmp class-public-a class-public-d class-public-doc class-public-type class-public-custom class-public-custom-label class-public-custom-group class-public-printer class-protection class-initarg-tuples class-class-allocation-type class-class-allocation-values cnt pubsyms prots l primes vl oa newsym class-symbol-obarray abs load-in-progress load-file-name buffer-file-name loc fname g cache object-class object-name eieio-skip-typecheck class-default-object-cache (eieio-object-p (car obj)) (car obj) ((setq obj (cdr obj))) (ans) put cl-deftype-handler list 'satisfies quote eieio-copy-parents-into-subclass plist-get :accessor :initform :initarg :protection :reader :writer :allocation :type :custom :label :group :printer :allow-nil-initform (:accessor :initform :initarg :documentation :protection :reader :writer :allocation :type :custom :label :group :printer :allow-nil-initform :custom-groups) invalid-slot-type public :public protected :protected private :private :class :instance message "Class allocated slots do not need :initarg" (default) #[(cg) "9?\205\f \301\302\303D\"\207" [cg signal invalid-slot-type :group] 4] eieio-add-new-slot defaultoverride #[(cg) "\301\302\"\207" [cg add-to-list groups] 3] eieio--defmethod :static :primary (this) "Retrieves the slot `%s' from an object of class `%s'" if slot-boundp this eieio-oref (nil) fboundp gv-define-setter eval (eieio--store eieio--object) 'eieio-oset eieio--object (eieio--store) setf-method (widget) let* ((--widget-sym-- (make-symbol "--widget--")) (--store-sym-- (make-symbol "--store--"))) (list --widget-sym--) (list widget) (list --store-sym--) 'eieio-oset --widget-sym-- (--store-sym--) ((list 'getfoo --widget-sym--)) (this value) "Set the slot `%s' of an object of class `%s'" setf slot-value (value) (this) "Access the slot `%s' from object of class `%s'" apply vector (3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101) protection :abstract "Class %s is abstract" (&rest stuff) "You cannot create a new object of type %s" (newname &rest slots) "Create a new object with name NAME of class type %s" 'constructor (newname slots) variable-documentation string-match "\\.elc$" class-location #[(cg) "\301\302\"\207" [cg add-to-list g] 3] 3 object default-cache-object eieio-set-defaults] 18 (#$ . 14057)]) #@110 For SLOT, signal if SPEC does not match VALUE. If SKIPNIL is non-nil, then if VALUE is nil return t instead. (defalias 'eieio-perform-slot-validation-for-default #[(slot spec value skipnil) "\211:\205 @9\205 \306 @!)?\2054 \n?\2054 \205! ??\2054 \307\f\"?\2054 \310\311 \fE\"\207" [value val eieio-skip-typecheck skipnil spec slot fboundp eieio-perform-slot-validation signal invalid-slot-type] 6 (#$ . 22077)]) #@466 Add into NEWC attribute A. If A already exists in NEWC, then do nothing. If it doesn't exist, then also add in D (default), DOC, TYPE, CUST, LABEL, CUSTG, PRINT, PROT, and INIT arg. Argument ALLOC specifies if the slot is allocated per instance, or per class. If optional DEFAULTOVERRIDE is non-nil, then if A exists in NEWC, we must override its value for a default. Optional argument SKIPNIL indicates if type checking should be skipped if default value is nil. (defalias 'eieio-add-new-slot #[(newc a d doc type cust label custg print prot init alloc &optional defaultoverride skipnil) "\306\307\310\217\210\311!\203 \312!\311 !\203 \312 !\311\n!\203# \312\n!\f H\235\203. \313\203@ 9\203\314=\203\fH\235\204\310 \315$\210\f\fHBI\210\f\fHBI\210\f\fHBI\210\f\fHBI\210\f \fHBI\210\f\fHBI\210\f \n\f HBI\210\f!\"\f!HBI\210\f#$\f#HBI\210\f%&B\f%HBI\207'\205\fH((\235)(G)GZ*)\205\356 *\fH\233+)\205\374 *\fH8,)\204\n\316\317\"\202\320=\204,\232\204\316\321,$\210-=\2047\315,$\210+\240\210&\203O\f%H.\322.\"\211/&\240\210**\f#H80$0=\204i\316\323$0$\210)\n\203\311*\f H\233\2111@2\n<\203\204\n\202\206\nC32G3GW\203\23232323\3064\2115\203\3015@\21142>\204\27042B25A\2115\204\245*12\240\210+ \203\327*\fH\233 \240\210\203\347*\fH\233\240\210\203\367*\fH\233\240\210\"\205*\f!H\233\"\240-\207\324!6\f H\235\204{\3156$\210\f \f HBI\210\f7\f7HBI\210\f8\f8HBI\210\f9 \f9HBI\210\f:\f:HBI\210\f;\n\f;HBI\210\f<$\f<HBI\210\f=6\f=HBI\202}'\205}\f H((\235)(G)GZ*)\205\240*\f=H\233+)\205\256*\f8H8,)\204\275\316\317\"\210\202\342\320=\204\322,\232\204\322\316\321,$\210\315,6$\210+6\240\210*\f<H\233@0$0=\204\375\316\323$0$\210)\n\203]*\f;H\233\2111@2\n<\203\n\202\nC32G3GW\203.32323\3064\2115\203U5@\21142>\204L42B25A\2115\2049*12\240\210+\203m*\f7H\233\240\210\"\205|*\f>H\233\"\240-)\207" [type cust custg a newc class-class-allocation-a nil (byte-code "\301!\203\n \302!\301\207" [d sequencep copy-sequence] 2) ((error)) sequencep copy-sequence :class :instance eieio-perform-slot-validation-for-default error "EIEIO internal error overriding default value for %s" t "Child slot type `%s' does not match inherited type `%s' for `%s'" rassq "Child slot protection `%s' does not match inherited protection `%s' for `%s'" eieio-default-eval-maybe alloc class-public-a d skipnil class-public-d class-public-doc doc class-public-type class-public-custom class-public-custom-label label class-public-custom-group class-public-printer print class-protection prot class-initarg-tuples init defaultoverride ca np num dp tp eieio-unbound inits inita super-prot groups list1 list2 elt --dolist-tail-- value class-class-allocation-doc class-class-allocation-type class-class-allocation-custom class-class-allocation-custom-label class-class-allocation-custom-group class-class-allocation-protection class-class-allocation-values class-class-allocation-printer] 6 (#$ . 22505)]) #@126 Copy into NEWC the slots of PARENTS. Follow the rules of not overwriting early parents when applying to the new child class. (defalias 'eieio-copy-parents-into-subclass #[(newc parents) " H\306\nH>A\242\211\205S\f@\307N\211\fH H H H H H H H H H\310 \203\267 \311 @@@H@@@@@@\242\312\211&\210 A AATAAAAAA\202T . !H \"H #H $H %H &H 'H (H )H\310* \203I\311 @*H@H@@@@@\312\313& \210 A AAAAAAT\202\362 .\fA\211\204 \312*\207" [newc class-parent class-options sn ps pcv :allow-nil-initform eieio-class-definition 0 eieio-add-new-slot nil :class class-public-a class-public-d class-public-doc class-public-type class-public-custom class-public-custom-label class-public-custom-group class-public-printer class-protection class-initarg-tuples i pinit pprot printer pcustg plabel pcust ptype pdoc pd pa class-class-allocation-a class-class-allocation-doc class-class-allocation-type class-class-allocation-custom class-class-allocation-custom-label class-class-allocation-custom-group class-class-allocation-printer class-class-allocation-protection class-class-allocation-values pval] 16 (#$ . 25692)]) #@589 Make a new instance of CLASS based on INITARGS. CLASS is a class symbol. For example: (make-instance 'foo) INITARGS is a property list with keywords based on the :initarg for each slot. For example: (make-instance 'foo :slot1 value1 :slotN valueN) Compatibility note: If the first element of INITARGS is a string, it is used as the name of the class. In EIEIO, the class' constructor requires a name for use when printing. `make-instance' in CLOS doesn't use names the way Emacs does, so the class is used as the name slot instead when INITARGS doesn't start with a string. (defalias 'make-instance #[(class &rest initargs) "@\203 @;\203 \303 \304N\nH\"\207\303 \304N\nH 9\203% \305 !\202) \306\307 \"#\207" [initargs class class-symbol apply eieio-class-definition symbol-name format "%S"] 5 (#$ . 26989)]) (put 'eieio--defalias 'byte-hunk-handler 'byte-compile-file-form-defalias) #@163 Like `defalias', but with less side-effects. More specifically, it has no side-effects at all when the new function definition is the same (`eq') as the old one. (defalias 'eieio--defalias #[(name body) "\302!\205\n K =?\205 \303 \"\207" [name body fboundp defalias] 3 (#$ . 27899)]) #@401 Create a generic function METHOD. DOC-STRING is the base documentation for this class. A generic function has no body, as its purpose is to decide which method body is appropriate to use. Uses `defmethod' to create methods, and calls `defgeneric' for you. With this implementation the ARGS are currently ignored. You can use `defgeneric' to apply specialized top level documentation to a method. (defalias 'defgeneric '(macro . #[(method args &optional doc-string) "\302\303D\304\303D EE\207" [method doc-string eieio--defalias quote eieio--defgeneric-init-form] 5 (#$ . 28194)])) #@54 Form to use for the initial definition of a generic. (defalias 'eieio--defgeneric-init-form #[(method doc-string) "\302!\203 K\242\303=\203 \304!\210\305 \"\207\302!\203&