From 17dd269e2c4a66648613a5272b765bf50e5b63c0 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Fri, 24 Apr 2009 11:38:10 +0000 Subject: [PATCH] 1.0.27.34: various trivial fixups for portability / repeatability The only one that is potentially controversial is the use of READ-PRESERVING-WHITESPACE... 3 commit messages follow: don't print array SB!KERNEL:TYPE in internal error strings Use the specifier instead. (This is a long-standing bug; FIXME: try to find a test case). Use read-preserving-whitespace rather than just read in the compiler With just CL:READ, at least CLISP and SBCL differ on the source locations dumped in the fasls; with READ-PRESERVING-WHITESPACE, things are consistent. disassembler / printer names. The compiler wants to generate names based on all sorts of information, including byte specs, and attempts to make those names by printing all that information into one big string. Unfortunately, that allows the host to insert line breaks, which it will do with maximal perversity. Bind *PRINT-RIGHT-MARGIN* around the printing call in an attempt to minimize this problem. --- src/compiler/assem.lisp | 6 ++++-- src/compiler/generic/interr.lisp | 5 +++-- src/compiler/main.lisp | 3 ++- version.lisp-expr | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/compiler/assem.lisp b/src/compiler/assem.lisp index b19b2cc..797fd83 100644 --- a/src/compiler/assem.lisp +++ b/src/compiler/assem.lisp @@ -1547,7 +1547,8 @@ (push (eval `(list (multiple-value-list ,(sb!disassem:gen-printer-def-forms-def-form name - (format nil "~@:(~A[~A]~)" name args) + (let ((*print-right-margin* 1000)) + (format nil "~@:(~A[~A]~)" name args)) (cdr option-spec))))) pdefs)) (:printer-list @@ -1560,7 +1561,8 @@ `(multiple-value-list ,(sb!disassem:gen-printer-def-forms-def-form ',name - (format nil "~@:(~A[~A]~)" ',name printer) + (let ((*print-right-margin* 1000)) + (format nil "~@:(~A[~A]~)" ',name printer)) printer nil))) ,(cadr option-spec))))) diff --git a/src/compiler/generic/interr.lisp b/src/compiler/generic/interr.lisp index a733652..539d632 100644 --- a/src/compiler/generic/interr.lisp +++ b/src/compiler/generic/interr.lisp @@ -153,7 +153,8 @@ (list (symbolicate "OBJECT-NOT-" (sb!vm:saetp-primitive-type-name saetp)) (format nil "Object is not of type ~A." - (specifier-type - `(simple-array ,(sb!vm:saetp-specifier saetp) (*)))))) + (type-specifier + (specifier-type + `(simple-array ,(sb!vm:saetp-specifier saetp) (*))))))) sb!vm:*specialized-array-element-type-properties*)) diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index 0887584..8608b82 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -805,7 +805,8 @@ ;;; error condition (possibly recording some extra location ;;; information). (defun read-for-compile-file (stream position) - (handler-case (read stream nil stream) + (handler-case + (read-preserving-whitespace stream nil stream) (reader-error (condition) (error 'input-error-in-compile-file :condition condition diff --git a/version.lisp-expr b/version.lisp-expr index e40b624..e1c7c53 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.27.33" +"1.0.27.34" -- 1.7.10.4