Subject: Re: bug#63288: 30.0.50; Emacs 30 packages fail to build with native comp on some machines

From: Stefan Monnier <[email-masked]>
Date: Sat, 15 Feb 2025 23:33:26 -0500

> diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
> index caaffcf19be..42830ca9f7a 100644
> --- a/lisp/emacs-lisp/cl-macs.el
> +++ b/lisp/emacs-lisp/cl-macs.el
> @@ -2701,7 +2701,7 @@ cl--do-proclaim
>  	 (let ((speed (assq (nth 1 (assq 'speed (cdr spec)))
>  			    '((0 nil) (1 t) (2 t) (3 t))))
>  	       (safety (assq (nth 1 (assq 'safety (cdr spec)))
> -			     '((0 t) (1 t) (2 t) (3 nil)))))
> +			     '((0 t) (1 nil) (2 nil) (3 nil)))))
>  	   (if speed (setq cl--optimize-speed (car speed)
>  			   byte-optimize (nth 1 speed)))
>  	   (if safety (setq cl--optimize-safety (car safety)

LGTM.  I'd also deprecate this machinery.
For the case at hand, I think a better option is to add keyword
arguments to `cl-defstruct` to control whether accessors need to check
the type of their arg.

        Stefan