GNU bug report logs - #36547
expect an earlier/clearer error when trying to splice(?) a function into a gexp

Previous Next

Package: guix;

Reported by: Robert Vollmert <rob <at> vllmrt.net>

Date: Mon, 8 Jul 2019 12:34:01 UTC

Severity: normal

To reply to this bug, email your comments to 36547 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#36547; Package guix. (Mon, 08 Jul 2019 12:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Robert Vollmert <rob <at> vllmrt.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 08 Jul 2019 12:34:02 GMT) Full text and rfc822 format available.

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

From: Robert Vollmert <rob <at> vllmrt.net>
To: bug-guix <at> gnu.org
Subject: expect an earlier/clearer error when trying to splice(?) a function
 into a gexp
Date: Mon, 8 Jul 2019 14:33:36 +0200
I tried to use a function in a gexp along the lines of

(define* (f x) …)

#~(begin
     (#$f x)
     …)

This resulted in the following error:

ERROR: In procedure primitive-load:
In procedure scm_lreadr: /gnu/store/wcw0fii855axkiqfz05283rwl7nlrb3i-puzzledb-blogs-job-builder:1:254: Unknown # object: #\<

where the referenced builder file contains

… (let ((backend (#<procedure read-secret (file)> "tools.token"))) …

It seems to me that whatever code writes the builder file should already complain at the point
where it substitutes #<procedure read-secret (file)> — is that possible?





Information forwarded to bug-guix <at> gnu.org:
bug#36547; Package guix. (Thu, 11 Jul 2019 16:07:01 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Robert Vollmert <rob <at> vllmrt.net>
Cc: 36547 <at> debbugs.gnu.org
Subject: Re: bug#36547: expect an earlier/clearer error when trying to
 splice(?) a function into a gexp
Date: Thu, 11 Jul 2019 18:06:52 +0200
Robert Vollmert <rob <at> vllmrt.net> skribis:

> I tried to use a function in a gexp along the lines of
>
> (define* (f x) …)
>
> #~(begin
>      (#$f x)
>      …)
>
> This resulted in the following error:
>
> ERROR: In procedure primitive-load:
> In procedure scm_lreadr: /gnu/store/wcw0fii855axkiqfz05283rwl7nlrb3i-puzzledb-blogs-job-builder:1:254: Unknown # object: #\<
>
> where the referenced builder file contains
>
> … (let ((backend (#<procedure read-secret (file)> "tools.token"))) …
>
> It seems to me that whatever code writes the builder file should already complain at the point
> where it substitutes #<procedure read-secret (file)> — is that possible?

I think ‘gexp->sexp’ should simply error out whenever an object that
lacks a read syntax (like a procedure) is inserted in a gexp.

Ludo’.




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

Previous Next


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