From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 11:34:53 2021 Received: (at submit) by debbugs.gnu.org; 7 Sep 2021 15:34:53 +0000 Received: from localhost ([127.0.0.1]:57402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd7c-0000vg-Jg for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:34:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:37578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd7Z-0000vX-UM for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:34:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNd7X-0001LK-Bv for guix-patches@gnu.org; Tue, 07 Sep 2021 11:34:49 -0400 Received: from michel.telenet-ops.be ([2a02:1800:110:4::f00:18]:54396) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mNd7T-0007V5-WF for guix-patches@gnu.org; Tue, 07 Sep 2021 11:34:47 -0400 Received: from butterfly.local ([188.188.3.227]) by michel.telenet-ops.be with bizsmtp id r3ad2500K4tskic063aeyc; Tue, 07 Sep 2021 17:34:38 +0200 Message-ID: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> Subject: Optimise bytevector->nix-base32-string and bytevector->base16-string. From: Maxime Devos To: guix-patches@gnu.org Date: Tue, 07 Sep 2021 17:34:28 +0200 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-c8JIs8y52Y+SRXZX2cwe" 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=1631028878; bh=W44FlGgv4GCh8GmH2khGm2mCRpX3UPW/VMeE/4kDzLs=; h=Subject:From:To:Date; b=oh+WLei3DZiBTf8HjkSIdvRoP9OsfrBvblI4PCNWiP1JC0oVqR0sD402T/EMF9VwR Ume6bf2tUgBH0Tz1VkPC4Dmb2HlIPzr8hVXDkp70b+ujyzZwDgXluM+4RcAi5usOH2 NXV9E6WZk1l45b+WtB0gdf4S3lmxyrvPhZRvJenheozfoK3H/C0zNnOtr14ehL1n8C Ov1BLAbUYyhJ8i/e6KMUSE6vdLujUbLRFQs4cDbpGnOTOeCi97Sff7D/BHhnC2p3OA 8RZp1IKfRus7bg6yD1/N6KyIItXL6PWC37e7kwteHmhfGpzZHiL3vqHM4Rd4FiIBbZ 8WXLQfrnZAaSw== 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, LOTS_OF_MONEY=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 (--) --=-c8JIs8y52Y+SRXZX2cwe Content-Type: multipart/mixed; boundary="=-Gw1QlRQZ6lezhoMpQtOV" --=-Gw1QlRQZ6lezhoMpQtOV Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi guix, The two atached patches optimise bytevector->nix-base32-string and bytevector->base16-string, making them about 20% and two times faster respectively, by reducing allocations. They are called from 'output-path', 'fixed-output-path' and 'store-path' in (guix store). Unfortunately, this does not decrease timings to a noticable degree, but it does decrease the allocated memory by 2.3% (*), and it does not seem to increase timings. (See perf-numbers.txt.) (*) GUIX_PROFILING=3Dgc guix build -d pigx --no-grafts Greetings, Maxime. --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename*0=0001-base32-Reduce-GC-pressure-in-make-bytevector-base32-.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-base32-Reduce-GC-pressure-in-make-bytevector-base32-.patch"; charset="UTF-8" RnJvbSBhOTNiYWQ2MjllMjc0NmM3NzQ0NmNhY2RkYjk5ODY1MDZjZTliYTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgNSBTZXAgMjAyMSAxNjoyODozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8y XSBiYXNlMzI6IFJlZHVjZSBHQyBwcmVzc3VyZSBpbgogbWFrZS1ieXRldmVjdG9yLT5iYXNlMzIt c3RyaW5nLgoKVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIHVzZWQgdG8gY29tcGFyZSBwZXJm b3JtYW5jZToKCjs7IGZpcnN0IDIwIGJ5dGVzIG9mIHNoYTI1NiBvZiAjdnU4KCN4ZGUgI3hhZCAj eGJlICN4ZWYpCihkZWZpbmUgYnYgI3Z1OCg5NSAxMjAgMTk1IDUwIDExNiAyMjggNjMgMTY5IDIy MiA4NiA4OSAzOCA5MiAyOSAxNDUgMTI2IDM3IDE5MiA1NSAzNCkpCixwcm9maWxlCihsZXQgbG9v cCAoKG4gMCkpCiAgKHdoZW4gKDwgbiAjZTFlNikKICAgICAoKEAgKGd1aXggYmFzZTMyKSBieXRl dmVjdG9yLT5uaXgtYmFzZTMyLXN0cmluZykgYnYpCiAgICAgKGxvb3AgKCsgbiAxKSkpKQoKQmVm b3JlIHRoaXMgY2hhbmdlLCB0aGUgb3V0cHV0IHdhczoKClsuLi5dClNhbXBsZSBjb3VudDogMTE0 MApUb3RhbCB0aW1lOiAyNy40NjU1NjAwMTggc2Vjb25kcyAoMTAuNjU5MzMxNDMzIHNlY29uZHMg aW4gR0MpCgpBZnRlciB0aGlzIGNoYW5nZSwgdGhlIG91dHB1dCB3YXM6CgpbLi4uXQpTYW1wbGUg Y291bnQ6IDk1NwpUb3RhbCB0aW1lOiAyMC40Nzg4NDcxNDMgc2Vjb25kcyAoNi4xMzk3MjExODkg c2Vjb25kcyBpbiBHQykKCiogZ3VpeC9iYXNlMzIuc2NtCiAgKG1ha2UtYnl0ZXZlY3Rvci0+YmFz ZTMyLXN0cmluZyk6IEVsaW1pbmF0ZSAncmV2ZXJzZScsIHVzZSBtdXRhdGlvbiBpbnN0ZWFkLgot LS0KIGd1aXgvYmFzZTMyLnNjbSB8IDE4ICsrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9i YXNlMzIuc2NtIGIvZ3VpeC9iYXNlMzIuc2NtCmluZGV4IDQ5ZjE5MWJhMjYuLmU3NmJmMzVlY2Mg MTAwNjQ0Ci0tLSBhL2d1aXgvYmFzZTMyLnNjbQorKysgYi9ndWl4L2Jhc2UzMi5zY20KQEAgLTE0 MSwxMiArMTQxLDE4IEBAIHRoZSBwcmV2aW91cyBhcHBsaWNhdGlvbiBvciBJTklULiIKIChkZWZp bmUgKG1ha2UtYnl0ZXZlY3Rvci0+YmFzZTMyLXN0cmluZyBxdWludGV0LWZvbGQgYmFzZTMyLWNo YXJzKQogICAobGFtYmRhIChidikKICAgICAiUmV0dXJuIGEgYmFzZTMyIGVuY29kaW5nIG9mIEJW IHVzaW5nIEJBU0UzMi1DSEFSUyBhcyB0aGUgYWxwaGFiZXQuIgotICAgIChsZXQgKChjaGFycyAo cXVpbnRldC1mb2xkIChsYW1iZGEgKHEgcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zICh2ZWN0b3ItcmVmIGJhc2UzMi1jaGFycyBxKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JygpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnYpKSkKLSAgICAgIChsaXN0LT5z dHJpbmcgKHJldmVyc2UgY2hhcnMpKSkpKQorICAgIDs7IE11dGF0aW9uIGNhbiBiZSBhdm9pZGVk IHdpdGggJ3JldmVyc2UnLiAgSG93ZXZlciwgdGhhdCB3b3VsZAorICAgIDs7IG1ha2UgdGhpcyBw cm9jZWR1cmUgYWJvdXQgMzAlIHNsb3dlciBkdWUgdG8gdGhlIGV4dHJhIEdDIHByZXNzdXJlLgor ICAgIChsZXQqICgoc3RhcnQgKGNvbnMgI2YgI2YpKQorICAgICAgICAgICAoZW5kIChxdWludGV0 LWZvbGQgKGxhbWJkYSAocSByKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVm aW5lIHBhaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAodmVjdG9y LXJlZiBiYXNlMzItY2hhcnMgcSkgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2V0LWNkciEgciBwYWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWly KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ2KSkpCisgICAgICAoc2V0LWNkciEgZW5kICcoKSkKKyAgICAgIChsaXN0 LT5zdHJpbmcgKGNkciBzdGFydCkpKSkpCiAKIChkZWZpbmUgJW5peC1iYXNlMzItY2hhcnMKICAg OzsgU2VlIGBsaWJ1dGlsL2hhc2guY2MnLgotLSAKMi4zMy4wCgo= --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename*0=0002-base16-Reduce-GC-pressure-in-bytevector-base16-strin.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-base16-Reduce-GC-pressure-in-bytevector-base16-strin.patch"; charset="UTF-8" RnJvbSBkZmQ5Yjc1NTdlMzE4MjMzMjBmY2JkN2FiZWQ3N2RlMjk1YjdkY2UxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IE1vbiwgNiBTZXAgMjAyMSAwMDo0NjoxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBiYXNlMTY6IFJlZHVjZSBHQyBwcmVzc3VyZSBpbiBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5n LgoKVGhpcyBtYWtlcyBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nIHR3byB0aW1lcyBmYXN0ZXIu CgoqIGd1aXgvYmFzZTE2LnNjbSAoYnl0ZXZlY3Rvci0+YmFzZTE2LXN0cmluZyk6IFVzZSB1dGY4 LT5zdHJpbmcKICBhbmQgaXRlcmF0aW9uIGluc3RlYWQgb2Ygc3RyaW5nLWNvbmNhdGVuYXRlIGFu ZCBuYW1lZCBsZXQuCi0tLQogZ3VpeC9iYXNlMTYuc2NtIHwgNDQgKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25z KCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4L2Jhc2UxNi5zY20gYi9ndWl4 L2Jhc2UxNi5zY20KaW5kZXggNmMxNWE5ZjU4OC4uOWFjOTY0ZGZmMCAxMDA2NDQKLS0tIGEvZ3Vp eC9iYXNlMTYuc2NtCisrKyBiL2d1aXgvYmFzZTE2LnNjbQpAQCAtMSw1ICsxLDYgQEAKIDs7OyBH TlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQogOzs7IENv cHlyaWdodCDCqSAyMDEyLCAyMDE0LCAyMDE3IEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9y Zz4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVu ZXQuYmU+CiA7OzsKIDs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KIDs7OwpAQCAt MzIsMjcgKzMzLDI4IEBACiAKIChkZWZpbmUgKGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcgYnYp CiAgICJSZXR1cm4gdGhlIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIEJWJ3MgY29udGVu dHMuIgotICAoZGVmaW5lIGxlbgotICAgIChieXRldmVjdG9yLWxlbmd0aCBidikpCi0KLSAgKGxl dC1zeW50YXggKChiYXNlMTYtY2hhcnMgKGxhbWJkYSAocykKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3ludGF4LWNhc2UgcyAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKF8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgodiAobGlz dC0+dmVjdG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1 bmZvbGQgKGN1dCA+IDw+IDI1NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAjZiAifjIsJzB4IiBuKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2KSkpKSkpCi0gICAgKGRlZmluZSBjaGFy cyBiYXNlMTYtY2hhcnMpCi0gICAgKGxldCBsb29wICgoaSBsZW4pCi0gICAgICAgICAgICAgICAo ciAnKCkpKQotICAgICAgKGlmICh6ZXJvPyBpKQotICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5h dGUgcikKLSAgICAgICAgICAobGV0ICgoaSAoLSBpIDEpKSkKLSAgICAgICAgICAgIChsb29wIGkK LSAgICAgICAgICAgICAgICAgIChjb25zICh2ZWN0b3ItcmVmIGNoYXJzIChieXRldmVjdG9yLXU4 LXJlZiBidiBpKSkgcikpKSkpKSkKKyAgKGRlZmluZSBsZW4gKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2 KSkKKyAgKGRlZmluZSB1dGY4IChtYWtlLWJ5dGV2ZWN0b3IgKCogbGVuIDIpKSkKKyAgKGxldC1z eW50YXggKChiYXNlMTYtb2N0ZXQtcGFpcnMKKyAgICAgICAgICAgICAgICAobGFtYmRhIChzKQor ICAgICAgICAgICAgICAgICAgKHN5bnRheC1jYXNlIHMgKCkKKyAgICAgICAgICAgICAgICAgICAg KF8KKyAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctPnV0ZjgKKyAgICAgICAgICAgICAgICAg ICAgICAoc3RyaW5nLWNvbmNhdGVuYXRlCisgICAgICAgICAgICAgICAgICAgICAgICh1bmZvbGQg KGN1dCA+IDw+IDI1NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAjZiAifjIsJzB4IiBu KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDApKSkpKSkpKQorICAgIChkZWZpbmUgb2N0ZXQtcGFpcnMgYmFzZTE2LW9j dGV0LXBhaXJzKQorICAgIChsZXQgbG9vcCAoKGkgMCkpCisgICAgICAod2hlbiAoPCBpIGxlbikK KyAgICAgICAgKGJ5dGV2ZWN0b3ItdTE2LW5hdGl2ZS1zZXQhCisgICAgICAgICB1dGY4ICgqIDIg aSkKKyAgICAgICAgIChieXRldmVjdG9yLXUxNi1uYXRpdmUtcmVmIG9jdGV0LXBhaXJzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAyIChieXRldmVjdG9yLXU4LXJlZiBi diBpKSkpKQorICAgICAgICAobG9vcCAoKyBpIDEpKSkpCisgICAgKHV0ZjgtPnN0cmluZyB1dGY4 KSkpCiAKIChkZWZpbmUgYmFzZTE2LXN0cmluZy0+Ynl0ZXZlY3RvcgogICAobGV0ICgoY2hhcnMt PnZhbHVlIChmb2xkIChsYW1iZGEgKGkgcikKLS0gCjIuMzMuMAoK --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename="perf-numbers.txt" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="perf-numbers.txt"; charset="UTF-8" d2hpbGUgdHJ1ZTsgZG8gdGltZSBHVUlYX1BST0ZJTElORz1nYyAuL3RoZS11bm9wdGltaXNlZC1i YXNlTi1ndWl4L2Jpbi9ndWl4IGJ1aWxkIC1kIHBpZ3ggLS1uby1ncmFmdHM7IGRvbmUKCiMgRmly c3QgcnVuIHJlbW92ZWQKL2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYx Yi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNp emU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUuMjAgTWlCCiAgR0Mg dGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjY5IHNlY29uZHMgKDI0JSBv ZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsMDY2cwp1c2VyCTBtMTUsMTQ5cwpzeXMJMG0wLDcwOXMK L2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRy dgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44 NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUuMTkgTWlCCiAgR0MgdGltZXM6ICAgICAgICAg MTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcwIHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpy ZWFsCTBtMTUsOTI0cwp1c2VyCTBtMTUsNjk1cwpzeXMJMG0wLDgzNnMKL2dudS9zdG9yZS9mcTZ4 OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxl Y3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0 ZWQ6ICAgICAgICAzMjUuMjAgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50 IGluIEdDOiAzLjY2IHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsMzY5cwp1 c2VyCTBtMTUsMzM5cwpzeXMJMG0wLDcwNHMKL2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3 ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGlj czoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUu MjAgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjY5IHNl Y29uZHMgKDI1JSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTQsODg5cwp1c2VyCTBtMTUsMDY2cwpz eXMJMG0wLDY3OXMKClN1bW1hcnkuCgooZGVmaW5lIChhdmcgLiByKSAoLyAoYXBwbHkgKyByKSAo bGVuZ3RoIHIpKSkKKGRlZmluZSAoc3RkZGV2IC4gcikgKCogKC8gKGxlbmd0aCByKSAoLSAobGVu Z3RoIHIpIDEpKSAoc3FydCAoYXBwbHkgYXZnIChtYXAgKGxhbWJkYSAoeCkgKGV4cHQgKC0geCAo YXBwbHkgYXZnIHIpKSAyKSkgcikpKSkpCgooZGVmaW5lICAldGltZS9nYyAnKDMuNjkgMy43MCAz LjY2IDMuNjkpKQoodmFsdWVzIChhcHBseSBhdmcgJXRpbWUvZ2MpIChhcHBseSBzdGRkZXYgJXRp bWUvZ2MpKQokNyA9IDMuNjg1CiQ4ID0gMC4wMTk5OTk5OTk5OTk5OTk5NwoKKGRlZmluZSAgJXJl YWwgJygxNS4wNjYgMTUuOTI0IDE1LjM2OSAxNC44ODkpKQooZGVmaW5lICAldXNlciAnKDE1LjE0 OSAxNS42OTUgMTUuMzM5IDE1LjA2NikpCihkZWZpbmUgICVzeXMgICcoMC43MDkgMC44MzYgMC43 MDQgMC42NzkpKQoKKHZhbHVlcyAoYXBwbHkgYXZnICVyZWFsKSAoYXBwbHkgc3RkZGV2ICVyZWFs KSkKJDEgPSAxNS4zMTIwMDAwMDAwMDAwMDEKJDIgPSAwLjUyMzc2MzMwNTMyMDI1NjEKCih2YWx1 ZXMgKGFwcGx5IGF2ZyAldXNlcikgKGFwcGx5IHN0ZGRldiAldXNlcikpCiQzID0gMTUuMzEyMjUK JDQgPSAwLjMyMjgzNjU1OTk1NjM0MTUzCgoodmFsdWVzIChhcHBseSBhdmcgJXN5cykgKGFwcGx5 IHN0ZGRldiAlc3lzKSkKJDUgPSAwLjczMgokNiA9IDAuMDgxNDgwNzQwNzM3MzczNjkKCndoaWxl IHRydWU7IGRvIHRpbWUgR1VJWF9QUk9GSUxJTkc9Z2MgLi90aGUtb3B0aW1pc2VkLWJhc2VOLWd1 aXgvYmluL2d1aXggYnVpbGQgLWQgcGlneCAtLW5vLWdyYWZ0czsgZG9uZQoKL2dudS9zdG9yZS9q ZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNv bGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxv Y2F0ZWQ6ICAgICAgICAzMTcuODMgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNw ZW50IGluIEdDOiAzLjcxIHNlY29uZHMgKDIyJSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTcsNjQ2 cwp1c2VyCTBtMTYsNTM5cwpzeXMJMG0wLDcwNXMKL2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3 YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlz dGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAz MTcuODMgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjYz IHNlY29uZHMgKDIyJSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTgsNzMzcwp1c2VyCTBtMTYsNjk4 cwpzeXMJMG0wLDY5MXMKL2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBh ZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNp emU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMTcuODIgTWlCCiAgR0Mg dGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcyIHNlY29uZHMgKDI0JSBv ZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsNDI5cwp1c2VyCTBtMTUsNDQ4cwpzeXMJMG0wLDY5NnMK L2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRy dgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44 NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMTcuODIgTWlCCiAgR0MgdGltZXM6ICAgICAgICAg MTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcwIHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpy ZWFsCTBtMTUsMjkycwp1c2VyCTBtMTUsMzE1cwpzeXMJMG0wLDYzNXMKCihkZWZpbmUgJXRpbWUv Z2MgJygzLjcxIDMuNjMgMy43MiAzLjcwKSkKKGRlZmluZSAldGltZS9yZWFsICcoMTcuNjQ2IDE4 LjczMyAxNS40MjkgMTUuMjkyKSkKKGRlZmluZSAldGltZS91c2VyICcoMTYuNTM5IDE2LjY5OCAx NS40NDggMTUuMzE1KSkKKGRlZmluZSAldGltZS9zeXMgJygwLjcwNSAwLjY5MSAwLjY5NiAwLjYz NSkpCgoodmFsdWVzIChhcHBseSBhdmcgJXRpbWUvZ2MpIChhcHBseSBzdGRkZXYgJXRpbWUvZ2Mp KQokMTcgPSAzLjY5MDAwMDAwMDAwMDAwMDQKJDE4ID0gMC4wNDcxNDA0NTIwNzkxMDMyOQoodmFs dWVzIChhcHBseSBhdmcgJXRpbWUvcmVhbCkgKGFwcGx5IHN0ZGRldiAldGltZS9yZWFsKSkKJDE5 ID0gMTYuNzc1MDAwMDAwMDAwMDAyCiQyMCA9IDEuOTU1NDM4MDAxNTE3MjUwNgoodmFsdWVzIChh cHBseSBhdmcgJXRpbWUvdXNlcikgKGFwcGx5IHN0ZGRldiAldGltZS91c2VyKSkKJDIxID0gMTYu MAokMjIgPSAwLjgzMDQzNjAzMDA0Njg2NzEKKHZhbHVlcyAoYXBwbHkgYXZnICV0aW1lL3N5cykg KGFwcGx5IHN0ZGRldiAldGltZS9zeXMpKQokMjMgPSAwLjY4MTc0OTk5OTk5OTk5OTkKJDI0ID0g MC4wMzY2MDQ0OTI3NDE4NjAwNwoKClRlc3RzIHNob3cgbmVpdGhlciBhIGRlY3JlYXNlIG5vciBh biBpbmNyZWFzZSBpbiB0aW1pbmdzLgpOb3cgbG9va2luZyBhdCB0aGUgYWxsb2NhdGlvbiBjb3Vu dDoKClRoZSBoZWFwIHNpemUgYmVmb3JlOgogIGhlYXAgc2l6ZTogICAgICAgIDkzLjg1IE1pQgog IGFsbG9jYXRlZDogICAgICAgIDMyNS4yMCBNaUIKClRoZSBoZWFwIHNpemUgYWZ0ZXI6CiAgaGVh cCBzaXplOiAgICAgICAgOTMuODUgTWlCCiAgYWxsb2NhdGVkOiAgICAgICAgMzE3LjgyIE1pQgoK QSBzbWFsbCBpbXByb3ZlbWVudCAoLTIuMyUpLg== --=-Gw1QlRQZ6lezhoMpQtOV-- --=-c8JIs8y52Y+SRXZX2cwe 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+4iGRcl7gUCYTeGhBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7jqOAQCFvc3OjfQejFi5OvpJoFjHjH4N ScQNeScR3iQ/XsH59wD7B8DvTWWad46Djmwup/0X6LBEiCylqdqu4cIrBXrDuAE= =KwMr -----END PGP SIGNATURE----- --=-c8JIs8y52Y+SRXZX2cwe-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 11:37:03 2021 Received: (at 50456) by debbugs.gnu.org; 7 Sep 2021 15:37:03 +0000 Received: from localhost ([127.0.0.1]:57411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd9j-00010X-AT for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:37:03 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:41020) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd9h-000101-UZ for 50456@debbugs.gnu.org; Tue, 07 Sep 2021 11:37:02 -0400 Received: from butterfly.local ([188.188.3.227]) by albert.telenet-ops.be with bizsmtp id r3cz2500M4tskic063d0Z9; Tue, 07 Sep 2021 17:37:00 +0200 Message-ID: Subject: Base16 and base32 optimisations split off From: Maxime Devos To: 50456@debbugs.gnu.org, 50384@debbugs.gnu.org Date: Tue, 07 Sep 2021 17:36:58 +0200 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-5970CM5+qaQR6f8qMTaV" 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=1631029020; bh=SYaUpu/lFZTpRXEY7LqAPO6HFM2sjHphtfYeuhp7v+o=; h=Subject:From:To:Date; b=LZcgSR9h1Y4JAsYUEAHY2csbz2WjxM83tr+5SvjogffiLOiCYIIYzYLaDIGu2jWcN G1dwwyIVu4enj590Vwn8LlC3cP46tL6ej6ps4We/14fEQHUoiDj1jC6GxLze8HIUEC wKshx9GzwC94HDc1nxqdONCxEOJXr1gDyMYwdmuMvvbLTXROon19pdw4amoMRVwU1u 1fHVtXz7XH1Y0QEMjysD1dyXoWW9icJhdAB7m2GXfk4N7YOAaSfeMRyHwz9e75hTLq RAeloSlN6PrwQpOebyuZ0X6lQe2DADefkX9fSaXZxwGBEool/vxj9CJWrIPxfO6zy6 go609aWGssD8Q== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50456 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 (-) --=-5970CM5+qaQR6f8qMTaV Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I split off the base16 and base32 optimisations to a separate patch series: 50456@debbugs.gnu.org. --=-5970CM5+qaQR6f8qMTaV 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+4iGRcl7gUCYTeHGxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vHIAP9HaFsK5/PDqxGZIPrXymwN4QiZ Q27xDLZCo9RSk4YQTAD/b/0b1jDshU+EVtF3PN/6lmo+F9DzTrwr/nxjqwZ6/Qg= =ztev -----END PGP SIGNATURE----- --=-5970CM5+qaQR6f8qMTaV-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 07 11:37:47 2021 Received: (at 50456) by debbugs.gnu.org; 7 Sep 2021 15:37:48 +0000 Received: from localhost ([127.0.0.1]:57417 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNdAR-00011n-OC for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:37:47 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:41050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNdAP-00011d-OA for 50456@debbugs.gnu.org; Tue, 07 Sep 2021 11:37:46 -0400 Received: from butterfly.local ([188.188.3.227]) by laurent.telenet-ops.be with bizsmtp id r3dj2500Z4tskic013dkuh; Tue, 07 Sep 2021 17:37:44 +0200 Message-ID: Subject: Re: bug#50456: Acknowledgement (Optimise bytevector->nix-base32-string and bytevector->base16-string.) From: Maxime Devos To: 50456@debbugs.gnu.org Date: Tue, 07 Sep 2021 17:37:43 +0200 In-Reply-To: References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1631029064; bh=YRjLiItjkwAmEEmQ3LNUJUxgQmIR9IMz0VYqU0JPRw4=; h=Subject:From:To:Date:In-Reply-To:References; b=WzH4Tugxh1CmzKJ0J8O+UbVDzZJtG4yUJ1fX35IXL4+mG/UfsSCrPGz1IAtqWCAKc UQHsuSTRJbQD7Vbp0mgB+achwOUc7lPaBRuOZ36ysb6FA9YGe2lO353jnCCsk8RwJf RAG5WzDPJJZGdAc4JUWKUgCK6Sf1dieUmpjQUVcqY98gsPUVtNmzrB0tnqBv49X/aP rm3dxb5z6VbRUzexlCXALzQOSEEvviAkaOARvVH+pGS+yRmtS+KObEa5L/sFU010TV CLe1Jmie2T6Em4SfnqU1Gj3/f2ESLfiqD87fu5YdoX6NXB85/g37sNGF4s3WSV1jDW 1l0FEhKx1YfMw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50456 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 (-) retitle [PATCH] Optimise bytevector->nix-base32-string and bytevector->base16-string. thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 09 10:29:38 2021 Received: (at 50456) by debbugs.gnu.org; 9 Sep 2021 14:29:38 +0000 Received: from localhost ([127.0.0.1]:35891 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOL3a-00064K-DC for submit@debbugs.gnu.org; Thu, 09 Sep 2021 10:29:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOL3Y-000647-JX for 50456@debbugs.gnu.org; Thu, 09 Sep 2021 10:29:37 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33322) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mOL3S-0007Wy-MP; Thu, 09 Sep 2021 10:29:30 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=47214 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mOL3Q-0007OQ-Ta; Thu, 09 Sep 2021 10:29:30 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: bug#50456: Optimise bytevector->nix-base32-string and bytevector->base16-string. References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> Date: Thu, 09 Sep 2021 16:29:26 +0200 In-Reply-To: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> (Maxime Devos's message of "Tue, 07 Sep 2021 17:34:28 +0200") Message-ID: <87o891esah.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: 50456 Cc: 50456@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: > The two atached patches optimise bytevector->nix-base32-string and > bytevector->base16-string, making them about 20% and two times > faster respectively, by reducing allocations. They are called > from 'output-path', 'fixed-output-path' and 'store-path' > in (guix store). Thanks a lot for looking into this! > Unfortunately, this does not decrease timings to a noticable degree, > but it does decrease the allocated memory by 2.3% (*), and it does not > seem to increase timings. (See perf-numbers.txt.) Yeah, base32 code is usually pretty low in profiles of calls to =E2=80=98package-derivation=E2=80=99. > From a93bad629e2746c77446cacddb9986506ce9ba88 Mon Sep 17 00:00:00 2001 > From: Maxime Devos > Date: Sun, 5 Sep 2021 16:28:33 +0200 > Subject: [PATCH 1/2] base32: Reduce GC pressure in > make-bytevector->base32-string. > > The following code has been used to compare performance: > > ;; first 20 bytes of sha256 of #vu8(#xde #xad #xbe #xef) > (define bv #vu8(95 120 195 50 116 228 63 169 222 86 89 38 92 29 145 126 3= 7 192 55 34)) > ,profile > (let loop ((n 0)) > (when (< n #e1e6) > ((@ (guix base32) bytevector->nix-base32-string) bv) > (loop (+ n 1)))) > > Before this change, the output was: > > [...] > Sample count: 1140 > Total time: 27.465560018 seconds (10.659331433 seconds in GC) > > After this change, the output was: > > [...] > Sample count: 957 > Total time: 20.478847143 seconds (6.139721189 seconds in GC) Note that ,profile (statprof) is intrusive; additional, the REPL uses the =E2=80=9Cdebug=E2=80=9D VM engine, which is slightly slower than the = =E2=80=9Cregular=E2=80=9D one (info "(guile) Command-line Options"). To measure =E2=80=9Cactual=E2=80=9D performance, it=E2=80=99s best to write= the code down in a file and then run: time guile -l that-file.scm or, alternatively, use (ice-9 time) and wrap the body of the relevant code in (time =E2=80=A6), which is a bit more accurate than using the shell= =E2=80=99s =E2=80=98time=E2=80=99 command since it allows you to dismiss Guile startup= time. (You also need to make sure that the loop counter remains below =E2=80=98most-positive-fixnum=E2=80=99, otherwise you=E2=80=99ll end up mea= suring GC activity due to the use of bignums, but 10=E2=81=B6 is definitely OK.) > * guix/base32.scm > (make-bytevector->base32-string): Eliminate 'reverse', use mutation ins= tead. [...] > + (let* ((start (cons #f #f)) > + (end (quintet-fold (lambda (q r) > + (define pair > + (cons (vector-ref base32-chars q) #f)) > + (set-cdr! r pair) > + pair) > + start > + bv))) > + (set-cdr! end '()) > + (list->string (cdr start))))) Does replacing (reverse chars) with (reverse! chars) has the same effect? I=E2=80=99m reluctant to resorting to micro-optimizations like the one above since they make code harder to reason about. > From dfd9b7557e31823320fcbd7abed77de295b7dce1 Mon Sep 17 00:00:00 2001 > From: Maxime Devos > Date: Mon, 6 Sep 2021 00:46:17 +0200 > Subject: [PATCH 2/2] base16: Reduce GC pressure in bytevector->base16-str= ing. > > This makes bytevector->base16-string two times faster. > > * guix/base16.scm (bytevector->base16-string): Use utf8->string > and iteration instead of string-concatenate and named let. LGTM. How did you measure performance for this one? Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 09 10:43:13 2021 Received: (at 50456) by debbugs.gnu.org; 9 Sep 2021 14:43:13 +0000 Received: from localhost ([127.0.0.1]:35925 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLGi-00008t-WF for submit@debbugs.gnu.org; Thu, 09 Sep 2021 10:43:13 -0400 Received: from baptiste.telenet-ops.be ([195.130.132.51]:60508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLGf-00008b-M0 for 50456@debbugs.gnu.org; Thu, 09 Sep 2021 10:43:11 -0400 Received: from butterfly.local ([188.189.231.0]) by baptiste.telenet-ops.be with bizsmtp id rqj32500M01AJj801qj66e; Thu, 09 Sep 2021 16:43:07 +0200 Message-ID: <86e6e4cf87fce8ed4b970568b9c9b375d03a5505.camel@telenet.be> Subject: Re: bug#50456: Optimise bytevector->nix-base32-string and bytevector->base16-string. From: Maxime Devos To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Thu, 09 Sep 2021 16:42:58 +0200 In-Reply-To: <87o891esah.fsf@gnu.org> References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> <87o891esah.fsf@gnu.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ZIYlsB89j0FaSXMI5UI7" 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=1631198587; bh=J3rf9yqikQ0S0CgoVgSsXuZ4EpzHeazfMG0b+mDaDKA=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=POpJvSjgmfd5k1K4AGzLEYowFVFVjIOrFMmyEOoWzV6d1TVQEJkJfTaTuaLkvgLRc 1lJP7uyMUkb4t5mBnqz4MvK9z9zjRvuKOWTY5KCh3x2uFi7TtERhaIlWX+WskMAMph hydg54eX9eJG2u84ZvQdEbj5oDHqCedL5vwIp8nOv7r6wVBbuX5ggBUXDmfMddABt+ K+dQLZOq3SZOp5AyR7piS4FDrEBF9VoH71+iTA96l8YGc5keIF8fCag7N1amQZON8p T8v59tnzuSj9LKmlXJkf1ULRJYY/9T8AlCpXD/Ep6FXhJJvFb2UqFvYyxhI3e4hC5t 6H7nxTyWfkZzA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50456 Cc: 50456@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 (-) --=-ZIYlsB89j0FaSXMI5UI7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s schreef op do 09-09-2021 om 16:29 [+0200]: > Hello, >=20 > Maxime Devos skribis: >=20 > > The two atached patches optimise bytevector->nix-base32-string and > > bytevector->base16-string, making them about 20% and two times > > faster respectively, by reducing allocations. They are called > > from 'output-path', 'fixed-output-path' and 'store-path' > > in (guix store). >=20 > Thanks a lot for looking into this! >=20 > > Unfortunately, this does not decrease timings to a noticable degree, > > but it does decrease the allocated memory by 2.3% (*), and it does not > > seem to increase timings. (See perf-numbers.txt.) >=20 > Yeah, base32 code is usually pretty low in profiles of calls to > =E2=80=98package-derivation=E2=80=99. >=20 > > From a93bad629e2746c77446cacddb9986506ce9ba88 Mon Sep 17 00:00:00 2001 > > From: Maxime Devos > > Date: Sun, 5 Sep 2021 16:28:33 +0200 > > Subject: [PATCH 1/2] base32: Reduce GC pressure in > > make-bytevector->base32-string. > >=20 > > The following code has been used to compare performance: > >=20 > > ;; first 20 bytes of sha256 of #vu8(#xde #xad #xbe #xef) > > (define bv #vu8(95 120 195 50 116 228 63 169 222 86 89 38 92 29 145 126= 37 192 55 34)) > > ,profile > > (let loop ((n 0)) > > (when (< n #e1e6) > > ((@ (guix base32) bytevector->nix-base32-string) bv) > > (loop (+ n 1)))) > >=20 > > Before this change, the output was: > >=20 > > [...] > > Sample count: 1140 > > Total time: 27.465560018 seconds (10.659331433 seconds in GC) > >=20 > > After this change, the output was: > >=20 > > [...] > > Sample count: 957 > > Total time: 20.478847143 seconds (6.139721189 seconds in GC) >=20 > Note that ,profile (statprof) is intrusive; additional, the REPL uses > the =E2=80=9Cdebug=E2=80=9D VM engine, which is slightly slower than the = =E2=80=9Cregular=E2=80=9D one > (info "(guile) Command-line Options"). >=20 > To measure =E2=80=9Cactual=E2=80=9D performance, it=E2=80=99s best to wri= te the code down in a > file and then run: >=20 > time guile -l that-file.scm >=20 > or, alternatively, use (ice-9 time) and wrap the body of the relevant > code in (time =E2=80=A6), which is a bit more accurate than using the she= ll=E2=80=99s > =E2=80=98time=E2=80=99 command since it allows you to dismiss Guile start= up time. I'll test with ((@ (ice-9 time) ...). > (You also need to make sure that the loop counter remains below > =E2=80=98most-positive-fixnum=E2=80=99, otherwise you=E2=80=99ll end up m= easuring GC activity > due to the use of bignums, but 10=E2=81=B6 is definitely OK.) >=20 > > * guix/base32.scm > > (make-bytevector->base32-string): Eliminate 'reverse', use mutation i= nstead. >=20 > [...] >=20 > > + (let* ((start (cons #f #f)) > > + (end (quintet-fold (lambda (q r) > > + (define pair > > + (cons (vector-ref base32-chars q) #f= )) > > + (set-cdr! r pair) > > + pair) > > + start > > + bv))) > > + (set-cdr! end '()) > > + (list->string (cdr start))))) >=20 > Does replacing (reverse chars) with (reverse! chars) has the same > effect? Not tested. > I=E2=80=99m reluctant to resorting to micro-optimizations like the one ab= ove > since they make code harder to reason about. Agreed, let's drop that patch. > > From dfd9b7557e31823320fcbd7abed77de295b7dce1 Mon Sep 17 00:00:00 2001 > > From: Maxime Devos > > Date: Mon, 6 Sep 2021 00:46:17 +0200 > > Subject: [PATCH 2/2] base16: Reduce GC pressure in bytevector->base16-s= tring. > >=20 > > This makes bytevector->base16-string two times faster. > >=20 > > * guix/base16.scm (bytevector->base16-string): Use utf8->string > > and iteration instead of string-concatenate and named let. >=20 > LGTM. How did you measure performance for this one? IIRC, the same way as with bytevector->base32-string. I'll retest with (ice-9 time). Greetings, Maxime. --=-ZIYlsB89j0FaSXMI5UI7 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+4iGRcl7gUCYTodchccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7o92APwMMvSu7NAFOEyDafcW4OahGsB6 k6jLS72HTMIjltUcyQD+NF7xLsJkjzrrgltwr65QCzRW+3iEJt/LVIlavV+QFgw= =wiOW -----END PGP SIGNATURE----- --=-ZIYlsB89j0FaSXMI5UI7-- From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 09 11:16:02 2021 Received: (at 50456) by debbugs.gnu.org; 9 Sep 2021 15:16:02 +0000 Received: from localhost ([127.0.0.1]:36017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLmT-00013h-RH for submit@debbugs.gnu.org; Thu, 09 Sep 2021 11:16:02 -0400 Received: from andre.telenet-ops.be ([195.130.132.53]:57124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLmS-00013Y-2g for 50456@debbugs.gnu.org; Thu, 09 Sep 2021 11:16:01 -0400 Received: from butterfly.local ([213.119.128.77]) by andre.telenet-ops.be with bizsmtp id rrFv2500S1gKkhx01rFx30; Thu, 09 Sep 2021 17:15:58 +0200 Message-ID: Subject: Re: bug#50456: Optimise bytevector->nix-base32-string and bytevector->base16-string. From: Maxime Devos To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Thu, 09 Sep 2021 17:15:54 +0200 In-Reply-To: <87o891esah.fsf@gnu.org> References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> <87o891esah.fsf@gnu.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-LgTbGMcMEdj53iFC4DsO" 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=1631200558; bh=ch94fepHea1lTPCAPFXYJkdNfHqlPfBZ7ZYjKj1ityY=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=ohwoUyzP6nggK4k0M6SszsbuihWGMv3xnBRm7Eg5lOHyZm5pqASnSaLQgm/1Id7iS O+rUCA5KPjXk2LOdFWH8AIdOlDXl2kVboLebqv+Tiewc6fHScecFHU4GIFwUOi0CCE yTosegTSGKTwd5vc3vO4WaU966CVhuxBpM2aUYfsIXkYe/ujHfs/I7ctfOVCclZ7iA MZngmKs426qizLJvAJaqsNvEMZVHTmJmPq6olUTCxpycNjgmLO0hRfGpPqyAmmlIp6 3ZlXGrx/V30ITEOBwq7AVK3Cp7cVmTYVt+Fc7HMIYUTA/2cHclSIB4DG6mWoKEF74y rlQWzzTfElyfA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50456 Cc: 50456@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 (-) --=-LgTbGMcMEdj53iFC4DsO Content-Type: multipart/mixed; boundary="=-oO3ve0sbUKHv+E2PetM6" --=-oO3ve0sbUKHv+E2PetM6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Here are the test results using (ice-9 time) with the attached "time.scm" and guix/base16.scm, to be run with =E2=80=98make && ./pre-inst-env guix repl time.scm=E2=80=99: old: clock utime stime cutime cstime gctime 3.93 6.32 0.03 0.00 0.00 3.59 clock utime stime cutime cstime gctime 3.92 6.32 0.03 0.00 0.00 3.59 clock utime stime cutime cstime gctime 3.86 6.24 0.02 0.00 0.00 3.54 new: clock utime stime cutime cstime gctime 2.43 3.60 0.02 0.00 0.00 1.76 clock utime stime cutime cstime gctime 2.49 3.67 0.01 0.00 0.00 1.77 clock utime stime cutime cstime gctime 2.64 3.77 0.01 0.00 0.00 1.77 About half as much time is spent in GC. The =E2=80=98utime=E2=80=99 is also half as much. Not sure what =E2=80=98clock=E2=80=99 means exactly, but it is reduced as well. Greetings, Maxime --=-oO3ve0sbUKHv+E2PetM6 Content-Disposition: inline; filename="time.scm" Content-Type: text/x-scheme; name="time.scm"; charset="UTF-8" Content-Transfer-Encoding: base64 KGRlZmluZSBidiAjdnU4KDk1IDEyMCAxOTUgNTAgMTE2IDIyNyA2MyAxNjkgMjIyIDg2IDg5IDM4 IDkyIDE0NSAxMjYgMzcgMTkyIDU1IDM0KSkKKGRlZmluZSAodGhlLXRlc3QgcCkKICAobGV0IGxv b3AgKChuIDApKQogICAgKHdoZW4gKDwgbiAjZTFlNikKICAgICAgKHAgYnYpCiAgICAgIChsb29w ICgrIG4gMSkpKSkpCgooZGlzcGxheSAib2xkOlxuIikKOzsgV2FybSB1cCB0aGUgSklUCih0aGUt dGVzdCAoQCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcvb2xkKSkKOzsg QW5kIHRpbWUgdGhlIHByb2NlZHVyZQooKEAgKGljZS05IHRpbWUpIHRpbWUpICh0aGUtdGVzdCAo QCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcvb2xkKSkpCigoQCAoaWNl LTkgdGltZSkgdGltZSkgKHRoZS10ZXN0IChAIChndWl4IGJhc2UxNikgYnl0ZXZlY3Rvci0+YmFz ZTE2LXN0cmluZy9vbGQpKSkKKChAIChpY2UtOSB0aW1lKSB0aW1lKSAodGhlLXRlc3QgKEAgKGd1 aXggYmFzZTE2KSBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nL29sZCkpKQoKKGRpc3BsYXkgIm5l dzpcbiIpCjs7IFdhcm0gdXAgdGhlIEpJVAoodGhlLXRlc3QgKEAgKGd1aXggYmFzZTE2KSBieXRl dmVjdG9yLT5iYXNlMTYtc3RyaW5nKSkKOzsgQW5kIHRpbWUgdGhlIHByb2NlZHVyZQooKEAgKGlj ZS05IHRpbWUpIHRpbWUpICh0aGUtdGVzdCAoQCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJh c2UxNi1zdHJpbmcpKSkKKChAIChpY2UtOSB0aW1lKSB0aW1lKSAodGhlLXRlc3QgKEAgKGd1aXgg YmFzZTE2KSBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nKSkpCigoQCAoaWNlLTkgdGltZSkgdGlt ZSkgKHRoZS10ZXN0IChAIChndWl4IGJhc2UxNikgYnl0ZXZlY3Rvci0+YmFzZTE2LXN0cmluZykp KQo= --=-oO3ve0sbUKHv+E2PetM6 Content-Disposition: attachment; filename="base16.scm" Content-Type: text/x-scheme; name="base16.scm"; charset="UTF-8" Content-Transfer-Encoding: base64 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCjs7 OyBDb3B5cmlnaHQgwqkgMjAxMiwgMjAxNCwgMjAxNyBMdWRvdmljIENvdXJ0w6hzIDxsdWRvQGdu dS5vcmc+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRl bGVuZXQuYmU+Cjs7Owo7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCjs7Owo7Ozsg R05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdAo7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAo7OzsgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgo7OzsKOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAo7OzsgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OzsgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo7OzsgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzs7Cjs7OyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQo7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KCihkZWZpbmUtbW9kdWxlIChndWl4IGJhc2UxNikKICAjOnVzZS1tb2R1 bGUgKHNyZmkgc3JmaS0xKQogICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQogICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTYwKQogICM6dXNlLW1vZHVsZSAocm5ycyBieXRldmVjdG9ycykKICAj OnVzZS1tb2R1bGUgKGljZS05IHZsaXN0KQogICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQog ICM6ZXhwb3J0IChieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nCiAgICAgICAgICAgIGJ5dGV2ZWN0 b3ItPmJhc2UxNi1zdHJpbmcvb2xkCiAgICAgICAgICAgIGJhc2UxNi1zdHJpbmctPmJ5dGV2ZWN0 b3IpKQoMCjs7Owo7OzsgQmFzZSAxNi4KOzs7CgooZGVmaW5lIChieXRldmVjdG9yLT5iYXNlMTYt c3RyaW5nL29sZCBidikKICAiUmV0dXJuIHRoZSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiBv ZiBCVidzIGNvbnRlbnRzLiIKICAoZGVmaW5lIGxlbgogICAgKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2 KSkKCiAgKGxldC1zeW50YXggKChiYXNlMTYtY2hhcnMgKGxhbWJkYSAocykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzeW50YXgtY2FzZSBzICgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKCh2 IChsaXN0LT52ZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAodW5mb2xkIChjdXQgPiA8PiAyNTUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICNmICJ+MiwnMHgiIG4pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYpKSkpKSkKICAgIChkZWZpbmUgY2hhcnMg YmFzZTE2LWNoYXJzKQogICAgKGxldCBsb29wICgoaSBsZW4pCiAgICAgICAgICAgICAgIChyICco KSkpCiAgICAgIChpZiAoemVybz8gaSkKICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5hdGUgcikK ICAgICAgICAgIChsZXQgKChpICgtIGkgMSkpKQogICAgICAgICAgICAobG9vcCBpCiAgICAgICAg ICAgICAgICAgIChjb25zICh2ZWN0b3ItcmVmIGNoYXJzIChieXRldmVjdG9yLXU4LXJlZiBidiBp KSkgcikpKSkpKSkKCihkZWZpbmUgKGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcgYnYpCiAgIlJl dHVybiB0aGUgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgQlYncyBjb250ZW50cy4iCiAg KGRlZmluZSBsZW4gKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2KSkKICAoZGVmaW5lIHV0ZjggKG1ha2Ut Ynl0ZXZlY3RvciAoKiBsZW4gMikpKQogIChsZXQtc3ludGF4ICgoYmFzZTE2LW9jdGV0LXBhaXJz CiAgICAgICAgICAgICAgICAobGFtYmRhIChzKQogICAgICAgICAgICAgICAgICAoc3ludGF4LWNh c2UgcyAoKQogICAgICAgICAgICAgICAgICAgIChfCiAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctPnV0ZjgKICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5hdGUKICAgICAg ICAgICAgICAgICAgICAgICAodW5mb2xkIChjdXQgPiA8PiAyNTUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhIChuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZm9ybWF0ICNmICJ+MiwnMHgiIG4pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpKSkpKQogICAgKGRlZmluZSBv Y3RldC1wYWlycyBiYXNlMTYtb2N0ZXQtcGFpcnMpCiAgICAobGV0IGxvb3AgKChpIDApKQogICAg ICAod2hlbiAoPCBpIGxlbikKICAgICAgICAoYnl0ZXZlY3Rvci11MTYtbmF0aXZlLXNldCEKICAg ICAgICAgdXRmOCAoKiAyIGkpCiAgICAgICAgIChieXRldmVjdG9yLXUxNi1uYXRpdmUtcmVmIG9j dGV0LXBhaXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIDIgKGJ5dGV2 ZWN0b3ItdTgtcmVmIGJ2IGkpKSkpCiAgICAgICAgKGxvb3AgKCsgaSAxKSkpKQogICAgKHV0Zjgt PnN0cmluZyB1dGY4KSkpCgooZGVmaW5lIGJhc2UxNi1zdHJpbmctPmJ5dGV2ZWN0b3IKICAobGV0 ICgoY2hhcnMtPnZhbHVlIChmb2xkIChsYW1iZGEgKGkgcikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHZoYXNoLWNvbnN2IChzdHJpbmctcmVmIChudW1iZXItPnN0cmluZyBpIDE2KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgcikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2bGlzdC1udWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoaW90YSAxNikpKSkKICAgIChsYW1iZGEgKHMpCiAgICAgICJSZXR1cm4gdGhlIGJ5dGV2ZWN0 b3Igd2hvc2UgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgc3RyaW5nIFMuIgogICAgICAo ZGVmaW5lIGJ2CiAgICAgICAgKG1ha2UtYnl0ZXZlY3RvciAocXVvdGllbnQgKHN0cmluZy1sZW5n dGggcykgMikgMCkpCgogICAgICAoc3RyaW5nLWZvbGQgKGxhbWJkYSAoY2hyIGkpCiAgICAgICAg ICAgICAgICAgICAgIChsZXQgKChqIChxdW90aWVudCBpIDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAodiAoYW5kPT4gKHZoYXNoLWFzc3YgY2hyIGNoYXJzLT52YWx1ZSkgY2RyKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgKGlmIHYKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlm ICh6ZXJvPyAobG9nYW5kIGkgMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0 ZXZlY3Rvci11OC1zZXQhIGJ2IGoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFyaXRobWV0aWMtc2hpZnQgdiA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZXQgKCh3IChieXRldmVjdG9yLXU4LXJlZiBidiBqKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChieXRldmVjdG9yLXU4LXNldCEgYnYgaiAobG9naW9y IHYgdykpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJpbnZhbGlkIGhleGFk ZWNpbWFsIGNoYXJhY3RlciIgY2hyKSkpCiAgICAgICAgICAgICAgICAgICAgICgrIGkgMSkpCiAg ICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICBzKQogICAgICBidikpKQoK --=-oO3ve0sbUKHv+E2PetM6-- --=-LgTbGMcMEdj53iFC4DsO 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+4iGRcl7gUCYTolKhccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mlGAQCkpIysMV7eW3JFiUt5BiN0WNy3 4UiPf2bbQPsxK4yfNQD/bRnL5I9uIPJtf7hx9xG1A6H7kytSVL+0KdhlTShqag0= =oljC -----END PGP SIGNATURE----- --=-LgTbGMcMEdj53iFC4DsO-- From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 11 11:54:49 2021 Received: (at 50456-done) by debbugs.gnu.org; 11 Sep 2021 15:54:49 +0000 Received: from localhost ([127.0.0.1]:41257 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mP5L7-0005lf-3b for submit@debbugs.gnu.org; Sat, 11 Sep 2021 11:54:49 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:55846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mP5L4-0005lV-Nj for 50456-done@debbugs.gnu.org; Sat, 11 Sep 2021 11:54:47 -0400 Received: from butterfly.local ([188.189.241.36]) by xavier.telenet-ops.be with bizsmtp id sfuj2500D0npYvQ01fuk1m; Sat, 11 Sep 2021 17:54:45 +0200 Message-ID: <3ec66b7f141a7b37a4fc34ddeaf0a76127f23ecf.camel@telenet.be> Subject: Re: bug#50456: Acknowledgement (Optimise bytevector->nix-base32-string and bytevector->base16-string.) From: Maxime Devos To: 50456-done@debbugs.gnu.org Date: Sat, 11 Sep 2021 17:54:43 +0200 In-Reply-To: References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1631375685; bh=03ydvUQ2Z1GZ6IcI2R6QuZ+SIyYBVBoPXDzqiPb44SU=; h=Subject:From:To:Date:In-Reply-To:References; b=DN4+9LbruehhsfwI3pwZf2QdGZwrYrMjy1cL3TfUFBMewoFU85kGd02QxK/s2pWCe u2a/YIv5069A9HSinKkksWLF95gkxdDkhOa5ta2mq4LFamMZNcxbziTi4PkhI/PIn1 wwM4q0oStE1vNELPu18IXx8Y756n+P5Lp2eWMcA6m8k60L+94RD7AmPxUMn13xzojQ j6mELh/Bq8XDasCKIzbxntQfLGwW7lSoFWmD0o8J17dsaqJ0aXxIVyRp0FmMjCGhPO Oe73MnW4Gi/NxMwo5a1UqqJ7tcNkHmJL+0Gh+Bvo1azIFjsYdeOy2URHm7zLBR0bx2 igw1NsVEqag1A== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 50456-done 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 (-) Partially merged with a87d8c912d64382d8d7489c156249bc2b2638df0. Closing. From unknown Thu Aug 21 12:11:51 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 10 Oct 2021 11:24:07 +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