Subject: bug#38388: [2.9.5] Inaccurate source location info for unbound variables

From: Andy Wingo <[email-masked]>
Date: Fri, 29 Nov 2019 12:04:24 +0100

On Thu 28 Nov 2019 09:20, Ludovic Courtès <[email-masked]> writes:

>>> I have a test that runs ‘guix system build’ on this file:
>>>
>>> (use-modules (gnu))                                   ; 1
>>> (use-service-modules networking)                      ; 2
>>>
>>> (operating-system                                     ; 4
>>>   (host-name "antelope")                              ; 5
>>>   (timezone "Europe/Paris")                           ; 6
>>>   (locale "en_US.UTF-8")                              ; 7
>>>
>>>   (bootloader (GRUB-config (target "/dev/sdX")))      ; 9
>>>   (file-systems (cons (file-system
>>>                         (device (file-system-label "root"))
>>>                         (mount-point "/")
>>>                         (type "ext4"))
>>>                       %base-file-systems)))
>>>
>>> Here, ‘GRUB-config’ is unbound, and the test expects to see a stack
>>> frame corresponding to line 9.
>>>
>>> However, the stack frame we get is for line 11, char 32, which
>>> corresponds to (file-system-label "root").
>
> Any idea where I should poke for debugging?

Sure would be nice to reduce the test case!  Once you have reduced it, I
would first look at the result of ,expand on this form.  If it looks the
same as in 2.2, then perhaps the CPS layer is at fault.  Could be we're
dropping an important source location somewher.

Andy