std/os/signal: detect macOS for BSD-style signal numbers

ober

5f79a9520be7ceda17db9974d082d52177db9404

diff --git a/lib/std/os/signal.sls b/lib/std/os/signal.sls
index b4c6aac..e2c5525 100644
--- a/lib/std/os/signal.sls
+++ b/lib/std/os/signal.sls
@@ -45,27 +45,30 @@
   (define SIGPROF  27)
   (define SIGWINCH 28)
 
-  ;; Signal numbers that differ between Linux and FreeBSD.
-  ;; Detect platform at load time via uname.
-  (define %freebsd?
+  ;; Signal numbers that differ between Linux and the BSDs (FreeBSD, macOS).
+  ;; FreeBSD and macOS share the same numeric layout; Linux differs.
+  ;; Detect platform at load time via Chez machine-type / kernel file.
+  (define %bsd?
     (or (guard (e [#t #f])
-          (equal? (machine-type) 'ta6fb))
+          (memq (machine-type)
+            '(ta6fb a6fb ti3fb i3fb tarm64fb arm64fb
+              ta6osx a6osx tarm64osx arm64osx ti3osx i3osx)))
+        ;; Fallback for static builds: kernel file paths
         (guard (e [#t #f])
-          (memq (machine-type) '(ta6fb a6fb ti3fb i3fb tarm64fb arm64fb)))
-        ;; Fallback for static builds: check for FreeBSD kernel file
+          (file-exists? "/boot/kernel/kernel"))    ;; FreeBSD
         (guard (e [#t #f])
-          (file-exists? "/boot/kernel/kernel"))
+          (file-exists? "/System/Library/CoreServices/SystemVersion.plist")) ;; macOS
         #f))
 
-  (define SIGUSR1  (if %freebsd? 30 10))
-  (define SIGUSR2  (if %freebsd? 31 12))
-  (define SIGSYS   (if %freebsd? 12 31))
-  (define SIGURG   (if %freebsd? 16 23))
-  (define SIGSTOP  (if %freebsd? 17 19))
-  (define SIGTSTP  (if %freebsd? 18 20))
-  (define SIGCONT  (if %freebsd? 19 18))
-  (define SIGCHLD  (if %freebsd? 20 17))
-  (define SIGIO    (if %freebsd? 23 29))
+  (define SIGUSR1  (if %bsd? 30 10))
+  (define SIGUSR2  (if %bsd? 31 12))
+  (define SIGSYS   (if %bsd? 12 31))
+  (define SIGURG   (if %bsd? 16 23))
+  (define SIGSTOP  (if %bsd? 17 19))
+  (define SIGTSTP  (if %bsd? 18 20))
+  (define SIGCONT  (if %bsd? 19 18))
+  (define SIGCHLD  (if %bsd? 20 17))
+  (define SIGIO    (if %bsd? 23 29))
 
   (define signal-names
     `((1 . "SIGHUP") (2 . "SIGINT") (3 . "SIGQUIT") (4 . "SIGILL")