READTABLE-CASE :INVERT gives errors with Unicode
Describe the problem here.
> (princ-to-string 'ξ)
"Ξ"
> (setf local-table (copy-readtable nil))
> (setf (readtable-case local-table) :invert)
> :INVERT
> (let ((*readtable* local-table) (*print-case* :upcase)) (princ-to-string 'ξ))
Cannot coerce string Ξ to a base-string
The above code is from Maxima 5.42.2 PRINT-INVERT-CASE
(from commac.lisp
).
Provide details regarding ECL version (or preferably commit), operating system and if revelant the build options and versions of the build tools.
(format t "~&~@{~12@A ~S~%~}"
:version (lisp-implementation-version)
:vcs-id (ext:lisp-implementation-vcs-id)
:os (software-type)
:os-version (software-version)
:machine-type (machine-type)
:features *features*)
VERSION "20.4.24"
VCS-ID "UNKNOWN"
OS "Darwin"
OS-VERSION "19.5.0"
MACHINE-TYPE "x86_64"
FEATURES (:WALKER :CDR-1 :CDR-5 :DARWIN :FORMATTER :CDR-7 :ECL-WEAK-HASH
:LITTLE-ENDIAN :LONG-LONG :UINT64-T :UINT32-T :UINT16-T
:COMPLEX-FLOAT :LONG-FLOAT :UNICODE :DFFI :CLOS-STREAMS
:CMU-FORMAT :UNIX :ECL-PDE :DLOPEN :CLOS :BOEHM-GC :ANSI-CL
:COMMON-LISP :FLOATING-POINT-EXCEPTIONS :IEEE-FLOATING-POINT
:PACKAGE-LOCAL-NICKNAMES :CDR-14 :PREFIXED-API :FFI :X86_64
:COMMON :ECL)
The problem is also present in ECL 16.1.2.