[armedbear] #456: SYSTEM:AVAILABLE-ENCODINGS symbols strangeness
armedbear
armedbear-devel at common-lisp.net
Sun Apr 1 10:09:10 UTC 2018
#456: SYSTEM:AVAILABLE-ENCODINGS symbols strangeness
----------------------+---------------------------
Reporter: mevenson | Owner: mevenson
Type: defect | Status: new
Priority: minor | Milestone: 1.6.0
Component: other | Version:
Keywords: | Parent Tickets:
----------------------+---------------------------
In https://github.com/armedbear/abcl/issues/82 Robert Dodier reports
I see that SYSTEM:AVAILABLE-ENCODINGS returns a list of symbols which
represent the various encodings that are discovered via
Charset.availableCharsets. That's great, but the symbols are
apparently not interned in the keyword package, so it makes it
somewhat confusing to determine whether a given encoding is on the
list.
e.g. {{{(member :utf-16 (system:available-encodings))}}} returns NIL,
although looking at the list, you can see that {{{:UTF-16}}} is there.
Confusingly, {{{{(mapcar #'symbol-package (system:available-
encodings))}}}} shows that all symbols are in the keyword package, but
{{{(find-symbol "UTF-16" :keyword)}}} returns NIL.
I believe the problem is that {{{availableEncodings}}} in
src/org/armedbear/lisp/Stream.java says, in part, (at line 399 in the
current version)
{{{
new Symbol(charset, PACKAGE_KEYWORD)
}}}
but I think more appropriate would be
{{{
PACKAGE_KEYWORD.intern(charset)
}}}
Here is a patch which implements that change, and fixes the bug, from what
I can tell.
{{{
Index: src/org/armedbear/lisp/Stream.java
===================================================================
--- src/org/armedbear/lisp/Stream.java (revision 15113)
+++ src/org/armedbear/lisp/Stream.java (working copy)
@@ -396,7 +396,7 @@
SortedMap<String, Charset> available = Charset.availableCharsets();
Set<String> encodings = available.keySet();
for (String charset : encodings) {
- result.add(new Symbol(charset, PACKAGE_KEYWORD));
+ result.add (PACKAGE_KEYWORD.intern (charset));
}
return result;
}
}}}
--
Ticket URL: <http://abcl.org/trac/ticket/456>
armedbear <http://abcl.org>
armedbear
More information about the armedbear-ticket
mailing list