Fix regressions:
* Installation was broken with non-bash /bin/sh (thanks to
Niimi Satoshi for the patch)
* DEFAULT-EXTERNAL-FORMAT would now try to print a warning for
an invalid external format before streams had been initialized,
causing an infinite error loop (reported by Hannu Koivisto).
Temporary fix is just not printing the warning, a better fix
will wait until after the freeze.
* Also stop autodetecting the external format from the locale
on non-unicode builds. Having a default external format that's
incompatible with CHARACTER doesn't seem very sensible, especially
now that the external formats are also used for SB-ALIEN:C-STRING
instead of just streams.
class-precedence-lists of GENERIC-FUNCTION and
STANDARD-GENERIC-FUNCTION comply with the requirement of ANSI
1.4.4.5.
class-precedence-lists of GENERIC-FUNCTION and
STANDARD-GENERIC-FUNCTION comply with the requirement of ANSI
1.4.4.5.
+ * minor incompatible change: the default stream external format on
+ non-unicode SBCL is no longer detected from the locale, but is always
+ ISO-8859-1
* new feature: Add a version of evaluator that uses an interpreter instead
of the compiler. EVAL still uses the compiler by default, to switch it
to use the interpreter, set the value of the variable
* new feature: Add a version of evaluator that uses an interpreter instead
of the compiler. EVAL still uses the compiler by default, to switch it
to use the interpreter, set the value of the variable
- OLD_IFS=$IFS
- IFS=''
- for j in $*; do
test -d "$j" || mkdir -p "$j"
done;
test -d "$j" || mkdir -p "$j"
done;
}
if [ "$OSTYPE" = "cygwin" -o "$OSTYPE" = "msys" ] ; then
}
if [ "$OSTYPE" = "cygwin" -o "$OSTYPE" = "msys" ] ; then
(defun default-external-format ()
(or *default-external-format*
(defun default-external-format ()
(or *default-external-format*
+ ;; On non-unicode, use iso-8859-1 instead of detecting it from
+ ;; the locale settings. Defaulting to an external-format which
+ ;; can represent characters that the CHARACTER type can't
+ ;; doesn't seem very sensible.
+ #!-sb-unicode
+ (setf *default-external-format* :latin-1)
(let ((external-format #!-win32 (intern (or (sb!alien:alien-funcall
(extern-alien
"nl_langinfo"
(let ((external-format #!-win32 (intern (or (sb!alien:alien-funcall
(extern-alien
"nl_langinfo"
sb!unix:codeset)
"LATIN-1")
"KEYWORD")
sb!unix:codeset)
"LATIN-1")
"KEYWORD")
- #!+win32
- #!+sb-unicode (sb!win32::ansi-codepage)
- #!-sb-unicode :LATIN-1))
+ #!+win32 (sb!win32::ansi-codepage)))
(/show0 "cold-printing defaulted external-format:")
#!+sb-show
(cold-print external-format)
(/show0 "matching to known aliases")
(dolist (entry *external-formats*
(progn
(/show0 "cold-printing defaulted external-format:")
#!+sb-show
(cold-print external-format)
(/show0 "matching to known aliases")
(dolist (entry *external-formats*
(progn
+ ;;; FIXME! This WARN would try to do printing
+ ;;; before the streams have been initialized,
+ ;;; causing an infinite erroring loop. We should
+ ;;; either print it by calling to C, or delay the
+ ;;; warning until later. Since we're in freeze
+ ;;; right now, and the warning isn't really
+ ;;; essential, I'm doing what's least likely to
+ ;;; cause damage, and commenting it out. This
+ ;;; should be revisited after 0.9.17. -- JES,
+ ;;; 2006-09-21
+ #+nil
(warn "Invalid external-format ~A; using LATIN-1"
external-format)
(setf external-format :latin-1)))
(warn "Invalid external-format ~A; using LATIN-1"
external-format)
(setf external-format :latin-1)))
;;; 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".)
;;; 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".)