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