From 8a550a04c908730b10f363b11655a529368ee59c Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Tue, 5 Nov 2013 22:28:49 -0500
Subject: [PATCH] Slightly better GCL support, thanks to Camm Maguire. Still
 not there, though.

---
 test/script-support.lisp     | 4 ++--
 test/test-run-program.script | 2 +-
 uiop/common-lisp.lisp        | 2 +-
 uiop/pathname.lisp           | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/test/script-support.lisp b/test/script-support.lisp
index de9f46bb..48792cbb 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -33,9 +33,9 @@ Some constraints:
 
 (in-package :asdf-test)
 
-(declaim (optimize (speed 2) (safety 3) #-(or allegro gcl genera) (debug 3)
+(declaim (optimize (speed 2) (safety #-gcl 3 #+gcl 0) #-(or allegro gcl genera) (debug 3)
                    #+(or cmu scl) (c::brevity 2)))
-(proclaim '(optimize (speed 2) (safety 3) #-(or allegro gcl genera) (debug 3)
+(proclaim '(optimize (speed 2) (safety #-gcl 3 #+gcl 0) #-(or allegro gcl genera) (debug 3)
                      #+(or cmu scl) (c::brevity 2)))
 
 (defvar *trace-symbols*
diff --git a/test/test-run-program.script b/test/test-run-program.script
index 48064fd7..444dbb65 100644
--- a/test/test-run-program.script
+++ b/test/test-run-program.script
@@ -1,5 +1,5 @@
 ;; -*- Lisp -*-
-(declaim (optimize (debug 3) (safety 3)))
+(declaim (optimize (debug 3) (safety #-gcl 3 #+gcl 0)))
 
 ;; On Windows, normalize away CRLF into jut the unixy LF.
 (defun dewindowize (x)
diff --git a/uiop/common-lisp.lisp b/uiop/common-lisp.lisp
index 96a17f34..ac0939c4 100644
--- a/uiop/common-lisp.lisp
+++ b/uiop/common-lisp.lisp
@@ -172,7 +172,7 @@ FROB them, that is to say, remove them if FROB is NIL,
 replace by FROB if FROB is a STRING, or if FROB is a FUNCTION,
 call FROB with the match and a function that emits a string in the output.
 Return a string made of the parts not omitted or emitted by FROB."
-    (declare (optimize (speed 0) (safety 3) (debug 3)))
+    (declare (optimize (speed 0) (safety #-gcl 3 #+gcl 0) (debug 3)))
     (let ((length (length string)) (stream nil))
       (labels ((emit-string (x &optional (start 0) (end (length x)))
                  (when (< start end)
diff --git a/uiop/pathname.lisp b/uiop/pathname.lisp
index 062b33b0..2dfa8c16 100644
--- a/uiop/pathname.lisp
+++ b/uiop/pathname.lisp
@@ -102,8 +102,8 @@ by the underlying implementation's MAKE-PATHNAME and other primitives"
   ;; See CLHS make-pathname and 19.2.2.2.3.
   ;; This will be :unspecific if supported, or NIL if not.
   (defparameter *unspecific-pathname-type*
-    #+(or abcl allegro clozure cmu gcl genera lispworks mkcl sbcl scl xcl) :unspecific
-    #+(or clisp ecl #|These haven't been tested:|# cormanlisp mcl) nil
+    #+(or abcl allegro clozure cmu genera lispworks mkcl sbcl scl xcl) :unspecific
+    #+(or clisp ecl gcl #|These haven't been tested:|# cormanlisp mcl) nil
     "Unspecific type component to use with the underlying implementation's MAKE-PATHNAME")
 
   (defun make-pathname* (&rest keys &key (directory nil #+gcl2.6 directoryp)
-- 
GitLab