GNU bug report logs - #40077
[PATCH 0/4] Inferior provide stack traces along with exceptions

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sun, 15 Mar 2020 17:01:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#40077: closed ([PATCH 0/4] Inferior provide stack traces
 along with exceptions)
Date: Thu, 19 Mar 2020 14:16:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 19 Mar 2020 15:15:24 +0100
with message-id <871rpo5t37.fsf <at> gnu.org>
and subject line Re: [bug#40077] [PATCH 0/4] Inferior provide stack traces along with exceptions
has caused the debbugs.gnu.org bug report #40077,
regarding [PATCH 0/4] Inferior provide stack traces along with exceptions
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
40077: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40077
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 0/4] Inferior provide stack traces along with exceptions
Date: Sun, 15 Mar 2020 18:00:19 +0100
Hello!

This patch series allows inferiors to provide stack traces when
an exception is thrown.

The wire format needed to be changed to provide that info, and thus
the protocol had to be adjusted to support both forward and backward
compatibility: a new client must be able to talk to an old ‘guix repl’,
and an old client must be able to talk to a new ‘guix repl’.  To that
end, clients now send the protocol version they support.

Note that, with these patches, stack traces are available but inferior
exceptions are not reported more nicely than before:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (open-inferior "/home/ludo/src/guix" #:command "scripts/guix")
$1 = #<<inferior> pid: pipe socket: #<input-output: file 7f08f4404a80> close: #<procedure close-pipe (p)> version: (0 1 1) packages: #<promise #<procedure 7f08f6813040 at guix/inferior.scm:161:32 ()>> table: #<promise #<procedure 7f08f43c6240 at guix/inferior.scm:162:32 ()>>>
scheme@(guile-user)> (inferior-eval '(throw 'x 'y 'z) $1)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
ERROR:
  1. &inferior-exception:
      arguments: (x y z)
      inferior: #<<inferior> pid: pipe socket: #<input-output: string 7f08f4404a80> close: #<procedure close-pipe (p)> version: (0 1 1) packages: #<promise #<procedure 7f08f6813040 at guix/inferior.scm:161:32 ()>> table: #<promise #<procedure 7f08f43c6240 at guix/inferior.scm:162:32 ()>>>
      stack: ((#f ("ice-9/boot-9.scm" 1763 13)) (raise-exception ("ice-9/boot-9.scm" 1668 16)) (#f (#f #f #f)) (#f ("guix/repl.scm" 92 21)) (with-exception-handler ("ice-9/boot-9.scm" 1735 10)) (with-exception-handler ("ice-9/boot-9.scm" 1730 15)) (#f ("guix/repl.scm" 119 7)))

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
--8<---------------cut here---------------end--------------->8---

This is left as an exercise to the reader.

Feedback welcome!

Ludo’.

Ludovic Courtès (4):
  repl: Allow clients to send their protocol version.
  inferior: Adjust to protocol (0 1).
  repl: Return stack traces along with exceptions.
  inferior: '&inferior-exception' includes a stack trace.

 guix/inferior.scm  | 24 +++++++++++--
 guix/repl.scm      | 86 ++++++++++++++++++++++++++++++++++++++--------
 tests/inferior.scm |  3 ++
 3 files changed, 97 insertions(+), 16 deletions(-)

-- 
2.25.1



[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: 40077-done <at> debbugs.gnu.org
Subject: Re: [bug#40077] [PATCH 0/4] Inferior provide stack traces along with
 exceptions
Date: Thu, 19 Mar 2020 15:15:24 +0100
Ludovic Courtès <ludo <at> gnu.org> skribis:

>   repl: Allow clients to send their protocol version.
>   inferior: Adjust to protocol (0 1).
>   repl: Return stack traces along with exceptions.
>   inferior: '&inferior-exception' includes a stack trace.

Pushed as 1dca6aaafa9f842565deab1fe7e6929f25544551.

Ludo’.


This bug report was last modified 5 years and 66 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.