commit 43a6b3f52315ed1c9e339010ef7aa64c8bf0dc64 (HEAD, refs/remotes/origin/master) Author: Stefan Monnier Date: Mon Feb 20 17:11:08 2023 -0500 * list/emacs-lisp/cconv.el (cconv-make-interpreted-closure): Tweak docstring diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 940a1045625..ad9d8ab0a51 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -463,7 +463,7 @@ cconv-convert ; first element is lambda expression (`(,(and `(lambda . ,_) fun) . ,args) ;; FIXME: it's silly to create a closure just to call it. - ;; Running byte-optimize-form earlier will resolve this. + ;; Running byte-optimize-form earlier would resolve this. `(funcall ,(cconv-convert `(function ,fun) env extend) ,@(mapcar (lambda (form) @@ -878,14 +878,14 @@ cconv-fv (cons fvs dyns))))) (defun cconv-make-interpreted-closure (fun env) - ;; FIXME: I don't know what "This function is evaluated both at - ;; compile time and run time" is intended to mean here. "Make a closure for the interpreter. -This function is evaluated both at compile time and run time. -FUN, the closure's function, must be a lambda form. -ENV, the closure's environment, is a mixture of lexical bindings of the form -\(SYMBOL . VALUE) and symbols which indicate dynamic bindings of those -symbols." +This is intended to be called at runtime by the ELisp interpreter (when +the code has not been compiled). +FUN is the closure's source code, must be a lambda form. +ENV is the runtime representation of the lexical environment, +i.e. a list whose elements can be either plain symbols (which indicate +that this symbol should use dynamic scoping) or pairs (SYMBOL . VALUE) +for the lexical bindings." (cl-assert (eq (car-safe fun) 'lambda)) (let ((lexvars (delq nil (mapcar #'car-safe env)))) (if (or (null lexvars) commit 74463909cbb8d297da2d731f5cac15effb857f4e Author: Mattias EngdegÄrd Date: Mon Feb 20 12:58:48 2023 +0100 * lisp/emacs-lisp/macroexp.el (mapcan): Set funarg-positions. diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index c909ffb6933..c57a27069d6 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -496,7 +496,7 @@ macroexp--expand-all ;; Record which arguments expect functions, so we can warn when those ;; are accidentally quoted with ' rather than with #' (dolist (f '( funcall apply mapcar mapatoms mapconcat mapc cl-mapcar maphash - map-char-table map-keymap map-keymap-internal)) + mapcan map-char-table map-keymap map-keymap-internal)) (put f 'funarg-positions '(1))) (dolist (f '( add-hook remove-hook advice-remove advice--remove-function defalias fset global-set-key run-after-idle-timeout commit 4eefadad0670ad1c3da2505d734e528d54c76bef Author: Mattias EngdegÄrd Date: Mon Feb 20 12:55:09 2023 +0100 Repair mistake in a previous edmacro-sanitize-string change * lisp/edmacro.el (edmacro-sanitize-for-string): This condition should not have been 'repaired' but removed altogether. Do so now, fixing bug#61647. Reported by Eduardo Ochs. diff --git a/lisp/edmacro.el b/lisp/edmacro.el index c995e2f89d7..8734f7cbebe 100644 --- a/lisp/edmacro.el +++ b/lisp/edmacro.el @@ -626,8 +626,7 @@ edmacro-sanitize-for-string This function assumes that the events can be stored in a string." (setq seq (copy-sequence seq)) (cl-loop for i below (length seq) do - (when (/= (logand (aref seq i) 128) 0) - (setf (aref seq i) (logand (aref seq i) 127)))) + (setf (aref seq i) (logand (aref seq i) 127))) seq) ;; These are needed in a --without-x build.