From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id mPcBBa786GJC3QAAbAwnHQ (envelope-from ) for ; Tue, 02 Aug 2022 12:30:06 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id aCn7BK786GL9cgEAauVa8A (envelope-from ) for ; Tue, 02 Aug 2022 12:30:06 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 90DEA1F593 for ; Tue, 2 Aug 2022 12:30:05 +0200 (CEST) Received: from localhost ([::1]:52582 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIoJY-0005y0-LX for larch@yhetil.org; Tue, 02 Aug 2022 05:35:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIntv-0005d4-DL for guix-devel@gnu.org; Tue, 02 Aug 2022 05:09:19 -0400 Received: from michel.telenet-ops.be ([2a02:1800:110:4::f00:18]:45412) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oIntq-0004az-NQ for guix-devel@gnu.org; Tue, 02 Aug 2022 05:09:19 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by michel.telenet-ops.be with bizsmtp id 2Z9A2800E20ykKC06Z9Axf; Tue, 02 Aug 2022 11:09:11 +0200 Message-ID: Date: Tue, 2 Aug 2022 11:09:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: mcsinyx@disroot.org, =?UTF-8?B?TcOhamEgVG9tw6HFoWVr?= , guix-devel@gnu.org References: <87tu6veltd.fsf@disroot.org> From: Maxime Devos Subject: Re: Strategy for Zig packages In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------ebgidlC36h4GWAcsfHTHGXhr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1659431351; bh=Z1mSvYABU/+wjMxtm6tl11e54iokU0L7oN71widR2IQ=; h=Date:To:References:From:Subject:In-Reply-To; b=eSvl/8UCtUiUasHSQ09I+yMp9F5fxFQT+Amc8nvlrxG31z8vbY92YKzM1fpJxLdqA ToQr0PI1EJW1OJ8Q8bpbt/sL8VPV43ex3mYofw++ZogJL8TPcEEUqODBBfL2StfkWc 0LHfkcwdw7X5SG20oOtgL7g7RKugzLvoXkpGi5KM+aKHpzwAAqShBntQx4LAcmzJ42 49K4MKCVG5nWkeQo9T3KC2/JXoVT8DBfyRk5m7bVpuCqZLHs4TmqPsI5aNnaCYHTyL uZfSo5LF2yQbDCy4MIaHR054w4+468l8VFBK5i0D8iiev9vrjBynTeKskmHc3B1fsp R3xpc+Ltx+8Rg== Received-SPF: pass client-ip=2a02:1800:110:4::f00:18; envelope-from=maximedevos@telenet.be; helo=michel.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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1659436205; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=DN4Mgf6mjWId6/j6e/dKHLqnzUK3/zM2O8OxHLZfgVc=; b=sRqzfUHDuXI7WCFp65HU605BI3RS3JDxbt/rNLFkYEn+3XwOadSELX4MkJBIZqbczokGTx KQmibt9bGaQbZ2QH+0LOVWsqxzEA7yYEFrOYeeRoMCbxniRIjDYRjsoww8RzrnobBa0KuV EK3ytouUfjHEf7d426OaKy/Yg/hD+oMbZKHsTCtc3gWykmAraudeG9UEtQ/YtMrv3jEQmn 4bJxAPDKO3/Sj5y9wwLIWb0f6gL2Dyn1Qth5k6WJGS6DFco4y9Dx6axHJmELG+crwU9JrW 1O4JjumIZUCbxd06tsGlHIJaHinBvj6BhwrE1o4J2lidiRUQEf9wiBll8A7rOg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1659436205; a=rsa-sha256; cv=none; b=exJ4swmsph+D/8YGsQ1MNisYLXeD8/uk9EiMpqeaB9qCqoimHsnyeFtEBVTqzhpviKfnSS G4VOgO+1MqzFHXje63gsS/VTZEEK6Q/wf2oNPXT7yyMKwv6mhZ6M29QWHbEli+zxMEXBoF 55QwSt3XjkLCOSRQqijjXjKGpeIVig5BHiWdAUUV2v52m6yliYCykvM23zzUhMul7MJx4L kkcdfnT9RMmK/ptVlqMfKffDBmTKQCi92dLePQoZvJs1Mme4Cpiw+xl7NofwFAml8wRVtI p6aWbTuUhWTw/nKkFopLrJ0E+WpKOob8xspdD0qstCOIXOSI639Lq960SY2WzQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b="eSvl/8UC"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 3.58 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b="eSvl/8UC"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 90DEA1F593 X-Spam-Score: 3.58 X-Migadu-Scanner: scn0.migadu.com X-TUID: 8ePEkLsn1/nU This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------ebgidlC36h4GWAcsfHTHGXhr Content-Type: multipart/mixed; boundary="------------SmfgFe1VmphBaWPxNEEqImOa"; protected-headers="v1" From: Maxime Devos To: mcsinyx@disroot.org, =?UTF-8?B?TcOhamEgVG9tw6HFoWVr?= , guix-devel@gnu.org Message-ID: Subject: Re: Strategy for Zig packages References: <87tu6veltd.fsf@disroot.org> In-Reply-To: --------------SmfgFe1VmphBaWPxNEEqImOa Content-Type: multipart/mixed; boundary="------------pIe1ImiKF5D9fjGDuk2Ygyso" --------------pIe1ImiKF5D9fjGDuk2Ygyso Content-Type: multipart/alternative; boundary="------------pocexKxBLW5vRQHgAk1B24Bp" --------------pocexKxBLW5vRQHgAk1B24Bp Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAwMi0wOC0yMDIyIDA3OjIxLCBtY3Npbnl4QGRpc3Jvb3Qub3JnIHdyb3RlOg0KPiBP biBNb24gQXVnIDEsIDIwMjIgYXQgMTA6NDMgUE0gKzAyMDAsIE3DoWphIFRvbcOhxaFlayB3 cm90ZToNCj4+IE1vcmUgcmVhbGlzdGljIChpbW8pIGlzIHRoYXQgemlnIHNob3VsZCBiZSBl bmNvdXJhZ2VkIHRvIGJ1aWxkDQo+PiBkeW5hbWljYWxseSBsaW5rZWQgcGFja2FnZXMsIG5v dCBzdGF0aWMgb25lcywgYW5kIGFsbG93IHRoZSBhYmlsaXR5DQo+PiAod2l0aCB0aGVpciBm dXR1cmUgcGFja2FnZSBtYW5hZ2VyKSBmb3IgdGhlIGRpc3RyaWJ1dGlvbiB0byBkaXN0cmli dXRlDQo+PiBpdCdzIGxpYnJhcmllcyBDLXN0eWxlLg0KPiBUZWNobmljYWxseSB0aGlzIGlz IG5vdCBhbHdheXMgcG9zc2libGUgc2luY2UgWmlnIHJlbGllcw0KPiBvbiBjb21waWxlLXRp bWUgZXhlY3V0aW9uIGZvciBnZW5lcmljLg0KPg0KSSBkb24ndCB0aGluayB0aGlzIGlzIGEg cHJvYmxlbSwgYXMgR3VpbGUgaGFzIG1hY3JvcyAoKikgeWV0IGl0IHN1cHBvcnRzIA0KY29t cGlsYXRpb24gKGFuZCBzaGFyZWQgbGlicmFyaWVzIC0tIC5nbyBmaWxlcyBhcmUgRUxGIHNo YXJlZCBsaWJyYXJpZXMpIA0KLS0gbWFjcm9zIGFyZSwgaW4gYSBzZW5zZSwgbWVyZWx5IHBy b2NlZHVyZXMgdGhhdCB0cmFuc2Zvcm0gc3ludGF4IGludG8gDQpzeW50YXgsIHdoaWNoIGNh biBiZSBjb21waWxlZCwgYW5kIGdlbmVyaWNzIGNvdWxkIGJlIGNvbnNpZGVyZWQgYSANCnNw ZWNpYWwgY2FzZSBvZiBtYWNyb3MuDQoNCkxpa2V3aXNlLCBSdXN0IGhhcyBnZW5lcmljcyAo YW5kIG1hY3JvcyAoKikpIGFuZCBpdHMgY29tcGlsZXIgZG9lcyANCnN0YXRpYyBjb21waWxh dGlvbiwgc28gSSBkb24ndCBzZWUgd2h5IGl0IHdvdWxkIGJlIGltcG9zc2libGUgZm9yIFpp ZyB0byANCmRvIHN0YXRpYyBsaWJyYXJpZXMuDQoNCihTaGFyZWQgbGlicmFyaWVzIG1pZ2h0 IGJlIGhhcmRlciwgYnV0IHlvdSBjb3VsZCBqdXN0IG1vbm9tb3JwaGlzZSANCmdlbmVyaWNz IGluIHRoZSAndXNlcicgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LCBzbyBzaGFyZWQgbGlicmFy aWVzIGFwcGVhciANCnRlY2huaWNhbGx5IHBvc3NpYmxlIHRvIG1lIGFzIHdlbGwuKQ0KDQoo KikgSW5jbHVkaW5nIG1hY3JvcyB0aGF0IGNhbiBydW4gYXJiaXRyYXJ5IFJ1c3QgY29kZSwg c2VlIA0KPGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvYm9vay9jaDE5LTA2LW1hY3Jvcy5o dG1sI2RlY2xhcmF0aXZlLW1hY3Jvcy13aXRoLW1hY3JvX3J1bGVzLWZvci1nZW5lcmFsLW1l dGFwcm9ncmFtbWluZz4sIA0Kc28gdGhlcmUgeW91IGhhdmUgY29tcGlsZS10aW1lIGV4ZWN1 dGlvbiB0b28hDQoNCkdyZWV0aW5ncywNCk1heGltZS4NCg0K --------------pocexKxBLW5vRQHgAk1B24Bp Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 02-08-2022 07:21, mcsinyx@disroot.org wrote:
On Mon Aug 1, 2022 at 10:43 =
PM +0200, M=C3=A1ja Tom=C3=A1=C5=A1ek wrote:
More realistic (imo) is th=
at zig should be encouraged to build
dynamically linked packages, not static ones, and allow the ability
(with their future package manager) for the distribution to distribute
it's libraries C-style.
Technically this is not alwa=
ys possible since Zig relies
on compile-time execution for generic.

I don't think this is a problem, as Guile has macros (*) yet it supports compilation (and shared libraries -- .go files are ELF shared libraries) -- macros are, in a sense, merely procedures that transform syntax into syntax, which can be compiled, and generics could be considered a special case of macros.

Likewise, Rust has generics (and macros (*)) and its compiler does static compilation, so I don't see why it would be impossible for Zig to do static libraries.

(Shared libraries might be harder, but you could just monomorphise generics in the 'user' of the shared library, so shared libraries appear technically possible to me as well.)

(*) Including macros that can run arbitrary Rust code, see <https://doc.rust-lang.org/book/ch19-06-macros.html#decla= rative-macros-with-macro_rules-for-general-metaprogramming>, so there you have compile-time execution too!

Greetings,
Maxime.

--------------pocexKxBLW5vRQHgAk1B24Bp-- --------------pIe1ImiKF5D9fjGDuk2Ygyso Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------pIe1ImiKF5D9fjGDuk2Ygyso-- --------------SmfgFe1VmphBaWPxNEEqImOa-- --------------ebgidlC36h4GWAcsfHTHGXhr Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYujptwUDAAAAAAAKCRBJ4+4iGRcl7uC2 AQC11VilR8/wgb2VFyQegQBrBnVn4SeSVXGW6Ei2oh6xXgD/VNLwKaXugwuPVqW7M9W+naRJwMS3 S8l/YAsSiwBrBQY= =2JZX -----END PGP SIGNATURE----- --------------ebgidlC36h4GWAcsfHTHGXhr--