| Server IP : 217.160.0.212 / Your IP : 216.73.216.71 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 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. (byte-code "\300\301!\210\302\303\304\"\207" [require macroexp define-error gv-invalid-place "%S is not a valid place expression"] 3) #@455 Build the code that applies DO to PLACE. PLACE must be a valid generalized variable. DO must be a function; it will be called with 2 arguments: GETTER and SETTER, where GETTER is a (copyable) Elisp expression that returns the value of PLACE, and SETTER is a function which returns the code to set PLACE when called with a (not necessarily copyable) Elisp expression that returns the value to set it to. DO must return an Elisp expression. (fn PLACE DO) (defalias 'gv-get #[514 "9\203 \211\301\302\"\"\207:\204 \303\304C\"\207@\305\306\307#\211\203+ \310A#\207\311\"\211=\203F \312N\203F \310\312N\211A#\262\211=\203_ \313!\203_ K9\203_ KAB\262\211=\203\205 9\203u \314N\203u \315\316\"\207\317!\320\301\321\" A$\207\322\"\207" [macroexpand-all-environment make-closure #[257 "\301\300E\207" [V0 setq] 4 "\n\n(fn V)"] signal gv-invalid-place function-get gv-expander autoload apply macroexpand-1 compiler-macro fboundp setf-method error "Incompatible place needs recompilation: %S" gv-setter gv--defsetter #[128 "\300B\207" [V0] 3 "\n\n(fn &rest ARGS)"] gv-get] 11 (#$ . 219)]) #@79 Return the symbol where the (setf NAME) function should be placed. (fn NAME) (defalias 'gv-setter #[257 "\211\300N\203 \301\302\"\210\303\304\305\"!\207" [gv-expander error "gv-expander conflicts with (setf %S)" intern format "(setf %s)"] 5 (#$ . 1344)]) #@512 Build the code manipulating the generalized variable PLACE. GETTER will be bound to a copyable expression that returns the value of PLACE. SETTER will be bound to a function that takes an expression V and returns a new expression that sets PLACE to V. BODY should return some Elisp expression E manipulating PLACE via GETTER and SETTER. The returned value will then be an Elisp expression that first evaluates all the parts of PLACE that can be evaluated and then runs E. (fn (GETTER SETTER) PLACE &rest BODY) (defalias 'gv-letplace '(macro . #[642 "\300\301BBE\207" [gv-get lambda] 8 (#$ . 1610)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put gv-letplace lisp-indent-function 2 put edebug-form-spec (sexp form def-body)] 5) #@266 Use HANDLER to handle NAME as a generalized var. NAME is a symbol: the name of a function, macro, or special form. HANDLER is a function which takes an argument DO followed by the same arguments as NAME. DO is a function as defined in `gv-get'. (fn NAME HANDLER) (defalias 'gv-define-expander '(macro . #[514 "\300\301D\302F\207" [function-put quote 'gv-expander] 6 (#$ . 2368)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put gv-define-expander lisp-indent-function 1 put edebug-form-spec (sexp form)] 5) #@47 (fn SYMBOL NAME ARGS HANDLER &optional FIX) (defalias 'gv--defun-declaration #[1284 "\300\301\302B\211:\203&\211\242\211\303\267\202\243\211:\203| \211\242\211\304=\203q \243\211:\203f \211\242\211:\203Z \211\242\243\211\204N \243\305\304BBBE\262\266\202\202a \"\266\202\202a \f\"\262\202l \"\262\202w \f\n\"\262\202\222 \2119\203\214 \305\n\306\nDE\202\222 \"\262\202\243\211:\203\376 \211\242\211\304=\203\363 \243\211:\203\350 \211\242\211:\203\334 \211\242\243\211\204\320 \243\307BBBB\262\266\202\202\343 \"\266\202\202\343 \f\"\262\202\356 \"\262\202\371 \f\n\"\262\202\2119\203\310\n F\202 \"\262\202\n\"\262\266\202\202. \"\266\202E\207" [progn :autoload-end #[514 "\300\301#\210\302\207" [message "Unknown %s declaration %S" nil] 6 "\n\n(fn SYMBOL HANDLER)"] #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (gv-expander 20 gv-setter 151)) lambda gv-define-expander function gv-define-setter gv-define-simple-setter] 22 (#$ . 2904)]) #@19 (fn &rest ARGS) (defalias 'gv--expander-defun-declaration #[128 "\300\301\302#\207" [apply gv--defun-declaration gv-expander] 5 (#$ . 4002)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put gv--expander-defun-declaration speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@19 (fn &rest ARGS) (defalias 'gv--setter-defun-declaration #[128 "\300\301\302#\207" [apply gv--defun-declaration gv-setter] 5 (#$ . 4309)]) (byte-code "\302\303\304\305#\306\303\307\310#\210\311\236\204 \311\312D\211 B\211B\210\313\236\204) \313\303DB\314\315N\306\311\315#\210\306\313\315#\210\207" [defun-declarations-alist macro-declarations-alist function-put gv--setter-defun-declaration speed -1 put byte-optimizer byte-compile-inline-expand gv-expander gv--expander-defun-declaration gv-setter compiler-macro edebug-declaration-spec] 6) #@317 Helper function used by code generated by `gv-define-setter'. NAME is the name of the getter function. SETTER is a function that generates the code for the setter. NAME accept ARGS as arguments and SETTER accepts (NEWVAL . ARGS). VARS is used internally for recursive calls. (fn NAME SETTER DO ARGS &optional VARS) (defalias 'gv--defsetter #[1284 "\204 \211\237B\300\301#\"\207@\302!\203 \211\202\"