X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Foctets.lisp;h=f743a4b5b0c3b9600819af0b251f20510c057782;hb=48ec282d877900caf5ea4ab42e9d87e566ce6b43;hp=d0f2134d31c1997b5055594299b690733ad27671;hpb=cd3332a71793f4bccee403162ad0daf60ad51fb2;p=sbcl.git diff --git a/src/code/octets.lisp b/src/code/octets.lisp index d0f2134..f743a4b 100644 --- a/src/code/octets.lisp +++ b/src/code/octets.lisp @@ -174,7 +174,7 @@ one-past-the-end" (defmacro define-unibyte-mapper (byte-char-name code-byte-name &rest exceptions) `(progn - (declaim (inline ,byte-char-name ,code-byte-name)) + (declaim (inline ,byte-char-name)) (defun ,byte-char-name (byte) (declare (optimize speed (safety 0)) (type (unsigned-byte 8) byte)) @@ -186,9 +186,16 @@ one-past-the-end" exception byte)))) byte)) + ;; This used to be inlined, but it caused huge slowdowns in SBCL builds, + ;; bloated the core by about 700k on x86-64. Removing the inlining + ;; didn't seem to have any performance effect. -- JES, 2005-10-15 (defun ,code-byte-name (code) (declare (optimize speed (safety 0)) (type char-code code)) + ;; FIXME: I'm not convinced doing this with CASE is a good idea as + ;; long as it's just macroexpanded into a stupid COND. Consider + ;; for example the output of (DISASSEMBLE 'SB-IMPL::CODE->CP1250-MAPPER) + ;; -- JES, 2005-10-15 (case code ,@(mapcar (lambda (exception) (destructuring-bind (byte code) exception @@ -633,7 +640,7 @@ one-past-the-end" (defun default-external-format () (or *default-external-format* - (let ((external-format (intern (or (sb!alien:alien-funcall + (let ((external-format (intern (or #!-win32 (sb!alien:alien-funcall (extern-alien "nl_langinfo" (function c-string int)) @@ -663,10 +670,10 @@ one-past-the-end" (defparameter *external-format-functions* '(((:ascii :us-ascii :ansi_x3.4-1968 :iso-646 :iso-646-us :|646|) ascii->string-aref string->ascii) - ((:latin1 :latin-1 :iso-8859-1) + ((:latin1 :latin-1 :iso-8859-1 :iso8859-1) latin1->string-aref string->latin1) #!+sb-unicode - ((:latin9 :latin-9 :iso-8859-15) + ((:latin9 :latin-9 :iso-8859-15 :iso8859-15) latin9->string-aref string->latin9) ((:utf8 :utf-8) utf8->string-aref string->utf8)))