Hi Eric,
On Sun, Apr 25, 2010 at 11:15 AM, Eric Marsden eric.marsden@free.fr wrote:
Hi,
Attempting to run ABCL with jamvm (which uses the classpath libraires), I get
,---- | Armed Bear Common Lisp 0.20.0-dev | Java 1.5.0 GNU Classpath | JamVM | Low-level initialization completed in 0.371 seconds. | Exception in thread "interpreter" java.lang.IllegalStateException | at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:163) | at org.armedbear.lisp.util.DecodingReader.unread(DecodingReader.java:168) | at org.armedbear.lisp.util.DecodingReader.unread(DecodingReader.java:156) | at org.armedbear.lisp.Stream._unreadChar(Stream.java:1708)
| at java.lang.Thread.run(Thread.java:745) `----
I see in org.armedbear.lisp.Stream.read() a sequence
int n = _readChar(); if (n >= 0) { char c = (char) n; // ### BUG: Codepoint conversion Readtable rt = rta.rt(thread); if (!rt.isWhitespace(c)) _unreadChar(c); }
which seems likely to be related to this problem. If I print the offending character in DecodingReader.unread() it looks like a #\space. Any suggestions on how to proceed?
Do you have any idea if the character you were trying to read is outside of the BMP (a so-called Supplemental character; with a code point > #xFFFF)? If that's the case, then you certainly did hit that bug.
I had hoped the issue would be relatively infrequent when I added the comment above. Maybe it is, but if you're hitting it, we seem to have an active requirement to fix it...
Bye,
Erik.