all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Chris Marusich <cmmarusich@gmail.com>
Cc: 32952@debbugs.gnu.org
Subject: bug#32952: "make check-system" fails to report record-abi-mismatch-error
Date: Mon, 08 Oct 2018 15:12:18 +0200	[thread overview]
Message-ID: <87woqsziod.fsf@gnu.org> (raw)
In-Reply-To: <875zyfv8y7.fsf@gmail.com> (Chris Marusich's message of "Sat, 06 Oct 2018 00:19:12 -0700")

Hi Chris,

Chris Marusich <cmmarusich@gmail.com> skribis:

> The procedure warn-about-load-error is defined in guix/ui.scm.  It calls
> display-error.  That seems to be where the problem occurs.  Based on the
> debug output I added, we can see that in warn-about-load-error, the args
> variable refers to the following list:
>
>   (record-abi-mismatch-error #<record-type <openssh-configuration>>)
>
> This is strange, since the only place that throws
> record-abi-mismatch-error is in guix/records.scm...
>
>   (define (abi-check type cookie)
>     "Return syntax that checks that the current \"application binary
> interface\" (ABI) for TYPE is equal to COOKIE."
>     (with-syntax ((current-abi (current-abi-identifier type)))
>       #`(unless (eq? current-abi #,cookie)
>           ;; The source file where this exception is thrown must be
>           ;; recompiled.
>           (throw 'record-abi-mismatch-error 'abi-check
>                  "~a: record ABI mismatch; recompilation needed"
>                  (list #,type) '()))))
>
>
> ...and based on that code, I expected the args variable to contain many
> more elements.  I expected it to look more like this:
>
> scheme@(guile-user)> (throw 'record-abi-mismatch-error 'abi-check
>                  "~a: record ABI mismatch; recompilation needed"
>                  (list 'some-type) '())
> Throw to key `record-abi-mismatch-error' with args `(abi-check "~a: record ABI mismatch; recompilation needed" (some-type) ())'.
>
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]> 
>
> I don't understand what happened to all the other arguments.  It looks
> like the throw invocation in guix/records.scm was written carefully so
> that it would throw exactly the arguments that display-error expects to
> receive, but some of the arguments apparently went missing (e.g., the
> "~a: record ABI mismatch; recompilation needed" message).  I can't
> figure out why those arguments are missing.

Commit de5cbd4a38a33e0412f1c481fe8e01a871dc13e5 changed the arguments
passed along ‘record-abi-mismatch-error’ exceptions precisely to fix the
problem you report I believe.  :-)

What’s probably happening here is that you have a .go file built before
this commit, which is why it’s passing only on argument (the record
type) along the ‘record-abi-mismatch-error’ exception.

Does that make sense?

Thanks,
Ludo’.

  reply	other threads:[~2018-10-08 13:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-06  7:19 bug#32952: "make check-system" fails to report record-abi-mismatch-error Chris Marusich
2018-10-08 13:12 ` Ludovic Courtès [this message]
2018-10-27 19:18   ` Chris Marusich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87woqsziod.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=32952@debbugs.gnu.org \
    --cc=cmmarusich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.