[Ecls-list] decoding error on fas file compiled from utf-8 files.
Pascal J. Bourguignon
pjb at informatimago.com
Mon Mar 5 20:27:51 UTC 2012
Hello,
This evening I pulled from git the latest release of ecl, compiled it,
and now I'm trying to boot it, unfortunately it fails after compiling my
files (ql:quickload :com.informatimago.common-lisp.cesarum) with:
…
[package com.informatimago.common-lisp.cesarum.file]
[package com.informatimago.common-lisp.cesarum.peek-stream].
[package com.informatimago.common-lisp.cesarum.cache].
..................................................
[package com.informatimago.common-lisp.cesarum.float-binio].
An error occurred during initialization:
decoding error on stream #<sequence-input stream 000000000348b3c0> (:external-format (:utf-8 :lf)): the octet sequence (233 112 117) cannot be decoded..
[pjb at kuiper :0 lisp]$ echo $?
1
It looks like the error is produced after compiling (since quicklisp
prints the name of the last package defined).
All my files are stored in UTF-8, and none of them contain that octet
sequence (some of them contain the characters "épu" to which this octet
sequence decodes in iso-8859-1.
I tried with and without
(setf ext:*default-external-format* '(:utf-8 :lf))
in ~/.eclrc.lisp.
I tried deleting the .fas and recompiling everything. I always get
this error.
Since it doesn't say which file, and since it exits right away, it's
hard to find what's occuring.
However, since I find that sequence of octets in the files:
#P"/home/pjb/.cache/common-lisp/kuiper.lan.informatimago.com/ecl-12.2.1-70b3b263-linux-x64/home/pjb/quicklisp/local-projects/com/informatimago/common-lisp/cesarum/iso3166.fas"
#P"/home/pjb/.cache/common-lisp/kuiper.lan.informatimago.com/ecl-12.2.1-70b3b263-linux-x64/home/pjb/quicklisp/local-projects/com/informatimago/common-lisp/cesarum/iso3166.o"
I guess that what's happening is that ecl writes those files in
iso-8859-1 and later tries to read them back in utf-8.
(/home/pjb/quicklisp/local-projects/com/informatimago/common-lisp/cesarum/iso3166.lisp
is a file encoded in utf-8 that contains the characters "épu" (in strings)).
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
More information about the ecl-devel
mailing list