Limit the scope of warning suppressions

* Rev 906a406a quieted all compiler notes coming from make-host-1,
  rendering moot the muffle-conditions code-deletion-note in shared.lisp,
  not to mention (satisfies unable-to-optimize-note-p) there as well.
* Prevent introduction of new occurrences of the optional+key warning
  by confining the suppression to precisely where there is old code.

We need to fix whatever is wrong with cross-typep so that make-host-2
correctly utilizes the &OPTIONAL-AND-&KEY-IN-LAMBDA-LIST condition.
This commit is contained in:
Douglas Katzman 2026-07-17 22:27:58 +00:00
parent 9c82bf8bdc
commit d3fa62156f
5 changed files with 19 additions and 13 deletions

View file

@ -1,7 +1,11 @@
(defvar *config-name* (second sb-ext:*posix-argv*))
(defvar *sbcl-local-target-features-file*
(format nil "obj/xbuild/~A/local-target-features" *config-name*))
(load "src/cold/shared.lisp")
(let ((sb-c::*handled-conditions* sb-c::*handled-conditions*))
;; As many useless notes emanate from loading shared as we have configs,
;; at (compile nil (read-from-file customizer-file-name))
(declaim (muffle-conditions compiler-note))
(load "src/cold/shared.lisp"))
(in-package "SB-COLD")
(let* ((build-dir (format nil "obj/xbuild/~A/" cl-user::*config-name*))
(objroot (format nil "~A/from-xc/" build-dir)))

View file

@ -9,10 +9,7 @@
(when val
(format t "~&target ~S = ~S~%" sym val))))))
(in-package "SB-COLD")
#+sbcl
(declaim (sb-ext:muffle-conditions
sb-ext:compiler-note
(satisfies optional+key-style-warning-p)))
#+sbcl (declaim (sb-ext:muffle-conditions sb-ext:compiler-note))
(progn
(setf *host-obj-prefix* (if (boundp 'cl-user::*sbcl-host-obj-prefix*)
(symbol-value 'cl-user::*sbcl-host-obj-prefix*)

View file

@ -922,6 +922,10 @@ unless :NAMED is also specified.")))
(defun parse-1-dsd (proto-classoid defstruct spec &optional included-slot
&aux accessor-name (always-boundp t) (safe-p t)
ctype rsd-index index)
;; suppress the "optional & key" warning in the DESTRUCTURING-BIND below
#+(and sb-xc-host host-quirks-sbcl) (declare (host-sb-ext:muffle-conditions style-warning))
;; Just like in src/code/macros we'd prefer a more fine-grained suppression
;; using SB-KERNEL:&OPTIONAL-AND-&KEY-IN-LAMBDA-LIST but it doesn't work.
#-sb-xc-host (declare (muffle-conditions style-warning))
(multiple-value-bind (name default default-p type type-p read-only ro-p)
(typecase spec

View file

@ -232,14 +232,7 @@
ext:*gc-verbose* nil))
#+sbcl
(progn
(setq cl:*compile-print* nil)
(load (find-bootstrap-file "^muffler"))
;; Let's just say we never care to see these.
(declaim (sb-ext:muffle-conditions
(satisfies unable-to-optimize-note-p)
(satisfies optional+key-style-warning-p)
sb-ext:code-deletion-note)))
(setq cl:*compile-print* nil)
;;;; special read-macros for building the cold system (and even for
;;;; building some of our tools for building the cold system)

View file

@ -300,6 +300,13 @@
;;; if the function returns T.
;;; :BEFORE-VOP
;;; - an ordinary transform placed before VOP transforms.
(locally
;; suppress the "optional & key" warning in our lambda lists
#+(and sb-xc-host host-quirks-sbcl) (declare (host-sb-ext:muffle-conditions style-warning))
;; This ought to be (MUFFLE-CONDITIONS SB-KERNEL:&OPTIONAL-AND-&KEY-IN-LAMBDA-LIST)
;; for more finesse, however, the host lisp sees this condition class name, and honestly
;; I can't explain that. We have to just say STYLE-WARNING. So it goes.
#-sb-xc-host (declare (muffle-conditions style-warning))
(defmacro deftransform (name (lambda-list &optional (arg-types '*)
(result-type '*)
&key result policy node defun-only
@ -384,6 +391,7 @@
`(%deftransform ',name ,(if policy '#'policy-test) ',type
#',transform-name ,important))
names)))))
) ; end LOCALLY
(defun make-optimizer-name (name)