1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 02:31:03 -08:00

* lisp/vc/vc-mtn.el:

* lisp/vc/vc-hg.el:
* lisp/vc/vc-git.el:
* lisp/vc/vc-dir.el:
* lisp/vc/vc-cvs.el:
* lisp/vc/vc-bzr.el:
* lisp/vc/vc-arch.el:
* lisp/vc/vc.el: Replace lexical-let by lexical-binding.
* lisp/minibuffer.el (lazy-completion-table): Avoid ((λ ...) ...).
* lisp/emacs-lisp/cl-macs.el (lexical-let): Fix use in lexical-binding.
* lisp/emacs-lisp/cconv.el (cconv-analyse-form): Warn use of ((λ ...) ...).
This commit is contained in:
Stefan Monnier 2012-04-25 23:18:47 -04:00
parent f08ae1c9b5
commit 0d42eb3e96
14 changed files with 314 additions and 324 deletions

View file

@ -639,7 +639,9 @@ and updates the data stored in ENV."
(cconv-analyse-form (cadr forms) env)
(setq forms (cddr forms))))
(`((lambda . ,_) . ,_) ; first element is lambda expression
(`((lambda . ,_) . ,_) ; First element is lambda expression.
(byte-compile-log-warning
"Use of deprecated ((lambda ...) ...) form" t :warning)
(dolist (exp `((function ,(car form)) . ,(cdr form)))
(cconv-analyse-form exp env)))

View file

@ -286,7 +286,7 @@ This also does some trivial optimizations to make the form prettier.
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
;;;;;; do* do loop return-from return block etypecase typecase ecase
;;;;;; case load-time-value eval-when destructuring-bind function*
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "91b45885535a73dd8015973cb8c988e1")
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "abb2e33c6f61539d69ddbe7c4046261b")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\

View file

@ -1483,18 +1483,24 @@ lexical closures as in Common Lisp.
(cons 'progn body)
(nconc (mapcar (function (lambda (x)
(list (symbol-name (car x))
(list 'symbol-value (caddr x))
(list 'symbol-value (caddr x))
t))) vars)
(list '(defun . cl-defun-expander))
cl-macro-environment))))
(if (not (get (car (last cl-closure-vars)) 'used))
(list 'let (mapcar (function (lambda (x)
(list (caddr x) (cadr x)))) vars)
(sublis (mapcar (function (lambda (x)
(cons (caddr x)
(list 'quote (caddr x)))))
vars)
ebody))
;; Turn (let ((foo (gensym))) (set foo <val>) ...(symbol-value foo)...)
;; into (let ((foo <val>)) ...(symbol-value 'foo)...).
;; This is good because it's more efficient but it only works with
;; dynamic scoping, since with lexical scoping we'd need
;; (let ((foo <val>)) ...foo...).
`(progn
,@(mapcar (lambda (x) `(defvar ,(caddr x))) vars)
(let ,(mapcar (lambda (x) (list (caddr x) (cadr x))) vars)
,(sublis (mapcar (lambda (x)
(cons (caddr x)
(list 'quote (caddr x))))
vars)
ebody)))
(list 'let (mapcar (function (lambda (x)
(list (caddr x)
(list 'make-symbol