0.pre7.86.flaky7.8:
authorWilliam Harold Newman <william.newman@airmail.net>
Wed, 14 Nov 2001 16:28:30 +0000 (16:28 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Wed, 14 Nov 2001 16:28:30 +0000 (16:28 +0000)
found that suppressing the pretty printer lets the system limp
into warm init (then die around assem-rtns.lisp)

src/code/filesys.lisp
src/code/interr.lisp
src/code/pprint.lisp
src/code/print.lisp
src/code/toplevel.lisp
src/code/unix.lisp
version.lisp-expr

index d36f8c9..31cb86c 100644 (file)
         (namestring (unix-namestring defaulted-pathname t)))
     (when (and namestring (sb!unix:unix-file-kind namestring t))
       (let ((trueishname (sb!unix:unix-resolve-links namestring)))
+       (/show0 "back from UNIX-RESOLVE-LINKS in PROBE-FILE")
        (when trueishname
          (let ((*ignore-wildcards* t))
-           (pathname (sb!unix:unix-simplify-pathname trueishname))))))))
+           (/show0 "calling UNIX-SIMPLIFY-PATHNAME in PROBE-FILE")
+           (prog1
+               (pathname (sb!unix:unix-simplify-pathname trueishname))
+             (/show0 "back from UNIX-SIMPLIFY-PATHNAME in PROBE-FILE"))))))))
 \f
 ;;;; miscellaneous other operations
 
index 77521d3..b5e3b7c 100644 (file)
        (/hexstr error-number)
        (/show0 "cold/low ARGUMENTS=..")
        (/hexstr arguments)
-       (/show (mapcar #'type-of arguments))
+
+       ;; REMOVEME
+       (/show0 "cold/low (LENGTH ARGUMENTS)=..")
+       (/hexstr (length arguments))
        (dolist (argument arguments)
-        (/show argument))
+        (/show0 "cold/low ARGUMENT=..")
+        (/hexstr argument)
+        (if (symbolp argument)
+            (progn
+              (/show0 "Argument is a SYMBOL..")
+              (/primitive-print (symbol-name argument)))
+            (let ((argument-type (type-of argument)))
+              (cond ((symbolp argument-type)
+                     (/show0 "Argument type is a SYMBOL..")
+                     (/primitive-print (symbol-name argument-type)))
+                    ((listp argument-type)
+                     (/primitive-print "Argument type is a LIST."))
+                    (t
+                     (/primitive-print "Argument type is not a SYMBOL or LIST."))))))
+
        (multiple-value-bind (name sb!debug:*stack-top-hint*)
           (find-interrupted-name)
         (/show0 "back from FIND-INTERRUPTED-NAME")
index 2067b07..a6ccaa7 100644 (file)
 
 (defun pprint-dispatch (object &optional (table *print-pprint-dispatch*))
   (declare (type (or pprint-dispatch-table null) table))
+  (/show0 "entering PPRINT-DISPATCH")
   (let* ((table (or table *initial-pprint-dispatch*))
         (cons-entry
          (and (consp object)
 ;;; OUTPUT-PRETTY-OBJECT is called by OUTPUT-OBJECT when *PRINT-PRETTY* is
 ;;; bound to T.
 (defun output-pretty-object (object stream)
+  (/show0 "entering OUTPUT-PRETTY-OBJECT")
   (with-pretty-stream (stream)
     (funcall (pprint-dispatch object) stream object)))
 
index 205afbe..9b1f551 100644 (file)
 
 ;;; Output OBJECT to STREAM observing all printer control variables.
 (defun output-object (object stream)
+  (/show0 "entering OUTPUT-OBJECT")
   (labels ((print-it (stream)
+            (/show0 "entering PRINT-IT")
             (if *print-pretty*
                 (if *pretty-printer*
                     (funcall *pretty-printer* object stream)
                       (output-ugly-object object stream)))
                 (output-ugly-object object stream)))
           (check-it (stream)
+            (/show0 "entering CHECK-IT")
             (let ((marker (check-for-circularity object t)))
               (case marker
                 (:initiate
     (cond (;; Maybe we don't need to bother with circularity detection.
           (or (not *print-circle*)
               (uniquely-identified-by-print-p object))
+          (/show0 "in obviously-don't-bother case")
           (print-it stream))
          (;; If we have already started circularity detection, this
           ;; object might be a shared reference. If we have not, then
           ;; reference to itself or multiple shared references.
           (or *circularity-hash-table*
               (compound-object-p object))
+          (/show0 "in CHECK-IT case")
           (check-it stream))
          (t
+          (/show0 "in don't-bother-after-all case")
           (print-it stream)))))
 
 ;;; Output OBJECT to STREAM observing all printer control variables
 ;;; then the pretty printer will be used for any components of OBJECT,
 ;;; just not for OBJECT itself.
 (defun output-ugly-object (object stream)
+  (/show0 "entering OUTPUT-UGLY-OBJECT")
   (typecase object
     ;; KLUDGE: The TYPECASE approach here is non-ANSI; the ANSI definition of
     ;; PRINT-OBJECT says it provides printing and we're supposed to provide
     (fdefn
      (output-fdefn object stream))
     (t
+     (/show0 "in OUTPUT-RANDOM case")
      (output-random object stream))))
 \f
 ;;;; symbols
index 5897b71..e8097e3 100644 (file)
           ;; return its truename.
           (probe-init-files (&rest possible-init-file-names)
             (/show0 "entering PROBE-INIT-FILES")
+
+            ;; REMOVEME: commented out while compiler has problems
+            #+nil
+
             (prog1
                 (find-if (lambda (x)
                            (and (stringp x) (probe-file x)))
   (let ((* nil) (** nil) (*** nil)
        (- nil)
        (+ nil) (++ nil) (+++ nil)
-       (/// nil) (// nil) (/ nil)
-       (eof-marker (cons :eof nil)))
+       (/// nil) (// nil) (/ nil))
     (/show0 "about to set up restarts in TOPLEVEL-REPL")
     ;; There should only be one TOPLEVEL restart, and it's here, so
     ;; restarting at TOPLEVEL always bounces you all the way out here.
 
 (defun repl (noprint)
   (/show0 "entering REPL")
-  (loop
-   ;; FIXME: It seems bad to have GC behavior depend on scrubbing the
-   ;; control stack before each interactive command. Isn't there some
-   ;; way we can convince the GC to just ignore dead areas of the
-   ;; control stack, so that we don't need to rely on this
-   ;; half-measure?
-   (scrub-control-stack)
-   (unless noprint
-     (fresh-line)
-     (princ (if (functionp *prompt*)
-               (funcall *prompt*)
-               *prompt*))
-     (flush-standard-output-streams))
-   (let ((form (read *standard-input* nil eof-marker)))
-     (if (eq form eof-marker)
-        (quit)
-        (let ((results (multiple-value-list (interactive-eval form))))
-          (unless noprint
-            (dolist (result results)
-              (fresh-line)
-              (prin1 result))))))))
+
+
+  ;; REMOVEME after debugging
+  (setf *print-pretty* nil)
+
+  (let ((eof-marker (cons :eof nil)))
+    (loop
+     ;; FIXME: It seems bad to have GC behavior depend on scrubbing the
+     ;; control stack before each interactive command. Isn't there some
+     ;; way we can convince the GC to just ignore dead areas of the
+     ;; control stack, so that we don't need to rely on this
+     ;; half-measure?
+     (/show0 "at head of LOOP")
+     (scrub-control-stack)
+     (/show0 "back from SCRUB-CONTROL-STACK")
+     (unless noprint
+       (fresh-line)
+       (/show0 "back from FRESH-LINE")
+       (princ (if (functionp *prompt*)
+                 (funcall *prompt*)
+                 *prompt*))
+       (/show0 "back from PRINC")
+       (flush-standard-output-streams)
+       (/show0 "back from FLUSH-STANDARD-OUTPUT-STREAMS"))
+     (let ((form (read *standard-input* nil eof-marker)))
+       (/show0 "back from READ")
+       (if (eq form eof-marker)
+          (quit)
+          (let ((results (multiple-value-list (interactive-eval form))))
+            (unless noprint
+              (dolist (result results)
+                (fresh-line)
+                (prin1 result)))))))))
 
 (defun noprogrammer-debugger-hook-fun (condition old-debugger-hook)
   (declare (ignore old-debugger-hook))
index 7149082..626a24a 100644 (file)
   (aver (not (relative-unix-pathname? pathname)))
   (/show "entering UNIX-RESOLVE-LINKS")
   (loop with previous-pathnames = nil do
-       (/show pathname previous-pathnames)
+       (/noshow pathname previous-pathnames)
        (let ((link (unix-readlink pathname)))
-         (/show link)
+         (/noshow link)
          ;; Unlike the old CMU CL code, we handle a broken symlink by
          ;; returning the link itself. That way, CL:TRUENAME on a
          ;; broken link returns the link itself, so that CL:DIRECTORY
                                                        pathname
                                                        :from-end t)))
                                 (dir (subseq pathname 0 dir-len)))
-                           (/show dir)
+                           (/noshow dir)
                            (concatenate 'string dir link))
                          link))))
                (if (unix-file-kind new-pathname)
index bab9913..88e5200 100644 (file)
@@ -18,4 +18,4 @@
 ;;; for internal versions, especially for internal versions off the
 ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.pre7.86.flaky7.7"
+"0.pre7.86.flaky7.8"