guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (Geiser or guile bug) Guix-daemon output is missing


From: Alex Kost
Subject: Re: (Geiser or guile bug) Guix-daemon output is missing
Date: Wed, 09 Sep 2015 19:47:47 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Ludovic Courtès (2015-09-07 00:28 +0300) wrote:

> Alex Kost <address@hidden> skribis:
>
>> Now the bug itself:
>>
>> 1. Start Geiser (M-x run-guile)
>>
>> 2. Make a scheme buffer and evaluate (use-modules (guix scripts build))
>>    there using "C-x C-e" or "C-M-x" (or any other "geiser-eval-…"
>>    command).  This is important: do not ,use module in the REPL;
>>    evaluate ‘use-modules’ clause in a scheme buffer!
>>
>> 3. Go to the REPL and run the following there:
>>
>>    (catch 'quit (lambda () (guix-build "test-package")) (const #t)).
>>
>> You get only "The following derivation will be built: …" but there is no
>> build output from guix-daemon.
>
> Ha ha!  Try this before:
>
>   (current-build-output-port (current-error-port))
>
> The trick here is that ‘current-build-output-port’ is initialized to
> (current-error-port), but that initialization happens at the top-level,
> apparently before Geiser has rebound ‘current-error-port’, hence the
> silence.

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?

[1] https://github.com/jaor/geiser/issues/83#issuecomment-1386298474

-- 
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]