unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* bug#38388: [2.9.5] Inaccurate source location info for unbound variables
@ 2019-11-26 15:20 Ludovic Courtès
  2019-11-27  9:53 ` Andy Wingo
  2020-03-07 16:06 ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Ludovic Courtès @ 2019-11-26 15:20 UTC (permalink / raw)
  To: bug-Guile; +Cc: Andy Wingo

Hello,

I have a test that runs ‘guix system build’ on this file:

--8<---------------cut here---------------start------------->8---
(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)))
--8<---------------cut here---------------end--------------->8---

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").

So it would seem that the IP-to-source-location mapping is not quite
working as expected.

Thoughts?

Ludo’.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#38388: [2.9.5] Inaccurate source location info for unbound variables
  2019-11-26 15:20 bug#38388: [2.9.5] Inaccurate source location info for unbound variables Ludovic Courtès
@ 2019-11-27  9:53 ` Andy Wingo
  2019-11-28  8:20   ` Ludovic Courtès
  2020-03-07 16:06 ` Ludovic Courtès
  1 sibling, 1 reply; 5+ messages in thread
From: Andy Wingo @ 2019-11-27  9:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38388

Hi,

On Tue 26 Nov 2019 16:20, Ludovic Courtès <ludovic.courtes@inria.fr> 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").
>
> So it would seem that the IP-to-source-location mapping is not quite
> working as expected.
>
> Thoughts?

What version is this with?

Unfortunately as you know, bare identifiers don't have good source
location information.  There are small improvements that can be made but
larger improvments are gnarly.  Could be this is a case for a small
improvement though!

Andy





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#38388: [2.9.5] Inaccurate source location info for unbound variables
  2019-11-27  9:53 ` Andy Wingo
@ 2019-11-28  8:20   ` Ludovic Courtès
  2019-11-29 11:04     ` Andy Wingo
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2019-11-28  8:20 UTC (permalink / raw)
  To: Andy Wingo; +Cc: 38388

Hello!

Andy Wingo <wingo@igalia.com> skribis:

> On Tue 26 Nov 2019 16:20, Ludovic Courtès <ludovic.courtes@inria.fr> 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").
>>
>> So it would seem that the IP-to-source-location mapping is not quite
>> working as expected.
>>
>> Thoughts?
>
> What version is this with?

The wrong location info is with 2.9.5.  2.2.x (and 2.0.x) work fine.

Any idea where I should poke for debugging?

> Unfortunately as you know, bare identifiers don't have good source
> location information.  There are small improvements that can be made but
> larger improvments are gnarly.  Could be this is a case for a small
> improvement though!

I know, that’s why this test checks a favorable case (symbol wrapped in
an sexp).  So I agree this would be a welcome improvement, but I think
it’s unnecessary for the purposes of the use case above.

Thanks,
Ludo’.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#38388: [2.9.5] Inaccurate source location info for unbound variables
  2019-11-28  8:20   ` Ludovic Courtès
@ 2019-11-29 11:04     ` Andy Wingo
  0 siblings, 0 replies; 5+ messages in thread
From: Andy Wingo @ 2019-11-29 11:04 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38388

On Thu 28 Nov 2019 09:20, Ludovic Courtès <ludovic.courtes@inria.fr> 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





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#38388: [2.9.5] Inaccurate source location info for unbound variables
  2019-11-26 15:20 bug#38388: [2.9.5] Inaccurate source location info for unbound variables Ludovic Courtès
  2019-11-27  9:53 ` Andy Wingo
@ 2020-03-07 16:06 ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2020-03-07 16:06 UTC (permalink / raw)
  To: 38388, Andy Wingo

Hi,

Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

> 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").

I can’t say I got to the bottom of why we got this weird line number,
but commit d3a775ff10cbd0e14af38d6f900a7538db89bd90 solves this specific
issue.

Ludo’.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-07 16:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-26 15:20 bug#38388: [2.9.5] Inaccurate source location info for unbound variables Ludovic Courtès
2019-11-27  9:53 ` Andy Wingo
2019-11-28  8:20   ` Ludovic Courtès
2019-11-29 11:04     ` Andy Wingo
2020-03-07 16:06 ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).