%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/emacs-lisp/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/emacs-lisp/gv.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\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\303\304\305!\306\"\307\310%\"\207:\204!\311\312C\"\207@\313\314\315#\211\2036\316A#\202\245\317\"\211=\203Q\320N\203Q\316\320N\211A#\262\211=\203j\321!\203jK9\203jKAB\262\211=\203\2379\203\202\322N\203\202\323\324\"\202\243\325!\326\301\327\330\304\305!\331\"\332\333%	A$\262\202\243\334\"\262\207" [macroexpand-all-environment make-byte-code 257 "\301\300E\207" vconcat vector [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" [] 3 "\n\n(fn &rest ARGS)" gv-get] 14 (#$ . 543)])
#@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 (#$ . 1759)])
#@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 (#$ . 2025)]))
(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 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 (#$ . 2779)]))
(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\301B\302:\203(@\211\303\267\202A\211:\203\211@\211\304=\203tA\211:\203i\211@\211:\203^\211@A\211\204PA\211\305\304BBBE\266\202\262\202Y\306\307#\210\310\266\202\202d\f\"\262\202o
\"\262\202z\f\n\"\262\202\225\2119\203\217\305\n\311\nDE\202\225	\"\262\202#A\211:\203\211@\211\304=\203\367A\211:\203\354\211@\211:\203\341\211@A\211\204\325A\211\312BBBB\266\202\262\202\334\"\266\202\202\347\f\"\262\202\362
\"\262\202\375\f\n\"\262\202\2119\203\313\n		F\202	\"\262\202#\n\"\262\202.\211	\"\266\202E\207" [progn :autoload-end #[514 "\300\301#\210\302\207" [message #1="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 154)) lambda gv-define-expander message #1# nil function gv-define-setter gv-define-simple-setter] 24 (#$ . 3315)])
(byte-code "\302\236\204\302\303\304\302\"D\211	B\211B\210\305\236\204$\305\303\304\305\"DB\302\207" [defun-declarations-alist macro-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 (#$ . 4621)])
#@629 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\304\305	D\301		BB\306BBBFE\207" [gv-define-expander lambda (do &rest args) (declare-function gv--defsetter "gv" (name setter do args &optional vars)) gv--defsetter quote (do args)] 13 (#$ . 5289)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put gv-define-setter lisp-indent-function 2 put edebug-form-spec (&define name sexp def-body)] 5)
#@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 "\242\300=\203\f\301\302\"\210\303\304\203,\305\306\307\310\311\312\313\314\fDCB\315B\316BBCB\257\2028\311\313\314DCB\317BCBF\207" [lambda message "Use `gv-define-setter' or name %s's setter function" gv-define-setter (val &rest args) macroexp-let2 nil v val \` progn \, quote ((\,@ args) (\, v)) ((\, v)) ((\,@ args) (\, val))] 15 (#$ . 6349)]))
(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 "\300G\301\"\302U\204\303\304\305GD\"\210\211\2035\211AA\2045\211A\262\242@\306\307\310\311\312\313!\314\"\315\316%\"\207\317\203O\305\211A\262\242\211A\262\242EB\262\2026\320\237B\207" [logand 1 0 signal wrong-number-of-arguments setf gv-get make-byte-code 514 "\211\300!\207" vconcat vector [] 4 "\n\n(fn GETTER SETTER)" nil progn] 11 (#$ . 7395)]))
(byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\307\310#\210\311\312\307\313#\311\314\307\315#\311\316\307\317#\311\320\307\321#\311\322\307\323#\311\324\307\325#\311\326\307\327#\311\330\307\331#\311\332\307\333#\311\334\307\335#\311\336\307\337#\300\340\307\341#\210\311\342\307\343#\311\344\307\345#\311\346\307\347#\300\350\307\351#\210\311\352\307\353#\311\354\307\355#\311\356\307\357#\311\360\307\361#\311\362\307\363#\311\364\307\365#\311\366\307\367#\311\370\307\371#\311\372\307\373#\311\374\307\375#\311\376\307\377#\311\201@\307\201A#\311\201B\307\201C#\311\201D\307\201E#\311\201F\307\201G#\311\201H\307\201I#\311\201J\307\201K#\311\201L\307\201M#\311\201N\307\201O#\311\201P\307\201Q#\311\201R\307\201S#\300\201T\307\201U#\210\201V\300\201W\307\201W!#\210\300\201X\307\201X!#\266\300\201Y\307\201Z#\210\300\201[\307\201\\#\207" [put setf edebug-form-spec (&rest [gv-place form]) gv-place edebug-match-form edebug-after gv-expander #[1028 "\300\301\302\303\304\305\n\n\n#\306\"\307\310%\"\207" [gv-get make-byte-code 514 "\300\303\301\302F\304\305\306\307\310\301\302	#\311\"\312\313%\"\207" vconcat vector [edebug-after make-byte-code 257 "\303\300\301\302!F\207" vconcat vector [edebug-after] 6 "\n\n(fn STORE)"] 12 "\n\n(fn GETTER SETTER)"] 14 "\n\n(fn DO BEFORE INDEX PLACE)"] function-put aref #[385 "\300\301\302$\207" [gv--defsetter aref #[385 "\300\301C\"B\207" [aset append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] char-table-range #[385 "\300\301\302$\207" [gv--defsetter char-table-range #[385 "\300\301C\"B\207" [set-char-table-range append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] car #[385 "\300\301\302$\207" [gv--defsetter car #[385 "\300\301C\"B\207" [setcar append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] cdr #[385 "\300\301\302$\207" [gv--defsetter cdr #[385 "\300\301C\"B\207" [setcdr append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] caar #[385 "\300\301\302$\207" [gv--defsetter caar #[514 "\300\301DE\207" [setcar car] 5 "\n\n(fn VAL X)"]] 7 "\n\n(fn DO &rest ARGS)"] cadr #[385 "\300\301\302$\207" [gv--defsetter cadr #[514 "\300\301DE\207" [setcar cdr] 5 "\n\n(fn VAL X)"]] 7 "\n\n(fn DO &rest ARGS)"] cdar #[385 "\300\301\302$\207" [gv--defsetter cdar #[514 "\300\301DE\207" [setcdr car] 5 "\n\n(fn VAL X)"]] 7 "\n\n(fn DO &rest ARGS)"] cddr #[385 "\300\301\302$\207" [gv--defsetter cddr #[514 "\300\301DE\207" [setcdr cdr] 5 "\n\n(fn VAL X)"]] 7 "\n\n(fn DO &rest ARGS)"] elt #[385 "\300\301\302$\207" [gv--defsetter elt #[771 "\300\301D\302\303EE\304FF\207" [if listp setcar nthcdr aset] 10 "\n\n(fn STORE SEQ N)"]] 7 "\n\n(fn DO &rest ARGS)"] get #[385 "\300\301\302$\207" [gv--defsetter get #[385 "\300\301C\"B\207" [put append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] gethash #[385 "\300\301\302$\207" [gv--defsetter gethash #[1027 "\300F\207" [puthash] 8 "\n\n(fn VAL K H &optional D)"]] 7 "\n\n(fn DO &rest ARGS)"] nth #[771 "\300E\301!\203\211\202\302\303!\304D\305\306\307\310\311!\312\"\313\314%\"=\203-\211\2024\315DC\"\207" [nthcdr macroexp-const-p make-symbol "c" car make-byte-code 257 "\301\300E\207" vconcat vector [setcar] 4 "\n\n(fn V)" macroexp-let*] 13 "\n\n(fn DO IDX LIST)"] symbol-function #[385 "\300\301\302$\207" [gv--defsetter symbol-function #[385 "\300\301C\"B\207" [fset append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] symbol-plist #[385 "\300\301\302$\207" [gv--defsetter symbol-plist #[385 "\300\301C\"B\207" [setplist append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] symbol-value #[385 "\300\301\302$\207" [gv--defsetter symbol-value #[385 "\300\301C\"B\207" [set append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] nthcdr #[771 "\300!\203\211\202\301\302!\303\304\305\306\307\310\"\311\"\312\313%\"=\203*\211\2021\314DC\"\207" [macroexp-const-p make-symbol "idx" gv-get make-byte-code 514 "\300\302\301E\303\304\305\306\307\301		#\310\"\311\312%\"\207" vconcat vector [nthcdr make-byte-code 257 "\303\304\300\305BB\302!\306\307\310\300D\301EEF\207" vconcat vector [if <= (0) setcdr nthcdr 1-] 8 "\n\n(fn V)"] 12 "\n\n(fn GETTER SETTER)" macroexp-let*] 14 "\n\n(fn DO N PLACE)"] default-value #[385 "\300\301\302$\207" [gv--defsetter default-value #[385 "\300\301C\"B\207" [set-default append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] frame-parameter #[385 "\300\301\302$\207" [gv--defsetter frame-parameter #[385 "\300!\203\211\202\301\302!\303\304\305C\"BE=\203\"\211\202)\306DC\"\207" [macroexp-const-p make-symbol #1="v" progn set-frame-parameter append macroexp-let*] 9 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] terminal-parameter #[385 "\300\301\302$\207" [gv--defsetter terminal-parameter #[385 "\300\301C\"B\207" [set-terminal-parameter append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] keymap-parent #[385 "\300\301\302$\207" [gv--defsetter keymap-parent #[385 "\300\301C\"B\207" [set-keymap-parent append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] match-data #[385 "\300\301\302$\207" [gv--defsetter match-data #[385 "\300!\203\211\202\301\302!\303\304\305C\"BE=\203\"\211\202)\306DC\"\207" [macroexp-const-p make-symbol #1# progn set-match-data append macroexp-let*] 9 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] overlay-get #[385 "\300\301\302$\207" [gv--defsetter overlay-get #[385 "\300\301C\"B\207" [overlay-put append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] overlay-start #[385 "\300\301\302$\207" [gv--defsetter overlay-start #[514 "\300\301\302DFE\207" [progn move-overlay overlay-end] 8 "\n\n(fn STORE OV)"]] 7 "\n\n(fn DO &rest ARGS)"] overlay-end #[385 "\300\301\302$\207" [gv--defsetter overlay-end #[514 "\300\301\302DFE\207" [progn move-overlay overlay-start] 7 "\n\n(fn STORE OV)"]] 7 "\n\n(fn DO &rest ARGS)"] process-buffer #[385 "\300\301\302$\207" [gv--defsetter process-buffer #[385 "\300\301C\"B\207" [set-process-buffer append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] process-filter #[385 "\300\301\302$\207" [gv--defsetter process-filter #[385 "\300\301C\"B\207" [set-process-filter append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] process-sentinel #[385 "\300\301\302$\207" [gv--defsetter process-sentinel #[385 "\300\301C\"B\207" [set-process-sentinel append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] process-get #[385 "\300\301\302$\207" [gv--defsetter process-get #[385 "\300\301C\"B\207" [process-put append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] window-parameter #[385 "\300\301\302$\207" [gv--defsetter window-parameter #[385 "\300\301C\"B\207" [set-window-parameter append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"] window-buffer #[385 "\300\301\302$\207" [gv--defsetter window-buffer #[513 "\300!\203\211\202\301\302!\303\304EE=\203\211\202&\305DC\"\207" [macroexp-const-p make-symbol #1# progn set-window-buffer macroexp-let*] 8 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] window-display-table #[385 "\300\301\302$\207" [gv--defsetter window-display-table #[513 "\300!\203\211\202\301\302!\303\304EE=\203\211\202&\305DC\"\207" [macroexp-const-p make-symbol #1# progn set-window-display-table macroexp-let*] 8 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] window-dedicated-p #[385 "\300\301\302$\207" [gv--defsetter window-dedicated-p #[513 "\300E\207" [set-window-dedicated-p] 5 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] window-hscroll #[385 "\300\301\302$\207" [gv--defsetter window-hscroll #[513 "\300E\207" [set-window-hscroll] 5 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] window-point #[385 "\300\301\302$\207" [gv--defsetter window-point #[513 "\300E\207" [set-window-point] 5 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] window-start #[385 "\300\301\302$\207" [gv--defsetter window-start #[513 "\300E\207" [set-window-start] 5 "\n\n(fn V &optional W)"]] 7 "\n\n(fn DO &rest ARGS)"] buffer-local-value #[385 "\300\301\302$\207" [gv--defsetter buffer-local-value #[771 "\300!\203\211\202\301\302!\303\304\305DEE=\203\"\211\202)\306DC\"\207" [macroexp-const-p make-symbol #1# with-current-buffer set make-local-variable macroexp-let*] 10 "\n\n(fn VAL VAR BUF)"]] 7 "\n\n(fn DO &rest ARGS)"] alist-get #[1539 "\300!\203\211\202\301\302!\303\304\305\306\307\310\f\f\f%\311\"\312\313%\"=\2031\211\2028\314DC\"\207" [macroexp-copyable-p make-symbol "k" gv-get make-byte-code 514 "\305\306\303\307\310\303\311BBDE\312\304\303F\313\304EF\314!\203 \211\202#\315\316!\300\301\204.\317D\2025\305\317D\301F\320\321\322\323\324\301\302\304

\f&\325\"\326\327%\"=\203U\211\202\\\330DC\"\207" vconcat vector [if and not eq ('eq) assoc assq macroexp-const-p make-symbol "p" cdr make-byte-code 257 "\211\306!\203\211\202\307\310!\311\305\312\305E\304\313\314\305\313\302	EE\303E!F\315\301\204+\202j\316\300\"\204K\242\317=\203W\300\242\317=\203W\316A@\300A@\"\203W\311\305\304\320\305\303E!E\202j\321\322\316\300EDD\305\304\320\305\303E!DEE\262=\203x\211\202\323DC\"\207" vconcat vector [macroexp-const-p make-symbol #1# if setcdr cons setq progn eql quote delq cond not macroexp-let*] 13 "\n\n(fn V)" macroexp-let*] 17 "\n\n(fn GETTER SETTER)" macroexp-let*] 20 "\n\n(fn DO KEY ALIST &optional DEFAULT REMOVE TESTFN)"] progn #[385 "\300!\301!@\204\302\"\202\303\304\302\"C\"B\207" [butlast last gv-get progn append] 10 "\n\n(fn DO &rest EXPS)"] #[257 "\300\301\302\303\304!\305\"\306\307%\207" [make-byte-code 642 "\300\301\302\303!\"!BB\207" vconcat vector [macroexp-unprogn gv-get macroexp-progn] 9 "\n\n(fn DO BINDINGS &rest BODY)"] 7 "\n\n(fn LETSYM)"] let let* if #[899 "\203
\301\302\303\"!\203\"\304\305\"\306\305\307!	\"!BBB\207\310\311!\304\305\312\313\314\315\316	!\317\"\320\321%\"\305\307!\312\313\314\315\316\n!\322\"\320\321%\"F\323!\203U\211\202X\324\325!\326\327DD\312\330\331\315\316!\332\"\333\334%\"=\203w\211\202~\335DC\"\266\203\207" [lexical-binding macroexp-small-p dummy #[257 "\300\207" [dummy] 2 "\n\n(fn _)"] if gv-get macroexp-unprogn macroexp-progn gensym "v" make-byte-code 514 "\301\302\303E\302\300C\300!EE\207" vconcat vector [cons lambda nil] 8 "\n\n(fn GETTER SETTER)" [cons lambda nil] macroexp-const-p make-symbol #2="gv" funcall car 257 "\301\302\300DE\207" [funcall cdr] 4 "\n\n(fn V)" macroexp-let*] 16 "\n\n(fn DO TEST THEN &rest ELSE)"] cond #[385 "\203
\301\302\303\"!\203 \304\305\306\307\310\311\312!\313\"\314\315%\"B\207\316\317!\304\305\306\307\320\311\312!\321\"\322\315%\"B\323!\203?\211\202B\324\325!\326\327DD\306\307\330\311\312!\331\"\332\333%\"=\203`\211\202g\334DC\"\266\203\207" [lexical-binding macroexp-small-p dummy #[257 "\300\207" [dummy] 2 "\n\n(fn _)"] cond mapcar make-byte-code 257 "\211A\203\211@\301\302\303A!\300\"!B\207\302@\300\"\207" vconcat vector [macroexp-unprogn gv-get macroexp-progn] 6 "\n\n(fn BRANCH)" gensym "v" "\211A\203\211@\301\302\303A!\304\305\306\307\310\300!\311\"\312\313%\"!B\207\302@\304\305\306\307\310\300!\314\"\312\313%\"\207" [macroexp-unprogn gv-get macroexp-progn make-byte-code 514 "\301\302\303E\302\300C\300!EE\207" vconcat vector [cons lambda nil] 8 "\n\n(fn GETTER SETTER)" [cons lambda nil]] 11 macroexp-const-p make-symbol #2# funcall car "\301\302\300DE\207" [funcall cdr] 4 "\n\n(fn V)" macroexp-let*] 13 "\n\n(fn DO &rest BRANCHES)"]] 41)
#@278 Special place described by its setter and getter.
GETTER and SETTER (typically obtained via `gv-letplace') get and
set that place.  I.e. This macro allows you to do the "reverse" of what
`gv-letplace' does.
This macro only makes sense when used in a place.

(fn GETTER SETTER)
(defalias 'gv-synthetic-place '(macro . #[514 "\207" [] 3 (#$ . 19938)]))
(byte-code "\300\301\302\303#\300\207" [function-put gv-synthetic-place gv-expander funcall] 4)
#@310 Special place which delays the `gv-invalid-place' error to run-time.
It behaves just like PLACE except that in case PLACE is not a valid place,
the `gv-invalid-place' error will only be signaled at run-time when (and if)
we try to use the setter.
This macro only makes sense when used in a place.

(fn PLACE)
(defalias 'gv-delay-error '(macro . #[257 "\207" [] 2 (#$ . 20393)]))
(byte-code "\300\301\302\303#\304\305\302\306#\210\304\307\302\310#\207" [function-put gv-delay-error gv-expander #[514 "\3001\n\301\"0\207\302\303\304\305\306!\307\"\310\311%\"\207" [(gv-invalid-place) gv-get make-byte-code 257 "\301\302\300@D\302\300ADE\207" vconcat vector [signal quote] 5 "\n\n(fn _)"] 11 "\n\n(fn DO PLACE)"] put cons #[771 "\300\301\302\303\304\305	\"\306\"\307\310%\"\207" [gv-get make-byte-code 514 "\302\301\303\304\305\306\307\300		#\310\"\311\312%\"\207" vconcat vector [gv-get make-byte-code 514 "\300\303\301E\304\305\306\307\310\302\"\311\"\312\313%\"\207" vconcat vector [cons make-byte-code 257 "\302\300\303D!\301\304D!E\207" vconcat vector [progn car cdr] 6 "\n\n(fn V)"] 11 "\n\n(fn DGETTER DSETTER)"] 12 "\n\n(fn AGETTER ASETTER)"] 12 "\n\n(fn DO A D)"] logand #[642 "\300\301\302\303\304\305	\"\306\"\307\310%\"\207" [gv-get make-byte-code 514 "\301A\203\302\301B\202
\301@\303!\203\211\202\304\305!\300\302E\306\307\310\311\312\n\n	#\313\"\314\315%\"=\203;\211\202B\316DC\"\207" vconcat vector [logand macroexp-copyable-p make-symbol "mask" make-byte-code 257 "\301\303\304\302E\304\300\305\302DEE!\207" vconcat vector [logior logand lognot] 8 "\n\n(fn V)" macroexp-let*] 14 "\n\n(fn GETTER SETTER)"] 12 "\n\n(fn DO PLACE &rest MASKS)"]] 5)
#@258 Return a reference to PLACE.
This is like the `&' operator of the C language.
Note: this only works reliably with lexical binding mode, except for very
simple PLACEs such as (symbol-function \='foo) which will also work in dynamic
binding mode.

(fn PLACE)
(defalias 'gv-ref '(macro . #[257 "\301\302\"\204\211\242\303=\203\211\202\304\305\"\207" [lexical-binding gv-get #[514 "\300\301\302E\301\303\304!EE\207" [cons lambda nil (gv--val) gv--val] 8 "\n\n(fn GETTER SETTER)"] cons macroexp--warn-and-return "Use of gv-ref probably requires lexical-binding"] 5 (#$ . 22102)]))
#@163 Dereference REF, returning the referenced value.
This is like the `*' operator of the C language.
REF must have been previously obtained with `gv-ref'.

(fn REF)
(defalias 'gv-deref #[257 "\211@ \207" [] 2 (#$ . 22696)])
(byte-code "\300\301\302\303#\210\304\301\305\306#\307\310!\207" [put gv-deref byte-optimizer byte-compile-inline-expand function-put gv-expander #[385 "\300\301\302$\207" [gv--defsetter gv-deref #[514 "\300\301DE\207" [funcall cdr] 5 "\n\n(fn V REF)"]] 7 "\n\n(fn DO &rest ARGS)"] provide gv] 4)

Zerion Mini Shell 1.0