On Sun, Jun 19, 2016 at 10:07:03PM -0400, Michael Silver wrote:
Hello chicken-hackers,
I think it would be nice to add Guile’s with-error-to-string function to CHICKEN’s ports unit:
;; Call procedure THUNK with the current error output-port temporarily
;; bound to a string-output-port and return the accumulated output
;; string.
(define with-error-to-string
(lambda (thunk)
(fluid-let ([##sys#standard-error (open-output-string)])
(thunk)
(get-output-string ##sys#standard-error))))
This would neatly compliment the port unit’s with-output-to-string. Thoughts?
We already have with-error-output-to-port, so I think it would be more
consistent to use the name with-error-output-to-string.
Alternatively, we could decide to do this for CHICKEN 5 only, and rename
both procedures to match the Guile naming convention. Maybe do a survey
of existing implementations that offer such a procedure and see what names
they use.
But it's all rather arbitrary: why is there no with-error-to-file?
And if there were, it would be jarring to have to (import scheme) to
get with-output-to-file, but have to do (import (chicken ports)) to get
with-error-to-file...
Cheers,
Peter