MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
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/gnus/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/gnus/registry.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:26 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/registry.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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307$\210\310\311\312\311\313\"\"\210\314\311\315\304\316$\210\310\317\312\317\320\"\"\210\314\317\307\304\321$\210\310\322\312\322\320\"\"\210\314\322\307\304\323$\210\310\324\312\324\325\"\"\210\314\324\307\304\326$\210\310\327\312\327\330\"\"\210\314\327\307\304\331$\207" [require eieio eieio-base eieio-defclass registry-db (eieio-persistent) ((version :initarg :version :initform 0.1 :type float :custom float :documentation "The registry version.") (max-hard :initarg :max-hard :initform 5000000 :type integer :custom integer :documentation "Never accept more than this many elements.") (max-soft :initarg :max-soft :initform 50000 :type integer :custom integer :documentation "Prune as much as possible to get to this size.") (prune-factor :initarg :prune-factor :initform 0.1 :type float :custom float :documentation "At the max-hard limit, prune size * this entries.") (tracked :initarg :tracked :initform nil :type t :documentation "The tracked (indexed) fields, a list of symbols.") (precious :initarg :precious :initform nil :type t :documentation "The precious fields, a list of symbols.") (tracker :initarg :tracker :type hash-table :documentation "The field tracking hashtable.") (data :initarg :data :type hash-table :documentation "The data hashtable.")) nil eieio--defalias initialize-instance eieio--defgeneric-init-form #1="Set value of data slot of THIS after initialization." eieio--defmethod :AFTER #[(this slots) "\304\235\204	\305\n\306\307\310\311\312\313\314\315&#\210)\316\235?\205+	\305\317\307\310\320\312\321$#)\207" [slots this #:v #:v :data eieio-oset data make-hash-table :size 10000 :rehash-size 2.0 :test equal :tracker tracker 100 2.0] 10 #1#] registry-lookup #2="Search for KEYS in the registry-db THIS.\nReturns an alist of the key followed by the entry in a list, not a cons cell." #[(db keys) "\303\304\"\305\306\307\310\n\"\")\207" [db data keys eieio-oref :data delq nil mapcar #[(k) "\302	\"\205
\302	\"D\207" [k data gethash] 4]] 5 #2#] registry-lookup-breaks-before-lexbind #[(db keys) "\306\307\"\310\311\n\311\211:\203,@\312\f	\"\203%\f\312\f	\"D
BA\211\202
\237+\")\207" [db data keys #:--cl-var-- key #:--cl-var-- eieio-oref :data delq nil gethash] 7 "Search for KEYS in the registry-db THIS.\nReturns an alist of the key followed by the entry in a list, not a cons cell."] registry-lookup-secondary #3="Search for TRACKSYM in the registry-db THIS.\nWhen CREATE is not nil, create the secondary index hashtable if needed." #[(db tracksym &optional create) "\304\305	\306\"\"\211\203\n\202,\205,\307\310\311\312\313\314\315\316&\305	\306\"#\210\304\305	\306\"\")\207" [tracksym db h create gethash eieio-oref :tracker puthash make-hash-table :size 800 :rehash-size 2.0 :test equal] 10 #3#] registry-lookup-secondary-value #4="Search for TRACKSYM with value VAL in the registry-db THIS.\nWhen SET is not nil, set it for VAL (use t for an empty list)." #[(db tracksym val &optional set) "\204\304	\n\"\205'\203 \305\306=?\205\304	\n\306##\210\307\304	\n\"\"\207" [set db tracksym val registry-lookup-secondary puthash t gethash] 7 #4#]] 5)
(defalias 'registry--match #[(mode entry check-list) "\205R@@@\243\306\203G\n\203G	\204G\307\f\310\"\203,\n\242\311
\"\243\235\202@\307\f\312\"\205@\313\n@\314\315\311
\"\243\316#\"\n\243\202	\206Q\317\f
\243#+\207" [check-list found vals key mode entry nil eql :member assoc :regex string-match mapconcat prin1-to-string "" registry--match] 7])
(byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\300\310\302\310\311\"\"\210\304\310\305\306\312$\210\300\313\302\313\314\"\"\210\304\313\305\306\315$\210\300\316\302\316\317\"\"\210\304\316\305\306\320$\210\300\321\302\321\322\"\"\210\304\321\305\306\323$\210\300\324\302\324\325\"\"\210\304\324\305\306\326$\210\300\327\302\327\330\"\"\210\304\327\305\306\331$\210\300\332\302\332\333\"\"\210\304\332\305\306\334$\210\300\335\302\335\336\"\"\210\304\335\305\306\337$\210\340\341!\207" [eieio--defalias registry-search eieio--defgeneric-init-form #2="Search for SPEC across the registry-db THIS.\nFor example calling with :member '(a 1 2) will match entry '((a 3 1)).\nCalling with :all t (any non-nil value) will match all.\nCalling with :regex '(a \"h.llo\") will match entry '((a \"hullo\" \"bye\").\nThe test order is to check :all first, then :member, then :regex." eieio--defmethod nil registry-db #[(db &rest spec) "\205 \306	\307\"\306	\310\"\306	\311\"\312\313\314\315\316\"\"\210
\237,\207" [db spec regex member all #1=#:--cl-var-- plist-get :all :member :regex nil maphash #[(k v) "\204	\203\306\307\n	#\204\205!\306\310\n#\205!\f
B\211\207" [all member v regex k #1# registry--match :member :regex] 4] eieio-oref :data] 5 #2#] registry-delete #3="Delete KEYS from the registry-db THIS.\nIf KEYS is nil, use SPEC to do a search.\nUpdates the secondary ('tracked') indices as well.\nWith assert non-nil, errors out if the key does not exist already." #[(db keys assert &rest spec) "\306\307\"\n\206\310\311#\306\312\"\n\313\211\203\246@\314
	\"\2036\2046\315\316
\"\210\f\313\211\203\226@\317\"\203\215\236\243\313\211\203\214@\320#
\235\203\202\320\321
\"\206\200\322$\210)A\211\204\\*A\211\204@*\323
	\"\210)A\211\204*\n+\207" [db data keys spec tracked key eieio-oref :data apply registry-search :tracked nil gethash error "Key %s does not exists in database" registry-lookup-secondary registry-lookup-secondary-value delete t remhash --dolist-tail-- entry assert tr val value-keys] 8 #3#] registry-full #4="Checks if registry-db THIS is full." #[(db) "\301!\302\303\"Y\207" [db registry-size eieio-oref :max-hard] 4 #4#] registry-insert #5="Insert ENTRY under KEY into the registry-db THIS.\nUpdates the secondary ('tracked') indices as well.\nErrors out if the key exists already." #[(db key entry) "\306\307	\310\"\"\203\311\312!\210\313	!\203\311\314!\210\315\n\307	\310\"#\210\307	\316\"\317\211\203n\f@\211\n\236\243\317\211\203f\f@\320	
#\235\203P\202TB\320	
$\210)\fA\211\204:*\fA\211\204,*\n\207" [key db entry tr --dolist-tail-- val gethash eieio-oref :data error "Key already exists in database" registry-full "registry max-hard size limit reached" puthash :tracked nil registry-lookup-secondary-value value-keys] 7 #5#] registry-reindex #6="Rebuild the secondary indices of registry-db THIS." #[(db) "\306\307\310\"G\311!_\307\310\"\312\211\205-\f@\312\313\314\307\315\"\"\210)\fA\211\204\312,\207" [db expected count tr --dolist-tail-- values 0 eieio-oref :tracked registry-size nil maphash #[(key v) "T\306	W\203\307\310\"\306U\203\311\312	\313_	\245$\210\n\236\243\314\211\205L
@\315\n\f#B\315\n\f$\210)
A\211\204(\314*\207" [count expected tr v val --dolist-tail-- 0 mod 1000 message "reindexing: %d of %d (%.2f%%)" 100 nil registry-lookup-secondary-value db value-keys key] 7] :data] 6 #6#] registry-size #7="Returns the size of the registry-db object THIS.\nThis is the key count of the :data slot." #[(db) "\301\302\303\"!\207" [db hash-table-count eieio-oref :data] 4 #7#] registry-prune #8="Prunes the registry-db object THIS.\nRemoves only entries without the :precious keys if it can,\nthen removes oldest entries first.\nReturns the number of deleted entries.\nIf SORTFUN is given, tries to keep entries that sort *higher*.\nSORTFUN is passed only the two keys so it must look them up directly." #[(db &optional sortfun) "\306\307\211\205f	@\310\n!\n!\211@\fA@\f\203)\311\f\"\202+\211G

V

ZV\203Q\203Q
S
A\2026\312\n\307#\210G\210.	A\211\204\307*\207" [collector --dolist-tail-- db size collected limit (registry-prune-soft-candidates registry-prune-hard-candidates) nil registry-size sort registry-delete candidates sortfun candidates-count prune-needed] 5 #8#] registry-prune-soft-candidates #10="Collects pruning candidates from the registry-db object THIS.\nProposes only entries without the :precious keys." #[(db) "\306\307\"\310\306\311\"\306\312\"\313\314\315\"\210
\237)\f-D\207" [db precious precious-p data limit #9=#:--cl-var-- eieio-oref :precious #[(entry-key) "@	>A\207" [entry-key precious] 2] :data :max-soft nil maphash #[(k v) "	\304\305\306$?\266\203\205\nB\211\207" [precious-p v k #9# nil apply cl-some] 8] candidates] 3 #10#] registry-prune-hard-candidates #12="Collects pruning candidates from the registry-db object THIS.\nProposes any entries over the max-hard limit minus size * prune-factor." #[(db) "\305\306\"\307\305\310\"\311!\305\312\"_Z]\313\314\315	\"\210\237)\n\f+D\207" [db data limit #11=#:--cl-var-- candidates eieio-oref :data 0 :max-hard registry-size :prune-factor nil maphash #[(k #:--cl-var--) "	B\211\207" [k #11#] 2]] 6 #12#] provide registry] 5)

MMCT - 2023