From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Taylan Kammer Newsgroups: gmane.lisp.guile.bugs Subject: bug#52112: Compilation of macro returning record type fails Date: Fri, 26 Nov 2021 19:54:36 +0100 Message-ID: <5a97c5fd-ee56-e636-ae18-679570e2502b@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27551"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 To: Jean Abou Samra , 52112@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Fri Nov 26 19:58:34 2021 Return-path: Envelope-to: guile-bugs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mqgQc-0006u4-Gp for guile-bugs@m.gmane-mx.org; Fri, 26 Nov 2021 19:58:34 +0100 Original-Received: from localhost ([::1]:51842 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mqgQa-00071m-Kb for guile-bugs@m.gmane-mx.org; Fri, 26 Nov 2021 13:58:32 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:39322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqgNC-0002ye-EG for bug-guile@gnu.org; Fri, 26 Nov 2021 13:55:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49006) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mqgNC-0004bR-3E for bug-guile@gnu.org; Fri, 26 Nov 2021 13:55:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mqgNB-0000E2-U5 for bug-guile@gnu.org; Fri, 26 Nov 2021 13:55:01 -0500 X-Loop: help-debbugs@gnu.org 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 Original-Received: via spool by 52112-submit@debbugs.gnu.org id=B52112.1637952885840 (code B ref 52112); Fri, 26 Nov 2021 18:55:01 +0000 Original-Received: (at 52112) by debbugs.gnu.org; 26 Nov 2021 18:54:45 +0000 Original-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 Original-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 Original-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) Original-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) Content-Language: en-US In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.io gmane.lisp.guile.bugs:10212 Archived-At: 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