403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/emacs-lisp/cconv.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



#@96 Try to do lambda lifting if the number of arguments + free variables
is less than this number.
(defconst cconv-liftwhen 6 (#$ . 84))
#@252 Main entry point for closure conversion.
-- FORM is a piece of Elisp code after macroexpansion.
-- TOPLEVEL(optional) is a boolean variable, true if we are at the root of AST

Returns a form where all lambdas don't have any free variables.

(fn FORM)
(defalias 'cconv-closure-convert #[257 "\302\211\303\302\"\210	\237\304\302\211#	\203\305\306!\210*\207" [cconv-var-classification cconv-freevars-alist nil cconv-analyze-form cconv-convert cl--assertion-failed (null cconv-freevars-alist)] 5 (#$ . 224)])
(defconst cconv--dummy-var (make-symbol "ignored"))
#@63 Return elements of set S1 that are not in set S2.

(fn S1 S2)
(defalias 'cconv--set-diff #[514 "\300\211\203\211@\211>\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 794)])
#@60 Return elements of set S that are not in Dom(M).

(fn S M)
(defalias 'cconv--set-diff-map #[514 "\300\211\203\211@\211\236\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 994)])
#@67 Return the submap of map M1 that has Dom(M2) removed.

(fn M1 M2)
(defalias 'cconv--map-diff #[514 "\300\211\203\211@\211@\236\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 1198)])
#@53 Return the map M minus any mapping for X.

(fn M X)
(defalias 'cconv--map-diff-elem #[514 "\211\236\211\203\300\"\202\236\203\301\302!\210\207" [remq cl--assertion-failed (null (assq x res))] 6 (#$ . 1407)])
#@65 Return the map M minus any mapping for elements of S.

(fn M S)
(defalias 'cconv--map-diff-set #[514 "\300\211\203\211@\211@>\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 1633)])
#@53 

(fn ARGS BODY ENV PARENTFORM &optional DOCSTRING)
(defalias 'cconv--convert-function #[1284 "@@\232\204\f\301\302!\210\211A\242A\303\211C\304C\303C\211\203\233\211@\211\n\236A\206)\211\305:\203\200\242\211\306=\203o\243\211:\203^\211\242	\242B\240\210\306\307\f\242DE	\242B\240\266\202\216			%\266\202\216%\266\202\216\211%\266\211\242T\240\210A\266\202\202\210\211\242\237\240\210\211\242\237\240\210\310\n\n\242\n$\262\242\204\307\204\307\311\312BBD\207\313\n\242BBBB\207" [cconv-freevars-alist cl--assertion-failed (equal body (caar cconv-freevars-alist)) nil 0 #[1285 "\242B\240\210\300\242E\242B\240\207" [internal-get-closed-var] 9 "\n\n(fn ENVECTOR I NEW-ENV FV EXP)"] car-safe internal-get-closed-var cconv--convert-funcbody function lambda internal-make-closure] 22 (#$ . 1841)])
#@30 

(fn NEW-ENV VAR CLOSEDSYM)
(defalias 'cconv--remap-llv #[771 "\300\301\302#\"\207" [mapcar make-closure #[257 "\211A@\302=\204	\207\211@\3038=\204\304\305!\210\211@\302@\306\307\310\300\301#\311\233\"BBB\207" [V0 V1 apply-partially 2 cl--assertion-failed (eq (car mapping) (nth 2 mapping)) mapcar make-closure #[257 "\300=\203\301\207\207" [V0 V1] 3 "\n\n(fn ARG)"] 3] 9 "\n\n(fn MAPPING)"]] 8 (#$ . 2733)])
#@20 

(fn VAR VARKIND)
(defalias 'cconv--warn-unused-msg #[514 "\300!?\206\301!\302H\303=\206\304=?\205/\305\301!!\306\307\203+\310P\202,\311$\262\207" [intern-soft symbol-name 0 95 ignored help-uni-confusable-suggestions format "Unused lexical %s `%S'%s" "\n  " ""] 9 (#$ . 3162)])
#@20 

(fn BINDER FORM)
(defalias 'cconv--var-classification #[514 "\301B\302\211\303%\207" [cconv-var-classification alist-get nil equal] 8 (#$ . 3463)])
(byte-code "\300\301\302\303#\300\207" [function-put cconv--var-classification compiler-macro cconv--var-classification--inliner] 4)
#@33 

(fn INLINE--FORM BINDER FORM)
(defalias 'cconv--var-classification--inliner #[771 "\3002\301\302E\303\304\211\305\306D\2570\207" [inline--just-use alist-get cons cconv-var-classification nil function equal] 10 (#$ . 3755)])
#@319 Run `cconv-convert' on FUNCBODY, the forms of a lambda expression.
PARENTFORM is the form containing the lambda expression.  ENV is a
lexical environment (same format as for `cconv-convert'), not
including FUNARGS, the function's argument list.  Return a list
of converted forms.

(fn FUNARGS FUNCBODY ENV PARENTFORM)
(defalias 'cconv--convert-funcbody #[1028 "C\301\211\203y\211@\302\303CB\301\211\304%\211\305\267\202k\306E\242B\240\210\307\310\"B\262\266\202r\301\311\312\"\262\211;\203a\211\242\236\203SC	\242B\240\210\307\313\"B\262\266\202r\"\266\202r\"\266A\266\202\202\210\314\307\315\"\"\262\211\203\311\301A\203\224@;\204\234@\242\316>\203\251\211A\262\242B\262\202\211\317!\211\203\300\211@\211!\262A\266\202\202\256\210\320\237\321!\"\207\207" [cconv-var-classification nil #[514 "\211\242\236\205C\242B\240\207" [] 5 "\n\n(fn ENV ARG)"] alist-get equal #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:captured+mutated 28 :unused 52)) car-safe make-closure #[257 "\301\300\302\300DDCE\207" [V0 let list] 5 "\n\n(fn BODY)"] cconv--warn-unused-msg "argument" #[257 "\301\300\302#\207" [V0 macroexp--warn-wrap lexical] 5 "\n\n(fn BODY)"] mapcar #[257 "\301\300\242\302#\207" [V0 cconv-convert nil] 5 "\n\n(fn FORM)"] (interactive declare :documentation) macroexp-progn append macroexp-unprogn] 15 (#$ . 3993)])
#@1040 Return FORM with all its lambdas changed so they are closed.
ENV is a lexical environment mapping variables to the expression
used to get its value.  This is used for variables that are copied into
closures, moved into cons cells, ...
ENV is a list where each entry takes the shape either:
 (VAR . (car-safe EXP)): VAR has been moved into the car of a cons-cell, and EXP
    is an expression that evaluates to this cons-cell.
 (VAR . (internal-get-closed-var N)): VAR has been copied into the closure
    environment's Nth slot.
 (VAR . (apply-partially F ARG1 ARG2 ..)): VAR has been λ-lifted and takes
    additional arguments ARGs.
 (VAR . nil): VAR is accessed normally.  This is the same as VAR
    being absent from ENV, but an explicit nil entry is useful
    for shadowing VAR for a specific scope.
EXTEND is a list of variables which might need to be accessed even from places
where they are shadowed, because some part of ENV causes them to be used at
places where they originally did not directly appear.

(fn FORM ENV EXTEND)
(defalias 'cconv-convert #[771 "CC\303\304\305\306\307\"\242\"\"\203\310\311!\210\312\313:\203k\242\211\314>\203\243\243\211:\203{\211\242\243\304\242C\242C\211\203#\211@\304C:\204R\211C\262\202gAA\203_\315\316#\210\211A@\240\210@\2119\204u\315\317\"\266\202\320!\204\201\321!\203\212\315\322\"\266\202\323\324B\304\211\325%\211\326\267\202\272\242@\327=\203\255\242A@@\330=\204\261\310\331!\210\242A@AA	@@\232\204\302\310\332!\210	@A\242A@\211A@\333\"\205\330\nGY\266\204\203V	\211A\242A\242A@\211A@\333\"AA\304
	\334	BBB\242B\240\210\211\203?\211@\335\242\"\204\242B\240\210\211\242\236A\242\336=\2038\211>\2048\211\336EB\262A\266\202\202\210\327\330\337\242$BBD\266\210\202\310\n%\266\202\202\310\336E	\242B\240\210\340\341\242\242\242#D\266\202\202\310\242\236\203\226C	\242B\240\210\342\341\242\242\242#D\343\344\"\211\204\260\266\204\202\310\345\346#\266\204\202\310\n%\266\202\347=\203\375\242>\203\375\350\351\352\"!\353	\242#\240\210\354\n\242\"B\240\210\211D	B\262	\210DB\262\347=\203\242\240\210\242\240\210\266A\266\202\202=\210\347=\204i\211\203h\211@\211\242\242>\203a\211\242\350\351\352\"!\353\242#\240\210\354\242\"B\240\210\211DB\262\266A\266\202\202,\210\237\305\306\355#\"BB\207:\203\232\242\211\330=\203\221$\207$\207$\207\211:\203\310\211\242\211\330=\203\274\243$\207\243$\207\211\356\267\202_\243\357\305\306\360		#\"B\207\243\211:\203-\211\242\211:\203*\211\242\211\330=\203'\243\211:\203$\211\242\243\211@\242\361=\205\341\211A\262\242A@
\242
\242#\362\242%\207\207\n\207	\207\207\363\364!\207\207\243\211:\203Z\211\242\243:\205W\341@\242\242#ABBB\207$\207\243\211:\203\361\211\242\243\211:\203\346\211\242\243\211\205\210\324CB\304\211\325%\211\365=\203\232\336E\f\242B\202\256\f\242\236\203\253C\f\242B\202\256\242\366=\205\271\343\344\"\341\242\242#\367	\203\322\345\346#\202\323\305\306\370%\n\"BBB\207$\207$\207\243\211:\203\211\242\243\371\341\n\242\n\242#\372\362\304
\242$F\207$\207\243\211\373G\374\"\374U\2036	\207\304\203\245\211A\262\242\211	\242\236A\206K\211\341\211A\262\242\242\242#9\203e\375E\202\236:\203\235\242\211\336=\203\227\243\211:\203\221\211\242\243\211\204\213\376E\266\202\202\222\266\202\202\222\262\202\230\262\202\236\211B\266\204\2027\211A\203\257\377\237B\207\211@\207\243\211:\203E\211\242\243\242\236A\201@:\2038\242\211\334=\203+\243\211:\203\211\243\211:\203A@=\204\361\310\201A!\210\333\305\306\201B\"\"\305\306\201C#\"\"BB\207

\n\n%\207\f\f\n		%\207	%\207\211\n\n%\207$\207\243\201D\305\201E\"B\207\207\243$\207\242\236A\206v\207" [cconv-var-classification cconv-freevars-alist cconv-liftwhen delq nil mapcar make-closure #[257 "\211A@\301=\205\302AAA\300\242\"\207" [V0 apply-partially cconv--set-diff] 4 "\n\n(fn MAPPING)"] cl--assertion-failed (not (delq nil (mapcar (lambda (mapping) (if (eq (cadr mapping) 'apply-partially) (cconv--set-diff (cdr (cddr mapping)) extend))) env))) #[1028 "\300\301\302D\242\242#\303\304\305#\"BB\207" [funcall cconv-convert function mapcar make-closure #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn FORM)"]] 11 "\n\n(fn ENV EXTEND FUN ARGS)"] #[1028 "\300\301\302#\"B\207" [mapcar make-closure #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn FORM)"]] 10 "\n\n(fn ENV EXTEND FUNC FORMS)"] (let let*) byte-compile-warn "Malformed `%S' binding: %S" "attempt to let-bind nonvariable `%S'" booleanp keywordp "attempt to let-bind constant `%S'" #[1285 "\211\242\236\203C\242B\240\210\300\242\242\242#\207" [cconv-convert] 9 "\n\n(fn ENV EXTEND NEW-ENV VALUE VAR)"] alist-get equal #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:lambda-candidate 155 :captured+mutated 359 :unused 388)) function lambda (and (eq (car value) 'function) (eq (car (cadr value)) 'lambda)) (equal (cddr (cadr value)) (caar cconv-freevars-alist)) append apply-partially memql car-safe cconv--convert-funcbody list cconv-convert ignore cconv--warn-unused-msg "variable" macroexp--warn-wrap lexical let* make-symbol format "closed-%s" cconv--remap-llv remq #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn FORM)"] #s(hash-table size 13 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cond 718 function 734 internal-make-closure 816 quote 820 defvar 823 defconst 823 condition-case 867 unwind-protect 1018 setq 1061 apply 1202 funcall 1202 interactive 1358 declare 1372)) cond #[257 "\302\303\304\300\301#\"\207" [V0 V1 mapcar make-closure #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn FORM)"]] 6 "\n\n(fn BRANCH)"] :documentation cconv--convert-function byte-compile-report-error "Internal error in compiler: cconv called twice?" :captured+mutated :unused condition-case #[257 "\211@\304\305\306\300\303#A\"\302\307=\204\211\202 \310\301\311\301DDCBBC\262B\207" [V0 V1 V2 V3 mapcar make-closure #[257 "\302\301\300\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn FORM)"] :captured+mutated let list] 7 "\n\n(fn HANDLER)"] unwind-protect :fun-body logand 1 setq setcar progn #[1285 "\300\301\302#B\"B\207" [mapcar make-closure #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn ARG)"]] 11 "\n\n(fn ENV EXTEND CALLSYM FUN ARGS)"] (eq (cadr mapping) fun) #[257 "\211\300\242\236A\206	\211\211:\203$\211\242\211\301=\203\"\243\211:\203 \211\242\207\207\207\207" [V0 car-safe] 5 "\n\n(fn FV)"] #[257 "\302\300\242\301\242#\207" [V0 V1 cconv-convert] 5 "\n\n(fn ARG)"] interactive #[257 "\300\301\211#\207" [cconv-convert nil] 5 "\n\n(fn FORM)"]] 34 (#$ . 5445)])
#@206 Analyze the use of a variable.
VARDATA should be (BINDER READ MUTATED CAPTURED CALLED).
VARKIND is the name of the kind of variable.
FORM is the parent form that binds this var.

(fn VARDATA FORM VARKIND)
(defalias 'cconv--analyze-use #[771 ":\203W\242\243\211:\203U\211\242\211\204\312\243\211:\203\305\211\242\211\204\223\243\211:\203\216\211\242\211\204c\243\211:\203^\211\242\211\203]:\203]\242\301!\302H\303=\203\\\243\211\204[\304\305
#\210\210\210\210\266\202W:\203\215\242\301!\302H\303=\203\214\243\211:\203\213\211\243\211\204\212\304\305\f#\210\210\210\210\210\266\202W:\203\304\242\301!\302H\303=\203\303\243\211:\203\302\211\243\211:\203\301\211\243\211\204\300\304\305#\210\210\210\210\210\210\266\202W:\203T\242\301!\302H\303=\203\243\211:\203\211\243\211:\203\211\243\211:\203\377\211\243\211\204\376\304\305\n#\210\210\210\210\266\202W\306@\262\211\307>\203R\243\211\204Q\310=\203Q\243\211:\203P\211\242\211\204O\243\211:\203N\211\243\211:\203M\211\243\211\204L\311!\203L\304\312	\"\210\210\210\210\210\210\210\266\210\266\313:\205\222\242\243\211:\205\220\211\242\211\204O\243\211:\205J\211\242\243\211:\205H\211\242\243\211:\205F\211\242\211\204\242\243\211?\205\235	
B\314BB\211\262\202D\310=\203\301\310=\205D\243\211?\205\274\n
\"\262\202D:\205D\243\211:\205B\211\242\211:\205@\211\242\211\315=\205>\243\211:\205<\211\242\211:\205:\211\242\211\316=\2058\243\211?\2056\243\211\203\306\2024\f\203\306\2024\n\203\306\2024\310=\2054	\243\211?\2052B\317BB\211\262\262\262\262\262\262\262\262\262\262\266\202\266\202\262\202\216\243\211:\205\214\211\242\211\310=\205\212\243\211:\205\210\211\242\211\310=\205\206\243\211:\205\204\211\243\211?\205\202	\f\n\"\262\262\262\262\262\262\262\266\202\207" [cconv-var-classification symbol-name 0 95 byte-compile-warn "%s `%S' not left unused" nil (let let*) t intern-soft "Variable `%S' left uninitialized" #[514 "\211B\301BB\211\207" [cconv-var-classification :captured+mutated] 4 "\n\n(fn FORM BINDER)"] :unused function lambda :lambda-candidate] 24 (#$ . 12593)])
#@33 

(fn ARGS BODY ENV PARENTFORM)
(defalias 'cconv--analyze-function #[1028 "\303C\304\305\"\211	B\211\203\\\211@\306!\203$\307\310\"\210\202U\311!\312H\313=\204U\211\303\211\211\211\257\314\n\"\203A\n\210\202E\nBCABB\262\211B\262\210A\266\202\202\210\211\203q\211@\315\"\210A\266\202\202_\210\211\203\207\211@\316\317#\210A\266\202\202s\210\205\353\203\232@@@@=\204\236\320\321!\210\303@A@A\203\301\211@\203\266\322\240\210\322\262A\262\211A\262\202\246\203\335@@AB\241\266\323	@\233\211\322\240\266A\262	A\262\266\202\210)\207" [byte-compile-bound-variables cconv-freevars-alist byte-compile-lexical-variables nil mapcar #[257 "\211@\300\211\211\211\257\207" [nil] 6 "\n\n(fn VDATA)"] byte-compile-not-lexical-var-p byte-compile-warn "Lexical argument shadows the dynamic variable %S" symbol-name 0 38 memql cconv-analyze-form cconv--analyze-use "argument" cl--assertion-failed (and envcopy (eq (caar env) (caar envcopy))) t 3] 15 (#$ . 14826)])
#@463 Find mutated variables and variables captured by closure.
Analyze lambdas if they are suitable for lambda lifting.
- FORM is a piece of Elisp code after macroexpansion.
- ENV is an alist mapping each enclosing lexical variable to its info.
   I.e. each element has the form (VAR . (READ MUTATED CAPTURED CALLED)).
This function does not return anything but instead fills the
`cconv-var-classification' variable and updates the data stored in ENV.

(fn FORM ENV)
(defalias 'cconv-analyze-form #[514 "\211C\302\303\304:\2030\242\211\305\267\202i\243\211:\203\304\211\242\243\242\306\211\306\211\203\224\211@\211:\204A\211\262\211C\262\306\262\202]\211@\262\211A@\262\307\f\310=\203Y\242\202[\"\210\311!\204\215\312	\"\203o	\210\202s	B\306\211\211\211\257ABB\262\242B\240\266A\266\202\202)\210\211\203\252\211@\307\242\"\210A\266\202\202\226\210\211\205\300\211@\313\314#\210A\266\202\202\254\262)\207:\203\340\242\211\315=\203\330	\"\207	#\207#\207\243\211:\205;\211\242\211:\2059\211\242\211\315=\2057\243\211:\2055\211\242\243\243\211?\2053\211@\242\316=\203(\307\211A\262\242A@\242\"\210\317\242$\262\266\203\262\262\262\207\243\211\211\205h\211@\242\236\211\203V\211AA\211\320\240\266\210\307A@\242\"\210\211AA\262\202@\207\211:\203\210\211\242\211\315=\203}\"\207\243	#\207\211\321\267\202%\243\211\211\205\265\211@\211\211\203\255\211@\307\242\"\210A\266\202\202\231\210A\266\202\202\222\207\306\207\243\211:\2039\211\242\243\211:\2031\211\242\243\307\242\"\210\203\3509\203\350\311!\203\350\322\323\"\210\306\211\211\211\257\203\374\n\f\242B\240\210\211\203!\211@\211A\211\203\211@\307\242\"\210A\266\202\202\210A\266\202\202\375\210\2050\313CAB\314#\207\n	#\207#\207\243\211:\203]\211\242\243\307	\242\"\210\317\306\n\242$\207#\207\243\211:\203\221\211\242\243\211\204{B\211\207\211:\203\211\211\242	#\207\n	#\207#\207\243\211:\203\273\211\242\243\211:\203\263\211\242	#\207\n	#\207#\207\243\211:\203\211\242\2439\205\331\242\236\211\203\350\324\233\211\320\240\266\202\360\307\n\242\"\266\211\211\205\211@\307\242\"\210A\266\202\202\361\207#\207\243\211\211\205$\211@\307\306\"\210A\266\202\202\207\243#\2079\205F\242\236\211\205D\211A\211\320\240\262\262\207" [byte-compile-bound-variables byte-compile-lexical-variables #[514 "\300\301@A@\"\210\302@DAB\211\205\"\211@\303\242\"\210A\266\202\202\207" [byte-compile-warn "Use of deprecated ((lambda %s ...) ...) form" function cconv-analyze-form] 7 "\n\n(fn FORM ENV)"] #[771 "\211<\204\f\300\301\302D\"\210\211\211\205 \211@\303\242\"\210A\266\202\202
\207" [signal wrong-type-argument proper-list-p cconv-analyze-form] 8 "\n\n(fn FORM ENV BODY-FORMS)"] #[771 "B\301\242\"\207" [byte-compile-bound-variables cconv-analyze-form] 6 "\n\n(fn ENV VAR VALUE)"] #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (let 18 let* 18 function 232 setq 316)) nil cconv-analyze-form let* byte-compile-not-lexical-var-p memql cconv--analyze-use "variable" lambda :documentation cconv--analyze-function t #s(hash-table size 9 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cond 398 quote 438 condition-case 440 unwind-protect 577 defvar 613 defconst 665 apply 707 funcall 707 interactive 782)) byte-compile-warn "Lexical variable shadows the dynamic variable %S" 4] 22 (#$ . 15862)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307!\207" [defalias cconv-analyse-form cconv-analyze-form nil make-obsolete "25.1" provide cconv] 4)

Youez - 2016 - github.com/yon3zu
LinuXploit