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:04 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emacs-lisp/gv.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'macroexp) #@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\303\304\305!\306\"\307\310%\"\207@\311\312\313#\211\203+ \314A#\202s \315\"\211=\203F \316N\203F \314\316N\211A#\262\211=\203_ \317!\203_ K9\203_ KAB\262\211=\203m \320\321\"\202q \322\"\262\207" [macroexpand-all-environment make-byte-code 257 "\301\300E\207" vconcat vector [setq] 4 "\n\n(fn V)" function-get gv-expander autoload apply macroexpand compiler-macro fboundp error "%S is not a valid place expression" gv-get] 10 (#$ . 577)]) #@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 (#$ . 1553)])) (byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put gv-letplace lisp-indent-function 2 edebug-form-spec (sexp form body)] 4) #@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\301\302D\303FD\207" [eval-and-compile put quote 'gv-expander] 7 (#$ . 2298)])) (byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put gv-define-expander lisp-indent-function 1 edebug-form-spec (sexp form)] 4) (defalias 'gv--defun-declaration #[1284 "\300\301B\302:\203 @A\303=\203\223 \211:\203z \211@A\304=\204. \"\202u \211:\203o \211@A:\203c @A\211\204W \305\304BBBE\266\202\202^ \"\266\202\202j \"\266\202\202u \"\266\202\202\2119\203\212 \305\n\306\nDE\202 \"\202\307=\204\242 \"\202\211:\203\211@A\304=\204\272 \"\202 \211:\203\372 \211@A:\203\356 @A\211\204\342 \310BBBB\266\202\202\351 \"\266\202\202\365 \"\266\202\202 \"\266\202\202\2119\203\311\n F\202 \"\266\202\202&\211 \"\266\202E\207" [progn :autoload-end #[514 "\300\301#\210\302\207" [message "Unknown %s declaration %S" nil] 6 "\n\n(fn SYMBOL HANDLER)"] gv-expander lambda gv-define-expander function gv-setter gv-define-setter gv-define-simple-setter] 24 "\n\n(fn SYMBOL NAME ARGS HANDLER &optional FIX)"]) (byte-code "\301\302\303\301\"DB\304\302\303\304\"DB\301\207" [defun-declarations-alist gv-expander apply-partially gv--defun-declaration gv-setter] 4) #@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\302\303\304\"\305\"\306\307%\"\207@\310!\203( \211\202+ \311\312!\313AB%=\203D \211\202K \314DC\"\207" [make-byte-code 257 "\302\300\301#\207" vconcat vector [apply] 5 "\n\n(fn V)" macroexp-const-p make-symbol "v" gv--defsetter macroexp-let*] 15 (#$ . 3887)]) #@627 Define a setter method for generalized variable NAME. This macro is an easy-to-use substitute for `gv-define-expander' that works well for simple place forms. Assignments of VAL to (NAME ARGS...) are expanded by binding the argument forms (VAL ARGS...) according to ARGLIST, then executing BODY, which must return a Lisp form that does the assignment. The first arg in ARGLIST (the one that receives VAL) receives an expression which can do arbitrary things, whereas the other arguments are all guaranteed to be pure and copyable. Example use: (gv-define-setter aref (v a i) `(aset ,a ,i ,v)) (fn NAME ARGLIST &rest BODY) (defalias 'gv-define-setter '(macro . #[642 "\300\301\302\303\304D\301BB\305BBBEE\207" [gv-define-expander lambda (do &rest args) gv--defsetter quote (do args)] 12 (#$ . 4555)])) (byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put gv-define-setter lisp-indent-function 2 edebug-form-spec (&define name sexp body)] 4) #@533 Define a simple setter method for generalized variable NAME. This macro is an easy-to-use substitute for `gv-define-expander' that works well for simple place forms. Assignments of VAL to (NAME ARGS...) are turned into calls of the form (SETTER ARGS... VAL). If FIX-RETURN is non-nil, then SETTER is not assumed to return VAL and instead the assignment is turned into something equivalent to (let ((temp VAL)) (SETTER ARGS... temp) temp) so as to preserve the semantics of `setf'. (fn NAME SETTER &optional FIX-RETURN) (defalias 'gv-define-simple-setter '(macro . #[770 "\300\301\203 \302\303\304\305\306\307\310\311\fDCB\312B\313BBCB\257\202( \314\311D\315BBF\207" [gv-define-setter (val &rest args) macroexp-let2 nil v val \` progn \, quote ((\,@ (append args (list v)))) ((\, v)) cons ((append args (list val)))] 15 (#$ . 5521)])) (put 'gv-define-simple-setter 'edebug-form-spec '(sexp (&or symbolp lambda-expr) &optional sexp)) #@321 Set each PLACE to the value of its VAL. This is a generalized version of `setq'; the PLACEs may be symbolic references such as (car x) or (aref x i), as well as plain symbols. For example, (setf (cadr x) y) is equivalent to (setcar (cdr x) y). The return value is the last VAL in the list. (fn PLACE VAL PLACE VAL ...) (defalias 'setf '(macro . #[128 "\211\203&