Subject: bug#51445: (no subject)

From: Joshua Branson <[email-masked]>
Date: Wed, 27 Oct 2021 15:18:38 -0400

This is more of a feature request.  Apologies if this is an annoying
request.

So I made a pretty noobie-like mistake a few days ago using (guix
records).  When one tries to create a <record-configuration>, he
invariably creates an infinite number of records.  The guile compiler
eventually runs out of memory and stops compiling with an error
message like:

fish: Job 1, 'guile break-guile-compiler.scm' terminated by signal SIGKILL (Forced quit)

I submitted this "bug" report to [email-masked] as well.

http://issues.guix.gnu.org/51383

It probably will not be fixed at the (guix records) macro level
anytime soon, so I am submitting it here in case guile developers are
interested in improving their compiler error messages.  I came across
this compiler error while debugging my 1,000 line program.  Trying to
figure out what was wrong without any hints from appropriate error
messages was slightly confusing.

Here is the bad code:

(use-modules (guix records))

(define-record-type* <record-configuration>
  record-configuration make-record-configuration
  record-configuration?

  (command record-configuration-command
    ;; the error is here is on the next line
    (default (record-configuration))))  

(record-configuration)

Thanks,
Joshua