Subject: Re: bug#26791: Attempt to apply a string as a procedure during Hydra evaluation

From: Mark H Weaver <[email-masked]>
Date: Sun, 07 May 2017 18:37:30 -0400

Leo Famulari <[email-masked]> writes:

> On Sun, May 07, 2017 at 11:35:39AM +0200, Ludovic Courtès wrote:
>> Hi,
>> 
>> Danny Milosavljevic <[email-masked]> skribis:
>> 
>> > I think it always works (also without compilation) when I move the
>> boot-parameters record definition up in gnu/system.scm (so it comes
>> before its clients).
>> 
>> Yeah I just pushed that as 8e815c5b6903a545c46b674c1cd1cc3180f835db.
>> 
>> The thing is that ‘boot-parameters’ is a macro, so it must be defined
>> before used.
>> 
>> Because of the way build-aux/compile-all.scm builds things (first loads
>> modules, then builds them), this error would not show up because the
>> macro would have been defined during the load phase.  However evaluation
>> on Hydra relies on auto-compilation, which does things the “normal” way.
>> 
>> I’ve started an evaluation of ‘master’ on Hydra.
>
> Unfortunately, this evaluation failed :(
>
> Backtrace:
> In unknown file:
>    ?: 19 [apply-smob/1 #<catch-closure 1da8040>]
> In ice-9/boot-9.scm:
>   66: 18 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 17 [eval # #]
> In unknown file:
>    ?: 16 [call-with-input-string "(apply (module-ref (resolve-interface '(hydra-eval-guile-jobs)) 'eval-guile-jobs) (cdr (command-line)))" ...]
> In ice-9/command-line.scm:
>  181: 15 [#<procedure 1dbf680 at ice-9/command-line.scm:176:6 (port)> #<input: string 2680c30>]
> In unknown file:
>    ?: 14 [eval (apply (module-ref # #) (cdr #)) #<directory (guile-user) 1d97bd0>]
> In /usr/local/bin/hydra-eval-guile-jobs:
>  240: 13 [eval-guile-jobs "/gnu/store/a2y2xipciazkxv796iczrjiv5qi6x2qb-git-export/build-aux/hydra/gnu-system.scm" ...]
> In ice-9/eval.scm:
>  481: 12 [lp (#<fluid 38>) (#f)]
> In srfi/srfi-1.scm:
>  643: 11 [append-map #<procedure 60c7db0 at ice-9/eval.scm:416:20 (a)> #]
>  575: 10 [map #<procedure 60c7db0 at ice-9/eval.scm:416:20 (a)> #]
> In ice-9/eval.scm:
>  387: 9 [eval # #]
>  387: 8 [eval # #]
>  387: 7 [eval # #]
> In guix/store.scm:
> 1347: 6 [run-with-store # #<procedure 7bfd810 at ice-9/eval.scm:416:20 (a)> # ...]
> In gnu/system/vm.scm:
>  287: 5 [#<procedure 9656400 at gnu/system/vm.scm:287:4 (state)> #]
> In gnu/system.scm:
>  851: 4 [#<procedure 126c17e0 at gnu/system.scm:844:2 (state)> #]
> In gnu/system/grub.scm:
>  289: 3 [grub-configuration-file # # # ...]
> In srfi/srfi-1.scm:
>  575: 2 [map #<procedure boot-parameters->menu-entry (conf)> (#)]
> In gnu/system/grub.scm:
>  272: 1 [boot-parameters->menu-entry #]
> In unknown file:
>    ?: 0 [# #]
>
> ERROR: In procedure #<syntax-transformer boot-parameters-label>:
> ERROR: Wrong type to apply: #<syntax-transformer boot-parameters-label>

This indicates another case of a macro being used before it is defined.
I don't have time at the moment to investigate further.

      Mark