%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/emacs-lisp/ |
Current File : //usr/local/share/emacs/27.2/lisp/emacs-lisp/eieio-base.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 "\300\301!\210\300\302!\210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\207" [require eieio seq defalias eieio-instance-inheritor-p eieio-make-class-predicate eieio-instance-inheritor eieio-instance-inheritor--eieio-childp eieio-make-child-predicate eieio-instance-inheritor-child-p make-obsolete "use (cl-typep ... \\='eieio-instance-inheritor) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((parent-instance :initarg :parent-instance :type eieio-instance-inheritor :documentation "The parent of this instance.\nIf a slot of this class is referenced, and is unbound, then the parent\nis checked for a value.")) (:documentation "This special class can enable instance inheritance.\nUse `clone' to make a new object that does instance inheritance from\na parent instance. When a slot in the child is referenced, and has\nnot been set, use values from the parent." :abstract t)] 6) #@82 You cannot create a new object of type `eieio-instance-inheritor'. (fn &rest _) (defalias 'eieio-instance-inheritor #[128 "\300\301!\207" [error "Class eieio-instance-inheritor is abstract"] 3 (#$ . 1417)]) (byte-code "\300\301\302\303\304\305%\210\300\306\302\307\304\310%\210\300\311\302\312\302\313%\210\314\315\316\317!\"\210\314\320\321\317!\"\210\314\322\320\"\210\323\322\324\325#\210\326\317\327\320#\330\317\302\331\332$\207" [cl-generic-define-method slot-unbound nil ((object eieio-instance-inheritor) _class slot-name _fn) t #[1285 "\300\301\"\203 \302\211\301\"\"\207 \207" [slot-boundp parent-instance eieio-oref] 9 "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot. FN is the function signaling the error.\n\n(fn CL--CNM OBJECT CLASS SLOT-NAME FN)"] clone ((obj eieio-instance-inheritor) &rest params) #[642 "\211@;\203 \211A\262\242\"\202 !\300\301!!\211\2030 \211@\302!\303\"\266A\266\202\202 \210\203: \304\"\210\305\306#\210\211\207" [eieio-class-slots eieio-object-class eieio-slot-descriptor-name slot-makeunbound shared-initialize eieio-oset parent-instance] 10 "Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS.\n\n(fn OBJ &rest PARAMS)"] eieio-instance-inheritor-slot-boundp ((object eieio-instance-inheritor) slot) #[514 "\300\"\203 \301\207\300\302\"\205 \303\304\302\"\"\207" [slot-boundp t parent-instance eieio-instance-inheritor-slot-boundp eieio-oref] 6 "Return non-nil if the instance inheritor OBJECT's SLOT is bound.\nSee `slot-boundp' for details on binding slots.\nThe instance inheritor uses unbound slots as a way of cascading cloned\nslot values, so testing for a slot being bound requires extra steps\nfor this kind of object.\n\n(fn OBJECT SLOT)"] defalias eieio-instance-tracker-p eieio-make-class-predicate eieio-instance-tracker eieio-instance-tracker--eieio-childp eieio-make-child-predicate eieio-instance-tracker-child-p make-obsolete "use (cl-typep ... \\='eieio-instance-tracker) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((tracking-symbol :type symbol :allocation :class :documentation "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it.")) (:documentation "This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." :abstract t)] 6) #@80 You cannot create a new object of type `eieio-instance-tracker'. (fn &rest _) (defalias 'eieio-instance-tracker #[128 "\300\301!\207" [error "Class eieio-instance-tracker is abstract"] 3 (#$ . 3989)]) (byte-code "\300\301\302\303\304\305%\210\300\306\304\307\304\310%\207" [cl-generic-define-method initialize-instance (:after) ((this eieio-instance-tracker) &rest _slots) nil #[385 "\300\301\"J>?\205 \211\302JC\"L\207" [eieio-oref tracking-symbol append] 7 "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments.\n\n(fn THIS &rest SLOTS)"] delete-instance ((this eieio-instance-tracker)) #[257 "\300\301\"\302\300\301\"J\"L\207" [eieio-oref tracking-symbol delq] 7 "Remove THIS from the master list of this class.\n\n(fn THIS)"]] 6) #@115 Find KEY as an element of SLOT in the objects in LIST-SYMBOL. Returns the first match. (fn KEY SLOT LIST-SYMBOL) (defalias 'eieio-instance-tracker-find #[771 "\300J#\207" [object-assoc] 7 (#$ . 4797)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias eieio-singleton-p eieio-make-class-predicate eieio-singleton eieio-singleton--eieio-childp eieio-make-child-predicate eieio-singleton-child-p make-obsolete "use (cl-typep ... \\='eieio-singleton) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((singleton :type eieio-singleton :allocation :class :documentation "The only instance of this class that will be instantiated.\nMultiple calls to `make-instance' will return this object.")) (:documentation "This special class causes subclasses to be singletons.\nA singleton is a class which will only ever have one instance." :abstract t)] 6) #@73 You cannot create a new object of type `eieio-singleton'. (fn &rest _) (defalias 'eieio-singleton #[128 "\300\301!\207" [error "Class eieio-singleton is abstract"] 3 (#$ . 5785)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311!\"\210\306\312\313\311!\"\210\306\314\312\"\210\315\314\316\317#\210\320\311\321\312#\322\311\302\323\324$\207" [cl-generic-define-method make-instance nil ((class (subclass eieio-singleton)) &rest _slots) t #[642 "\301\302\"\211=\203 \303\302 #\202 \211\207" [eieio-unbound eieio-oref-default singleton eieio-oset-default] 8 "Constructor for singleton CLASS.\nNAME and SLOTS initialize the new object.\nThis constructor guarantees that no matter how many you request,\nonly one object ever exists.\n\n(fn CLASS &rest SLOTS)"] defalias eieio-persistent-p eieio-make-class-predicate eieio-persistent eieio-persistent--eieio-childp eieio-make-child-predicate eieio-persistent-child-p make-obsolete "use (cl-typep ... \\='eieio-persistent) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((file :initarg :file :type string :documentation "The save file for this persistent object.\nThis must be a string, and must be specified when the new object is\ninstantiated.") (extension :type string :allocation :class :initform ".eieio" :documentation "Extension of files saved by this object.\nEnables auto-choosing nice file names based on name.") (file-header-line :type string :allocation :class :initform ";; EIEIO PERSISTENT OBJECT" :documentation "Header line for the save file.\nThis is used with the `object-write' method.") (do-backups :type boolean :allocation :class :initform t :documentation "Saving this object should make backup files.\nSetting to nil will mean no backups are made.")) (:documentation "This special class enables persistence through save files\nUse the `object-write' method to write this object to disk. The save\nformat is Emacs Lisp code which calls the constructor for the saved\nobject. For this reason, only slots which do not have an `:initarg'\nspecified will not be saved." :abstract t)] 6) #@74 You cannot create a new object of type `eieio-persistent'. (fn &rest _) (defalias 'eieio-persistent #[128 "\300\301!\207" [error "Class eieio-persistent is abstract"] 3 (#$ . 7893)]) (cl-generic-define-method 'eieio-persistent-save-interactive nil '((this eieio-persistent) prompt &optional name) nil #[770 "\300\301\"\204 \302\301\303\304\205 \305\n\306\"P##\210\305\301\"\207" [slot-boundp file eieio-oset read-file-name nil eieio-oref extension] 13 "Prepare to save THIS. Use in an `interactive' statement.\nQuery user for file name with PROMPT if THIS does not yet specify\na file. Optional argument NAME specifies a default file name.\n\n(fn THIS PROMPT &optional NAME)"]) #@306 Read a persistent object from FILENAME, and return it. Signal an error if the object in FILENAME is not a constructor for CLASS. Optional ALLOW-SUBCLASS says that it is ok for `eieio-persistent-read' to load in subclasses of class instead of being pedantic. (fn FILENAME &optional CLASS ALLOW-SUBCLASS) (defalias 'eieio-persistent-read #[769 "\204 \300\301!\210\203 \302!\204 \303\304\305\305E\"\210\306\211\307\216r\310\311!q\210\312\306\211\211\313%\210eb\210\314 \262)\315!\262\316@\317\"\204G \320\321@\"\210\203f @=\204f \203^ \316@\"\204f \320\322@#\210\323!\262\324\325#\210)\207" [warn "`eieio-persistent-read' called without specifying a class" class-p signal wrong-type-argument class nil #[0 "\300\301!\207" [kill-buffer " *tmp eieio read*"] 2] get-buffer-create " *tmp eieio read*" insert-file-contents t buffer-string read child-of-class-p eieio-persistent error "Invalid object: %s is not a subclass of `eieio-persistent'" "Invalid object: %s is not an object of class %s nor a subclass" eieio-persistent-convert-list-to-object eieio-oset file] 11 (#$ . 8592)]) #@421 Convert the INPUTLIST, representing object creation to an object. While it is possible to just `eval' the INPUTLIST, this code instead validates the existing list, and explicitly creates objects instead of calling eval. This avoids the possibility of accidentally running malicious code. Note: This function recurses when a slot of :type of some object is identified, and needing more object creation. (fn INPUTLIST) (defalias 'eieio-persistent-convert-list-to-object #[257 "\211@A@;\203 \300\202 \301\233\302\303!\203; @A@\304\305\"#\262B\262\211B\262\266AA\262\202 \306\307\237#\207" [2 1 nil eieio--full-class-object eieio-persistent-validate/fix-slot-value eieio--initarg-to-attribute apply make-instance] 12 (#$ . 9705)]) #@277 Validate that in CLASS, the SLOT with PROPOSED-VALUE is good, then fix. A limited number of functions, such as quote, list, and valid object constructor functions are considered valid. Second, any text properties will be stripped from strings. (fn CLASS SLOT PROPOSED-VALUE) (defalias 'eieio-persistent-validate/fix-slot-value #[771 "\211:\203\336 \301\"S\302\303HH!>\204\"