From unknown Thu Sep 11 16:39:32 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#50286 <50286@debbugs.gnu.org> To: bug#50286 <50286@debbugs.gnu.org> Subject: Status: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. Reply-To: bug#50286 <50286@debbugs.gnu.org> Date: Thu, 11 Sep 2025 23:39:32 +0000 retitle 50286 [RFC PATCH] Let 'package-location' returns location of surrou= nding 'let'. reassign 50286 guix-patches submitter 50286 Maxime Devos severity 50286 normal tag 50286 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 30 17:27:07 2021 Received: (at submit) by debbugs.gnu.org; 30 Aug 2021 21:27:07 +0000 Received: from localhost ([127.0.0.1]:60497 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKoo3-0008IY-0z for submit@debbugs.gnu.org; Mon, 30 Aug 2021 17:27:07 -0400 Received: from lists.gnu.org ([209.51.188.17]:47366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKonx-0008Hy-L0 for submit@debbugs.gnu.org; Mon, 30 Aug 2021 17:27:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53900) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKonw-0000aC-Ue for guix-patches@gnu.org; Mon, 30 Aug 2021 17:26:57 -0400 Received: from andre.telenet-ops.be ([2a02:1800:120:4::f00:15]:39452) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mKont-0002Ov-Di for guix-patches@gnu.org; Mon, 30 Aug 2021 17:26:56 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by andre.telenet-ops.be with bizsmtp id nxSo250030mfAB401xSoCE; Mon, 30 Aug 2021 23:26:48 +0200 Message-ID: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> Subject: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. From: Maxime Devos To: guix-patches@gnu.org Date: Mon, 30 Aug 2021 23:26:43 +0200 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-cu+bwmfsn4oT27CDBdX2" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1630358808; bh=0w53oDbXRB6iRNiHuqeAfs+YbBBX/rfBDYTyzH9YoBQ=; h=Subject:From:To:Date; b=TivfyGgvqiWq7nOIWAoPeqObC/lljmBxqxFBUf6xak4vMuRX2UgjJtLrbTpMOiULF HI3no/eQtAt3l4IRO6RwAGQX5HL+UgK4OpTgmapsHkwCBd25cL6vauqjzVOhH1d7kt QBF1y1wRz6mVo+9OXzoRINZzsuUGwlMQ5x9K6Oe5l6LlYHmrXNUZbuMpJf8tpmpRLP Ml4txeF733T5RYG3okTwaLwImRc6IOETv1NCfUzkMCUxHG7KTlhLtuErurOPFS7WYb gnGbiF3XGrr6SCzZqKLVSSI/NEO8P6sfGrQAw2Ib5slmpSQYAx10YKHZGIf6fXlEdE PqYW39wUyq2HQ== Received-SPF: pass client-ip=2a02:1800:120:4::f00:15; envelope-from=maximedevos@telenet.be; helo=andre.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit 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: -2.3 (--) --=-cu+bwmfsn4oT27CDBdX2 Content-Type: multipart/mixed; boundary="=-Z8M+/PRei7Swez5ubkct" --=-Z8M+/PRei7Swez5ubkct Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Debbugs-CC: ludo@gnu.org X-Debbugs-CC: iskarian@mgsn.dev Hi guix, These three patches allows (guix upstream) to replace the values in the sur= rounding 'let' form, if any. It's important for constructs like: (define-public gnash (let ((version "0.8.11") (commit "583ccbc1275c7701dc4843ec12142ff86bb305b4") (revision "0")) (package (name "gnash") (version (git-version version revision commit)) (source (git-reference (url "https://example.org") (commit commit))) [...]))) such that it can update the version, commit, revision. (Currently only the version will be updatable, but see and for work on making 'commit' updat= able). More details in the patches themselves. Greetings, Maxime --=-Z8M+/PRei7Swez5ubkct Content-Disposition: inline; filename*0=0001-packages-package-location-returns-location-of-surrou.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-packages-package-location-returns-location-of-surrou.patch"; charset="UTF-8" RnJvbSAwZWRhZTFmNmVhYzY5YTM4ZDIzNjkyZmZlM2ViYzMyYWFiMDBhM2I3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IE1vbiwgMzAgQXVnIDIwMjEgMTY6NDE6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEv M10gcGFja2FnZXM6ICdwYWNrYWdlLWxvY2F0aW9uJyByZXR1cm5zIGxvY2F0aW9uIG9mCiBzdXJy b3VuZGluZyAnbGV0Jy4KClRoZSBpZGVhIGlzIHRvIGxldCAiZ3VpeCByZWZyZXNoIC11IiBiZSBh YmxlIHRvIHVwZGF0ZSB0aGUgdmVyc2lvbiwKcmV2aXNpb24gYW5kIGNvbW1pdCBpbiBwYWNrYWdl cyBkZWZpbmVkIGxpa2U6CgooZGVmaW5lLXB1YmxpYyBlbWFjcy1mbHltYWtlLXF1aWNrZGVmCiAg KGxldCAoKHZlcnNpb24gIjEuMC4wIikKICAgICAgICAocmV2aXNpb24gIjAiKQogICAgICAgIChj b21taXQgIjE1MGM1ODM5NzY4YTNkMzJmOTg4ZjlkYzA4MDUyOTc4YTY4ZjJhZDciKSkKICAgIChw YWNrYWdlCiAgICAgIChuYW1lICJlbWFjcy1mbHltYWtlLXF1aWNrZGVmIikKICAgICAgKHZlcnNp b24gKGdpdC12ZXJzaW9uIHZlcnNpb24gcmV2aXNpb24gY29tbWl0KSkKICAgICAgWy4uLl0pKSkK ClVwZGF0aW5nIHRoZSByZXZpc2lvbiBhbmQgY29tbWl0IGlzIG5vdCB5ZXQgc3VwcG9ydGVkCmJ5 IChndWl4IHVwc3RyZWFtKSwgYnV0IHNlZSA8aHR0cHM6Ly9pc3N1ZXMuZ3VpeC5nbnUub3JnLzUw MDcyPi4KCiogZ3VpeC9wYWNrYWdlcy5zY206IFJlLWV4cG9ydCAnbGV0cmVjJyBmcm9tIFNSRkkt NzEKKiBndWl4L3BhY2thZ2VzLnNjbQogIChyZWFkLXN5bnRheCopOiBEZWZpbmUgYXMgJ3JlYWQt c3ludGF4Jywgd2l0aCBzb21lIEd1aWxlIDwgMy4wLjcKICBjb21wYXRpYmlsaXR5IGNvZGUuCiAg KHBhY2thZ2UtZmllbGQtbG9jYXRpb24pW3N5bnRheC1jYXNlLWxvb3BdOiBOZXcgbWFjcm8uCiAg KHBhY2thZ2UtZmllbGQtbG9jYXRpb24pW3N5bnRheC1hc3NxXTogTmV3IG1hY3JvLgogIChwYWNr YWdlLWZpZWxkLWxvY2F0aW9uKTogVXNlICdzeW50YXgtY2FzZS1sb29wJyBhbmQgJ3N5bnRheC1j YXNlJwogIGluc3RlYWQgb2YgJ21hdGNoJy4gUmVjb2duaXNlICdsZXQnIGZvcm1zLiAgVXNlIHN5 bnRheC1zb3VyY2UgaW5zdGVhZCBvZgogIHNvdXJjZS1wcm9wZXJ0aWVzLCB3aXRoIHNvbWUgY29t cGF0aWJpbGl0eSBjb2RlIGZvciBHdWlsZSA8IDMuMC43LgogIChkYXR1bS0+c3ludGF4Kik6IERl ZmluZSBhcyAnZGF0dW0tPnN5bnRheCcsIHdpdGggc29tZSBHdWlsZSA8IDMuMC42CiAgY29tcGF0 aWJpbGl0eSBjb2RlLgogICh3aXRoLXNvdXJjZS1sb2NhdGlvbik6IE5ldyBtYWNyby4KICAobGV0 Jik6IE5ldyBtYWNybwogIChsZXQqJik6IE5ldyBtYWNyby4KKiB0ZXN0cy9wYWNrYWdlcy5zY20K ICAoZ290bywgcmVhZC1hdCk6IEV4dHJhY3QgZnJvbSAicGFja2FnZS1maWVsZC1sb2NhdGlvbiIg dGVzdC4KICAoInBhY2thZ2UtZmllbGQtbG9jYXRpb24gYW5kICdsZXQnIiwgInBhY2thZ2UtZmll bGQtbG9jYXRpb24gYW5kIHN5bWJvbHMiKToKICBOZXcgdGVzdHMuCi0tLQogZ3VpeC9wYWNrYWdl cy5zY20gIHwgMTM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogdGVzdHMvcGFja2FnZXMuc2NtIHwgIDYwICsrKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9ndWl4L3BhY2thZ2VzLnNjbSBiL2d1aXgvcGFja2FnZXMuc2NtCmluZGV4IGM4MjVmNDI3ZDgu LmE3MWM5YWM3NGYgMTAwNjQ0Ci0tLSBhL2d1aXgvcGFja2FnZXMuc2NtCisrKyBiL2d1aXgvcGFj a2FnZXMuc2NtCkBAIC02LDYgKzYsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDE3LCAyMDE5LCAy MDIwIEVmcmFpbSBGbGFzaG5lciA8ZWZyYWltQGZsYXNobmVyLmNvLmlsPgogOzs7IENvcHlyaWdo dCDCqSAyMDE5IE1hcml1cyBCYWtrZSA8bWJha2tlQGZhc3RtYWlsLmNvbT4KIDs7OyBDb3B5cmln aHQgwqkgMjAyMSBDaHJpcyBNYXJ1c2ljaCA8Y21tYXJ1c2ljaEBnbWFpbC5jb20+Cis7OzsgQ29w eXJpZ2h0IMKpIDIwMjEgTWF4aW1lIERldm9zIDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgogOzs7 CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCiA7OzsKQEAgLTQ3LDExICs0OCwx NyBAQAogICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKICAgIzp1c2UtbW9kdWxlIChzcmZp IHNyZmktMzQpCiAgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTM1KQorICAjOnVzZS1tb2R1bGUg KHNyZmkgc3JmaS03MSkgOyB1c2VkIGJ5IGxldCYgYW5kIGxldComCisgICM6dXNlLW1vZHVsZSAo KHN5c3RlbSBzeW50YXgpICM6c2VsZWN0IChzeW50YXg/KSkKICAgIzp1c2UtbW9kdWxlIChybnJz IGJ5dGV2ZWN0b3JzKQogICAjOnVzZS1tb2R1bGUgKHdlYiB1cmkpCisgICM6dXNlLW1vZHVsZSAo c3lzdGVtIHZtIHByb2dyYW0pCiAgICM6cmUtZXhwb3J0ICglY3VycmVudC1zeXN0ZW0KICAgICAg ICAgICAgICAgICVjdXJyZW50LXRhcmdldC1zeXN0ZW0KICAgICAgICAgICAgICAgIHNlYXJjaC1w YXRoLXNwZWNpZmljYXRpb24pICAgICAgICAgO2ZvciBjb252ZW5pZW5jZQorICAjOnJlcGxhY2Ug ICAoKGxldCYgLiBsZXQpCisgICAgICAgICAgICAgICAobGV0KiYgLiBsZXQqKSkKKyAgIzpyZS1l eHBvcnQtYW5kLXJlcGxhY2UgKChsZXRyZWMgLiBsZXRyZWMpKSAgICAgO2ZvciBjb21wbGV0ZW5l c3MKICAgIzpleHBvcnQgKGNvbnRlbnQtaGFzaAogICAgICAgICAgICAgY29udGVudC1oYXNoPwog ICAgICAgICAgICAgY29udGVudC1oYXNoLWFsZ29yaXRobQpAQCAtNDY2LDYgKzQ3MywxNSBAQCBv YmplY3QuIgogICAgIChuYW1lIG9sZC1uYW1lKQogICAgIChwcm9wZXJ0aWVzIGAoKHN1cGVyc2Vk ZWQgLiAscCkpKSkpCiAKKzs7IFhYWCAncmVhZC1zeW50YXgnIGlzIG5ldyBzaW5jZSBHdWlsZSAz LjAuNy4KKzs7IEZvciBwcmV2aW91cyB2ZXJzaW9ucyBvZiBHdWlsZSwgdXNlICdyZWFkJyBpbnN0 ZWFkLgorOzsgU2VlIHBhY2thZ2UtZmllbGQtbG9jYXRpb24gZm9yIHdoeSAncmVhZC1zeW50YXgn IGlzIHByZWZlcnJlZAorOzsgYWJvdmUgJ3JlYWQnLgorKGRlZmluZSByZWFkLXN5bnRheCoKKyAg KGlmIChkZWZpbmVkPyAncmVhZC1zeW50YXgpCisgICAgICByZWFkLXN5bnRheAorICAgICAgcmVh ZCkpCisKIChkZWZpbmUgKHBhY2thZ2UtZmllbGQtbG9jYXRpb24gcGFja2FnZSBmaWVsZCkKICAg IlJldHVybiB0aGUgc291cmNlIGNvZGUgbG9jYXRpb24gb2YgdGhlIGRlZmluaXRpb24gb2YgRklF TEQgZm9yIFBBQ0tBR0UsIG9yCiAjZiBpZiBpdCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4iCkBA IC00NzQsNiArNDkwLDIxIEBAIG9iamVjdC4iCiAgICAgICAgICAgICAgICAgICg9IChwb3J0LWxp bmUgcG9ydCkgKC0gbGluZSAxKSkpCiAgICAgICAodW5sZXNzIChlb2Ytb2JqZWN0PyAocmVhZC1j aGFyIHBvcnQpKQogICAgICAgICAoZ290byBwb3J0IGxpbmUgY29sdW1uKSkpKQorICA7OyBMaWtl ICdzeW50YXgtY2FzZScsIGJ1dCBmb3IgY2F0YW1vcnBoaXNtcy4KKyAgKGRlZmluZS1zeW50YXgt cnVsZSAoc3ludGF4LWNhc2UtbG9vcCBsb29wIG9iaiAuIHBhdHRlcm5zKQorICAgIChsZXQgbG9v cCAoKHggb2JqKSkKKyAgICAgIChzeW50YXgtY2FzZSB4ICgpIC4gcGF0dGVybnMpKSkKKyAgOzsg TGlrZSAnYXNzcScsIGJ1dCB0aGUgYWxpc3QgaXMgYSBzeW50YXggb2JqZWN0IGFuZCB0aGUga2V5 cyBhcmUgY29udmVydGVkCisgIDs7IHRvIGEgZGF0dW0gYmVmb3JlIGNvbXBhcmluZyB0aGVtIHRv IEtFWS4KKyAgKGRlZmluZSAoc3ludGF4LWFzc3Ega2V5IGFsaXN0KQorICAgIChzeW50YXgtY2Fz ZSBhbGlzdCAoKQorICAgICAgKCgpICNmKQorICAgICAgKChwYWlyIC4gcmVzdCkKKyAgICAgICAo c3ludGF4LWNhc2UgIydwYWlyICgpCisgICAgICAgICAoKHggLiB5KQorICAgICAgICAgIChpZiAo ZXE/IChzeW50YXgtPmRhdHVtICMneCkga2V5KQorICAgICAgICAgICAgICAjJ3BhaXIKKyAgICAg ICAgICAgICAgKHN5bnRheC1hc3NxIGZpZWxkICMncmVzdCkpKSkpKSkKIAogICAobWF0Y2ggKHBh Y2thZ2UtbG9jYXRpb24gcGFja2FnZSkKICAgICAoKCQgPGxvY2F0aW9uPiBmaWxlIGxpbmUgY29s dW1uKQpAQCAtNDg1LDEyICs1MTYsMTkgQEAgb2JqZWN0LiIKICAgICAgICAgICAgIChjYWxsLXdp dGgtaW5wdXQtZmlsZSBmaWxlLWZvdW5kCiAgICAgICAgICAgICAgIChsYW1iZGEgKHBvcnQpCiAg ICAgICAgICAgICAgICAgKGdvdG8gcG9ydCBsaW5lIGNvbHVtbikKLSAgICAgICAgICAgICAgICAo bWF0Y2ggKHJlYWQgcG9ydCkKLSAgICAgICAgICAgICAgICAgICgoJ3BhY2thZ2UgaW5pdHMgLi4u KQotICAgICAgICAgICAgICAgICAgIChsZXQgKChmaWVsZCAoYXNzb2MgZmllbGQgaW5pdHMpKSkK LSAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBmaWVsZAorICAgICAgICAgICAgICAgIDs7IFVz ZSAncmVhZC1zeW50YXgnIHN1Y2ggdGhhdCBzb3VyY2UgcHJvcGVydGllcyBhcmUgYXZhaWxhYmxl CisgICAgICAgICAgICAgICAgOzsgZXZlbiBpZiB0aGUgZXhwcmVzc2lvbiBmb3IgdGhlIGZpZWxk IHZhbHVlIGlzIGEgc3ltYm9sLgorICAgICAgICAgICAgICAgIChzeW50YXgtY2FzZS1sb29wIGxv b3AgKHJlYWQtc3ludGF4KiBwb3J0KQorICAgICAgICAgICAgICAgICAgKChwIGluaXRzIC4uLikK KyAgICAgICAgICAgICAgICAgICAoZXE/ICdwYWNrYWdlIChzeW50YXgtPmRhdHVtICMncCkpCisg ICAgICAgICAgICAgICAgICAgKGxldCAoKGZpZWxkIChzeW50YXgtYXNzcSBmaWVsZCAjJyhpbml0 cyAuLi4pKSkpCisgICAgICAgICAgICAgICAgICAgICAoc3ludGF4LWNhc2UgZmllbGQgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgKChfIHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgICAg KGxldCAoKGxvYyAoYW5kPT4gKHNvdXJjZS1wcm9wZXJ0aWVzIHZhbHVlKQorICAgICAgICAgICAg ICAgICAgICAgICAgOzsgWFhYIHN5bnRheD8gaXNuJ3QgbmVjZXNzYXJ5IHdoZW4gcmVhZC1zeW50 YXggaXMgdXNlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChsb2MgKGFuZD0+IChv ciAoYW5kIChzeW50YXg/ICMndmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3ludGF4LXNvdXJjZSAjJ3ZhbHVlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBYWFggbm90IHJlcXVpcmVkIGlu IEd1aWxlIDMuMC43CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHNvdXJjZS1wcm9wZXJ0aWVzICMndmFsdWUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc291cmNlLXByb3BlcnRpZXMtPmxvY2F0aW9uKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIChhbmQgbG9jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOzsgUHJlc2VydmUgdGhlIG9yaWdpbmFsIGZpbGUgbmFtZSwgd2hpY2ggbWF5IGJlIGEKQEAg LTQ5OCw2ICs1MzYsOSBAQCBvYmplY3QuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzZXQtZmllbGQgbG9jIChsb2NhdGlvbi1maWxlKSBmaWxlKSkpKQogICAgICAgICAgICAgICAg ICAgICAgICAoXwogICAgICAgICAgICAgICAgICAgICAgICAgI2YpKSkpCisgICAgICAgICAgICAg ICAgICAoKGJpbmQgc3R1ZmYgLi4uIGV4cCkKKyAgICAgICAgICAgICAgICAgICAobWVtcSAoc3lu dGF4LT5kYXR1bSAjJ2JpbmQpICcobGV0IGxldCopKQorICAgICAgICAgICAgICAgICAgIChsb29w ICMnZXhwKSkKICAgICAgICAgICAgICAgICAgIChfCiAgICAgICAgICAgICAgICAgICAgI2YpKSkp KQogICAgICAgICAgIChsYW1iZGEgXwpAQCAtMTYzNSwzICsxNjc2LDg2IEBAIG91dHNpZGUgb2Yg dGhlIHN0b3JlKSBvciBTT1VSQ0UgaXRzZWxmIChpZiBTT1VSQ0UgaXMgYWxyZWFkeSBhIHN0b3Jl IGl0ZW0uKSIKICAgICAgICAgIChhZGQtdG8tc3RvcmUgc3RvcmUgKGJhc2VuYW1lIGZpbGUpICN0 ICJzaGEyNTYiIGZpbGUpKQogICAgICAgICAoXwogICAgICAgICAgKGxvd2VyIHN0b3JlIHNvdXJj ZSBzeXN0ZW0pKSkpKSkKKworDAorOzs7Cis7OzsgVGhlc2UgbGV0KiBhbmQgbGV0KiYgbWFjcm9z IGFkanVzdCB0aGUgc291cmNlIGxvY2F0aW9uIG9mIHRoZSBwYWNrYWdlCis7OzsgKGlmIGFueSkg dG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBsZXQqIG9yIGxldComIGZvcm0uICBUaGlzIGhhY2sgYWxs b3dzCis7OzsgdGhlIGluLXBsYWNlIHVwZGF0ZXIgdG8gdXBkYXRlIHRoZSB2ZXJzaW9uIG51bWJl ciwgcmV2aXNpb24gYW5kCis7OzsgY29tbWl0IGZvciBwYWNrYWdlcyBkZWZpbmVkIGxpa2UgdGhp czoKKzs7OworOzs7IChkZWZpbmUtcHVibGljIGVtYWNzLWZseW1ha2UtcXVpY2tkZWYKKzs7OyAg IChsZXQgKCh2ZXJzaW9uICIxLjAuMCIpCis7OzsgICAgICAgICAocmV2aXNpb24gIjAiKQorOzs7 ICAgICAgICAgKGNvbW1pdCAiMTUwYzU4Mzk3NjhhM2QzMmY5ODhmOWRjMDgwNTI5NzhhNjhmMmFk NyIpKQorOzs7ICAgICAocGFja2FnZQorOzs7ICAgICAgIChuYW1lICJlbWFjcy1mbHltYWtlLXF1 aWNrZGVmIikKKzs7OyAgICAgICAodmVyc2lvbiAoZ2l0LXZlcnNpb24gdmVyc2lvbiByZXZpc2lv biBjb21taXQpKQorOzs7ICAgICAgIFsuLi5dKSkpCis7OzsKKzs7OyBTZWUgPGh0dHBzOi8vaXNz dWVzLmd1aXguZ251Lm9yZy81MDA3Mj4gZm9yIHNvbWUgYmFja2dyb3VuZC4KKzs7OyBOb3RlIHRo YXQgdXBkYXRpbmcgdGhlIHJldmlzaW9uIGFuZCBjb21taXQgaXMgbm90IHlldCBzdXBwb3J0ZWQu Cis7OzsKKzs7OyBJdCBpcyBpbnRlbmRlZCB0aGF0IHRoZXNlIGJpbmRpbmdzIHJlcGxhY2UgdGhl IHN0YW5kYXJkICdsZXQnIGFuZAorOzs7ICdsZXQqJyBiaW5kaW5ncywgc3VjaCB0aGF0OgorOzs7 Cis7OzsgICAoMSkgbmV3Y29tZXJzIGRvbid0IGhhdmUgdG8gbGVhcm4gdG8gdXNlIGxldCYgYW5k IGxldComIGluc3RlYWQKKzs7OyAgIG9mIGxldCBhbmQgbGV0KiBpbiBzb21lIHNpdHVhdGlvbnMs IGluc3RlYWQgdGhpbmdzIG1vc3RseQorOzs7ICAg4oCYanVzdCB3b3Jr4oCZLCBhbmQKKzs7OyAg ICgyKSBvbGQgcGFja2FnZSBkZWZpbml0aW9ucyBkb24ndCBoYXZlIHRvIGJlIGFkanVzdGVkLgor Ozs7CisKKzs7IFhYWCB0aGUgIzpzb3VyY2UgYXJndW1lbnQgaXMgb25seSBpbnRyb2R1Y2VkIHNp bmNlIEd1aWxlIDMuMC42LgorOzsgQXMgYWRqdXN0aW5nIHRoZSBzb3VyY2UgbG9jYXRpb24gaXNu J3QgdGVycmlibHkgaW1wb3J0YW50Cis7OyAob25seSAiZ3VpeCByZWZyZXNoIC1lIiBuZWVkcyB0 aGUgYWRqdXN0ZWQgbG9jYXRpb24gc29tZXRpbWVzIGFuZCBmb3IgbW9zdAorOzsgcGFja2FnZXMg aXQgZG9lc24ndCBuZWVkIGl0KSwgZm9yIGNvbXBhdGliaWxpdHkgZm9yIEd1aWxlIDMuMC41IGp1 c3QgaWdub3JlCis7OyAjOnNvdXJjZS4KKworKGRlZmluZSBkYXR1bS0+c3ludGF4KgorICAoaWYg KG1lbWJlciAnc291cmNlIChwcm9ncmFtLWxhbWJkYS1saXN0IGRhdHVtLT5zeW50YXgpKQorICAg ICAgZGF0dW0tPnN5bnRheAorICAgICAgKGxhbWJkYSogKHRlbXBsYXRlLWlkIGRhdHVtICM6a2V5 IHNvdXJjZSkKKyAgICAgICAgKGRhdHVtLT5zeW50YXggdGVtcGxhdGUtaWQgZGF0dW0pKSkpCisK KyhkZWZpbmUtc3ludGF4IHdpdGgtc291cmNlLWxvY2F0aW9uCisgIChsYW1iZGEgKHMpCisgICJJ ZiAoRVhQIC4gRVhQKikgaXMgYSBQQUNLQUdFIG9yIFBBQ0tBR0UvSU5IRVJJVCBmb3JtLCBleHBh bmQgdG8gKEVYUCAuIEVYUCopLAorYnV0IHdpdGggdGhlIHNvdXJjZSBsb2NhdGlvbiByZXBsYWNl ZCBieSB0aGUgc291cmNlIGxvY2F0aW9uIG9mIFNPVVJDRS4gIEtlZXAKK3RoZSBvcmlnaW5hbCBz b3VyY2UgbG9jYXRpb24gb3RoZXJ3aXNlLiIKKyAgICAoZGVmaW5lIChwYWNrYWdlLWlkZW50aWZp ZXI/IHMpCisgICAgICAoc3ludGF4LWNhc2UgcyAocGFja2FnZSBwYWNrYWdlL2luaGVyaXQpCisg ICAgICAgIChwYWNrYWdlICN0KQorICAgICAgICAocGFja2FnZS9pbmhlcml0ICN0KQorICAgICAg ICAoXyAjZikpKQorICAgIChzeW50YXgtY2FzZSBzICgpCisgICAgICAoKF8gKGV4cCAuIGV4cCop IHNvdXJjZSkKKyAgICAgICAocGFja2FnZS1pZGVudGlmaWVyPyAjJ2V4cCkKKyAgICAgICAoZGF0 dW0tPnN5bnRheCogcyAoY29ucyAjJ2V4cCAjJ2V4cCopCisgICAgICAgICAgICAgICAgICAgICAg ICM6c291cmNlIChzeW50YXgtc291cmNlICMnc291cmNlKSkpCisgICAgICAoKF8gb3RoZXItc3R1 ZmYgc291cmNlKSAjJ290aGVyLXN0dWZmKSkpKQorCisoZGVmaW5lLXN5bnRheCBsZXQmCisgIChs YW1iZGEgKHMpCisgICAgIkxpa2UgU1JGSS03MSAnbGV0JywgYnV0IGxldCB0aGUgbGFzdCBpbm5l ciBleHByZXNzaW9uIGhhdmUgdGhlIGxvY2F0aW9uCitvZiB0aGUgJ2xldCYnIGZvcm0gd2hlbiBp dCBpcyBleHBhbmRlZCwgaWYgaXQgaXMgYSBQQUNLQUdFIG9yIFBBQ0tBR0UvSU5IRVJJVAorZm9y bS4iCisgICAgKHN5bnRheC1jYXNlIHMgKCkKKyAgICAgIDs7IFRoZXNlIHZhcmlhYmxlIG5hbWVz IGFyZW4ndCBmdWxseSBjb3JyZWN0LAorICAgICAgOzsgYmVjYXVzZSB0aGUgJ25hbWVkIGxldCcg Y29uc3RydWN0aW9uIGlzIHBvc3NpYmxlIGFzIHdlbGwuCisgICAgICAoKF8gYmluZGluZ3MgZXhw IC4uLiBleHAqKQorICAgICAgICh3aXRoLXN5bnRheCAoKHMvc3ludGF4IHMpKQorICAgICAgICAg IycobGV0IGJpbmRpbmdzIGV4cCAuLi4gKHdpdGgtc291cmNlLWxvY2F0aW9uIGV4cCogcy9zeW50 YXgpKSkpKSkpCisKKyhkZWZpbmUtc3ludGF4IGxldComCisgIChsYW1iZGEgKHMpCisgICAgIkxp a2UgU1JGSS03MSAnbGV0KicsIGJ1dCBsZXQgdGhlIGxhc3QgaW5uZXIgZXhwcmVzc2lvbiBoYXZl IHRoZSBsb2NhdGlvbgorb2YgdGhlICdsZXQqJicgZm9ybSB3aGVuIGl0IGlzIGV4cGFuZGVkLCBp ZiBpdCBpcyBhIFBBQ0tBR0Ugb3IgUEFDS0FHRS9JTkhFUklUCitmb3JtLiIKKyAgICAoc3ludGF4 LWNhc2UgcyAoKQorICAgICAgKChfIGJpbmRpbmdzIGV4cCAuLi4gZXhwKikKKyAgICAgICAod2l0 aC1zeW50YXggKChzL3N5bnRheCBzKSkKKyAgICAgICAgICMnKGxldCogYmluZGluZ3MgZXhwIC4u LiAod2l0aC1zb3VyY2UtbG9jYXRpb24gZXhwKiBzL3N5bnRheCkpKSkpKSkKKworOzsgTG9jYWwg VmFyaWFibGVzOgorOzsgZXZhbDogKHB1dCAnc3ludGF4LWNhc2UtbG9vcCAnc2NoZW1lLWluZGVu dC1mdW5jdGlvbiAyKQorOzsgRW5kOgpkaWZmIC0tZ2l0IGEvdGVzdHMvcGFja2FnZXMuc2NtIGIv dGVzdHMvcGFja2FnZXMuc2NtCmluZGV4IDJhMjkwYmMzNTMuLjUwZmIzZDA3MTggMTAwNjQ0Ci0t LSBhL3Rlc3RzL3BhY2thZ2VzLnNjbQorKysgYi90ZXN0cy9wYWNrYWdlcy5zY20KQEAgLTEsNiAr MSw3IEBACiA7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZv ciBHTlUKIDs7OyBDb3B5cmlnaHQgwqkgMjAxMiwgMjAxMywgMjAxNCwgMjAxNSwgMjAxNiwgMjAx NywgMjAxOCwgMjAxOSwgMjAyMCwgMjAyMSBMdWRvdmljIENvdXJ0w6hzIDxsdWRvQGdudS5vcmc+ CiA7OzsgQ29weXJpZ2h0IMKpIEphbiAoamFubmVrZSkgTmlldXdlbmh1aXplbiA8amFubmVrZUBn bnUub3JnPgorOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZXZvc0B0 ZWxlbmV0LmJlPgogOzs7CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCiA7OzsK QEAgLTQ0LDYgKzQ1LDcgQEAKICAgIzp1c2UtbW9kdWxlIChndWl4IHNjcmlwdHMgcGFja2FnZSkK ICAgIzp1c2UtbW9kdWxlIChndWl4IHNldHMpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2Vz KQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBhZG1pbikgOyBmb3IgJ2ludGVycm9iYW5n JwogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBiYXNlKQogICAjOnVzZS1tb2R1bGUgKGdu dSBwYWNrYWdlcyBndWlsZSkKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYm9vdHN0cmFw KQpAQCAtMjM2LDMxICsyMzgsNDEgQEAKICAgICAgICAgICAgICAgICAoZXE/IGl0ZW0gbmV3KSkp CiAgICAgICAgICAgICAgKG51bGw/IChtYW5pZmVzdC10cmFuc2FjdGlvbi1yZW1vdmUgdHgpKSkp KSkpCiAKKzs7IFRoZXNlIHR3byBwcm9jZWR1cmVzIGFyZSBieSB0aGUgInBhY2thZ2UtZmllbGQt bG9jYXRpb24iCis7OyB0ZXN0cy4KKyhkZWZpbmUgKGdvdG8gcG9ydCBsaW5lIGNvbHVtbikKKyAg KHVubGVzcyAoYW5kICg9IChwb3J0LWNvbHVtbiBwb3J0KSAoLSBjb2x1bW4gMSkpCisgICAgICAg ICAgICAgICAoPSAocG9ydC1saW5lIHBvcnQpICgtIGxpbmUgMSkpKQorICAgICh1bmxlc3MgKGVv Zi1vYmplY3Q/IChnZXQtY2hhciBwb3J0KSkKKyAgICAgIChnb3RvIHBvcnQgbGluZSBjb2x1bW4p KSkpCisKKyhkZWZpbmUgcmVhZC1hdAorICAobWF0Y2gtbGFtYmRhCisgICAoKCQgPGxvY2F0aW9u PiBmaWxlIGxpbmUgY29sdW1uKQorICAgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSAoc2VhcmNoLXBh dGggJWxvYWQtcGF0aCBmaWxlKQorICAgICAgKGxhbWJkYSAocG9ydCkKKyAgICAgICAgKGdvdG8g cG9ydCBsaW5lIGNvbHVtbikKKyAgICAgICAgKHJlYWQgcG9ydCkpKSkpKQorCiAodGVzdC1hc3Nl cnQgInBhY2thZ2UtZmllbGQtbG9jYXRpb24iCi0gIChsZXQgKCkKLSAgICAoZGVmaW5lIChnb3Rv IHBvcnQgbGluZSBjb2x1bW4pCi0gICAgICAodW5sZXNzIChhbmQgKD0gKHBvcnQtY29sdW1uIHBv cnQpICgtIGNvbHVtbiAxKSkKLSAgICAgICAgICAgICAgICAgICAoPSAocG9ydC1saW5lIHBvcnQp ICgtIGxpbmUgMSkpKQotICAgICAgICAodW5sZXNzIChlb2Ytb2JqZWN0PyAoZ2V0LWNoYXIgcG9y dCkpCi0gICAgICAgICAgKGdvdG8gcG9ydCBsaW5lIGNvbHVtbikpKSkKLQotICAgIChkZWZpbmUg cmVhZC1hdAotICAgICAgKG1hdGNoLWxhbWJkYQotICAgICAgICgoJCA8bG9jYXRpb24+IGZpbGUg bGluZSBjb2x1bW4pCi0gICAgICAgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSAoc2VhcmNoLXBhdGgg JWxvYWQtcGF0aCBmaWxlKQotICAgICAgICAgIChsYW1iZGEgKHBvcnQpCi0gICAgICAgICAgICAo Z290byBwb3J0IGxpbmUgY29sdW1uKQotICAgICAgICAgICAgKHJlYWQgcG9ydCkpKSkpKQotCi0g ICAgOzsgVW50aWwgR3VpbGUgMi4wLjYgaW5jbHVkZWQsIHNvdXJjZSBwcm9wZXJ0aWVzIHdlcmUg YWRkZWQgb25seSB0byBwYWlycy4KLSAgICA7OyBUaHVzLCBjaGVjayBhZ2FpbnN0IGJvdGggVkFM VUUgYW5kIChGSUVMRCBWQUxVRSkuCi0gICAgKGFuZCAobWVtYmVyIChyZWFkLWF0IChwYWNrYWdl LWZpZWxkLWxvY2F0aW9uICVib290c3RyYXAtZ3VpbGUgJ25hbWUpKQotICAgICAgICAgICAgICAg ICAobGV0ICgobmFtZSAocGFja2FnZS1uYW1lICVib290c3RyYXAtZ3VpbGUpKSkKLSAgICAgICAg ICAgICAgICAgICAobGlzdCBuYW1lIGAobmFtZSAsbmFtZSkpKSkKLSAgICAgICAgIChtZW1iZXIg KHJlYWQtYXQgKHBhY2thZ2UtZmllbGQtbG9jYXRpb24gJWJvb3RzdHJhcC1ndWlsZSAndmVyc2lv bikpCi0gICAgICAgICAgICAgICAgIChsZXQgKCh2ZXJzaW9uIChwYWNrYWdlLXZlcnNpb24gJWJv b3RzdHJhcC1ndWlsZSkpKQotICAgICAgICAgICAgICAgICAgIChsaXN0IHZlcnNpb24gYCh2ZXJz aW9uICx2ZXJzaW9uKSkpKQotICAgICAgICAgKG5vdCAocGFja2FnZS1maWVsZC1sb2NhdGlvbiAl Ym9vdHN0cmFwLWd1aWxlICdkb2VzLW5vdC1leGlzdCkpKSkpCisgIDs7IFVudGlsIEd1aWxlIDIu MC42IGluY2x1ZGVkLCBzb3VyY2UgcHJvcGVydGllcyB3ZXJlIGFkZGVkIG9ubHkgdG8gcGFpcnMu CisgIDs7IFRodXMsIGNoZWNrIGFnYWluc3QgYm90aCBWQUxVRSBhbmQgKEZJRUxEIFZBTFVFKS4K KyAgKGFuZCAobWVtYmVyIChyZWFkLWF0IChwYWNrYWdlLWZpZWxkLWxvY2F0aW9uICVib290c3Ry YXAtZ3VpbGUgJ25hbWUpKQorICAgICAgICAgICAgICAgKGxldCAoKG5hbWUgKHBhY2thZ2UtbmFt ZSAlYm9vdHN0cmFwLWd1aWxlKSkpCisgICAgICAgICAgICAgICAgIChsaXN0IG5hbWUgYChuYW1l ICxuYW1lKSkpKQorICAgICAgIChtZW1iZXIgKHJlYWQtYXQgKHBhY2thZ2UtZmllbGQtbG9jYXRp b24gJWJvb3RzdHJhcC1ndWlsZSAndmVyc2lvbikpCisgICAgICAgICAgICAgICAobGV0ICgodmVy c2lvbiAocGFja2FnZS12ZXJzaW9uICVib290c3RyYXAtZ3VpbGUpKSkKKyAgICAgICAgICAgICAg ICAgKGxpc3QgdmVyc2lvbiBgKHZlcnNpb24gLHZlcnNpb24pKSkpCisgICAgICAgKG5vdCAocGFj a2FnZS1maWVsZC1sb2NhdGlvbiAlYm9vdHN0cmFwLWd1aWxlICdkb2VzLW5vdC1leGlzdCkpKSkK KworKHRlc3QtZXF1YWwgInBhY2thZ2UtZmllbGQtbG9jYXRpb24gYW5kICdsZXQnIgorICAocGFj a2FnZS1uYW1lIGludGVycm9iYW5nKQorICAocmVhZC1hdCAocGFja2FnZS1maWVsZC1sb2NhdGlv biBpbnRlcnJvYmFuZyAnbmFtZSkpKQorCisodGVzdC1za2lwIChpZiAoZGVmaW5lZD8gJ3JlYWQt c3ludGF4KSAwIDEpKQorKHRlc3QtZXEgInBhY2thZ2UtZmllbGQtbG9jYXRpb24gYW5kIHN5bWJv bHMiCisgICdnbnUtYnVpbGQtc3lzdGVtCisgIChyZWFkLWF0IChwYWNrYWdlLWZpZWxkLWxvY2F0 aW9uIGhlbGxvICdidWlsZC1zeXN0ZW0pKSkKIAogOzsgTWFrZSBzdXJlIHdlIGRvbid0IGNoYW5n ZSB0aGUgZmlsZSBuYW1lIHRvIGFuIGFic29sdXRlIGZpbGUgbmFtZS4KICh0ZXN0LWVxdWFsICJw YWNrYWdlLWZpZWxkLWxvY2F0aW9uLCByZWxhdGl2ZSBmaWxlIG5hbWUiCi0tIAoyLjMzLjAKCg== --=-Z8M+/PRei7Swez5ubkct Content-Disposition: inline; filename="0002-Remove-conflicting-SRFI-71-imports.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-Remove-conflicting-SRFI-71-imports.patch"; charset="UTF-8" RnJvbSA5MGMwOTBmYmYzZGExNjJlOTRlNTQ2N2RlODk3YWE1Y2YxZWI4YzRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IE1vbiwgMzAgQXVnIDIwMjEgMTc6MDM6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIv M10gUmVtb3ZlIGNvbmZsaWN0aW5nIFNSRkktNzEgaW1wb3J0cy4KCkRvbid0IGltcG9ydCBib3Ro IChndWl4IHBhY2thZ2VzKSBhbmQgKHNyZmkgc3JmaS03MSksCmFzIHRoZSBsZXQgYW5kIGxldCog YmluZGluZ3Mgb2Ygb25lIHdpbGwgcmVwbGFjZSB0aGUgb25lcwpvZiB0aGUgb3RoZXIuCgoqIGd1 aXgvaW1wb3J0L2NyYXRlLnNjbTogRG9uJ3QgaW1wb3J0IChzcmZpIHNyZmktNzEpLgoqIGd1aXgv aW1wb3J0L2VnZy5zY206IExpa2V3aXNlLgoqIGd1aXgvaW1wb3J0L3V0aWxzLnNjbTogTGlrZXdp c2UuCiogZ3VpeC9zY3JpcHRzL3B1bGwuc2NtOiBMaWtld2lzZS4KKiB0ZXN0cy9wYWNrYWdlcy5z Y206IExpa2V3aXNlLgotLS0KIGd1aXgvaW1wb3J0L2NyYXRlLnNjbSB8IDEgLQogZ3VpeC9pbXBv cnQvZWdnLnNjbSAgIHwgMSAtCiBndWl4L2ltcG9ydC91dGlscy5zY20gfCAxIC0KIGd1aXgvc2Ny aXB0cy9wdWxsLnNjbSB8IDEgLQogdGVzdHMvcGFja2FnZXMuc2NtICAgIHwgMSAtCiA1IGZpbGVz IGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9pbXBvcnQvY3JhdGUu c2NtIGIvZ3VpeC9pbXBvcnQvY3JhdGUuc2NtCmluZGV4IDI4N2ZmZDI1MzYuLmViMmZhMWUxYzQg MTAwNjQ0Ci0tLSBhL2d1aXgvaW1wb3J0L2NyYXRlLnNjbQorKysgYi9ndWl4L2ltcG9ydC9jcmF0 ZS5zY20KQEAgLTQwLDcgKzQwLDYgQEAKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKICAg Izp1c2UtbW9kdWxlIChzcmZpIHNyZmktMikKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYp Ci0gICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTcxKQogICAjOmV4cG9ydCAoY3JhdGUtPmd1aXgt cGFja2FnZQogICAgICAgICAgICAgZ3VpeC1wYWNrYWdlLT5jcmF0ZS1uYW1lCiAgICAgICAgICAg ICBzdHJpbmctPmxpY2Vuc2UKZGlmZiAtLWdpdCBhL2d1aXgvaW1wb3J0L2VnZy5zY20gYi9ndWl4 L2ltcG9ydC9lZ2cuc2NtCmluZGV4IDEwNzg5NGRkY2YuLmE3NTM1YmU4YTYgMTAwNjQ0Ci0tLSBh L2d1aXgvaW1wb3J0L2VnZy5zY20KKysrIGIvZ3VpeC9pbXBvcnQvZWdnLnNjbQpAQCAtMjEsNyAr MjEsNiBAQAogICAjOnVzZS1tb2R1bGUgKGljZS05IGZ0dykKICAgIzp1c2UtbW9kdWxlIChpY2Ut OSBtYXRjaCkKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKLSAgIzp1c2UtbW9kdWxlIChz cmZpIHNyZmktNzEpCiAgICM6dXNlLW1vZHVsZSAoZ2NyeXB0IGhhc2gpCiAgICM6dXNlLW1vZHVs ZSAoZ3VpeCBnaXQpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBpMThuKQpkaWZmIC0tZ2l0IGEvZ3Vp eC9pbXBvcnQvdXRpbHMuc2NtIGIvZ3VpeC9pbXBvcnQvdXRpbHMuc2NtCmluZGV4IGQxYjgwNzZk ZGQuLmU0MzM0NDlkMTggMTAwNjQ0Ci0tLSBhL2d1aXgvaW1wb3J0L3V0aWxzLnNjbQorKysgYi9n dWl4L2ltcG9ydC91dGlscy5zY20KQEAgLTQ3LDcgKzQ3LDYgQEAKICAgIzp1c2UtbW9kdWxlIChz cmZpIHNyZmktOSkKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMTEpCiAgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTI2KQotICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS03MSkKICAgIzpleHBv cnQgKGZhY3Rvcml6ZS11cmkKIAogICAgICAgICAgICAgZmxhdHRlbgpkaWZmIC0tZ2l0IGEvZ3Vp eC9zY3JpcHRzL3B1bGwuc2NtIGIvZ3VpeC9zY3JpcHRzL3B1bGwuc2NtCmluZGV4IGZiOGNlNTBm YTcuLmY4MWRmNDdhMGUgMTAwNjQ0Ci0tLSBhL2d1aXgvc2NyaXB0cy9wdWxsLnNjbQorKysgYi9n dWl4L3NjcmlwdHMvcHVsbC5zY20KQEAgLTU1LDcgKzU1LDYgQEAKICAgIzp1c2UtbW9kdWxlIChz cmZpIHNyZmktMzQpCiAgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTM1KQogICAjOnVzZS1tb2R1 bGUgKHNyZmkgc3JmaS0zNykKLSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktNzEpCiAgICM6dXNl LW1vZHVsZSAoaWNlLTkgbWF0Y2gpCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgdmxpc3QpCiAgICM6 dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQpkaWZmIC0tZ2l0IGEvdGVzdHMvcGFja2FnZXMuc2Nt IGIvdGVzdHMvcGFja2FnZXMuc2NtCmluZGV4IDUwZmIzZDA3MTguLjVmZjcxYjdhZjEgMTAwNjQ0 Ci0tLSBhL3Rlc3RzL3BhY2thZ2VzLnNjbQorKysgYi90ZXN0cy9wYWNrYWdlcy5zY20KQEAgLTU3 LDcgKzU3LDYgQEAKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMzQpCiAgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTM1KQogICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS02NCkKLSAgIzp1c2Ut bW9kdWxlIChzcmZpIHNyZmktNzEpCiAgICM6dXNlLW1vZHVsZSAocm5ycyBieXRldmVjdG9ycykK ICAgIzp1c2UtbW9kdWxlIChybnJzIGlvIHBvcnRzKQogICAjOnVzZS1tb2R1bGUgKGljZS05IHZs aXN0KQotLSAKMi4zMy4wCgo= --=-Z8M+/PRei7Swez5ubkct Content-Disposition: inline; filename="0003-guix-Find-let-binding-when-using-guile-3.0.0.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0003-guix-Find-let-binding-when-using-guile-3.0.0.patch"; charset="UTF-8" RnJvbSBmZDcxNmMyOTI0Yzk2YTBiZjkwOGY2MTVhZGFhNDA0YTNlMzgyZTdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IE1vbiwgMzAgQXVnIDIwMjEgMjA6MzE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDMv M10gZ3VpeDogRmluZCAnbGV0JyBiaW5kaW5nIHdoZW4gdXNpbmcgZ3VpbGVAMy4wLjAuCgpXaXRo b3V0IHRoaXMgcGF0Y2gsIGVycm9ycyBsaWtlIHRoaXMgcmVzdWx0OgoKWyA5MCVdIExPQUQgICAg IGdudS9zZXJ2aWNlcy9uZnMuc2NtCldBUk5JTkc6IChnbnUgc2VydmljZXMgbmZzKTogaW1wb3J0 ZWQgbW9kdWxlIChndWl4KSBvdmVycmlkZXMgY29yZSBiaW5kaW5nIGBsZXQnCldBUk5JTkc6IChn bnUgc2VydmljZXMgbmZzKTogYGxldCcgaW1wb3J0ZWQgZnJvbSBib3RoIChndWlsZSkgYW5kIChn dWl4KQpXQVJOSU5HOiAoZ251IHNlcnZpY2VzIG5mcyk6IGltcG9ydGVkIG1vZHVsZSAoZ3VpeCkg b3ZlcnJpZGVzIGNvcmUgYmluZGluZyBgbGV0JwpXQVJOSU5HOiAoZ251IHNlcnZpY2VzIG5mcyk6 IGBsZXQnIGltcG9ydGVkIGZyb20gYm90aCAoZ3VpbGUpIGFuZCAoZ3VpeCkKaWNlLTkvZXZhbC5z Y206MjkzOjM0OiBlcnJvcjogbGV0OiB1bmJvdW5kIHZhcmlhYmxlCmhpbnQ6IERpZCB5b3UgZm9y Z2V0IGAodXNlLW1vZHVsZXMgKHNyZmkgc3JmaS03MSkpJz8KCkkgZG9uJ3Qga25vdyB3aHkgdGhp cyBoYXBwZW5zLCBidXQgdGhpcyBwYXRjaCBzdG9wcyB0aGlzIGVycm9yLgoKKiBndWl4LnNjbTog SGlkZSAnbGV0JyBhbmQgJ2xldConIHdoZW4gaW1wb3J0aW5nIChndWl4IHBhY2thZ2VzKS4KLS0t CiBndWl4LnNjbSB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2d1aXguc2NtIGIvZ3VpeC5zY20KaW5kZXggNDJi YzhjODgxOC4uN2UxZTVmYjEwOSAxMDA2NDQKLS0tIGEvZ3VpeC5zY20KKysrIGIvZ3VpeC5zY20K QEAgLTM2LDUgKzM2LDEwIEBACiAKICAgICAoZm9yLWVhY2ggKGxldCAoKGkgKG1vZHVsZS1wdWJs aWMtaW50ZXJmYWNlIChjdXJyZW50LW1vZHVsZSkpKSkKICAgICAgICAgICAgICAgICAobGFtYmRh IChtKQotICAgICAgICAgICAgICAgICAgKG1vZHVsZS11c2UhIGkgKHJlc29sdmUtaW50ZXJmYWNl IGAoZ3VpeCAsbSkpKSkpCisgICAgICAgICAgICAgICAgICAobW9kdWxlLXVzZSEgaSAocmVzb2x2 ZS1pbnRlcmZhY2UgYChndWl4ICxtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IFhYWDogd2h5IGlzIHRoaXMgcmVxdWlyZWQgd2l0aCBHdWlsZSAzLjAuMgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRvIGFsbG93IChnbnUgc2VydmljZXMgbmZzKSB0 byBjb21waWxlPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6aGlkZSAoaWYg KGVxPyBtICdwYWNrYWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcobGV0IGxldCopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnKCkpKSkpKQogICAgICAgICAgICAgICAlcHVibGljLW1vZHVsZXMpKSkKLS0gCjIu MzMuMAoK --=-Z8M+/PRei7Swez5ubkct-- --=-cu+bwmfsn4oT27CDBdX2 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYS1NFBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uRGAQDc1VPmwNOP//dxPgllVKgPKhvI 3Znr3Rj9mgTrf+uu6gD+Nn9JXVUAeEE9n1QqAikWd990OYVfnqw5RNqVCfuKNAM= =cosF -----END PGP SIGNATURE----- --=-cu+bwmfsn4oT27CDBdX2-- From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 06:07:15 2021 Received: (at 50286) by debbugs.gnu.org; 6 Sep 2021 10:07:15 +0000 Received: from localhost ([127.0.0.1]:51980 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNBX1-0005qk-Hw for submit@debbugs.gnu.org; Mon, 06 Sep 2021 06:07:15 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56632) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNBWz-0005qV-SC for 50286@debbugs.gnu.org; Mon, 06 Sep 2021 06:07:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34012) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNBWt-0008Nk-RG; Mon, 06 Sep 2021 06:07:07 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=47196 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNBWs-0001Ta-T9; Mon, 06 Sep 2021 06:07:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> Date: Mon, 06 Sep 2021 12:07:04 +0200 In-Reply-To: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> (Maxime Devos's message of "Mon, 30 Aug 2021 23:26:43 +0200") Message-ID: <87o89681br.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50286 Cc: iskarian@mgsn.dev, 50286@debbugs.gnu.org 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 (---) Hello, Maxime Devos skribis: > These three patches allows (guix upstream) to replace the values in the s= urrounding 'let' > form, if any. It's important for constructs like: > > (define-public gnash > (let ((version "0.8.11") > (commit "583ccbc1275c7701dc4843ec12142ff86bb305b4") > (revision "0")) > (package > (name "gnash") > (version (git-version version revision commit)) > (source (git-reference > (url "https://example.org") > (commit commit))) > [...]))) > > such that it can update the version, commit, revision. (Currently only the > version will be updatable, but see > and for work on making 'commit' upd= atable). This is smart! I wonder if we=E2=80=99re going overboard, though. Intuitively, I would ra= ther leave =E2=80=98location=E2=80=99 fields dumb, and instead add editing featu= res to do things like getting the location of the parent sexp. It does add some overhead, but it also makes things more explicit and preserves separation of concern. (Also, in =E2=80=98core-updates-frozen=E2=80=99, =E2=80=98go-to-location=E2=80=99 uses a location cache that makes it less e= xpensive than on =E2=80=98master=E2=80=99.) But yeah, it=E2=80=99s trickier=E2=80=A6 Hmm, thinking out loud, what about this: use the same trick as you did, but replace =E2=80=98define-public=E2=80=99 instead of =E2=80=98let=E2=80= =99 & co., so as to be less intrusive. (define-syntax-parameter current-definition-location (identifier-syntax #f)) (define-syntax define-public* (syntax-rules () ((_ prototype body) (define-public prototype (syntax-parameterize ((current-definition-location (identifier-syntax (current-source-location= )))) body))))) Since there=E2=80=99s code that assumes =E2=80=98package-location=E2=80=99 = returns the location of the (package =E2=80=A6) sexp, we could add a =E2=80=98definition-locatio= n=E2=80=99 field in , defaulting to =E2=80=98current-definition-location=E2=80=99, or = tweak =E2=80=98location=E2=80=99 to include both. WDYT? Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 15:27:48 2021 Received: (at 50286) by debbugs.gnu.org; 7 Sep 2021 19:27:49 +0000 Received: from localhost ([127.0.0.1]:57818 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNgl2-0005jQ-8v for submit@debbugs.gnu.org; Tue, 07 Sep 2021 15:27:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49516) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNgkz-0005jD-SO for 50286@debbugs.gnu.org; Tue, 07 Sep 2021 15:27:46 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34516) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNgks-0005kZ-Dm; Tue, 07 Sep 2021 15:27:38 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35382 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNgks-000173-5Y; Tue, 07 Sep 2021 15:27:38 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> Date: Tue, 07 Sep 2021 21:27:35 +0200 In-Reply-To: <87o89681br.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Mon, 06 Sep 2021 12:07:04 +0200") Message-ID: <875yvc4254.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50286 Cc: iskarian@mgsn.dev, 50286@debbugs.gnu.org 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 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Maxime & Sarah, Ludovic Court=C3=A8s skribis: > Hmm, thinking out loud, what about this: use the same trick as you did, > but replace =E2=80=98define-public=E2=80=99 instead of =E2=80=98let=E2=80= =99 & co., so as to be less > intrusive. > > (define-syntax-parameter current-definition-location > (identifier-syntax #f)) > > (define-syntax define-public* > (syntax-rules () > ((_ prototype body) > (define-public prototype > (syntax-parameterize ((current-definition-location > (identifier-syntax (current-source-locati= on)))) > body))))) > > Since there=E2=80=99s code that assumes =E2=80=98package-location=E2=80= =99 returns the location > of the (package =E2=80=A6) sexp, we could add a =E2=80=98definition-locat= ion=E2=80=99 field in > , defaulting to =E2=80=98current-definition-location=E2=80=99, o= r tweak > =E2=80=98location=E2=80=99 to include both. Below is an attempt at doing this. As discussed on IRC, the first patch switches the =E2=80=98location=E2=80=99 field to a more compact format that= may reduce load time by a tiny bit, though it=E2=80=99s hard to measure. The second p= atch introduces an extra field for the definition location; that means that records now occupy an extra word, which is not great, but unfortunately OTOH location is slightly smaller. Example: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,use(gnu packages base) scheme@(guile-user)> ,use(gnu packages accessibility) scheme@(guile-user)> ,use(guix) scheme@(guile-user)> (package-location footswitch) $1 =3D #< file: "gnu/packages/accessibility.scm" line: 257 column= : 4> scheme@(guile-user)> (package-definition-location footswitch) $2 =3D #< file: "gnu/packages/accessibility.scm" line: 254 column= : 0> scheme@(guile-user)> (package-location hello) $3 =3D #< file: "gnu/packages/base.scm" line: 79 column: 2> scheme@(guile-user)> (package-definition-location hello) $4 =3D #< file: "gnu/packages/base.scm" line: 78 column: 0> --8<---------------cut here---------------end--------------->8--- Thoughts? Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-packages-Store-location-field-as-a-literal-vector.patch Content-Description: the patch >From 758ca5c95b97f3fd2b08a2828e21c45a86393d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 7 Sep 2021 18:04:21 +0200 Subject: [PATCH 1/2] packages: Store 'location' field as a literal vector. This is slightly more efficient than storing an alist in terms of .go file size (< 1% smaller) and load time. * guix/packages.scm (current-location-vector): New macro. (sanitize-location): New procedure. ()[location]: Change 'default' and add 'sanitize'. (package-location): New procedure. --- guix/packages.scm | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index c825f427d8..01de50ebd7 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -360,6 +360,30 @@ name of its URI." ;; . (fold delete %supported-systems '("mips64el-linux"))) +(define-syntax current-location-vector + (lambda (s) + "Like 'current-source-location' but expand to a literal vector with +one-indexed line numbers." + ;; Storing a literal vector in .go files is more efficient than storing an + ;; alist: less initialization code, fewer relocations, etc. + (syntax-case s () + ((_) + (match (syntax-source s) + (#f #f) + (properties + (let ((file (assq-ref properties 'filename)) + (line (assq-ref properties 'line)) + (column (assq-ref properties 'column))) + (and file line column + #`#(#,file #,(+ 1 line) #,column))))))))) + +(define-inlinable (sanitize-location loc) + ;; Convert LOC to a vector or to #f. + (cond ((vector? loc) loc) + ((not loc) loc) + (else (vector (location-file loc) + (location-line loc) + (location-column loc))))) ;; A package. (define-record-type* @@ -404,10 +428,9 @@ name of its URI." (properties package-properties (default '())) ; alist for anything else - (location package-location - (default (and=> (current-source-location) - source-properties->location)) - (innate))) + (location package-location-vector + (default (current-location-vector)) + (innate) (sanitize sanitize-location))) (set-record-type-printer! (lambda (package port) @@ -425,6 +448,13 @@ name of its URI." package) 16))))) +(define (package-location package) + "Return the source code location of PACKAGE as a record, or #f if +it is not known." + (match (package-location-vector package) + (#f #f) + (#(file line column) (location file line column)))) + (define-syntax-rule (package/inherit p overrides ...) "Like (package (inherit P) OVERRIDES ...), except that the same transformation is done to the package P's replacement, if any. P must be a bare -- 2.33.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-packages-Add-package-definition-location.patch Content-Description: the second one >From bc2d7144bb9ef0ea74f9ef5922d568291818de32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 7 Sep 2021 21:19:11 +0200 Subject: [PATCH 2/2] packages: Add 'package-definition-location'. Suggested by Maxime Devos . * guix/packages.scm (current-definition-location-vector): New syntax parameter. (define-public*): New macro. ()[definition-location]: New field. (package-definition-location): New procedure. * tests/packages.scm ("package-definition-location"): New test. --- guix/packages.scm | 42 +++++++++++++++++++++++++++++++++++++++++- tests/packages.scm | 11 +++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/guix/packages.scm b/guix/packages.scm index 01de50ebd7..2f70ec9c64 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -52,6 +52,7 @@ #:re-export (%current-system %current-target-system search-path-specification) ;for convenience + #:replace ((define-public* . define-public)) #:export (content-hash content-hash? content-hash-algorithm @@ -99,6 +100,7 @@ package-supported-systems package-properties package-location + package-definition-location hidden-package hidden-package? package-superseded @@ -385,6 +387,31 @@ one-indexed line numbers." (location-line loc) (location-column loc))))) +(define-syntax-parameter current-definition-location-vector + ;; Location of the encompassing 'define-public'. + (const #f)) + +(define-syntax define-public* + (lambda (s) + "Like 'define-public' but set 'current-definition-location' for the +lexical scope of its body." + (define location + (match (syntax-source s) + (#f #f) + (properties + (let ((line (assq-ref properties 'line)) + (column (assq-ref properties 'column))) + ;; Don't repeat the file name since it's redundant with 'location'. + (and line column + #`#(#,(+ 1 line) #,column)))))) + + (syntax-case s () + ((_ prototype body ...) + #`(define-public prototype + (syntax-parameterize ((current-definition-location-vector + (lambda (s) #,location))) + body ...)))))) + ;; A package. (define-record-type* package make-package @@ -430,7 +457,10 @@ one-indexed line numbers." (location package-location-vector (default (current-location-vector)) - (innate) (sanitize sanitize-location))) + (innate) (sanitize sanitize-location)) + (definition-location package-definition-location-vector + (default (current-definition-location-vector)) + (innate))) (set-record-type-printer! (lambda (package port) @@ -455,6 +485,16 @@ it is not known." (#f #f) (#(file line column) (location file line column)))) +(define (package-definition-location package) + "Like 'package-location', but return the location of the definition +itself--i.e., that of the enclosing 'define-public' form, if any, or #f." + (match (package-definition-location-vector package) + (#f #f) + (#(line column) + (match (package-location-vector package) + (#f #f) + (#(file _ _) (location file line column)))))) + (define-syntax-rule (package/inherit p overrides ...) "Like (package (inherit P) OVERRIDES ...), except that the same transformation is done to the package P's replacement, if any. P must be a bare diff --git a/tests/packages.scm b/tests/packages.scm index 2a290bc353..3756877270 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -236,6 +236,17 @@ (eq? item new))) (null? (manifest-transaction-remove tx))))))) +(test-assert "package-definition-location" + (let ((location (package-location hello)) + (definition (package-definition-location hello))) + ;; Check for the usual layout of (define-public hello (package ...)). + (and (string=? (location-file location) + (location-file definition)) + (= 0 (location-column definition)) + (= 2 (location-column location)) + (= (location-line definition) + (- (location-line location) 1))))) + (test-assert "package-field-location" (let () (define (goto port line column) -- 2.33.0 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 16:15:55 2021 Received: (at 50286) by debbugs.gnu.org; 7 Sep 2021 20:15:55 +0000 Received: from localhost ([127.0.0.1]:57907 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNhVb-0002tf-De for submit@debbugs.gnu.org; Tue, 07 Sep 2021 16:15:55 -0400 Received: from out0.migadu.com ([94.23.1.103]:51613) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNhVY-0002tW-Fl for 50286@debbugs.gnu.org; Tue, 07 Sep 2021 16:15:54 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mgsn.dev; s=key1; t=1631045751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=306agVEWYZd7TGmh0Y6CTVt8Q+bYH6WUuMxJkBbCPqc=; b=N1pgBjWYP0EJFHmTzlfbvKqyF12bMv9RB1Asyje8+CeC7BstIXGuc9P/POW4nUJDRNGbte h/u/NHxQkZt7AM/XbQiCuNW38O9/kVJeXLuSLlssSSXDj/YSEMj7m3gUsCTAbptRJIa7/5 XjbOHVNTSJ7aS3/HBXZ84utNJnvGh2w= From: Sarah Morgensen To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#50286] [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> <875yvc4254.fsf_-_@gnu.org> Date: Tue, 07 Sep 2021 13:15:48 -0700 In-Reply-To: <875yvc4254.fsf_-_@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s?= =?utf-8?Q?=22's?= message of "Tue, 07 Sep 2021 21:27:35 +0200 (8 minutes, 50 seconds ago)") Message-ID: <86wnnsgn0r.fsf@mgsn.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: iskarian@mgsn.dev X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50286 Cc: Maxime Devos , 50286@debbugs.gnu.org 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.7 (-) Hi Ludo, Ludovic Court=C3=A8s writes: > Example: > > scheme@(guile-user)> ,use(gnu packages base) > scheme@(guile-user)> ,use(gnu packages accessibility) > scheme@(guile-user)> ,use(guix) > scheme@(guile-user)> (package-location footswitch) > $1 =3D #< file: "gnu/packages/accessibility.scm" line: 257 colu= mn: 4> > scheme@(guile-user)> (package-definition-location footswitch) > $2 =3D #< file: "gnu/packages/accessibility.scm" line: 254 colu= mn: 0> > scheme@(guile-user)> (package-location hello) > $3 =3D #< file: "gnu/packages/base.scm" line: 79 column: 2> > scheme@(guile-user)> (package-definition-location hello) > $4 =3D #< file: "gnu/packages/base.scm" line: 78 column: 0> > > Thoughts? This is very clever! Thanks for the work on this. I'm not very good with macros, but it *looks* like it should work quite well for our use-case of adjusting a surrounding 'let' expression. And it's less invasive than rewriting 'let'. However... it doesn't work for unexported packages. It looks there are about 200 such packages: --8<---------------cut here---------------start------------->8--- ~/guix$ rg -U '\(define [^\(]+\n.*?\(package' gnu/packages --count --no-fil= ename | awk '{a+=3D$1} END {print a}' 233 --8<---------------cut here---------------end--------------->8--- And, to play the pessimist: What do we get out of this that couldn't be done by "go to package location; read backwards one sexp until we reach a defining form" (like Emacs' 'beginning-of-defun')? -- Sarah From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 16:30:58 2021 Received: (at 50286) by debbugs.gnu.org; 7 Sep 2021 20:30:58 +0000 Received: from localhost ([127.0.0.1]:57918 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNhkA-0003I8-0X for submit@debbugs.gnu.org; Tue, 07 Sep 2021 16:30:58 -0400 Received: from baptiste.telenet-ops.be ([195.130.132.51]:57622) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNhk6-0003Hy-Rh for 50286@debbugs.gnu.org; Tue, 07 Sep 2021 16:30:55 -0400 Received: from butterfly.local ([188.188.3.227]) by baptiste.telenet-ops.be with bizsmtp id r8Ws250074tskic018Wts0; Tue, 07 Sep 2021 22:30:53 +0200 Message-ID: Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. From: Maxime Devos To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Tue, 07 Sep 2021 22:30:46 +0200 In-Reply-To: <875yvc4254.fsf_-_@gnu.org> References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> <875yvc4254.fsf_-_@gnu.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-zViYvh/gVZ0H+eiAVeW3" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1631046653; bh=O8/isCw4YaEIBPDYn9gqY7jzbTMSdFrVTwyccYBQ9F0=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=hy3yVFrXDmAh5reOa5cPDSHE6We8XaQFO8hS74Hir+m50gy5X5mryA0cWKcNuOnjE pSa3g08WusQ0uA0O/PU+wi9k/yU+YeKqqKUXfWm1jEKde6IjEBsEOB3tt1k+/pVrLw e1u/s9wzv+8qu45WxpPXOn0AmpodXqaQOgRUaHmVKPZ+uEs8ok2yYeF+lSHiicT7if EYSXD5VcWaLnV/g2Jxw6qkR06M7yisBqTHq8dmZwZhXRHUAomITtNuVpTGR9V6ZJEt EfTd7NSUSsc9VrekKILhXyCuQfuMd1IBcAyMPuXq3mUBKR+vGLczeqrafUrHtVyuj/ cEAa8WZvoe9gg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50286 Cc: iskarian@mgsn.dev, 50286@debbugs.gnu.org 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.7 (-) --=-zViYvh/gVZ0H+eiAVeW3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s schreef op di 07-09-2021 om 21:27 [+0200]: > Hi Maxime & Sarah, >=20 > Ludovic Court=C3=A8s skribis: >=20 > > Hmm, thinking out loud, what about this: use the same trick as you did, > > but replace =E2=80=98define-public=E2=80=99 instead of =E2=80=98let=E2= =80=99 & co., so as to be less > > intrusive. > >=20 > > (define-syntax-parameter current-definition-location > > (identifier-syntax #f)) > >=20 > > (define-syntax define-public* > > (syntax-rules () > > ((_ prototype body) > > (define-public prototype > > (syntax-parameterize ((current-definition-location > > (identifier-syntax (current-source-loca= tion)))) > > body))))) > >=20 > > Since there=E2=80=99s code that assumes =E2=80=98package-location=E2=80= =99 returns the location > > of the (package =E2=80=A6) sexp, we could add a =E2=80=98definition-loc= ation=E2=80=99 field in > > , defaulting to =E2=80=98current-definition-location=E2=80=99,= or tweak > > =E2=80=98location=E2=80=99 to include both. >=20 > Below is an attempt at doing this. As discussed on IRC, the first patch > switches the =E2=80=98location=E2=80=99 field to a more compact format th= at may reduce > load time by a tiny bit, though it=E2=80=99s hard to measure. > The second patch > introduces an extra field for the definition location; that means that > records now occupy an extra word, which is not great, but > unfortunately OTOH location is slightly smaller. Why not always let the location of a package be the location of the surrounding define-public* form, instead of having two separate locations? Letting the location of a package be the location of the define-public* form (or 'let' form) seems more useful to people using "guix edit minetest-etheral" for example, and the package-field-location code can easily be adjusted to support 'define-public*' (or let) forms. If two separate package-definition-location and package-location are introduced, what should "guix show minetest-ethereal" show? The location of the 'package' form, the location of the 'let' form or the location of the 'define-public' form? Having two separate define-public* and define-public macros might be a little confusing. Would it be possible to let 'define-public*' replace 'define-public'? I don't really have an opinion on whether package-[field-]location should return the location of the 'let' form or the location of the 'define-public= ' form. I think 'package-location' should return the location of the 'let' form (or a surrounding form), because the 'commit' and 'version' variable from the 'let' form are part of the package -- change them, and you'll get a different package. Greetings, Maxime --=-zViYvh/gVZ0H+eiAVeW3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYTfL9hccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lUfAP90HuCMjv/r9CoFps7NLhTTkbBt rZyD1mnP+UjsvRJRMgEAt4Qx1hNWUMtSBoEAQMMOZ/k9bLWvZwv+j5vpN+DQDQY= =npA2 -----END PGP SIGNATURE----- --=-zViYvh/gVZ0H+eiAVeW3-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 08 09:38:59 2021 Received: (at 50286) by debbugs.gnu.org; 8 Sep 2021 13:38:59 +0000 Received: from localhost ([127.0.0.1]:59015 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNxn0-0005N8-H5 for submit@debbugs.gnu.org; Wed, 08 Sep 2021 09:38:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNxmy-0005Mq-5L for 50286@debbugs.gnu.org; Wed, 08 Sep 2021 09:38:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42010) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNxmq-00058T-Rt; Wed, 08 Sep 2021 09:38:49 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35394 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNxmj-0004QE-6p; Wed, 08 Sep 2021 09:38:48 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> <875yvc4254.fsf_-_@gnu.org> Date: Wed, 08 Sep 2021 15:38:39 +0200 In-Reply-To: (Maxime Devos's message of "Tue, 07 Sep 2021 22:30:46 +0200") Message-ID: <87pmtj2nmo.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50286 Cc: iskarian@mgsn.dev, 50286@debbugs.gnu.org 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 (---) Hello, Maxime Devos skribis: > Why not always let the location of a package be the location of the > surrounding define-public* form, instead of having two separate > locations? Letting the location of a package be the location of the > define-public* form (or 'let' form) seems more useful to people using > "guix edit minetest-etheral" for example, and the package-field-location > code can easily be adjusted to support 'define-public*' (or let) forms. > > If two separate package-definition-location and package-location are > introduced, what should "guix show minetest-ethereal" show? The location > of the 'package' form, the location of the 'let' form or the location > of the 'define-public' form? A package always has a =E2=80=98location=E2=80=99, but it may lack a defini= tion location, for instance if it=E2=80=99s produced by a procedure, or if it=E2= =80=99s not bound to a top-level variable. Things like =E2=80=98package-field-location=E2=80=99 are likely more accura= te if they start searching from the beginning of the (package =E2=80=A6) sexp. These patches leave the UIs unchanged (=E2=80=98guix show=E2=80=99, =E2=80= =98guix edit=E2=80=99, etc.) because I think =E2=80=98location=E2=80=99 is good for these. > Having two separate define-public* and define-public macros might be a > little confusing. Would it be possible to let 'define-public*' replace > 'define-public'? =E2=80=98define-public*=E2=80=99 is exported as =E2=80=98define-public=E2= =80=99, so package definitions do not need to be changed: #:replace ((define-public* . define-public)) > I don't really have an opinion on whether package-[field-]location should > return the location of the 'let' form or the location of the 'define-publ= ic' > form. I think 'package-location' should return the location of the 'let' > form (or a surrounding form), because the 'commit' and 'version' variable > from the 'let' form are part of the package -- change them, and you'll > get a different package. Yeah, I see what you mean. The work =E2=80=98guix refresh -u=E2=80=99 and = =E2=80=98guix style=E2=80=99 do is essentially correlating live objects (package records) to their source code. This is necessarily an approximation; it=E2=80=99s similar to version strings constructed with =E2=80=98string-append=E2=80=99: that=E2= =80=99s something that inspection of the live object cannot reveal, so we use heuristic to match common conventions. Thoughts? Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 08 09:45:42 2021 Received: (at 50286) by debbugs.gnu.org; 8 Sep 2021 13:45:42 +0000 Received: from localhost ([127.0.0.1]:59042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNxtV-0005YH-U0 for submit@debbugs.gnu.org; Wed, 08 Sep 2021 09:45:42 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNxtU-0005Y5-7c for 50286@debbugs.gnu.org; Wed, 08 Sep 2021 09:45:40 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42306) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNxtN-0002cR-GO; Wed, 08 Sep 2021 09:45:33 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35396 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNxsz-00037l-Rl; Wed, 08 Sep 2021 09:45:16 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Sarah Morgensen Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> <875yvc4254.fsf_-_@gnu.org> <86wnnsgn0r.fsf@mgsn.dev> Date: Wed, 08 Sep 2021 15:45:07 +0200 In-Reply-To: <86wnnsgn0r.fsf@mgsn.dev> (Sarah Morgensen's message of "Tue, 07 Sep 2021 13:15:48 -0700") Message-ID: <87h7ev2nbw.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50286 Cc: Maxime Devos , 50286@debbugs.gnu.org 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 (---) Hi Sarah, Sarah Morgensen skribis: > However... it doesn't work for unexported packages. It looks there are > about 200 such packages: > > ~/guix$ rg -U '\(define [^\(]+\n.*?\(package' gnu/packages --count --no-f= ilename | awk '{a+=3D$1} END {print a}' > 233 Ah, hmm, well. I=E2=80=99d have said these are beyond our scope :-), and in fact we=E2=80=99d need to know how many among these 233 packages use the (let ((commit =E2=80=A6)) =E2=80=A6) idiom, but if this is deemed important= , we can replace =E2=80=98define=E2=80=99 similarly. > And, to play the pessimist: > > What do we get out of this that couldn't be done by "go to package > location; read backwards one sexp until we reach a defining form" > (like Emacs' 'beginning-of-defun')? Nothing! It=E2=80=99s just easier to implement and more accurate=E2=80=94w= e=E2=80=99re sure to get the exact location of the =E2=80=98define-public=E2=80=99 form that sur= rounds the package record we=E2=80=99re looking at. Now, longer-term, I=E2=80=99d like to have Emacs/paredit-like features and = more tools to correlate source and live objects. I found myself doing a bit of that in =E2=80=98guix style=E2=80=99, and I think that=E2=80=99s a fun a= rea to explore so we can improve our package maintenance tools. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 13 06:37:50 2021 Received: (at 50286-done) by debbugs.gnu.org; 13 Sep 2021 10:37:50 +0000 Received: from localhost ([127.0.0.1]:44478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mPjLD-0001W0-Ax for submit@debbugs.gnu.org; Mon, 13 Sep 2021 06:37:49 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mPjL5-0001Ve-ON for 50286-done@debbugs.gnu.org; Mon, 13 Sep 2021 06:37:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60610) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mPjKy-0003zU-U7; Mon, 13 Sep 2021 06:37:20 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=47256 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mPjKy-0003y2-L2; Mon, 13 Sep 2021 06:37:20 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: bug#50286: [RFC PATCH] Let 'package-location' returns location of surrounding 'let'. References: <0b61652d751633f78e876a27be88ed14e47527b6.camel@telenet.be> <87o89681br.fsf@gnu.org> <875yvc4254.fsf_-_@gnu.org> <87pmtj2nmo.fsf_-_@gnu.org> Date: Mon, 13 Sep 2021 12:37:18 +0200 In-Reply-To: <87pmtj2nmo.fsf_-_@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s?= =?utf-8?Q?=22's?= message of "Wed, 08 Sep 2021 15:38:39 +0200") Message-ID: <87zgsg92xt.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50286-done Cc: iskarian@mgsn.dev, 50286-done@debbugs.gnu.org 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.0 (-) Hello! Following our discussion on IRC, I pushed this as 8531997d2a1e10d574a6e9ab70bc86ade6af4733. I made one change, which is that the =E2=80=98definition-location=E2=80=99 = field is now stored as a fixnum (column << 22 | line) rather than a vector. This should be enough to unlock Sarah=E2=80=99s patches at ! Thanks, Ludo=E2=80=99. From unknown Thu Sep 11 16:39:32 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 11 Oct 2021 11:24:11 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator