0.6.9:
authorWilliam Harold Newman <william.newman@airmail.net>
Tue, 28 Nov 2000 16:48:59 +0000 (16:48 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Tue, 28 Nov 2000 16:48:59 +0000 (16:48 +0000)
MNA debug/error patch: fixes to help view SIGINT problems

TODO
src/code/debug-int.lisp
src/code/late-target-error.lisp
version.lisp-expr

diff --git a/TODO b/TODO
index e3a1964..f0e4e39 100644 (file)
--- a/TODO
+++ b/TODO
@@ -64,22 +64,6 @@ FIX:
          it always works.
 -------------------------------------------------------------------------------
 PROBLEM:
-           When cross-compiling host-byte-comp.lisp, I get bogus
-       warnings
-               caught STYLE-WARNING:
-                 undefined function: %%DEFCONSTANT
-               caught STYLE-WARNING:
-                 This function is undefined:
-                 %%DEFCONSTANT
-MUSING:
-           The best way to clean this up would be as a side-effect of
-       a larger cleanup, making all the %%DEFFOO stuff use EVAL-WHEN
-       instead of IR1 magic.
-           There's probably some way to do it with a quick local hack too.
-FIX:
-       ??
--------------------------------------------------------------------------------
-PROBLEM:
            My system of parallel build directories seems to add
        complexity without adding value.
 FIX:
@@ -122,31 +106,16 @@ PROBLEM:
        thing in itself, but might be a fair amount of work.)
 FIX:
        ?? Delete, delete, delete.
--------------------------------------------------------------------------------
-PROBLEM:
-           The hashing code is new and should be tested.
-FIX:
-       ?? Enable the existing test code.
 ===============================================================================
 other known issues with no particular target date:
 
-user manual including, at a minimum, updated versions of the
-CMU CL user manual information on the compiler and the alien
-interface
-
 bugs listed on the man page
 
 more regression tests
 
-various bugs fixed in CMUCL since this code was forked off of it
-ca. 19980801, since most of these haven't been fixed yet in SBCL
-
 byte compilation of appropriate parts of the system, so that the
 system core isn't so big
 
-uninterning needed-only-at-init-time stuff after init is complete,
-so that the system core isn't so big
-
 Search for unused external symbols (ones which are not bound, fbound,
 types, or whatever, and also have no other uses as e.g. flags) and
 delete them. This should make the system core a little smaller, but
index ae9439d..a7856e9 100644 (file)
          (without-gcing
           (let* ((component-ptr (component-ptr-from-pc
                                  (sb!vm:context-pc context)))
-                 (code (if (sap= component-ptr (int-sap #x0))
-                           nil ; FIXME: UNLESS might be clearer than IF.
-                           (component-from-component-ptr component-ptr))))
+                 (code (unless (sap= component-ptr (int-sap #x0))
+                         (component-from-component-ptr component-ptr))))
             (when (null code)
               (return (values code 0 context)))
             (let* ((code-header-len (* (get-header-data code)
               (unless (<= 0 pc-offset
                           (* (code-header-ref code sb!vm:code-code-size-slot)
                              sb!vm:word-bytes))
-                ;; We were in an assembly routine. Therefore, use the LRA as
-                ;; the pc.
+                ;; We were in an assembly routine. Therefore, use the
+                ;; LRA as the pc.
+                ;;
+                ;; FIXME: Should this be WARN or ERROR or what?
                 (format t "** pc-offset ~S not in code obj ~S?~%"
                         pc-offset code))
               (return
                  (elsewhere-p
                   (>= pc (sb!c::compiled-debug-function-elsewhere-pc
                           (svref function-map 0)))))
-             ;; FIXME: I don't think SB!C is the home package of INDEX.
-             (declare (type sb!c::index i))
+             (declare (type sb!int:index i))
              (loop
                (when (or (= i len)
                          (< pc (if elsewhere-p
index f941ab0..ca6891c 100644 (file)
                       (arithmetic-error-operation condition)
                       (arithmetic-error-operands condition))))))
 
-(define-condition division-by-zero      (arithmetic-error) ())
+(define-condition division-by-zero         (arithmetic-error) ())
 (define-condition floating-point-overflow  (arithmetic-error) ())
 (define-condition floating-point-underflow (arithmetic-error) ())
 (define-condition floating-point-inexact   (arithmetic-error) ())
-(define-condition floating-point-invalid-operation   (arithmetic-error) ())
+(define-condition floating-point-invalid-operation (arithmetic-error) ())
 
 (define-condition print-not-readable (error)
   ((object :reader print-not-readable-object :initarg :object))
        (format stream "~S cannot be printed readably." obj)))))
 
 (define-condition reader-error (parse-error stream-error)
+  ;; FIXME: Do we need FORMAT-CONTROL and FORMAT-ARGUMENTS when
+  ;; we have an explicit :REPORT function? I thought we didn't..
   ((format-control
     :reader reader-error-format-control
     :initarg :format-control)
 ;;; floating point exceptions?
 (define-condition floating-point-exception (arithmetic-error)
   ((flags :initarg :traps
+          :initform nil
          :reader floating-point-exception-traps))
   (:report (lambda (condition stream)
             (format stream
index 1e9b549..9285317 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.8.26"
+"0.6.9"