0.6.10.13:
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 8 Feb 2001 15:08:37 +0000 (15:08 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 8 Feb 2001 15:08:37 +0000 (15:08 +0000)
fixed problems reported by Douglas Brebner 2000-01-01..
make.sh and friends now use foo/bar instead of foo/bar/ to
specify directories, since foo/bar/ fails on NetBSD.
(SETF ALIEN:EXTERN-ALIEN) works (instead of dying with
undefined function SB-KERNEL:%SET-SAP-REF-32).

BUGS
clean.sh
src/code/target-sap.lisp
src/cold/shared.lisp
src/cold/warm.lisp
src/pcl/env.lisp
stems-and-flags.lisp-expr
tests/alien.impure.lisp [new file with mode: 0644]
tests/pathnames.impure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index ddd6bf7..68cbee7 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -411,6 +411,9 @@ returning an array as first value always.
   so that (TYPEP (MAKE-ARRAY 3) '(VECTOR SOMETHING-NOT-DEFINED-YET))
   returns (VALUES T T). Probably it should be an error instead,
   complaining that the type SOMETHING-NOT-DEFINED-YET is not defined.
+  Or perhaps UPGRADED-ARRAY-ELEMENT-TYPE should just fail when a type
+  isn't defined yet. (What if the definition of
+  SOMETHING-NOT-DEFINED-YET turns out to be SINGLE-FLOAT?) 
 
 41:
   TYPEP of VALUES types is sometimes implemented very inefficiently, e.g. in 
index b72ce64..4c055de 100755 (executable)
--- a/clean.sh
+++ b/clean.sh
 # this script (including "gmake clean" in the src/runtime directory)
 # several times in a row without failure.. so we leave the output/
 # directory in place.)
-rm -rf obj/* output/* doc/user-manual/ \
-  doc/user-manual.junk/ doc/DBTOHTML_OUTPUT_DIR*
-# (The doc/user-manual.junk/ and doc/DBTOHTML_OUTPUT_DIR* directories
-# are created when the Cygnus db2html script when it formats the the
+rm -rf obj/* output/* doc/user-manual \
+  doc/user-manual.junk doc/DBTOHTML_OUTPUT_DIR*
+# (The doc/user-manual.junk and doc/DBTOHTML_OUTPUT_DIR* directories
+# are created by the Cygnus db2html script when it formats the the
 # user manual, and since this db2html script is the one which is
 # currently used to format the manual for the standard binary
 # distribution, we automatically clean up after it here in the 
index 56f0789..b63c33d 100644 (file)
 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
 ;;;; files for more information.
 
-(in-package "SB!SYS")
-;;; FIXME: Shouldn't these be IN-PACKAGE SB!KERNEL instead? (They're
-;;; not dependent on the OS, only on the CPU architecture.)
+(in-package "SB!KERNEL")
 \f
 ;;;; primitive SAP operations
 
+;;; Return T iff the SAP X points to a smaller address then the SAP Y.
 (defun sap< (x y)
-  #!+sb-doc
-  "Return T iff the SAP X points to a smaller address then the SAP Y."
   (declare (type system-area-pointer x y))
   (sap< x y))
 
+;;; Return T iff the SAP X points to a smaller or the same address as
+;;; the SAP Y.
 (defun sap<= (x y)
-  #!+sb-doc
-  "Return T iff the SAP X points to a smaller or the same address as
-   the SAP Y."
   (declare (type system-area-pointer x y))
   (sap<= x y))
 
+;;; Return T iff the SAP X points to the same address as the SAP Y.
 (defun sap= (x y)
-  #!+sb-doc
-  "Return T iff the SAP X points to the same address as the SAP Y."
   (declare (type system-area-pointer x y))
   (sap= x y))
 
+;;; Return T iff the SAP X points to a larger or the same address as
+;;; the SAP Y.
 (defun sap>= (x y)
-  #!+sb-doc
-  "Return T iff the SAP X points to a larger or the same address as
-   the SAP Y."
   (declare (type system-area-pointer x y))
   (sap>= x y))
 
+;;; Return T iff the SAP X points to a larger address then the SAP Y.
 (defun sap> (x y)
-  #!+sb-doc
-  "Return T iff the SAP X points to a larger address then the SAP Y."
   (declare (type system-area-pointer x y))
   (sap> x y))
 
+;;; Return a new SAP, OFFSET bytes from SAP.
 (defun sap+ (sap offset)
-  #!+sb-doc
-  "Return a new sap OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap+ sap offset))
 
+;;; Return the byte offset between SAP1 and SAP2.
 (defun sap- (sap1 sap2)
-  #!+sb-doc
-  "Return the byte offset between SAP1 and SAP2."
   (declare (type system-area-pointer sap1 sap2))
   (sap- sap1 sap2))
 
+;;; Convert SAP into an integer.
 (defun sap-int (sap)
-  #!+sb-doc
-  "Converts a System Area Pointer into an integer."
   (declare (type system-area-pointer sap))
   (sap-int sap))
 
+;;; Convert an integer into a SAP.
 (defun int-sap (int)
-  #!+sb-doc
-  "Converts an integer into a System Area Pointer."
   (declare (type sap-int-type int))
   (int-sap int))
 
+;;; Return the 8-bit byte at OFFSET bytes from SAP.
 (defun sap-ref-8 (sap offset)
-  #!+sb-doc
-  "Returns the 8-bit byte at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-8 sap offset))
 
+;;; Return the 16-bit word at OFFSET bytes from SAP.
 (defun sap-ref-16 (sap offset)
-  #!+sb-doc
-  "Returns the 16-bit word at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-16 sap offset))
 
+;;; Returns the 32-bit dualword at OFFSET bytes from SAP.
 (defun sap-ref-32 (sap offset)
-  #!+sb-doc
-  "Returns the 32-bit dualword at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-32 sap offset))
 
+;;; Return the 64-bit quadword at OFFSET bytes from SAP.
 #!+alpha
 (defun sap-ref-64 (sap offset)
-  #!+sb-doc
-  "Returns the 64-bit quadword at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-64 sap offset))
 
+;;; Return the 32-bit SAP at OFFSET bytes from SAP.
 (defun sap-ref-sap (sap offset)
-  #!+sb-doc
-  "Returns the 32-bit system-area-pointer at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-sap sap offset))
 
+;;; Return the 32-bit SINGLE-FLOAT at OFFSET bytes from SAP.
 (defun sap-ref-single (sap offset)
-  #!+sb-doc
-  "Returns the 32-bit single-float at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-single sap offset))
 
+;;; Return the 64-bit DOUBLE-FLOAT at OFFSET bytes from SAP.
 (defun sap-ref-double (sap offset)
-  #!+sb-doc
-  "Returns the 64-bit double-float at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-double sap offset))
 
+;;; Return the LONG-FLOAT at OFFSET bytes from SAP.
 #!+(or x86 long-float)
 (defun sap-ref-long (sap offset)
-  #!+sb-doc
-  "Returns the long-float at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (sap-ref-long sap offset))
 
+;;; Return the signed 8-bit byte at OFFSET bytes from SAP.
 (defun signed-sap-ref-8 (sap offset)
-  #!+sb-doc
-  "Returns the signed 8-bit byte at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (signed-sap-ref-8 sap offset))
 
+;;; Return the signed 16-bit word at OFFSET bytes from SAP.
 (defun signed-sap-ref-16 (sap offset)
-  #!+sb-doc
-  "Returns the signed 16-bit word at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (signed-sap-ref-16 sap offset))
 
+;;; Return the signed 32-bit dualword at OFFSET bytes from SAP.
 (defun signed-sap-ref-32 (sap offset)
-  #!+sb-doc
-  "Returns the signed 32-bit dualword at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (signed-sap-ref-32 sap offset))
 
+;;; Return the signed 64-bit quadword at OFFSET bytes from SAP.
 #!+alpha
 (defun signed-sap-ref-64 (sap offset)
-  #!+sb-doc
-  "Returns the signed 64-bit quadword at OFFSET bytes from SAP."
   (declare (type system-area-pointer sap)
           (fixnum offset))
   (signed-sap-ref-64 sap offset))
index 790caa5..96c9700 100644 (file)
 \f
 ;;;; some tools
 
-;;; Take the file named X and make it into a file named Y. Sorta like UNIX, and
-;;; unlike Common Lisp's bare RENAME-FILE, we don't allow information
-;;; from the original filename to influence the final filename. (The reason
-;;; that it's only sorta like UNIX is that in UNIX "mv foo bar/" will work,
-;;; but the analogous (RENAME-FILE-A-LA-UNIX "foo" "bar/") should fail.)
+;;; Take the file named X and make it into a file named Y. Sorta like
+;;; UNIX, and unlike Common Lisp's bare RENAME-FILE, we don't allow
+;;; information from the original filename to influence the final
+;;; filename. (The reason that it's only sorta like UNIX is that in
+;;; UNIX "mv foo bar/" will work, but the analogous
+;;; (RENAME-FILE-A-LA-UNIX "foo" "bar/") should fail.)
 ;;;
-;;; (This is a workaround for the weird behavior of Debian CMU CL 2.4.6, where
-;;; (RENAME-FILE "dir/x" "dir/y") tries to create a file called "dir/dir/y".
-;;; If that behavior goes away, then we should be able to get rid of this
-;;; function and use plain RENAME-FILE in the COMPILE-STEM function
-;;; above. -- WHN 19990321
+;;; (This is a workaround for the weird behavior of Debian CMU CL
+;;; 2.4.6, where (RENAME-FILE "dir/x" "dir/y") tries to create a file
+;;; called "dir/dir/y". If that behavior goes away, then we should be
+;;; able to get rid of this function and use plain RENAME-FILE in the
+;;; COMPILE-STEM function above. -- WHN 19990321
 (defun rename-file-a-la-unix (x y)
   (rename-file x
               ;; (Note that the TRUENAME expression here is lifted from an
    (pathname obj)))
 (compile 'compile-stem)
 
-;;; basic tool for building other tools
-#+nil
-(defun tool-cload-stem (stem)
-  (load (compile-stem stem
-                     :src-prefix *src-prefix*
-                     :obj-prefix *host-obj-prefix*
-                     :obj-suffix *host-obj-suffix*
-                     :compile-file #'compile-file))
-  (values))
-#+nil (compile 'tool-cload-stem)
-
 ;;; other miscellaneous tools
 (load "src/cold/read-from-file.lisp")
 (load "src/cold/rename-package-carefully.lisp")
 ;;; (This function is not used by the build process, but is intended
 ;;; for interactive use when experimenting with the system. It runs
 ;;; the cross-compiler on test files with arbitrary filenames, not
-;;; necessarily in the source tree, e.g. in "/tmp/".)
+;;; necessarily in the source tree, e.g. in "/tmp".)
 (defun target-compile-file (filename)
   (funcall *in-target-compilation-mode-fn*
           (lambda ()
index b759273..ac79fe5 100644 (file)
@@ -27,7 +27,7 @@
 ;;;; do belong in cold load and will hopefully make it back there reasonably
 ;;;; soon). -- WHN 19991207
 
-(dolist (stem '(;; FIXME: The files here from outside the src/pcl/ directory
+(dolist (stem '(;; FIXME: The files here from outside the src/pcl directory
                ;; probably belong in cold load instead of warm load. They
                ;; ended up here as a quick hack to work around the
                ;; consequences of my misunderstanding how ASSEMBLE-FILE works
index 90c8f38..dec5e0b 100644 (file)
@@ -28,7 +28,7 @@
 ;;; FIXME: This stuff isn't part of the ANSI spec, and isn't even
 ;;; exported from PCL, but it looks as though it might be useful,
 ;;; so I don't want to just delete it. Perhaps it should go in
-;;; a contrib/ directory eventually?
+;;; a "contrib" directory eventually?
 
 #|
 ;;; TRACE-METHOD and UNTRACE-METHOD accept method specs as arguments. A
index 0cbd283..7e947a4 100644 (file)
@@ -31,7 +31,7 @@
 ;;; FIXME: Perhaps now that a significant number of files are built
 ;;; in warm load instead of cold load, this file should now be called
 ;;; cold-stems-and-flags.lisp-expr? Also, perhaps this file should move
-;;; into the src/cold/ directory?
+;;; into the src/cold directory?
 (
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; miscellaneous
diff --git a/tests/alien.impure.lisp b/tests/alien.impure.lisp
new file mode 100644 (file)
index 0000000..94315cd
--- /dev/null
@@ -0,0 +1,27 @@
+;;;; This file is for compiler tests which have side effects (e.g.
+;;;; executing DEFUN) but which don't need any special side-effecting
+;;;; environmental stuff (e.g. DECLAIM of particular optimization
+;;;; settings). Similar tests which *do* expect special settings may
+;;;; be in files compiler-1.impure.lisp, compiler-2.impure.lisp, etc.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;; 
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(cl:in-package :cl-user)
+
+;;; In sbcl-0.6.10, Douglas Brebner reported that (SETF EXTERN-ALIEN)
+;;; was messed up so badly that trying to execute expressions like
+;;; this signalled an error.
+(setf (sb-alien:extern-alien "gencgc_oldest_gen_to_gc" sb-alien:unsigned)
+      (sb-alien:extern-alien "gencgc_oldest_gen_to_gc" sb-alien:unsigned))
+
+;;; success
+(quit :unix-status 104)
index 51ceb80..4afbba0 100644 (file)
@@ -56,7 +56,7 @@
 ;;; handle the following case exactly (otherwise we get an error:
 ;;; "#'IDENTITY CALLED WITH 2 ARGS."
 (setf (logical-pathname-translations "demo2")
-        '(("test;**;*.*" "/tmp/demo2/test/")))
+        '(("test;**;*.*" "/tmp/demo2/test")))
 (enough-namestring "demo2:test;foo.lisp")
 
 ;;; When a pathname comes from a logical host, it should be in upper
index 105efcb..8c7d29b 100644 (file)
@@ -15,4 +15,4 @@
 ;;; versions, and a string like "0.6.5.12" is used for versions which
 ;;; aren't released but correspond only to CVS tags or snapshots.
 
-"0.6.10.12"
+"0.6.10.13"