1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-08 23:40:24 -08:00

Fix the bootstrap differently, so zerop can be where it belongs

Suggested by Robert Pluim <rpluim@gmail.com>.

* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Avoid cadr/cddr.
* lisp/subr.el (zerop): Un-revert 2018-07-10T23:08:58-07:00!contovob@tcd.ie.
This commit is contained in:
Stefan Monnier 2018-07-12 10:29:28 -04:00
parent 84e5986902
commit aeefbc41be
2 changed files with 13 additions and 13 deletions

View file

@ -116,7 +116,10 @@ If `error-free', drop calls even if `byte-compile-delete-errors' is nil.")
(if (not (eq (car-safe compiler-function) 'lambda))
`(eval-and-compile
(function-put ',f 'compiler-macro #',compiler-function))
(let ((cfname (intern (concat (symbol-name f) "--anon-cmacro"))))
(let ((cfname (intern (concat (symbol-name f) "--anon-cmacro")))
;; Avoid cadr/cddr so we can use `compiler-macro' before
;; defining cadr/cddr.
(data (cdr compiler-function)))
`(progn
(eval-and-compile
(function-put ',f 'compiler-macro #',cfname))
@ -125,8 +128,8 @@ If `error-free', drop calls even if `byte-compile-delete-errors' is nil.")
;; if needed.
:autoload-end
(eval-and-compile
(defun ,cfname (,@(cadr compiler-function) ,@args)
,@(cddr compiler-function))))))))
(defun ,cfname (,@(car data) ,@args)
,@(cdr data))))))))
(list 'doc-string
#'(lambda (f _args pos)
(list 'function-put (list 'quote f)