Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#375 closed defect (fixed)

CL:OPEN failure

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.3.2
Component: java Version: 1.4.0-dev
Keywords: Cc:
Parent Tickets:

Description

The following form

(open #p"~/xx" :direction :output
               :if-exists :append
               :external-format '(:latin-1 :eol-style :lf))

fails with the following message

; Evaluation aborted on NIL.

Change History (6)

comment:1 Changed 6 years ago by Mark Evenson

Running outside of SLIME gives the more intelligible

java.nio.charset.UnsupportedCharsetException: LATIN-1
	at java.nio.charset.Charset.forName(Charset.java:531)
	at org.armedbear.lisp.util.RandomAccessCharacterFile.setEncoding(RandomAccessCharacterFile.java:309)
	at org.armedbear.lisp.util.RandomAccessCharacterFile.<init>(RandomAccessCharacterFile.java:288)

Why does SLIME not return a meaningful error?

Should we add some sort of alias for LATIN-1

comment:2 Changed 6 years ago by Mark Evenson

Observation: UnsupportedCharsetException? is a Java runtime exception.

Hypothesis: The SLIME :spawn communication style is not correctly communicating the runtime exception back to the SWANK listener.

comment:3 Changed 6 years ago by Mark Evenson

Triggering the runtime exception via

(jstatic "forName" "java.nio.charset.Charset" "foo")

shows that SLIME does seem to work with RuntimeException?.

Maybe the difference is that the RuntimeException? is occurring inside nested constructors?

Recommendation: signal a meaningful Lisp condition when an invalid charset is used.

comment:4 Changed 6 years ago by Mark Evenson

SIMPLE-ERROR now signaled for invalid encodings in r14735.

Unsure if there is still a problem lurking in how SLIME interacts with Java exceptions thrown by the ABCL implementation, but closing for now.

comment:5 Changed 6 years ago by Mark Evenson

Resolution: fixed
Status: newclosed

comment:6 Changed 6 years ago by Mark Evenson

Milestone: 1.4.01.3.2
Note: See TracTickets for help on using tickets.