[PATCH] Fix Unicode handling in :INVERT readtable and :CASE :COMMON pathnames

Marius Gerbershagen marius.gerbershagen at gmail.com
Wed May 6 19:23:56 UTC 2020


Hello Vladimir,

thank you very much for the bug reports and patches. I have incorporated 
your changes in the develop branch of the git repository. If you have 
any more bug fixes in the future, it would be preferable to directly 
open a merge request at https://gitlab.com/embeddable-common-lisp/ecl/ 
instead of sending patches to the mailing list, since it makes things 
easier for us.

Best regards,
Marius Gerbershagen

Am 05.05.20 um 04:46 schrieb Vladimir Sedach:
> Ok, I figured out a fix (attached).
> 
> write_symbol_string was attempting to use some kind of buffering
> similar to writestr_stream in file.d, which buffering I replaced with
> calls to ecl_write_char.
> 
> This simplified the code, and does not seem to have had a noticeable
> negative effect on the performance of printing symbols:
> 
> --8<---------------cut here---------------start------------->8---
>> (defvar j (read-from-string "абракадабра"))
> 
> J
>> (time (dotimes (i 1000000) (with-output-to-string (x1) (print j x1))))
> --8<---------------cut here---------------end--------------->8---
> 
> Before:
> 
> real time : 5.349 secs
> run time  : 6.827 secs
> gc count  : 552 times
> consed    : 1055997968 bytes
> NIL
> 
> After:
> 
> real time : 5.278 secs
> run time  : 7.756 secs
> gc count  : 257 times
> consed    : 1039999200 bytes
> NIL
> 
> --
> Vladimir Sedach
> Software engineering services in Los Angeles https://oneofus.la
> 



More information about the ecl-devel mailing list