Ludovic Courtès (2015-09-09 23:11 +0300) wrote:

> Alex Kost <alez...@gmail.com> skribis:
>
>> As a workaround for this issue it was proposed¹ to transform
>> ‘current-build-output-port’ into a procedure (I have checked that it
>> solves the problem).  What do you think about it?  Perhaps to make sure
>> that the port will be always the same define it like this:
>>
>> (define current-build-output-port (memoize current-error-port))
>>
>> Is it acceptable?
>
> No, ‘current-build-output-port’ should remain a SRFI-39 parameter so
> that callers can easily rebind it.
>
> However, perhaps the guix.el code could do:
>
>   (current-build-output-port (current-error-port))
>
> at startup; would that be doable?

(IMO it would be so ugly, that I should say: "no")

Do you mean at startup of Guix REPL?  If you remember the point is to
add an emacs command to build the package in the current Geiser REPL
(not Guix REPL).  So to prevent this disappearing of the build output,
(current-build-output-port (current-error-port)) should be evaluated in
the *Geiser REPL*.  We can make a workaround just for ‘build-package’
procedure by putting this port assigning in it, but the only way to make
a global solution is to get rid of the top-level setting of
‘current-build-output-port’, for example by:

(define current-build-output-port (make-parameter #f))

and bind it to current-error-port in ‘process-stderr’, but I suppose
this is also undesired, right?

-- 
Alex

Reply via email to