GNU bug report logs - #67785
Unhelpful error message when a mandatory & innate field is missing after inheritance

Previous Next

Package: guix;

Reported by: Skyler Ferris <skyvine <at> protonmail.com>

Date: Mon, 11 Dec 2023 19:50:01 UTC

Severity: normal

To reply to this bug, email your comments to 67785 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#67785; Package guix. (Mon, 11 Dec 2023 19:50:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Skyler Ferris <skyvine <at> protonmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 11 Dec 2023 19:50:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Skyler Ferris <skyvine <at> protonmail.com>
To: bug-guix <at> gnu.org
Subject: Unhelpful error message when a mandatory & innate field is missing
 after inheritance
Date: Mon, 11 Dec 2023 19:48:31 +0000
Normally, when a field is missing Guix provides a helpful error message 
explaining the precise problem:

(define-record-type <t> t make-t t? this-t

   (mandatory-field t-mandatory-field))

(t) => t: missing field initializers (mandatory-field) in form (t)

However, if the field is innate, a value is inherited, and the mandatory 
field is missing, the error message is not helpful:

(define-record-type <t> t make-t t? this-t

   (mandatory-field t-mandatory-field)

   (innate-mandatory-field t-innate-mandatory-field (innate))

(define base (t (mandatory-field #t) (innate-mandatory-field #t)))

(t (inherit base)) =>

Backtrace:
           12 (primitive-load "/tmp/test.scm")
In ice-9/eval.scm:
    721:20 11 (primitive-eval (t (inherit base)))
In ice-9/psyntax.scm:
   1229:36 10 (expand-top-sequence (#<syntax:test.scm:6:0 (t #<synt…>) …)
   1121:20  9 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   1342:32  8 (syntax-type (t #<syntax:test.scm:6:3 (inherit base)>) # …)
   1562:32  7 (expand-macro #<procedure 7f793c5d10e0 at ice-9/eval.s…> …)
In ice-9/eval.scm:
    191:35  6 (_ #(#(#<directory (guix-user) 7f7940782a00> #<va…> …) …))
     163:9  5 (_ #(#(#<directory (guix-user) 7f7940782a00> #<va…> …) …))
    191:35  4 (_ #(#(#(#<directory (guix-user) 7f7940782a00> # …) …) …))
In srfi/srfi-1.scm:
    603:19  3 (map2 (innate-mandatory-field mandatory-field) (0 1) 2)
In ice-9/eval.scm:
    196:43  2 (_ #(#(#(#<directory (guix-user) 7f7940782a00> # …) …) …))
     155:9  1 (_ _)
In ice-9/boot-9.scm:
   1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure car: Wrong type argument in position 1 (expecting pair): #f






This bug report was last modified 354 days ago.

Previous Next


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