Tests.lisp in the Babel package fails to compile on SBCL 1.0.15 with
the following error:
; compiling (DEFTEST ENC.ASCII.1 ...); compilation aborted because of
fatal error:
; READ failure in COMPILE-FILE:
; SB-INT:SIMPLE-READER-ERROR
at 1993 (line 54, column 35) on #<SB-SYS:FD-STREAM for "file /home/
deech/.sbcl/site/babel_0.2.0/tests/tests.lisp" {D3A62F1}>:
; unrecognized character
name: "uED"
The offending code is:
(deftest enc.ascii.2
(string-to-octets (string #\uED) :encoding :ascii :errorp nil)
#(#x1a))
Any ideas?
Thank for the help ...
-deech
From: Edi Weitz
Subject: Re: Error Compiling Babel using SBCL 1.0.15
Date:
Message-ID: <umyk6xzmq.fsf@agharta.de>
On Thu, 24 Jul 2008 21:32:08 -0700 (PDT), deech <············@gmail.com> wrote:
> Tests.lisp in the Babel package fails to compile on SBCL 1.0.15 with
> the following error:
> ; compiling (DEFTEST ENC.ASCII.1 ...); compilation aborted because of
> fatal error:
> ; READ failure in COMPILE-FILE:
> ; SB-INT:SIMPLE-READER-ERROR
> at 1993 (line 54, column 35) on #<SB-SYS:FD-STREAM for "file /home/
> deech/.sbcl/site/babel_0.2.0/tests/tests.lisp" {D3A62F1}>:
> ; unrecognized character
> name: "uED"
>
> The offending code is:
> (deftest enc.ascii.2
> (string-to-octets (string #\uED) :encoding :ascii :errorp nil)
> #(#x1a))
>
> Any ideas?
That's a non-portable syntax for characters. It seems to work in
ClozureCL while for example SBCL wants #\u00ED and LispWorks wants
#\u+ED or #\u+00ED. The Babel authors should use something that's
guaranteed to work on all Lisps[*] like #.(CODE-CHAR #xed). Or
(shameless self-plug) they could use CL-UNICODE's portable character
syntax... :)
http://weitz.de/cl-unicode/#syntax
Edi.
[*] We'll, it'll still only work if a) #xed is less than
CHAR-CODE-LIMIT and b) (CODE-CHAR #xed) actually resolves to the
character with the Unicode code point 237, but that can probably
be taken for granted these days.
--
Lisp is not dead, it just smells funny.
Real email: (replace (subseq ·········@agharta.de" 5) "edi")