From unknown Wed Jun 18 00:25:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52112: Compilation of macro returning record type fails Resent-From: Jean Abou Samra Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Thu, 25 Nov 2021 17:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 52112 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 52112@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16378626764285 (code B ref -1); Thu, 25 Nov 2021 17:52:01 +0000 Received: (at submit) by debbugs.gnu.org; 25 Nov 2021 17:51:16 +0000 Received: from localhost ([127.0.0.1]:57976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqItv-000172-Up for submit@debbugs.gnu.org; Thu, 25 Nov 2021 12:51:16 -0500 Received: from lists.gnu.org ([209.51.188.17]:49836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqItr-00016r-8J for submit@debbugs.gnu.org; Thu, 25 Nov 2021 12:51:13 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54594) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqItq-00086B-O3 for bug-guile@gnu.org; Thu, 25 Nov 2021 12:51:10 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:59555) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqItn-000279-G4 for bug-guile@gnu.org; Thu, 25 Nov 2021 12:51:10 -0500 Received: from [10.188.216.67] ([46.193.67.184]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.184]) with ESMTPSA (Nemesis) id 1MdeKd-1mGgsp2KDR-00Zidp for ; Thu, 25 Nov 2021 18:45:50 +0100 Message-ID: Date: Thu, 25 Nov 2021 18:45:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1 Content-Language: en-US From: Jean Abou Samra Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:gYm/+4nHF7qsIhtPgV0+ItN5ERY0SANxPQnSZZZRq19kilJ7f25 JWP6ug/bohdmF/6OQ4RRslCtvoQYqyjN30a7j+ZfOj2iDdjiuzZkbaJ21zMQrLMEL/TR+un FbaG33s/343YCcVXPfLaX4imjBCBVevxWE2zuCMvA5vycFMlyJ5MPNSGLYgrE9FeotQDtX0 6bpnn09yJybSwmC0C5YNw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:pJ9Zyn4PMoA=:QbkfPywErQ7DaaeF3j9MA3 iq6TsJzWWvHmA3y+nS/vQHgUPymwdl+Mk5/nYSaZAjT7idTMy/Fbus42v5qRyDNlVwo32fC7p UOQkUqCmOKWpnLFUnhBjGt74HGJfwuO8rW+YGJlEUT1kseywXyaDgoKe2SRvHQVujukcdbnnT aiRUo1fgdWG4qW7P7M497giwz8slifKanhpbWperuiRWwm5sssHKhCNDH1nleXeOIeKiXYsx4 /oE5InrtXwuNFM79q78dNP0Ezw2PDZ83Wl1HjoCtC77wczloiidiYvCsk7OWbkWlas8SRvHYM U5ee/I3p5xk+vA50EH8GxCySuiz2RQm4iHNydZHdKuRfPQRp3vtgBmlpGliZ2BFjTXtZ0Ytqx zG2U7hI57aL5qwm+0zZEBvamxyb3dwyGxUnfjkrQQrAUztbERhHxUUKcTSTU4WLGp+Wl+OWca /pndXBTkfdAivcH/BktDbRJYCscuSe06ywOIeqzBTXLHAYkfm61Ng24O3uQlQqDyVxoIVfcul D7xqXthUGGnr2/qxFhew9NtqkeAdAy2vZzRLfl4184CQo5r13lap4+cj8gXmYfboezNMM0cZ5 bHBsvswX1JKXnKauwLyXqU1FmhGLGfeoY00AyRn7A5C1QxY6hQAYZ5s8VDiLwvFNAMzVa8FhF YreOmwqYVx5znrspTsoKrSvSF1FHAhucvj3/B8kZVWx642xrMXGSwkDVzC78XMzEdiXSoglkA MHfCTGJO9swCQs69 Received-SPF: none client-ip=212.227.17.13; envelope-from=jean@abou-samra.fr; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Record types are self-evaluating: scheme@(guile-user)> (eval (make-record-type 'my-record '()) (current-module)) $1 = # Yet, when a macro returns a record type, Guile fails to byte-compile the code, even though the execution (via the evaluator) works fine. Here is a simple example: (define-macro (my-macro)   (make-record-type 'my-record-2 '())) (display (my-macro)) (newline) Execution log: $ guile --no-auto-compile test.scm # $ guile test.scm ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;;       or pass the --no-auto-compile argument to disable. ;;; compiling /home/jean/test.scm ;;; WARNING: compilation of /home/jean/test.scm failed: ;;; unhandled constant # # This is with Guile version 3.0.5.130-5a1e7. From unknown Wed Jun 18 00:25:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52112: Compilation of macro returning record type fails Resent-From: Taylan Kammer Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Fri, 26 Nov 2021 18:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52112 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Jean Abou Samra , 52112@debbugs.gnu.org Received: via spool by 52112-submit@debbugs.gnu.org id=B52112.1637952885840 (code B ref 52112); Fri, 26 Nov 2021 18:55:01 +0000 Received: (at 52112) by debbugs.gnu.org; 26 Nov 2021 18:54:45 +0000 Received: from localhost ([127.0.0.1]:60552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqgMv-0000DT-89 for submit@debbugs.gnu.org; Fri, 26 Nov 2021 13:54:45 -0500 Received: from mail-wm1-f41.google.com ([209.85.128.41]:56249) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqgMu-0000DE-0C for 52112@debbugs.gnu.org; Fri, 26 Nov 2021 13:54:44 -0500 Received: by mail-wm1-f41.google.com with SMTP id p18so8887309wmq.5 for <52112@debbugs.gnu.org>; Fri, 26 Nov 2021 10:54:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=CqMu2ayUdeEzoByJvvfRdUC/Er7NT6l5vruCiJNVjIA=; b=MToxbXZ16xQg6skPjdVUuHaM5pkIohHV6yrd+HIhE2VsbMhh2Tq4lg7fQ5k+6LzvD2 sWe8+7VH0KYFVyJixYm86udDYpYj6SDZdTTnyamg3Uh0+dXgngr/cKofjI3qNKKTe38/ UW7RLU8E3YmGHi+Mte/MNlA1ABNvlDYZY9AhAQCdyS1AwT7ozw4HM3AITKR07lVKsVVR 7WuJ+2slYbYc9ZBtvY5WCBU1tv1mVR7FLVjf+/jt8DZ9U6blvNaZWZuAHM3pR+sjdMKk 8a6gbZEai+GVtDVos16BfO4342vdsu/nH1NEoxqrI4B1+k9ySyjVmNkee40l5nYuMQ3P 4flA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=CqMu2ayUdeEzoByJvvfRdUC/Er7NT6l5vruCiJNVjIA=; b=DouOd6r1wGKxy0xi3soMqRdZd3Q13ABOXWkv5T2SMssJJReYVve1XOHt+/NOhMkW43 gyxbN+/1bqh+gikNvv299afxoSPqZ6vF0mtP3h6P2hNCPGHns9cLWAkumWrCausmKRmT QW3cqsgBQuR7se8BFZF3ao8/zmAnffRBe9Vfd4lxpTZ59Ac/+zRQwtWceUqxlJBSoBvD PMtaZRDYmsrekgiBnorPmpB2EGWIhqpXqWP+Xkvs1xj0FnRe7qktW5yhddh1bfbzztbZ sLjr85tcX5FZI4KZpBfzaZ1C63ftBMLuJrnCIx4jxt36o38ISA2kdQtfNcHx0PaSVRe3 SoVg== X-Gm-Message-State: AOAM532WrtIEqQVhNZATPGq0CYzD6zM8eregU/NCMD1jUjynt6fO/kVP tfISCRYYUd8jlbb/tFC32QE= X-Google-Smtp-Source: ABdhPJzImOYVTd0Koh2YJEXOsmRJxfatzikNSYH+FRaCCP3AlVZQfmpE400kLUPH9I5ZcqFeqdrulg== X-Received: by 2002:a05:600c:4982:: with SMTP id h2mr17208146wmp.4.1637952878051; Fri, 26 Nov 2021 10:54:38 -0800 (PST) Received: from [192.168.178.20] (b2b-109-90-125-150.unitymedia.biz. [109.90.125.150]) by smtp.gmail.com with ESMTPSA id o12sm7753907wmq.12.2021.11.26.10.54.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Nov 2021 10:54:37 -0800 (PST) Message-ID: <5a97c5fd-ee56-e636-ae18-679570e2502b@gmail.com> Date: Fri, 26 Nov 2021 19:54:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Content-Language: en-US References: From: Taylan Kammer In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.1 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.1 (-) On 25.11.2021 18:45, Jean Abou Samra wrote: > Record types are self-evaluating: > > scheme@(guile-user)> (eval (make-record-type 'my-record '()) (current-module)) > $1 = # > > Yet, when a macro returns a record type, Guile fails > to byte-compile the code, even though the execution > (via the evaluator) works fine. Here is a simple example: > > > (define-macro (my-macro) >   (make-record-type 'my-record-2 '())) > > (display (my-macro)) > (newline) > > > Execution log: > > > $ guile --no-auto-compile test.scm > # > > $ guile test.scm > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;;       or pass the --no-auto-compile argument to disable. > ;;; compiling /home/jean/test.scm > ;;; WARNING: compilation of /home/jean/test.scm failed: > ;;; unhandled constant # > # > > This is with Guile version 3.0.5.130-5a1e7. I don't think that's supposed to work. I find it surprising that record-type objects are self-evaluating, and in any case they can't be turned into bytecode. Your macro could return code that evaluates to a record definition. Would that solve your use-case? -- Taylan From unknown Wed Jun 18 00:25:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52112: Compilation of macro returning record type fails Resent-From: Jean Abou Samra Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Fri, 26 Nov 2021 19:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52112 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Taylan Kammer , 52112@debbugs.gnu.org Received: via spool by 52112-submit@debbugs.gnu.org id=B52112.16379533681753 (code B ref 52112); Fri, 26 Nov 2021 19:03:02 +0000 Received: (at 52112) by debbugs.gnu.org; 26 Nov 2021 19:02:48 +0000 Received: from localhost ([127.0.0.1]:60565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqgUi-0000SC-KA for submit@debbugs.gnu.org; Fri, 26 Nov 2021 14:02:48 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:40529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqgUg-0000Rw-MT for 52112@debbugs.gnu.org; Fri, 26 Nov 2021 14:02:47 -0500 Received: from [10.188.216.67] ([46.193.67.184]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.184]) with ESMTPSA (Nemesis) id 1Mz9IT-1mdyrL09mF-00wGQY; Fri, 26 Nov 2021 20:02:40 +0100 Message-ID: <41883031-68aa-de96-0cd0-504578fbdabe@abou-samra.fr> Date: Fri, 26 Nov 2021 20:02:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1 Content-Language: en-US References: <5a97c5fd-ee56-e636-ae18-679570e2502b@gmail.com> From: Jean Abou Samra In-Reply-To: <5a97c5fd-ee56-e636-ae18-679570e2502b@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:AdnAFxSoYibG0SjCSE4WZee/vWRu5V+uZ0L+6RbMncrdrNXPYDi r7g+hf1xJPBs74iGnRUg16zmqpo8etglL5qoltcBj4AfA6BYnH8luELmmIHxOizmEtiCzXx SrmdFAKPmx3OExwEJ8R9iWifF24YPpD4mS/h4rEVeaC/ZBbtCdM5sm5nSh9lwshjNIzofWV 9WDG4zq0Tcc4eVJU1y5Aw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:UZUhA48Zu2g=:ZEi3hdRO45vV1yOA4MGB+K Fv/XPozkqp8IcMY0QNV9p85hCSucSNjCQHhls8ifHJdxfHCFsZVIphktSUlZkwelfQ2/ySkbm hcG996QDwFzm96OaxVYwQhp6DrIqJBHnS4PD2+k/GD2h+Ezmf1QM2R4FDMBRklWpQCelaf5M6 XRJCBpY5wtaOUt64O2Glkj++8L/10rvVzHpwSS83icvZZDibgRgJZKuuMMS5Ry77icaMw7Gmh JWdWphViPKPtnqwU/ioQI7XVJDF/u6d0qjA/0l5wcCRCvbHplpW/jtIgdTCRmcHqgS+0hfxym EK++tfWbEN2MN265ckWT+0OweinE2r5ezYWmwmTS7TaTouj/COdV0Oar4QHPvwD6AeGw4QAjR EAtv51WU7MhcabhjipTV3rZF4d0/20dusvP6nFx937M6BqH9OA7VifwCdTpLnWOgsajApaVRd N0/StPnyMNkhGdHlWp+a/j19wMRnMm+2MSGg1/bbUTHyIQ5dHI8dzVFOaalNimK3AJcsBqKiG 8fl+G+knXCLHtcuHGO394HjNlr5LYdv+C09j40jOwx+tbvXnEkt+qSoZOM2efecHMGsnsLBFN 67yGLiu3Qv7TRZZLPFo3Tti/nrIYq8VIXF792RRFGw73w4Z6UUkw4fiGGKcioZjbbc+9/tBYl BaCRuiXFGKkGZM+E5slG1JYNs4KGq+wEODi6IHK9atXims67ehRe5qUCW53HiGFbmAkzOfzxi 0lpLA/GJj/V5x5xp X-Spam-Score: -0.1 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.1 (-) Thanks for your reply. Le 26/11/2021 à 19:54, Taylan Kammer a écrit : > I don't think that's supposed to work. I find it surprising that > record-type objects are self-evaluating, and in any case they can't > be turned into bytecode. > > Your macro could return code that evaluates to a record definition. > Would that solve your use-case? Yes, that is how I solved it in LilyPond (https://gitlab.com/lilypond/lilypond/-/merge_requests/1026). I was also somewhat surprised to see that record types are self-evaluating. I don't know where to check in R6RS what the expected behavior would be. At any rate, it seems that there is an inconsistency between the interpreter and the compiler that would warrant resolving either way.