Subject: [Wishlist/PATCH] Use special-mode for *Native-compile-log*, *Async-native-compile-log*

From: No Wayman <[email-masked]>
Date: Mon, 03 Jul 2023 20:13:23 -0400

Unless there is good reason not to use special-mode, it'd be nice 
to have the typical special-mode bindings (quit-window especially) 
in these buffers.

Rough draft patch attached. 

>From d2aad9faf904bfd197e0dd30a178f1bf05821c0c Mon Sep 17 00:00:00 2001
From: Nicholas Vollmer <[email-masked]>
Date: Mon, 3 Jul 2023 20:23:00 -0400
Subject: [PATCH] * comp.el: use special-mode for log buffers

(comp-log-to-buffer): ensure comp-log-buffer in special-mode
(comp-run-async-workers): ensure comp-async-buffer in special-mode
---
 lisp/emacs-lisp/comp.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 22fb08e4688..20aee2006fa 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1133,7 +1133,7 @@ comp-log-to-buffer
          (log-buffer
              (or (get-buffer comp-log-buffer-name)
                  (with-current-buffer (get-buffer-create comp-log-buffer-name)
-                   (setf buffer-read-only t)
+                   (unless (derived-mode-p 'special-mode) (special-mode))
                    (current-buffer))))
          (log-window (get-buffer-window log-buffer))
          (inhibit-read-only t)
@@ -4085,7 +4085,8 @@ comp-run-async-workers
                              :buffer (with-current-buffer
                                          (get-buffer-create
                                           comp-async-buffer-name)
-                                       (setf buffer-read-only t)
+                                       (unless (derived-mode-p 'special-mode)
+                                         (special-mode))
 			               (current-buffer))
                              :command (list
                                        (expand-file-name invocation-name
@@ -4119,6 +4120,7 @@ comp-run-async-workers
     (run-hooks 'native-comp-async-all-done-hook)
     (with-current-buffer (get-buffer-create comp-async-buffer-name)
       (save-excursion
+        (unless (derived-mode-p 'special-mode) (special-mode))
         (let ((inhibit-read-only t))
           (goto-char (point-max))
           (insert "Compilation finished.\n"))))
-- 
2.41.0