From unknown Sat Aug 09 13:01:08 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#79035 <79035@debbugs.gnu.org> To: bug#79035 <79035@debbugs.gnu.org> Subject: Status: Remove micro-optimization for Funintern for performance Reply-To: bug#79035 <79035@debbugs.gnu.org> Date: Sat, 09 Aug 2025 20:01:08 +0000 retitle 79035 Remove micro-optimization for Funintern for performance reassign 79035 emacs submitter 79035 Lynn Winebarger severity 79035 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 16 23:25:49 2025 Received: (at submit) by debbugs.gnu.org; 17 Jul 2025 03:25:49 +0000 Received: from localhost ([127.0.0.1]:52076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucFFk-0008CE-Cf for submit@debbugs.gnu.org; Wed, 16 Jul 2025 23:25:49 -0400 Received: from lists.gnu.org ([2001:470:142::17]:48724) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucFFh-0008BP-8Y for submit@debbugs.gnu.org; Wed, 16 Jul 2025 23:25:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucFFU-0002Hz-KB for bug-gnu-emacs@gnu.org; Wed, 16 Jul 2025 23:25:33 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ucFFS-0006gn-DJ for bug-gnu-emacs@gnu.org; Wed, 16 Jul 2025 23:25:32 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3a4e575db1aso7377f8f.2 for ; Wed, 16 Jul 2025 20:25:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752722728; x=1753327528; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=3kohXF/132v+uU4NIdeKhHDRW0IGPk+Qi4cdz2I+NCQ=; b=DuayuuuzxWruSXobFmLsyHM5tEXbL4GtsiOuFfRIW4ok5krmoch57bHvgvmrpV7zxk gqA5AiiMfAXd2morRgSh4GrbzN4Yd6IhVDIu54Okt5ZVbOGmpITnzSgd3PbhwJNu0v8c VrhmBrKUblWMaFg9ih/C+K50wjvQS8bYV5zpozl+TyVHZIdcn+oOZI8tDggiZviDdwEK eQWaD+D73wkmYFwI9xuewg6Pl03lDdZnhWCqHo2Fo7FQFEBTJPH1WaR/SFBUxnJXT5rF K6Cv+Tz5X4Nj7C4qtyqkFAbaU/+LgCE9QeylNMVvnn4rs9VI1hRqfygLHwv1iyF7jLwK OKcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752722728; x=1753327528; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=3kohXF/132v+uU4NIdeKhHDRW0IGPk+Qi4cdz2I+NCQ=; b=G0ORm9zSRre4hMfd5+3+7yA0RA7E7S1bvCZ2Mov/pkMRDkmUKILsI1rVEKUE82huWz h5mo5dJrCZmOSneL4FQM0EZvBljpalCcOlPldx3jUSjL9SVsvD2NeEBtUrRblL+BJKyF +dEBMNYHy2mmHNamwuXEecs1DUGxtSScLL4BdxpZ/eOWMM5aDvz/KNx72MCMO6oZv04k BoBsupSQTxuoBdeZ45E/xhSBVTw6GkdvwJimjqm8vvADarv4Ou6WWMBwGYzZ1jHgSgLH PJpIHu3rL0TT2+A/FLKMuY+Me+8el4yn/3jvhcx1c7zvbAtSEHx1/Wx5WgebZdJrzta1 kv6w== X-Gm-Message-State: AOJu0YyxBrP3JccUA4wYRPHFahGoAHLYIZlLMqFw2dfrp3jPCGYQfiv/ CJmKdf7KgceyK7LS/NINfs3XjsuJGsx9tywn1NGn7IMndX1t2c/G3cVMmDV159Vt6muAIQyp0zb MYPbXNXRwXOBSEEDqntcOJ+SrFpKf1bVoOprJ X-Gm-Gg: ASbGncsrnwxvMimwAT5E3kNuyrAv/8fXxrquFoHJW38YeK16+MXq2FUEuF9u6Bm7g50 VL7AvBNJCii4W/klpg5M5mA1xyPpwKZ2LrHgeHZZZ0XGUZKW9QbgKv0/K5mC4i0l/vYC2HZ8b7F j6TAYi2jgS0HWZPn5n0sFei3NrM3N580eLrNIWRKwYm+meIcFxb1prPaJNXgCjB+Jiye7A3EA8s VAEuxslhcMtZfZBQJE= X-Google-Smtp-Source: AGHT+IHPTghOTKOdRyTkxkrsEPHisUQ6UqBsEB4YptVxLucQSaqfofnFVGp6E5lW5Lab0xPgB71LwbC85U6EuQK66BY= X-Received: by 2002:a05:6000:2805:b0:3a4:f7d9:9617 with SMTP id ffacd0b85a97d-3b60dd11fa2mr1149532f8f.0.1752722727756; Wed, 16 Jul 2025 20:25:27 -0700 (PDT) MIME-Version: 1.0 From: Lynn Winebarger Date: Wed, 16 Jul 2025 23:25:15 -0400 X-Gm-Features: Ac12FXwoYiDmHoc-DVvw3-X2Mw3c-UtCCMUmqLyNBmha92ucq-PbkF-wIHYmy9Q Message-ID: Subject: Remove micro-optimization for Funintern for performance To: bug-gnu-emacs@gnu.org, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Stefan Monnier Content-Type: multipart/mixed; boundary="000000000000940367063a178f1d" Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=owinebar@gmail.com; helo=mail-wr1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.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: -0.0 (/) --000000000000940367063a178f1d Content-Type: text/plain; charset="UTF-8" Based on my measurement of my reentrant reader submission, I tried just eliminating the static variable used to "optimize" out a redundant lookup by stashing the index in a static variable used only by Funintern. See attached - I just repeated the lookup code in Funintern, removed the assignment from oblookup, and eliminated the static variable. At least for -O0, storing this information in the frequently called oblookup to save a lookup in the very infrequently called Funintern is a bit of a pessimization. Based on summing the profiles of all the byte-compile jobs, and filtering for obarray-related functions in read.c, I get the following for commit a8b65860a5e28ee0867e8506a17d74d4a9b7783a (the cumulative is all functions in lread.c, most of which I am eliding): Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 13.44 31.82 8.68 79508607 0.00 0.00 oblookup 0.85 58.97 0.55 260 2.12 2.21 grow_obarray 0.84 59.51 0.54 83352123 0.00 0.00 obarray_index 0.81 60.03 0.52 78691233 0.00 0.00 oblookup_considering_shorthand 0.37 62.19 0.24 6858863 0.00 0.00 intern_sym 0.29 63.03 0.19 4635384 0.00 0.00 read_internal_start 0.08 64.05 0.05 20570557 0.00 0.00 mapatoms_1 0.06 64.23 0.04 1060 0.04 0.04 map_obarray 0.05 64.30 0.03 6858863 0.00 0.00 intern_driver 0.05 64.33 0.03 1143939 0.00 0.00 Fintern 0.03 64.48 0.02 Funintern 0.02 64.57 0.01 66751 0.00 0.00 Fintern_soft 0.00 64.59 0.00 22626 0.00 0.00 Flread__substitute_object_in_subtree 0.00 64.59 0.00 22626 0.00 0.00 substitute_object_recurse 0.00 64.59 0.00 13223 0.00 0.00 Fobarray_make 0.00 64.59 0.00 13223 0.00 0.00 allocate_obarray 0.00 64.59 0.00 13223 0.00 0.00 make_obarray 0.00 64.59 0.00 10916 0.00 0.00 Fobarrayp 0.00 64.59 0.00 5032 0.00 0.00 Flocate_file_internal 0.00 64.59 0.00 2522 0.00 0.00 intern_1 0.00 64.59 0.00 1043 0.00 0.00 Fmapatoms The same commit with the attached patch: 13.22 31.13 8.23 79563723 0.00 0.00 oblookup 0.67 57.22 0.42 264 1.59 1.66 grow_obarray 0.61 57.60 0.38 83407339 0.00 0.00 obarray_index 0.61 57.98 0.38 78745509 0.00 0.00 oblookup_considering_shorthand 0.25 60.64 0.16 6858324 0.00 0.00 intern_sym 0.19 61.32 0.12 4635494 0.00 0.00 read_internal_start 0.11 61.59 0.07 20669351 0.00 0.00 mapatoms_1 0.11 61.66 0.07 1067 0.07 0.07 map_obarray 0.10 61.84 0.06 Funintern 0.05 62.10 0.03 66913 0.00 0.00 Fintern_soft 0.01 62.27 0.01 6858324 0.00 0.00 intern_driver 0.00 62.28 0.00 1146143 0.00 0.00 Fintern 0.00 62.28 0.00 22460 0.00 0.00 Flread__substitute_object_in_subtree 0.00 62.28 0.00 22460 0.00 0.00 substitute_object_recurse 0.00 62.28 0.00 13219 0.00 0.00 Fobarray_make 0.00 62.28 0.00 13219 0.00 0.00 allocate_obarray 0.00 62.28 0.00 13219 0.00 0.00 make_obarray 0.00 62.28 0.00 10918 0.00 0.00 Fobarrayp 0.00 62.28 0.00 5031 0.00 0.00 Flocate_file_internal 0.00 62.28 0.00 2522 0.00 0.00 intern_1 0.00 62.28 0.00 1050 0.00 0.00 Fmapatoms The total reported cpu time for a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and with the patch it is 3460.69. You can see Funintern is more expensive, but also that in all those jobs no actual calls were recorded in either case. I see similar differences for these functions when I compare results for commit 2bdcf0250acecdb0719203ae711aedf5baad1783. As a reminder, I submitted my assignment paperwork a couple of years ago, although this seems like a pretty trivial change. Lynn --000000000000940367063a178f1d Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Remove-micro-optimization-for-Funintern.patch" Content-Disposition: attachment; filename="0001-Remove-micro-optimization-for-Funintern.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md6t9onv0 RnJvbSBjNDgxOGJhMDFmOTQ3MTc4NzZmNzcyZjlhMGI1ZTY3ZDJkMzJkNTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5pZSBMeW5uIFdpbmViYXJnZXIgPG93aW5lYmFyQGdtYWls LmNvbT4KRGF0ZTogV2VkLCAxNiBKdWwgMjAyNSAyMzowNDowNyAtMDQwMApTdWJqZWN0OiBbUEFU Q0hdIFJlbW92ZSBtaWNyby1vcHRpbWl6YXRpb24gZm9yIEZ1bmludGVybgoKKGxyZWFkLmMpOiBS ZW1vdmUgc3RhdGljIHZhcmlhYmxlIG9ibG9va3VwX2xhc3RfYnVja2V0X251bWJlci4gIFJlbW92 YWwKYXBwZWFycyB0byByZWR1Y2UgZXhlY3V0aW9uIHRpbWUgb2Ygb2JhcnJheSBmdW5jdGlvbnMg YnkgYWJvdXQgNiUsIHdoaWxlCnRoZSB2YXJpYWJsZSB3YXMgb25seSB1c2VkIHRvIGF2b2lkIGEg cmVkdW5kYW50IGxvb2t1cCBpbiB0aGUgcmFyZWx5CmNhbGxlZCBGdW5pbnRlcm4uCi0tLQogc3Jj L2xyZWFkLmMgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9scmVhZC5jIGIvc3JjL2xyZWFkLmMKaW5kZXggNWI3ODQ4 YzMxMTguLmFkMjVmZTA1MmExIDEwMDY0NAotLS0gYS9zcmMvbHJlYWQuYworKysgYi9zcmMvbHJl YWQuYwpAQCAtNDkyNywxMCArNDkyNyw2IEBAIHN0cmluZ190b19udW1iZXIgKGNoYXIgY29uc3Qg KnN0cmluZywgaW50IGJhc2UsIHB0cmRpZmZfdCAqcGxlbikKIAwKIHN0YXRpYyBMaXNwX09iamVj dCBpbml0aWFsX29iYXJyYXk7CiAKLS8qIGBvYmxvb2t1cCcgc3RvcmVzIHRoZSBidWNrZXQgbnVt YmVyIGhlcmUsIGZvciB0aGUgc2FrZSBvZiBGdW5pbnRlcm4uICAqLwotCi1zdGF0aWMgc2l6ZV90 IG9ibG9va3VwX2xhc3RfYnVja2V0X251bWJlcjsKLQogc3RhdGljIExpc3BfT2JqZWN0IG1ha2Vf b2JhcnJheSAodW5zaWduZWQgYml0cyk7CiAKIC8qIFNsb3cgcGF0aCBvYmFycmF5IGNoZWNrOiBy ZXR1cm4gdGhlIG9iYXJyYXkgdG8gdXNlIG9yIHNpZ25hbCBhbiBlcnJvci4gICovCkBAIC01MTQx LDYgKzUxMzcsMTQgQEAgREVGVU4gKCJpbnRlcm4tc29mdCIsIEZpbnRlcm5fc29mdCwgU2ludGVy bl9zb2Z0LCAxLCAyLCAwLAogICAgIH0KIH0KIAwKKy8qIEJ1Y2tldCBpbmRleCBvZiB0aGUgc3Ry aW5nIFNUUiBvZiBsZW5ndGggU0laRV9CWVRFIGJ5dGVzIGluIG9iYXJyYXkgT0EuICAqLworc3Rh dGljIHB0cmRpZmZfdAorb2JhcnJheV9pbmRleCAoc3RydWN0IExpc3BfT2JhcnJheSAqb2EsIGNv bnN0IGNoYXIgKnN0ciwgcHRyZGlmZl90IHNpemVfYnl0ZSkKK3sKKyAgRU1BQ1NfVUlOVCBoYXNo ID0gaGFzaF9jaGFyX2FycmF5IChzdHIsIHNpemVfYnl0ZSk7CisgIHJldHVybiBrbnV0aF9oYXNo IChyZWR1Y2VfZW1hY3NfdWludF90b19oYXNoX2hhc2ggKGhhc2gpLCBvYS0+c2l6ZV9iaXRzKTsK K30KKwogREVGVU4gKCJ1bmludGVybiIsIEZ1bmludGVybiwgU3VuaW50ZXJuLCAyLCAyLCAwLAog ICAgICAgIGRvYzogLyogRGVsZXRlIHRoZSBzeW1ib2wgbmFtZWQgTkFNRSwgaWYgYW55LCBmcm9t IE9CQVJSQVkuCiBUaGUgdmFsdWUgaXMgdCBpZiBhIHN5bWJvbCB3YXMgZm91bmQgYW5kIGRlbGV0 ZWQsIG5pbCBvdGhlcndpc2UuCkBAIC01MTc0LDE0ICs1MTc4LDE1IEBAIERFRlVOICgidW5pbnRl cm4iLCBGdW5pbnRlcm4sIFN1bmludGVybiwgMiwgMiwgMCwKIAkJCQkJU0NIQVJTIChzdHJpbmcp LCBTQllURVMgKHN0cmluZyksCiAJCQkJCSZsb25naGFuZCwgJmxvbmdoYW5kX2NoYXJzLAogCQkJ CQkmbG9uZ2hhbmRfYnl0ZXMpOwotICBpZiAobG9uZ2hhbmQpCi0gICAgeGZyZWUobG9uZ2hhbmQp OwogCi0gIGlmIChGSVhOVU1QICh0ZW0pKQotICAgIHJldHVybiBRbmlsOworICBpZiAoRklYTlVN UCAodGVtKQogICAvKiBJZiBhcmcgd2FzIGEgc3ltYm9sLCBkb24ndCBkZWxldGUgYW55dGhpbmcg YnV0IHRoYXQgc3ltYm9sIGl0c2VsZi4gICovCi0gIGlmIChCQVJFX1NZTUJPTF9QIChuYW1lKSAm JiAhQkFTRV9FUSAobmFtZSwgdGVtKSkKLSAgICByZXR1cm4gUW5pbDsKKyAgICAgIHx8IChCQVJF X1NZTUJPTF9QIChuYW1lKSAmJiAhQkFTRV9FUSAobmFtZSwgdGVtKSkpCisgICAgeworICAgICAg aWYgKGxvbmdoYW5kKQorCXhmcmVlIChsb25naGFuZCk7CisgICAgICByZXR1cm4gUW5pbDsKKyAg ICB9CiAKICAgLyogVGhlcmUgYXJlIHBsZW50eSBvZiBvdGhlciBzeW1ib2xzIHdoaWNoIHdpbGwg c2NyZXcgdXAgdGhlIEVtYWNzCiAgICAgIHNlc3Npb24gaWYgd2UgdW5pbnRlcm4gdGhlbSwgYXMg d2VsbCBhcyBldmVuIG1vcmUgd2F5cyB0byB1c2UKQEAgLTUxOTMsNyArNTE5OCwyNCBAQCBERUZV TiAoInVuaW50ZXJuIiwgRnVuaW50ZXJuLCBTdW5pbnRlcm4sIDIsIDIsIDAsCiAgIHN0cnVjdCBM aXNwX1N5bWJvbCAqc3ltID0gWEJBUkVfU1lNQk9MICh0ZW0pOwogICBzeW0tPnUucy5pbnRlcm5l ZCA9IFNZTUJPTF9VTklOVEVSTkVEOwogCi0gIHB0cmRpZmZfdCBpZHggPSBvYmxvb2t1cF9sYXN0 X2J1Y2tldF9udW1iZXI7CisgIHB0cmRpZmZfdCBpZHggPSAtMTsKKyAgeworICAgIC8qIFJlbW92 ZWQgc3RhdGljIHZhcmlhYmxlIG9ibG9va3VwX2xhc3RfYnVja2V0X251bWJlciBtaWNyby1vcHRp bWl6YXRpb24KKyAgICAgICBEb24ndCB1c2UgYSBzdGF0aWMgdmFyaWFibGUganVzdCB0byBhdm9p ZCB0aGlzCisgICAgICAgLSBob3cgZnJlcXVlbnRseSB1c2VkIGlzIHVuaW50ZXJuIHRoYXQgdXNp bmcgYSBzdGF0aWMgdmFyaWFibGUKKyAgICAgICB0byBvcHRpbWl6ZSBhd2F5IHRoaXMgcmVkdW5k YW50IGluZGV4IGNhbGN1bGF0aW9uIHdvdWxkIGJlCisgICAgICAgd29ydGggYWRkaW5nIGEgc2Vj b25kIHJlZmVyZW5jZSBwYXJhbWV0ZXI/ICovCisgICAgc3RydWN0IExpc3BfT2JhcnJheSAqbyA9 IFhPQkFSUkFZIChvYmFycmF5KTsKKyAgICBpZiAobG9uZ2hhbmQpCisgICAgICB7CisJaWR4ID0g b2JhcnJheV9pbmRleCAobywgbG9uZ2hhbmQsIGxvbmdoYW5kX2J5dGVzKTsKKwl4ZnJlZSAobG9u Z2hhbmQpOworICAgICAgfQorICAgIGVsc2UKKyAgICAgIHsKKwlpZHggPSBvYmFycmF5X2luZGV4 IChvLFNTREFUQSAoc3RyaW5nKSwgU0JZVEVTIChzdHJpbmcpKTsKKyAgICAgIH0KKyAgfQogICBM aXNwX09iamVjdCAqbG9jID0gJlhPQkFSUkFZIChvYmFycmF5KS0+YnVja2V0c1tpZHhdOwogCiAg IGVhc3NlcnQgKEJBUkVfU1lNQk9MX1AgKCpsb2MpKTsKQEAgLTUyMTgsMTQgKzUyNDAsNiBAQCBE RUZVTiAoInVuaW50ZXJuIiwgRnVuaW50ZXJuLCBTdW5pbnRlcm4sIDIsIDIsIDAsCiB9CiAMCiAK LS8qIEJ1Y2tldCBpbmRleCBvZiB0aGUgc3RyaW5nIFNUUiBvZiBsZW5ndGggU0laRV9CWVRFIGJ5 dGVzIGluIG9iYXJyYXkgT0EuICAqLwotc3RhdGljIHB0cmRpZmZfdAotb2JhcnJheV9pbmRleCAo c3RydWN0IExpc3BfT2JhcnJheSAqb2EsIGNvbnN0IGNoYXIgKnN0ciwgcHRyZGlmZl90IHNpemVf Ynl0ZSkKLXsKLSAgRU1BQ1NfVUlOVCBoYXNoID0gaGFzaF9jaGFyX2FycmF5IChzdHIsIHNpemVf Ynl0ZSk7Ci0gIHJldHVybiBrbnV0aF9oYXNoIChyZWR1Y2VfZW1hY3NfdWludF90b19oYXNoX2hh c2ggKGhhc2gpLCBvYS0+c2l6ZV9iaXRzKTsKLX0KLQogLyogUmV0dXJuIHRoZSBzeW1ib2wgaW4g T0JBUlJBWSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhlIHN0cmluZwogICAgb2YgU0laRSBjaGFyYWN0 ZXJzIChTSVpFX0JZVEUgYnl0ZXMpIGF0IFBUUi4KICAgIElmIHRoZXJlIGlzIG5vIHN1Y2ggc3lt Ym9sLCByZXR1cm4gdGhlIGludGVnZXIgYnVja2V0IG51bWJlciBvZgpAQCAtNTI0MCw3ICs1MjU0 LDYgQEAgb2Jsb29rdXAgKExpc3BfT2JqZWN0IG9iYXJyYXksIHJlZ2lzdGVyIGNvbnN0IGNoYXIg KnB0ciwgcHRyZGlmZl90IHNpemUsIHB0cmRpZmYKICAgcHRyZGlmZl90IGlkeCA9IG9iYXJyYXlf aW5kZXggKG8sIHB0ciwgc2l6ZV9ieXRlKTsKICAgTGlzcF9PYmplY3QgYnVja2V0ID0gby0+YnVj a2V0c1tpZHhdOwogCi0gIG9ibG9va3VwX2xhc3RfYnVja2V0X251bWJlciA9IGlkeDsKICAgaWYg KCFCQVNFX0VRIChidWNrZXQsIG1ha2VfZml4bnVtICgwKSkpCiAgICAgewogICAgICAgTGlzcF9P YmplY3Qgc3ltID0gYnVja2V0OwotLSAKMi41MC4wCgo= --000000000000940367063a178f1d-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 01:04:58 2025 Received: (at 79035) by debbugs.gnu.org; 17 Jul 2025 05:04:58 +0000 Received: from localhost ([127.0.0.1]:52376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucGni-0005tL-AU for submit@debbugs.gnu.org; Thu, 17 Jul 2025 01:04:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36572) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucGnf-0005t6-ER for 79035@debbugs.gnu.org; Thu, 17 Jul 2025 01:04:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucGna-0004ZH-3s; Thu, 17 Jul 2025 01:04:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=MGQKM5LKzIBIl54kt56lghMpgRqUC4PlbRWPzH4/Pa8=; b=Wn/o4eK/J5Az gY0NxhZ/IRNFCXq0azVnRT2xVc+BXW858hr5XOs0MkQbZhZMazML9stSWsr/DvCmMS4t7pnLr2N/a fuBFBPLF9dDLXy6bGQTPiVXy6MJS7FrnAacdQ2AWQVt8Dr8A7rpo5Jues0bCniaCVlykpa8PpCIpZ OXcKUCs5nSDQE9UY8c09GZaxuOfBy9XuuVZSlN2jqydk+cf0IHkw9BwgHDbDhdW+eO+RoBbVci9KA YIEi8WAPA9dznPg3RcJH7vMcKn/PSOIm235nRtrFwXF1n9VqSuN1mSL/MPOMEpVTqwxubDmm3oW0k 7VNdYxncqNJaxleNc43gbw==; Date: Thu, 17 Jul 2025 08:04:47 +0300 Message-Id: <865xfrif0w.fsf@gnu.org> From: Eli Zaretskii To: Lynn Winebarger In-Reply-To: (message from Lynn Winebarger on Wed, 16 Jul 2025 23:25:15 -0400) Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79035 Cc: mattias.engdegard@gmail.com, monnier@iro.umontreal.ca, 79035@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 (---) > From: Lynn Winebarger > Date: Wed, 16 Jul 2025 23:25:15 -0400 > > Based on my measurement of my reentrant reader submission, I tried > just eliminating the static variable used to "optimize" out a > redundant lookup by stashing the index in a static variable used only > by Funintern. See attached - I just repeated the lookup code in > Funintern, removed the assignment from oblookup, and eliminated the > static variable. At least for -O0, storing this information in the > frequently called oblookup to save a lookup in the very infrequently > called Funintern is a bit of a pessimization. Based on summing the > profiles of all the byte-compile jobs, and filtering for > obarray-related functions in read.c, I get the following for commit > a8b65860a5e28ee0867e8506a17d74d4a9b7783a (the cumulative is all > functions in lread.c, most of which I am eliding): > Each sample counts as 0.01 seconds. > % cumulative self self total > time seconds seconds calls s/call s/call name > 13.44 31.82 8.68 79508607 0.00 0.00 oblookup > 0.85 58.97 0.55 260 2.12 2.21 grow_obarray > 0.84 59.51 0.54 83352123 0.00 0.00 obarray_index > 0.81 60.03 0.52 78691233 0.00 0.00 > oblookup_considering_shorthand > 0.37 62.19 0.24 6858863 0.00 0.00 intern_sym > 0.29 63.03 0.19 4635384 0.00 0.00 read_internal_start > 0.08 64.05 0.05 20570557 0.00 0.00 mapatoms_1 > 0.06 64.23 0.04 1060 0.04 0.04 map_obarray > 0.05 64.30 0.03 6858863 0.00 0.00 intern_driver > 0.05 64.33 0.03 1143939 0.00 0.00 Fintern > 0.03 64.48 0.02 Funintern > 0.02 64.57 0.01 66751 0.00 0.00 Fintern_soft > 0.00 64.59 0.00 22626 0.00 0.00 > Flread__substitute_object_in_subtree > 0.00 64.59 0.00 22626 0.00 0.00 substitute_object_recurse > 0.00 64.59 0.00 13223 0.00 0.00 Fobarray_make > 0.00 64.59 0.00 13223 0.00 0.00 allocate_obarray > 0.00 64.59 0.00 13223 0.00 0.00 make_obarray > 0.00 64.59 0.00 10916 0.00 0.00 Fobarrayp > 0.00 64.59 0.00 5032 0.00 0.00 Flocate_file_internal > 0.00 64.59 0.00 2522 0.00 0.00 intern_1 > 0.00 64.59 0.00 1043 0.00 0.00 Fmapatoms > > The same commit with the attached patch: > 13.22 31.13 8.23 79563723 0.00 0.00 oblookup > 0.67 57.22 0.42 264 1.59 1.66 grow_obarray > 0.61 57.60 0.38 83407339 0.00 0.00 obarray_index > 0.61 57.98 0.38 78745509 0.00 0.00 > oblookup_considering_shorthand > 0.25 60.64 0.16 6858324 0.00 0.00 intern_sym > 0.19 61.32 0.12 4635494 0.00 0.00 read_internal_start > 0.11 61.59 0.07 20669351 0.00 0.00 mapatoms_1 > 0.11 61.66 0.07 1067 0.07 0.07 map_obarray > 0.10 61.84 0.06 Funintern > 0.05 62.10 0.03 66913 0.00 0.00 Fintern_soft > 0.01 62.27 0.01 6858324 0.00 0.00 intern_driver > 0.00 62.28 0.00 1146143 0.00 0.00 Fintern > 0.00 62.28 0.00 22460 0.00 0.00 > Flread__substitute_object_in_subtree > 0.00 62.28 0.00 22460 0.00 0.00 substitute_object_recurse > 0.00 62.28 0.00 13219 0.00 0.00 Fobarray_make > 0.00 62.28 0.00 13219 0.00 0.00 allocate_obarray > 0.00 62.28 0.00 13219 0.00 0.00 make_obarray > 0.00 62.28 0.00 10918 0.00 0.00 Fobarrayp > 0.00 62.28 0.00 5031 0.00 0.00 Flocate_file_internal > 0.00 62.28 0.00 2522 0.00 0.00 intern_1 > 0.00 62.28 0.00 1050 0.00 0.00 Fmapatoms > > The total reported cpu time for > a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and with the > patch it is 3460.69. That's just 0.5% of speedup, which doesn't pass my threshold for worthy changes, especially when the code changes are non-trivial (as they are in this case). So my vote is against installing this, sorry. However, I'm open to other opinions. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 01:24:25 2025 Received: (at 79035) by debbugs.gnu.org; 17 Jul 2025 05:24:25 +0000 Received: from localhost ([127.0.0.1]:52410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucH6X-00078W-5o for submit@debbugs.gnu.org; Thu, 17 Jul 2025 01:24:25 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:40523) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucH6T-000785-Rs for 79035@debbugs.gnu.org; Thu, 17 Jul 2025 01:24:23 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3a52878d37aso57295f8f.2 for <79035@debbugs.gnu.org>; Wed, 16 Jul 2025 22:24:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752729856; x=1753334656; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=k24qH17MsJPzz55k45IP30PtMoTHjv0D03TQ8jHDbUM=; b=FmRojJptfK07apUPoNGcq6hzBZYaAM+r393i6WO43qRGddocZ/cCO8zAhbNZ43PrKT zbiBhf5dwvlr7yEi1FPFdMn6Ovel9UvCyOZxTPkq4cjBdspPq1arDkXFvWQe4QE6+Nhi eeHRNeUUGHZdRnhPK3HS3BZAw+E/xeNPjwfL6pXmat/kdE0D8SN9gSyj23pBDc8oMC5j TyoyklfHx3n4WJ8xTEdVjiC4HDl+/7e4UhGVwww8beJmijRnh3LT5R8ttjTWf9yanw86 RJAyrQWpDL5V8iYkparQ8KatRaIumoCl4oDp2REyUAUN5SF6Z9Z0Uw8POxOHZHsCjZzC +Bgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752729856; x=1753334656; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=k24qH17MsJPzz55k45IP30PtMoTHjv0D03TQ8jHDbUM=; b=aOuDjcWfWd2iDoUKFKafLkRlUxntvQkITGw5cu6uYNiXujgwaBpYYO18ieSX4t3Xae Df6U2gPDHM4ZUUlN7m63laPadFraH2eT+pC7VBxkGAnUOL7mpkGZbKPoeIzR3b7BPk6E 0T3w0X7+e5BRhNSuFMYdpRrIyoVbA7JkYRR3A06D6X1vqhmDK4VE5shD3Sz76dyAgthb lXJufsL5twv+hQlbiJvAPLIVHV53NKqAchFmUMdf+2tZYqKYQIibz3VvZDZPGv5dpN4a UHRusatERGO84FZLYbjaR8bN5JQERI2AXjeikVJUs9AY84+3GS85RzhodfX0iQSLTE/p SGcw== X-Gm-Message-State: AOJu0Ywz+5448Dk0lAqqafR93+cYCQqBcJZzl+LJFBmZibBdvowh17zs gdnaQvdGiBCuEBUGpXRutiVK7tRzorXVOX+n8ojLq0wkf0AGd5/9gT9NtW4LKoeuiOSqdVCzI6+ 0yk8vklRiOgd+CLr/IjNJ1ehq+aWqlao= X-Gm-Gg: ASbGncvBUuVYYvgSRcbQds43rE5qDfeqHewMwc7BflD7CeTqY70KaMAfaYKIiYvtoK9 KlIvinitJSUTsdh+TwwwTfCRtiULoGuzxhlEE8suKpeUNp7gjkIP7jwfA6uHAXuIZ8z2xLtQEgE sXM2lu6PacV8J6oDdD8Et5iluAWb3h50buIjrlkOX0HnyEj785AEx5FMyjmsHn+aIJ75b4l4cd1 hIaasHae9FU4/q4e2KflfQUSM15RbUH0CuViyBOZ1bXAprToQ== X-Google-Smtp-Source: AGHT+IGuqk1fNqgZp7sxu+tgbkxoLubIHtMyL07Md006JQRcB1J+vCM5bU7z8+vhdXSjXAXVdMBcUiq8PxMLl/sbvOw= X-Received: by 2002:a05:6000:40dc:b0:3a5:3369:52f3 with SMTP id ffacd0b85a97d-3b60dd4a834mr1775756f8f.3.1752729855578; Wed, 16 Jul 2025 22:24:15 -0700 (PDT) MIME-Version: 1.0 References: <865xfrif0w.fsf@gnu.org> In-Reply-To: <865xfrif0w.fsf@gnu.org> From: Lynn Winebarger Date: Thu, 17 Jul 2025 01:24:03 -0400 X-Gm-Features: Ac12FXxgeIAGqJgcEGWMn2x3tqYKaKsr1_tAsDxiFxKLuOzL28Mswy1NhjMy8l8 Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: Eli Zaretskii Content-Type: multipart/alternative; boundary="0000000000006dd6f0063a1938be" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Stefan Monnier , 79035@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 (-) --0000000000006dd6f0063a1938be Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 17, 2025, 1:04=E2=80=AFAM Eli Zaretskii wrote: > > From: Lynn Winebarger > > Date: Wed, 16 Jul 2025 23:25:15 -0400 > > > > Based on my measurement of my reentrant reader submission, I tried > > just eliminating the static variable used to "optimize" out a > > redundant lookup by stashing the index in a static variable used only > > by Funintern. See attached - I just repeated the lookup code in > > Funintern, removed the assignment from oblookup, and eliminated the > > static variable. At least for -O0, storing this information in the > > frequently called oblookup to save a lookup in the very infrequently > > called Funintern is a bit of a pessimization. Based on summing the > > profiles of all the byte-compile jobs, and filtering for > > obarray-related functions in read.c, I get the following for commit > > a8b65860a5e28ee0867e8506a17d74d4a9b7783a (the cumulative is all > > functions in lread.c, most of which I am eliding): > > Each sample counts as 0.01 seconds. > > % cumulative self self total > > time seconds seconds calls s/call s/call name > > 13.44 31.82 8.68 79508607 0.00 0.00 oblookup > > 0.85 58.97 0.55 260 2.12 2.21 grow_obarray > > 0.84 59.51 0.54 83352123 0.00 0.00 obarray_index > > 0.81 60.03 0.52 78691233 0.00 0.00 > > oblookup_considering_shorthand > > 0.37 62.19 0.24 6858863 0.00 0.00 intern_sym > > 0.29 63.03 0.19 4635384 0.00 0.00 read_internal_sta= rt > > 0.08 64.05 0.05 20570557 0.00 0.00 mapatoms_1 > > 0.06 64.23 0.04 1060 0.04 0.04 map_obarray > > 0.05 64.30 0.03 6858863 0.00 0.00 intern_driver > > 0.05 64.33 0.03 1143939 0.00 0.00 Fintern > > 0.03 64.48 0.02 Funintern > > 0.02 64.57 0.01 66751 0.00 0.00 Fintern_soft > > 0.00 64.59 0.00 22626 0.00 0.00 > > Flread__substitute_object_in_subtree > > 0.00 64.59 0.00 22626 0.00 0.00 > substitute_object_recurse > > 0.00 64.59 0.00 13223 0.00 0.00 Fobarray_make > > 0.00 64.59 0.00 13223 0.00 0.00 allocate_obarray > > 0.00 64.59 0.00 13223 0.00 0.00 make_obarray > > 0.00 64.59 0.00 10916 0.00 0.00 Fobarrayp > > 0.00 64.59 0.00 5032 0.00 0.00 > Flocate_file_internal > > 0.00 64.59 0.00 2522 0.00 0.00 intern_1 > > 0.00 64.59 0.00 1043 0.00 0.00 Fmapatoms > > > > The same commit with the attached patch: > > 13.22 31.13 8.23 79563723 0.00 0.00 oblookup > > 0.67 57.22 0.42 264 1.59 1.66 grow_obarray > > 0.61 57.60 0.38 83407339 0.00 0.00 obarray_index > > 0.61 57.98 0.38 78745509 0.00 0.00 > > oblookup_considering_shorthand > > 0.25 60.64 0.16 6858324 0.00 0.00 intern_sym > > 0.19 61.32 0.12 4635494 0.00 0.00 read_internal_sta= rt > > 0.11 61.59 0.07 20669351 0.00 0.00 mapatoms_1 > > 0.11 61.66 0.07 1067 0.07 0.07 map_obarray > > 0.10 61.84 0.06 Funintern > > 0.05 62.10 0.03 66913 0.00 0.00 Fintern_soft > > 0.01 62.27 0.01 6858324 0.00 0.00 intern_driver > > 0.00 62.28 0.00 1146143 0.00 0.00 Fintern > > 0.00 62.28 0.00 22460 0.00 0.00 > > Flread__substitute_object_in_subtree > > 0.00 62.28 0.00 22460 0.00 0.00 > substitute_object_recurse > > 0.00 62.28 0.00 13219 0.00 0.00 Fobarray_make > > 0.00 62.28 0.00 13219 0.00 0.00 allocate_obarray > > 0.00 62.28 0.00 13219 0.00 0.00 make_obarray > > 0.00 62.28 0.00 10918 0.00 0.00 Fobarrayp > > 0.00 62.28 0.00 5031 0.00 0.00 > Flocate_file_internal > > 0.00 62.28 0.00 2522 0.00 0.00 intern_1 > > 0.00 62.28 0.00 1050 0.00 0.00 Fmapatoms > > > > The total reported cpu time for > > a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and with the > > patch it is 3460.69. > > That's just 0.5% of speedup, which doesn't pass my threshold for > worthy changes, especially when the code changes are non-trivial (as > they are in this case). So my vote is against installing this, sorry. > The performance improvement is the punchline. The purpose of the change is to remove a static variable. That's why I originally included it in the patch to make the code in lread.c re-entrant. But it probably makes more sense as a stand-alone change. Lynn --0000000000006dd6f0063a1938be Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9ImF1dG8iPjxkaXY+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUgZ21haWxfcXVvdGVf Y29udGFpbmVyIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gVGh1LCBKdWwg MTcsIDIwMjUsIDE6MDTigK9BTSBFbGkgWmFyZXRza2lpICZsdDs8YSBocmVmPSJtYWlsdG86ZWxp ekBnbnUub3JnIj5lbGl6QGdudS5vcmc8L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVv dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2Jv cmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPiZn dDsgRnJvbTogTHlubiBXaW5lYmFyZ2VyICZsdDs8YSBocmVmPSJtYWlsdG86b3dpbmViYXJAZ21h aWwuY29tIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIj5vd2luZWJhckBnbWFpbC5j b208L2E+Jmd0Ozxicj4NCiZndDsgRGF0ZTogV2VkLCAxNiBKdWwgMjAyNSAyMzoyNToxNSAtMDQw MDxicj4NCiZndDsgPGJyPg0KJmd0OyBCYXNlZCBvbiBteSBtZWFzdXJlbWVudCBvZiBteSByZWVu dHJhbnQgcmVhZGVyIHN1Ym1pc3Npb24sIEkgdHJpZWQ8YnI+DQomZ3Q7IGp1c3QgZWxpbWluYXRp bmcgdGhlIHN0YXRpYyB2YXJpYWJsZSB1c2VkIHRvICZxdW90O29wdGltaXplJnF1b3Q7IG91dCBh PGJyPg0KJmd0OyByZWR1bmRhbnQgbG9va3VwIGJ5IHN0YXNoaW5nIHRoZSBpbmRleCBpbiBhIHN0 YXRpYyB2YXJpYWJsZSB1c2VkIG9ubHk8YnI+DQomZ3Q7IGJ5IEZ1bmludGVybi7CoCBTZWUgYXR0 YWNoZWQgLSBJIGp1c3QgcmVwZWF0ZWQgdGhlIGxvb2t1cCBjb2RlIGluPGJyPg0KJmd0OyBGdW5p bnRlcm4sIHJlbW92ZWQgdGhlIGFzc2lnbm1lbnQgZnJvbSBvYmxvb2t1cCwgYW5kIGVsaW1pbmF0 ZWQgdGhlPGJyPg0KJmd0OyBzdGF0aWMgdmFyaWFibGUuwqAgQXQgbGVhc3QgZm9yIC1PMCwgc3Rv cmluZyB0aGlzIGluZm9ybWF0aW9uIGluIHRoZTxicj4NCiZndDsgZnJlcXVlbnRseSBjYWxsZWQg b2Jsb29rdXAgdG8gc2F2ZSBhIGxvb2t1cCBpbiB0aGUgdmVyeSBpbmZyZXF1ZW50bHk8YnI+DQom Z3Q7IGNhbGxlZCBGdW5pbnRlcm4gaXMgYSBiaXQgb2YgYSBwZXNzaW1pemF0aW9uLsKgIEJhc2Vk IG9uIHN1bW1pbmcgdGhlPGJyPg0KJmd0OyBwcm9maWxlcyBvZiBhbGwgdGhlIGJ5dGUtY29tcGls ZSBqb2JzLCBhbmQgZmlsdGVyaW5nIGZvcjxicj4NCiZndDsgb2JhcnJheS1yZWxhdGVkIGZ1bmN0 aW9ucyBpbiByZWFkLmMsIEkgZ2V0IHRoZSBmb2xsb3dpbmcgZm9yIGNvbW1pdDxicj4NCiZndDsg YThiNjU4NjBhNWUyOGVlMDg2N2U4NTA2YTE3ZDc0ZDRhOWI3NzgzYSAodGhlIGN1bXVsYXRpdmUg aXMgYWxsPGJyPg0KJmd0OyBmdW5jdGlvbnMgaW4gbHJlYWQuYywgbW9zdCBvZiB3aGljaCBJIGFt IGVsaWRpbmcpOjxicj4NCiZndDsgRWFjaCBzYW1wbGUgY291bnRzIGFzIDAuMDEgc2Vjb25kcy48 YnI+DQomZ3Q7wqAgwqAlwqAgwqBjdW11bGF0aXZlwqAgwqBzZWxmwqAgwqAgwqAgwqAgwqAgwqAg wqAgc2VsZsKgIMKgIMKgdG90YWw8YnI+DQomZ3Q7wqAgdGltZcKgIMKgc2Vjb25kc8KgIMKgc2Vj b25kc8KgIMKgIGNhbGxzwqAgwqBzL2NhbGzCoCDCoHMvY2FsbMKgIG5hbWU8YnI+DQomZ3Q7wqAg MTMuNDTCoCDCoCDCoDMxLjgywqAgwqAgwqA4LjY4IDc5NTA4NjA3wqAgwqAgwqAwLjAwwqAgwqAg wqAwLjAwwqAgb2Jsb29rdXA8YnI+DQomZ3Q7wqAgwqAwLjg1wqAgwqAgwqA1OC45N8KgIMKgIMKg MC41NcKgIMKgIMKgIDI2MMKgIMKgIMKgMi4xMsKgIMKgIMKgMi4yMcKgIGdyb3dfb2JhcnJheTxi cj4NCiZndDvCoCDCoDAuODTCoCDCoCDCoDU5LjUxwqAgwqAgwqAwLjU0IDgzMzUyMTIzwqAgwqAg wqAwLjAwwqAgwqAgwqAwLjAwwqAgb2JhcnJheV9pbmRleDxicj4NCiZndDvCoCDCoDAuODHCoCDC oCDCoDYwLjAzwqAgwqAgwqAwLjUyIDc4NjkxMjMzwqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwPGJy Pg0KJmd0OyBvYmxvb2t1cF9jb25zaWRlcmluZ19zaG9ydGhhbmQ8YnI+DQomZ3Q7wqAgwqAwLjM3 wqAgwqAgwqA2Mi4xOcKgIMKgIMKgMC4yNMKgIDY4NTg4NjPCoCDCoCDCoDAuMDDCoCDCoCDCoDAu MDDCoCBpbnRlcm5fc3ltPGJyPg0KJmd0O8KgIMKgMC4yOcKgIMKgIMKgNjMuMDPCoCDCoCDCoDAu MTnCoCA0NjM1Mzg0wqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgcmVhZF9pbnRlcm5hbF9zdGFy dDxicj4NCiZndDvCoCDCoDAuMDjCoCDCoCDCoDY0LjA1wqAgwqAgwqAwLjA1IDIwNTcwNTU3wqAg wqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgbWFwYXRvbXNfMTxicj4NCiZndDvCoCDCoDAuMDbCoCDC oCDCoDY0LjIzwqAgwqAgwqAwLjA0wqAgwqAgwqAxMDYwwqAgwqAgwqAwLjA0wqAgwqAgwqAwLjA0 wqAgbWFwX29iYXJyYXk8YnI+DQomZ3Q7wqAgwqAwLjA1wqAgwqAgwqA2NC4zMMKgIMKgIMKgMC4w M8KgIDY4NTg4NjPCoCDCoCDCoDAuMDDCoCDCoCDCoDAuMDDCoCBpbnRlcm5fZHJpdmVyPGJyPg0K Jmd0O8KgIMKgMC4wNcKgIMKgIMKgNjQuMzPCoCDCoCDCoDAuMDPCoCAxMTQzOTM5wqAgwqAgwqAw LjAwwqAgwqAgwqAwLjAwwqAgRmludGVybjxicj4NCiZndDvCoCDCoDAuMDPCoCDCoCDCoDY0LjQ4 wqAgwqAgwqAwLjAywqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBG dW5pbnRlcm48YnI+DQomZ3Q7wqAgwqAwLjAywqAgwqAgwqA2NC41N8KgIMKgIMKgMC4wMcKgIMKg IDY2NzUxwqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgRmludGVybl9zb2Z0PGJyPg0KJmd0O8Kg IMKgMC4wMMKgIMKgIMKgNjQuNTnCoCDCoCDCoDAuMDDCoCDCoCAyMjYyNsKgIMKgIMKgMC4wMMKg IMKgIMKgMC4wMDxicj4NCiZndDsgRmxyZWFkX19zdWJzdGl0dXRlX29iamVjdF9pbl9zdWJ0cmVl PGJyPg0KJmd0O8KgIMKgMC4wMMKgIMKgIMKgNjQuNTnCoCDCoCDCoDAuMDDCoCDCoCAyMjYyNsKg IMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKgIHN1YnN0aXR1dGVfb2JqZWN0X3JlY3Vyc2U8YnI+DQom Z3Q7wqAgwqAwLjAwwqAgwqAgwqA2NC41OcKgIMKgIMKgMC4wMMKgIMKgIDEzMjIzwqAgwqAgwqAw LjAwwqAgwqAgwqAwLjAwwqAgRm9iYXJyYXlfbWFrZTxicj4NCiZndDvCoCDCoDAuMDDCoCDCoCDC oDY0LjU5wqAgwqAgwqAwLjAwwqAgwqAgMTMyMjPCoCDCoCDCoDAuMDDCoCDCoCDCoDAuMDDCoCBh bGxvY2F0ZV9vYmFycmF5PGJyPg0KJmd0O8KgIMKgMC4wMMKgIMKgIMKgNjQuNTnCoCDCoCDCoDAu MDDCoCDCoCAxMzIyM8KgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKgIG1ha2Vfb2JhcnJheTxicj4N CiZndDvCoCDCoDAuMDDCoCDCoCDCoDY0LjU5wqAgwqAgwqAwLjAwwqAgwqAgMTA5MTbCoCDCoCDC oDAuMDDCoCDCoCDCoDAuMDDCoCBGb2JhcnJheXA8YnI+DQomZ3Q7wqAgwqAwLjAwwqAgwqAgwqA2 NC41OcKgIMKgIMKgMC4wMMKgIMKgIMKgNTAzMsKgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKgIEZs b2NhdGVfZmlsZV9pbnRlcm5hbDxicj4NCiZndDvCoCDCoDAuMDDCoCDCoCDCoDY0LjU5wqAgwqAg wqAwLjAwwqAgwqAgwqAyNTIywqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgaW50ZXJuXzE8YnI+ DQomZ3Q7wqAgwqAwLjAwwqAgwqAgwqA2NC41OcKgIMKgIMKgMC4wMMKgIMKgIMKgMTA0M8KgIMKg IMKgMC4wMMKgIMKgIMKgMC4wMMKgIEZtYXBhdG9tczxicj4NCiZndDsgPGJyPg0KJmd0OyBUaGUg c2FtZSBjb21taXQgd2l0aCB0aGUgYXR0YWNoZWQgcGF0Y2g6PGJyPg0KJmd0O8KgIDEzLjIywqAg wqAgwqAzMS4xM8KgIMKgIMKgOC4yMyA3OTU2MzcyM8KgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKg IG9ibG9va3VwPGJyPg0KJmd0O8KgIMKgMC42N8KgIMKgIMKgNTcuMjLCoCDCoCDCoDAuNDLCoCDC oCDCoCAyNjTCoCDCoCDCoDEuNTnCoCDCoCDCoDEuNjbCoCBncm93X29iYXJyYXk8YnI+DQomZ3Q7 wqAgwqAwLjYxwqAgwqAgwqA1Ny42MMKgIMKgIMKgMC4zOCA4MzQwNzMzOcKgIMKgIMKgMC4wMMKg IMKgIMKgMC4wMMKgIG9iYXJyYXlfaW5kZXg8YnI+DQomZ3Q7wqAgwqAwLjYxwqAgwqAgwqA1Ny45 OMKgIMKgIMKgMC4zOCA3ODc0NTUwOcKgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMDxicj4NCiZndDsg b2Jsb29rdXBfY29uc2lkZXJpbmdfc2hvcnRoYW5kPGJyPg0KJmd0O8KgIMKgMC4yNcKgIMKgIMKg NjAuNjTCoCDCoCDCoDAuMTbCoCA2ODU4MzI0wqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgaW50 ZXJuX3N5bTxicj4NCiZndDvCoCDCoDAuMTnCoCDCoCDCoDYxLjMywqAgwqAgwqAwLjEywqAgNDYz NTQ5NMKgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKgIHJlYWRfaW50ZXJuYWxfc3RhcnQ8YnI+DQom Z3Q7wqAgwqAwLjExwqAgwqAgwqA2MS41OcKgIMKgIMKgMC4wNyAyMDY2OTM1McKgIMKgIMKgMC4w MMKgIMKgIMKgMC4wMMKgIG1hcGF0b21zXzE8YnI+DQomZ3Q7wqAgwqAwLjExwqAgwqAgwqA2MS42 NsKgIMKgIMKgMC4wN8KgIMKgIMKgMTA2N8KgIMKgIMKgMC4wN8KgIMKgIMKgMC4wN8KgIG1hcF9v YmFycmF5PGJyPg0KJmd0O8KgIMKgMC4xMMKgIMKgIMKgNjEuODTCoCDCoCDCoDAuMDbCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEZ1bmludGVybjxicj4NCiZndDvC oCDCoDAuMDXCoCDCoCDCoDYyLjEwwqAgwqAgwqAwLjAzwqAgwqAgNjY5MTPCoCDCoCDCoDAuMDDC oCDCoCDCoDAuMDDCoCBGaW50ZXJuX3NvZnQ8YnI+DQomZ3Q7wqAgwqAwLjAxwqAgwqAgwqA2Mi4y N8KgIMKgIMKgMC4wMcKgIDY4NTgzMjTCoCDCoCDCoDAuMDDCoCDCoCDCoDAuMDDCoCBpbnRlcm5f ZHJpdmVyPGJyPg0KJmd0O8KgIMKgMC4wMMKgIMKgIMKgNjIuMjjCoCDCoCDCoDAuMDDCoCAxMTQ2 MTQzwqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgRmludGVybjxicj4NCiZndDvCoCDCoDAuMDDC oCDCoCDCoDYyLjI4wqAgwqAgwqAwLjAwwqAgwqAgMjI0NjDCoCDCoCDCoDAuMDDCoCDCoCDCoDAu MDA8YnI+DQomZ3Q7IEZscmVhZF9fc3Vic3RpdHV0ZV9vYmplY3RfaW5fc3VidHJlZTxicj4NCiZn dDvCoCDCoDAuMDDCoCDCoCDCoDYyLjI4wqAgwqAgwqAwLjAwwqAgwqAgMjI0NjDCoCDCoCDCoDAu MDDCoCDCoCDCoDAuMDDCoCBzdWJzdGl0dXRlX29iamVjdF9yZWN1cnNlPGJyPg0KJmd0O8KgIMKg MC4wMMKgIMKgIMKgNjIuMjjCoCDCoCDCoDAuMDDCoCDCoCAxMzIxOcKgIMKgIMKgMC4wMMKgIMKg IMKgMC4wMMKgIEZvYmFycmF5X21ha2U8YnI+DQomZ3Q7wqAgwqAwLjAwwqAgwqAgwqA2Mi4yOMKg IMKgIMKgMC4wMMKgIMKgIDEzMjE5wqAgwqAgwqAwLjAwwqAgwqAgwqAwLjAwwqAgYWxsb2NhdGVf b2JhcnJheTxicj4NCiZndDvCoCDCoDAuMDDCoCDCoCDCoDYyLjI4wqAgwqAgwqAwLjAwwqAgwqAg MTMyMTnCoCDCoCDCoDAuMDDCoCDCoCDCoDAuMDDCoCBtYWtlX29iYXJyYXk8YnI+DQomZ3Q7wqAg wqAwLjAwwqAgwqAgwqA2Mi4yOMKgIMKgIMKgMC4wMMKgIMKgIDEwOTE4wqAgwqAgwqAwLjAwwqAg wqAgwqAwLjAwwqAgRm9iYXJyYXlwPGJyPg0KJmd0O8KgIMKgMC4wMMKgIMKgIMKgNjIuMjjCoCDC oCDCoDAuMDDCoCDCoCDCoDUwMzHCoCDCoCDCoDAuMDDCoCDCoCDCoDAuMDDCoCBGbG9jYXRlX2Zp bGVfaW50ZXJuYWw8YnI+DQomZ3Q7wqAgwqAwLjAwwqAgwqAgwqA2Mi4yOMKgIMKgIMKgMC4wMMKg IMKgIMKgMjUyMsKgIMKgIMKgMC4wMMKgIMKgIMKgMC4wMMKgIGludGVybl8xPGJyPg0KJmd0O8Kg IMKgMC4wMMKgIMKgIMKgNjIuMjjCoCDCoCDCoDAuMDDCoCDCoCDCoDEwNTDCoCDCoCDCoDAuMDDC oCDCoCDCoDAuMDDCoCBGbWFwYXRvbXM8YnI+DQomZ3Q7IDxicj4NCiZndDsgVGhlIHRvdGFsIHJl cG9ydGVkIGNwdSB0aW1lIGZvcjxicj4NCiZndDsgYThiNjU4NjBhNWUyOGVlMDg2N2U4NTA2YTE3 ZDc0ZDRhOWI3NzgzYSBpcyAzNDc5LjUxcywgYW5kIHdpdGggdGhlPGJyPg0KJmd0OyBwYXRjaCBp dCBpcyAzNDYwLjY5Ljxicj4NCjxicj4NClRoYXQmIzM5O3MganVzdCAwLjUlIG9mIHNwZWVkdXAs IHdoaWNoIGRvZXNuJiMzOTt0IHBhc3MgbXkgdGhyZXNob2xkIGZvcjxicj4NCndvcnRoeSBjaGFu Z2VzLCBlc3BlY2lhbGx5IHdoZW4gdGhlIGNvZGUgY2hhbmdlcyBhcmUgbm9uLXRyaXZpYWwgKGFz PGJyPg0KdGhleSBhcmUgaW4gdGhpcyBjYXNlKS7CoCBTbyBteSB2b3RlIGlzIGFnYWluc3QgaW5z dGFsbGluZyB0aGlzLCBzb3JyeS48YnI+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjxkaXYgZGly PSJhdXRvIj48YnI+PC9kaXY+PGRpdiBkaXI9ImF1dG8iPlRoZSBwZXJmb3JtYW5jZSBpbXByb3Zl bWVudCBpcyB0aGUgcHVuY2hsaW5lLsKgIFRoZSBwdXJwb3NlIG9mIHRoZSBjaGFuZ2UgaXMgdG8g cmVtb3ZlIGEgc3RhdGljIHZhcmlhYmxlLsKgIFRoYXQmIzM5O3Mgd2h5IEkgb3JpZ2luYWxseSBp bmNsdWRlZCBpdCBpbiB0aGUgcGF0Y2ggdG8gbWFrZSB0aGUgY29kZSBpbiBscmVhZC5jIHJlLWVu dHJhbnQuwqAgQnV0IGl0wqAgcHJvYmFibHkgbWFrZXMgbW9yZSBzZW5zZSBhcyBhIHN0YW5kLWFs b25lIGNoYW5nZS48L2Rpdj48ZGl2IGRpcj0iYXV0byI+PGJyPjwvZGl2PjxkaXYgZGlyPSJhdXRv Ij5MeW5uPC9kaXY+PGRpdiBkaXI9ImF1dG8iPjxicj48L2Rpdj48L2Rpdj4NCg== --0000000000006dd6f0063a1938be-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 02:44:35 2025 Received: (at 79035) by debbugs.gnu.org; 17 Jul 2025 06:44:36 +0000 Received: from localhost ([127.0.0.1]:52693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucIM7-0003jL-Ko for submit@debbugs.gnu.org; Thu, 17 Jul 2025 02:44:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50490) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucIM4-0003iz-RX for 79035@debbugs.gnu.org; Thu, 17 Jul 2025 02:44:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucILz-0001qf-5S; Thu, 17 Jul 2025 02:44:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=j3U+H1qf8FEg84+3vWP/TXg7aSHyzzxg1x9a+QzJmjE=; b=LGA+sEYqO0YxF5oSsKY/ /wfj9XFvWfZwESixMi2kCiVADu22fx6kbrmKpvlaF1YJmKKCNB6R334kFdwVmN3L68RbIPIkFz0XD kiyixn44Kht/HN1LhvachQzS+WvIrg6Bww/FOm0pZEov3KrmroCmaA1fYupgVjcqEcjrtBNR55e3c 0s5/4iPRNBcBAQC3MydBXRE/ypmB/DmRBSAXEf8vtkVHhi/QxMt6QFnvDnu8AXbfmZgxHmrqald51 gjrje7YaMKD2v8Yed7vnnHdS3ZQCitS4sdylxPfgI7SmRTUq/ebpDKvs2VYsiBpL7kpOztnKIkMNx kUcdxp+A+LEGGw==; Date: Thu, 17 Jul 2025 09:44:22 +0300 Message-Id: <86seivgvuh.fsf@gnu.org> From: Eli Zaretskii To: Lynn Winebarger In-Reply-To: (message from Lynn Winebarger on Thu, 17 Jul 2025 01:24:03 -0400) Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance References: <865xfrif0w.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79035 Cc: mattias.engdegard@gmail.com, monnier@iro.umontreal.ca, 79035@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 (---) > From: Lynn Winebarger > Date: Thu, 17 Jul 2025 01:24:03 -0400 > Cc: 79035@debbugs.gnu.org, Mattias EngdegÄrd , > Stefan Monnier > > > The total reported cpu time for > > a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and with the > > patch it is 3460.69. > > That's just 0.5% of speedup, which doesn't pass my threshold for > worthy changes, especially when the code changes are non-trivial (as > they are in this case). So my vote is against installing this, sorry. > > The performance improvement is the punchline. The purpose of the change is to remove a static variable. > That's why I originally included it in the patch to make the code in lread.c re-entrant. But it probably makes > more sense as a stand-alone change. If this change is related to some other changeset, let alone is needed by it, it is not standalone, and should be part of that other changeset. It would make sense to have it as standalone if it brought us some significant advantages, which doesn't seem to be the case here. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 09:32:47 2025 Received: (at 79035) by debbugs.gnu.org; 17 Jul 2025 13:32:47 +0000 Received: from localhost ([127.0.0.1]:53618 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucOj9-0006hD-8P for submit@debbugs.gnu.org; Thu, 17 Jul 2025 09:32:47 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:38549) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucOj5-0006gr-Iz for 79035@debbugs.gnu.org; Thu, 17 Jul 2025 09:32:44 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-456107181f8so421825e9.2 for <79035@debbugs.gnu.org>; Thu, 17 Jul 2025 06:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752759157; x=1753363957; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=r4hlJhd0ifwWgI4a9n42rWSvkg4HnV+rtxW21uxihrc=; b=ikc5iEujH2SgHBEJzpjwcsGRmeFi+C4dSuD49NCqCFYQSolEAn6EiIjMC+IzJV+6Ol KpXrZt4qSLUfPY4Gh2ysST9XZGXcsOldghi55yC5OQI7sdZHeGgS7jN8AKyuW+TWwR+G q4WVzMd6Oq130hYduu148/t780ig1KeXsvWIXXE9uVJRBJYdCLeWg08p8ehBsbVTqvsi CdWShEd43jpc2p2e0RjyvoP63c2bBFbDFZ0j07ZxpLsc78adr5Pw8ERcnXQCaiH3gE18 l6X4zlh6OvwvBd1ulyiT0ZBT5PBLVaVmfL9Q6DqhtV/f1ebUB7ZH8OuogKVTh//GEsgT isww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752759157; x=1753363957; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=r4hlJhd0ifwWgI4a9n42rWSvkg4HnV+rtxW21uxihrc=; b=GFZgMcSSuCnNkllraQ9HjOlVjzkwWJ+++T4L6sgptAxUF9CXH/HYpAE83DH3JdH2YE D6EAd0za4jytS0QVvTE4MdnMFSXHFrB6wQ7Vf6VjWbTJvsxE05EidH9tEL+/Vivwh00i 5UdebXJ2ftcP2+9tyAhHJ3a5ru9lpavcfivg/tcp8oN+2t1940Zbu1T06lKKyRnKLSGr As28dNbE7tazWnX3CaeYKE8mmPhuCAhND4ZGchotD+SxQGhinZC7LLhDWbPE5zM5m28C I0AW3rTCnPyU3HKEERcL0O11F+Ou/0j6LgDh4vToQelSYBlNRI1jCe8H8nL31LnHkth+ q4Sw== X-Gm-Message-State: AOJu0YwjtU4o99rqMGCP8bqJ7NrnfcD5t4gIsxSabxmkPFyTExWtCWIo XSBpwwu6sJLyhq+P1P8j5olPLoj4plHfL9OT5ve6Yfwf3eqK+rmTBVVHaKT+fKqyfmPMtBYsynj A6PQH+Bt0M4vM7mSLyxkltYHcsygXO9k= X-Gm-Gg: ASbGncv3n4f7HynJjNg2dBV0PTyz7SJzZuZ0zAbMgPEccc0PCewtqZDV3G6iF7Zm4pv Z9zOV+GSEBbGRGghYZ0kFeJRgEfE+XgpAZnqgq39nEXa7M9eAyZxZd+u84i8RdPh4JdaHgCZt8+ /DXgYjKL6HOUVFlljSZDnqCjM78WGTh5XlCso131J/YfPMj6F7WxFBIy5y11VjINbbEY1lWbjV2 slW/RJj8Y3C8aWGVWyr9NzDuFxihAiYe3ivCgg= X-Google-Smtp-Source: AGHT+IH8ntcob82dxhdG1E/PvBxvflBy46tuVLqRnulTRTLT00WkJZng9Y2t2bmPZXTnojvgStmRtDeKwfXfZrFuKf0= X-Received: by 2002:a05:600c:4f4b:b0:456:c48:4907 with SMTP id 5b1f17b1804b1-4562df2c62fmr30760095e9.0.1752759156709; Thu, 17 Jul 2025 06:32:36 -0700 (PDT) MIME-Version: 1.0 References: <865xfrif0w.fsf@gnu.org> <86seivgvuh.fsf@gnu.org> In-Reply-To: <86seivgvuh.fsf@gnu.org> From: Lynn Winebarger Date: Thu, 17 Jul 2025 09:32:25 -0400 X-Gm-Features: Ac12FXyCGzAsMrQnTZqVh1THdd5tePqQJxPk0Hnc4ZIzkhSZIvZZm8aiwD6Nrqo Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000e99e0e063a200a5c" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Stefan Monnier , 79035@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 (-) --000000000000e99e0e063a200a5c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 17, 2025, 2:44=E2=80=AFAM Eli Zaretskii wrote: > > From: Lynn Winebarger > > Date: Thu, 17 Jul 2025 01:24:03 -0400 > > Cc: 79035@debbugs.gnu.org, Mattias Engdeg=C3=A5rd < > mattias.engdegard@gmail.com>, > > Stefan Monnier > > > > > The total reported cpu time for > > > a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and with the > > > patch it is 3460.69. > > > > That's just 0.5% of speedup, which doesn't pass my threshold for > > worthy changes, especially when the code changes are non-trivial (as > > they are in this case). So my vote is against installing this, sorry. > > > > The performance improvement is the punchline. The purpose of the chang= e > is to remove a static variable. > > That's why I originally included it in the patch to make the code in > lread.c re-entrant. But it probably makes > > more sense as a stand-alone change. > > If this change is related to some other changeset, let alone is needed > by it, it is not standalone, and should be part of that other > changeset. It would make sense to have it as standalone if it brought > us some significant advantages, which doesn't seem to be the case here. > It's related in the sense that it's removing static variables in lread.c. But this patch should probably be considered cleanup from the introduction of shorthands. I think the change is actually trivial for someone familiar with lread.c. At any rate, the feedback on the patch for making read and friends reentrant was that it was too much at once. I'm guessing Mattias and/or Stefan would prefer to judge this change independently of the rest, but I can wait for their feedback. Lynn --000000000000e99e0e063a200a5c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Thu, Jul 17, 2025, 2:44=E2=80=AFAM El= i Zaretskii <eliz@gnu.org> wrote:=
> From: Lynn= Winebarger <owinebar@gmail.com>
> Date: Thu, 17 Jul 2025 01:24:03 -0400
> Cc: 79035@debbugs.gnu.org, Mattias Engdeg=C3=A5rd <mattias.engdegard@gmail.com>,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Stefan Monnier <monnier@iro.umontre= al.ca>
>
>=C2=A0 > The total reported cpu time for
>=C2=A0 > a8b65860a5e28ee0867e8506a17d74d4a9b7783a is 3479.51s, and w= ith the
>=C2=A0 > patch it is 3460.69.
>
>=C2=A0 That's just 0.5% of speedup, which doesn't pass my thres= hold for
>=C2=A0 worthy changes, especially when the code changes are non-trivial= (as
>=C2=A0 they are in this case).=C2=A0 So my vote is against installing t= his, sorry.
>
> The performance improvement is the punchline.=C2=A0 The purpose of the= change is to remove a static variable.
> That's why I originally included it in the patch to make the code = in lread.c re-entrant.=C2=A0 But it=C2=A0 probably makes
> more sense as a stand-alone change.

If this change is related to some other changeset, let alone is needed
by it, it is not standalone, and should be part of that other
changeset.=C2=A0 It would make sense to have it as standalone if it brought=
us some significant advantages, which doesn't seem to be the case
here.

It's related in the sense that it's removing static variables = in lread.c.=C2=A0 But this patch should probably be considered cleanup from= the introduction of shorthands.=C2=A0 I think the change is actually trivi= al for someone familiar with lread.c.=C2=A0=C2=A0
At any rate, the feedback on the patch for making= read and friends reentrant was that it was too much at once.=C2=A0 I'm= guessing Mattias and/or Stefan would prefer to judge this change independe= ntly of the rest, but I can wait for their feedback.

Lynn


--000000000000e99e0e063a200a5c-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 11:09:47 2025 Received: (at submit) by debbugs.gnu.org; 17 Jul 2025 15:09:47 +0000 Received: from localhost ([127.0.0.1]:55394 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucQF1-0005Uq-Bc for submit@debbugs.gnu.org; Thu, 17 Jul 2025 11:09:47 -0400 Received: from lists.gnu.org ([2001:470:142::17]:53796) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucQEy-0005UB-LJ for submit@debbugs.gnu.org; Thu, 17 Jul 2025 11:09:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucQEi-0007Dn-KL for bug-gnu-emacs@gnu.org; Thu, 17 Jul 2025 11:09:34 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucQEg-0002Ez-2k for bug-gnu-emacs@gnu.org; Thu, 17 Jul 2025 11:09:28 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 5DE52809D3; Thu, 17 Jul 2025 11:09:23 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1752764961; bh=owFQPSJv/NEf6DV3SenEic8dGuNkgzbNwpg5EaFZsXk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=ZivZcmVdtcrm/M9efpfyB7TufaJp/KNUETJ6YKVRWWe2klr78Pve+9vIedd8GM2jQ o3TOmNc2GmEaBEiGTQWLguj+bttNUA0wI2sUKcG+OG2iZbfNBVnDiTIRjWUVasOTjo FVgLgrZWtXqby03ZAgbFuvs/+gQw4EIqEacTBpvq2LFzUwivKjFWrB1s6uH2E9Mkur qSlp8ngOubDTFzjJVB+iWuq4pTT40dDuFTq68GxM1m0qN15Jtz5QLz3jyQbZmszK4K UJCcQI2yxLnPk/2VbSiJU3G4pKGgKLBod3MP0jyQeLwjnVLupUPieUiNyNgsNNl18g yHvHuN2aRddVw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id D1652800C4; Thu, 17 Jul 2025 11:09:21 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id A489312085F; Thu, 17 Jul 2025 11:09:21 -0400 (EDT) From: Stefan Monnier To: Lynn Winebarger Subject: Re: Remove micro-optimization for Funintern for performance In-Reply-To: Message-ID: References: Date: Thu, 17 Jul 2025 11:09:21 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.275 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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 Cc: bug-gnu-emacs@gnu.org, Mattias =?windows-1252?Q?Engdeg=E5rd?= 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 (-) > (lread.c): Remove static variable oblookup_last_bucket_number. Removal > appears to reduce execution time of obarray functions by about 6%, while > the variable was only used to avoid a redundant lookup in the rarely > called Funintern. [ Actually, it's not even a full lookup that's avoided, it's only the computation of the hash index. ] Yeah, this static var is ugly, I'm in favor of removing it. BTW, looking at the code of `Funintern` I get the impression that `oblookup_considering_shorthand` is wrong when the argument is a symbol: we should take shorthand into account only when passed a string. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 12:06:19 2025 Received: (at submit) by debbugs.gnu.org; 17 Jul 2025 16:06:19 +0000 Received: from localhost ([127.0.0.1]:55693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucR7i-0000qK-QW for submit@debbugs.gnu.org; Thu, 17 Jul 2025 12:06:19 -0400 Received: from lists.gnu.org ([2001:470:142::17]:60796) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucR7g-0000oH-57 for submit@debbugs.gnu.org; Thu, 17 Jul 2025 12:06:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucR6p-0002On-Q3 for bug-gnu-emacs@gnu.org; Thu, 17 Jul 2025 12:05:26 -0400 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ucR6n-00025f-T9 for bug-gnu-emacs@gnu.org; Thu, 17 Jul 2025 12:05:23 -0400 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-55516abe02cso1170889e87.0 for ; Thu, 17 Jul 2025 09:05:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752768318; x=1753373118; darn=gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=HUDkKZ7og7oWYqa3fTQszJf0mfGf5axb+Vx3xU/MZ8M=; b=ayq3k40Zfe4k0u0Ew+JV4tlWLeHqKQGnZACAQ6pq75aj43NTOlGuFtQGgKDeg3gugN QEtBa0uRENZaGd2nt8VkQqMjcNXyOSN0eeIo9+iBGU4e2JwwVp7gucwekB93+sXk1cL1 mPBAH1IKWh4k1XG2difs9qMrx2bC/IvF3hxtn4dBTgxjw9KAE0Sf2/POZd8J2YAf+L+g uviLFNJWnCcj1EJAg+k5FvZvmCyjSWSAfdp5shv9BNqntDad/dRz/3oog5iSM+S6v3BH ZjQy4iw6bTLCcJe8Y+LS5NGEMKVfhyyUB3i69OG2ST71A3d7Sqz/SzrCAC5FfjQvBkut iN9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752768318; x=1753373118; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=HUDkKZ7og7oWYqa3fTQszJf0mfGf5axb+Vx3xU/MZ8M=; b=PD4yUCDb9M7W8x0mzFS/3rJxAwwDv+6ivzcfymbVmkmLRiLPyIIile6P/YdWgYgxvz ArgwFdXasQLW/wqYg9HWoUiCjWbtNtJ630FmK+ZUdyjoYlDL3bmWge5iykOJLomLt4HP xdGIF7HupxorUPYtb9uuuYwBgMSWSCgmYnMzApfLYZlNPAzjyzf1RB9V3x2A32CKKsBX dm7nqhB3GubHP3KrKAt93gm/RLtpiUD8N4FSpeJubH7QFlAMk37MTQbMdRIVhm0k10bQ 44Kib7+/mQ19ZByor0ixoscfksCJXY7jfpE19AXVncGILtI0KSIjGCwcaGjD4nZO9BHU yqQA== X-Forwarded-Encrypted: i=1; AJvYcCUsyjEWVuaYlqkfAP68SyNbtdIo+jQwqiH4FDd8GFI5s+pXa5mwEHNK7YKKFQCbfQIbhkqnVuuemOCc1gl1@gnu.org X-Gm-Message-State: AOJu0Yy/uOfmED3AwjR4bssfTLE508i65hmV2pBunRzwEdd+w5GfIDI8 x1cFfBgV9VvGPBapzcHfilxcJJnbuvUYJ+QT4gg35p8x4l7Pb1Dfng37 X-Gm-Gg: ASbGncvC7Rg39Ble34EyxHF+UNYR7gUTsMcERnpenNzdNrzQmtv2ezBfhZAkwigZFjx 9scz/apqlLezM17bw3r9wnni0CtYY6NaitDws16+OK31ehXBykzhucAgUvJxkf9km/0RNM16+t4 5wmFGKi3SCgY/ucUEmU/zyCEQqs+n5muwSojczNcpjmhBagxSofAaOnOMy3omcqyanLb912EfcG bETYfos0liMKH3d1K0w2HG4sQnAYMQp2Lz6mmucCHgJSBCX5TokQj//Nzq6taTiun3AGdPsPZKk R5RYIWJco4IA5ZV3W7lHVq/aJK3QAKF+hn8E33SlUPBFMeXghqBOHfrzjwo6+iIyLb7YLqpO4eL E/jjp389Jz/MWQXNPR7WMMO3ER757laHavbcHBFK9RZ8PbYjLF2Lc+mw1SpWK/DEVu0jX7NQ89h oamjDzkEkGz4Cl X-Google-Smtp-Source: AGHT+IHN+7tzJHTy6j/w3b83VrKdEz91XWQD9HmA+ROAeFEbbcyGeupyKYQAnkQl/K+MWdBpcHMSIA== X-Received: by 2002:a05:6512:2393:b0:553:51a2:440a with SMTP id 2adb3069b0e04-55a28d06968mr1270858e87.23.1752768317135; Thu, 17 Jul 2025 09:05:17 -0700 (PDT) Received: from smtpclient.apple (c188-150-186-155.bredband.tele2.se. [188.150.186.155]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a05daa619sm2585204e87.41.2025.07.17.09.05.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Jul 2025 09:05:16 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: Remove micro-optimization for Funintern for performance From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Thu, 17 Jul 2025 18:05:14 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> References: To: Stefan Monnier X-Mailer: Apple Mail (2.3654.120.0.1.15) Received-SPF: pass client-ip=2a00:1450:4864:20::134; envelope-from=mattias.engdegard@gmail.com; helo=mail-lf1-x134.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Emacs Bug Report , Lynn Winebarger 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: -0.0 (/) 17 juli 2025 kl. 17.09 skrev Stefan Monnier : > Yeah, this static var is ugly, I'm in favor of removing it. Same here. I don't think it was ever meant as an optimisation, just a = quick and lazy way to implement Funintern. > BTW, looking at the code of `Funintern` I get the impression that > `oblookup_considering_shorthand` is wrong when the argument is a = symbol: > we should take shorthand into account only when passed a string. Right. Funintern isn't often used but we could do a better job here. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 18:12:30 2025 Received: (at 79035) by debbugs.gnu.org; 17 Jul 2025 22:12:30 +0000 Received: from localhost ([127.0.0.1]:57587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucWq5-0002Xv-Rg for submit@debbugs.gnu.org; Thu, 17 Jul 2025 18:12:30 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:40083) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucWq1-0002XP-Q7 for 79035@debbugs.gnu.org; Thu, 17 Jul 2025 18:12:27 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3b60565d5f4so179234f8f.0 for <79035@debbugs.gnu.org>; Thu, 17 Jul 2025 15:12:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752790339; x=1753395139; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IvZV0wHlxUGfAc9DIRaTQ7w8xuqKZezMqrtgvnpJWcc=; b=jgpGSCc6mmostYbJjYCYo59Bd6u+nakpOr55MLFWzrh4OJ0OdMt9d1+rWUKi8WYVAY dhYuSDf37uvsfdtsXI34PjhY+4n96BG3Rr6FoSpwyAP1L2Db9+kBXxGM1F/2FuqKVnpy YxXgMnrdToA2mlWEGDs/xO2qsh9i2it1pCPdWPbPsT5jTjIpHhm+obL+50nWISzwZmuy XMC7HQQKS7hJr11vjE4/2IBRvDX81iwqYXrjZYaj03I0Fv1zOUyYsLpwJgHnl4Fsx/81 h158a2/vX1ihAMnKAAGfDdC7dapgZL5G3hNrdasPdgC677QxydSY3AnQc3ELxz61r2Ww 5+Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752790339; x=1753395139; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=IvZV0wHlxUGfAc9DIRaTQ7w8xuqKZezMqrtgvnpJWcc=; b=uFMpARUFacFiSuCZKidRtRvlNQ5FoZL8hqm01ZBH9L3rn4HS0SvjazjdXsjGWDt2yK pO7zdPOz63Avscy0s597uyP+jVBFk3W0fOqC24ayX6Fpme1A6zLvAhjtKT6DrPUpv09u 9oP5kvn9Nyx4A5ZxNp1DUDGOGOu34qpn6sOhmhEZpYN+5BWzIMzzmu0otUpE8x9tdQ/c l5espuu0PvDHISI9lcApngGmioFlWTtZnY2Yn6F6EhmvPo2kOajBYgwPq2zHR0/zvaI5 zvlPNOc9yO/61HeLLTAhtz6r0WmpGHxfgOqy2ZsZvQ2gDPxOkHxA8TEOweyA2TP5Lns7 bQog== X-Forwarded-Encrypted: i=1; AJvYcCXv1JaOxiUrvWvZ2G0IFnIJ4d5BU76EAw40Q2QM/4Ic8MciC3RMX29osWRzafyj3XRTUipd2w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yxjqm4xqUZaTZ2bkOC0+c5IBChV8c3HcsA6wd7InRrkZXDWNJKx COB5PQ0GKPHsgm2offAbt68dZDUSiNKtIZ/Qp2AK2Z4R3InfasbiewCRQEs/K5tOLERJCU04p1r dkqQl90QteWs743D0r/vMvpwyUCI0Uh45vA== X-Gm-Gg: ASbGncuQqAsv0jZ4j1GSL6r6pWRAkVlEQYEgNG4RDJu+0FXVBKkgLmNnuLoDPBU9Yv8 ZKDsNJlCxtyhyWec3gQTnIYiRfhSAaDUXKmcI5PT/oThADuwphfyOPFRBfqKBNPiLeFohGbzhVp hFjOmI6czQFLLmv7nzjPh6QcZakjxdEDg1q85HzH6w90KGBii/iFV+wy0l3EhYI9lyvd0kWS9l0 GR3GI/hqQ7Z1Nnq2Om0bhw2TxTnlA+ap844sgU= X-Google-Smtp-Source: AGHT+IE4fgOx/cHUYfkXkmQhl5L0O8h2O61VSWgDwpEFaPSYuYY3oay+rR4F4HTSrbEgr2u7S3Z1/sAbEASpQ/u+stU= X-Received: by 2002:a05:6000:420b:b0:3a4:e740:cd6e with SMTP id ffacd0b85a97d-3b60dd54d8fmr3076050f8f.8.1752790338533; Thu, 17 Jul 2025 15:12:18 -0700 (PDT) MIME-Version: 1.0 References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> In-Reply-To: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> From: Lynn Winebarger Date: Thu, 17 Jul 2025 18:12:05 -0400 X-Gm-Features: Ac12FXzQx-WZT7NPTl1iPsrGIfiOyh4lUrHxng5UYWoCXbkB6kBKbsYVZQaQ4Js Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/alternative; boundary="0000000000007e7bba063a274d2a" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) --0000000000007e7bba063a274d2a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 17, 2025, 2:51=E2=80=AFPM Mattias Engdeg=C3=A5rd wrote: > 17 juli 2025 kl. 17.09 skrev Stefan Monnier : > > > Yeah, this static var is ugly, I'm in favor of removing it. > > Same here. I don't think it was ever meant as an optimisation, just a > quick and lazy way to implement Funintern. > > > BTW, looking at the code of `Funintern` I get the impression that > > `oblookup_considering_shorthand` is wrong when the argument is a symbol= : > > we should take shorthand into account only when passed a string. > > Right. Funintern isn't often used but we could do a better job here. > Well, I certainly have no opinion on the finer points of the semantics. I only tried to eliminate the unnecessary global state without altering the behavior. Since I've worked out (with Pip Cet's help) the undocumented contracts with debug and elisp-mode, I'm going to be going through the rest of my patch to rebase it on your recent commits in a more incremental series of changes. There are some other random bits of detritus in lread that I plan to submit separately from the main patch, just to simplify the larger task a bit. Would you (Mattias and Stefan) prefer I submit these bits as a single bug or one bug per change? --0000000000007e7bba063a274d2a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Thu, Jul 17, 2025, 2:51=E2=80=AFPM Ma= ttias Engdeg=C3=A5rd <mat= tias.engdegard@gmail.com> wrote:
17 juli 2025 kl. 17.09 skrev Stefan Monnier <monnier@iro.umontreal.ca>:

> Yeah, this static var is ugly, I'm in favor of removing it.

Same here. I don't think it was ever meant as an optimisation, just a q= uick and lazy way to implement Funintern.

> BTW, looking at the code of `Funintern` I get the impression that
> `oblookup_considering_shorthand` is wrong when the argument is a symbo= l:
> we should take shorthand into account only when passed a string.

Right. Funintern isn't often used but we could do a better job here.

Wel= l, I certainly have no opinion on the finer points of the semantics. I only= tried to eliminate the unnecessary global state without altering the behav= ior.=C2=A0=C2=A0
Since I've worked out (with Pip= Cet's help) the undocumented contracts with debug and elisp-mode, I= 9;m going to be going through the rest of my patch to rebase it on your rec= ent commits in a more incremental series of changes.=C2=A0 There are some o= ther random bits of detritus in lread that I plan to submit separately from= the main patch, just to simplify the larger task a bit.
Would you (Mattias and Stefan) prefer I submit these bits as a single = bug or one bug per change?

--0000000000007e7bba063a274d2a-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 18 17:44:21 2025 Received: (at 79035) by debbugs.gnu.org; 18 Jul 2025 21:44:21 +0000 Received: from localhost ([127.0.0.1]:36379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucssN-0007Qm-9b for submit@debbugs.gnu.org; Fri, 18 Jul 2025 17:44:21 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:39651) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucssJ-0007QJ-R6 for 79035@debbugs.gnu.org; Fri, 18 Jul 2025 17:44:18 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-456133b8d47so3020265e9.2 for <79035@debbugs.gnu.org>; Fri, 18 Jul 2025 14:44:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752875049; x=1753479849; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=UpXLwMrf1IDXeAzjyofAMCD2F+QCkSn9MGAbMEaDFhE=; b=GbMZsWVoklIlcHzqVBLQVqX5uDijNdpCbsc6/wXzBB10HHx5+Gx+hOlXN/bv/xdZ1E GttxPaKxEPIaT/PhnPYidh1lIO9j0zRQtSzGwfj90MtRLh9mzEuNcC0zWDFGUCDWZ+1Z qRgj9S7FDy6RJbi0DxaUby6/9z3peHEFzNDYbcUelG12/d0irdN28oCH/pxBMalvxDkz aqU88HSDsXeebXg8I5evoERexYDFq7mlf7kzMMMGJAplTADb4BVScywPVys6rSHag+TN NpY2IAA3w6GP0Yl/KdHg2hV8jd72gyUHuT5W/Qiq2tS+YqkmLZPtXIvza9CXud6FY40q B1Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752875049; x=1753479849; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UpXLwMrf1IDXeAzjyofAMCD2F+QCkSn9MGAbMEaDFhE=; b=i1OGtduAvEFx3rRtqyJ74587+SRFCn5gBZUqkafe4zcJH3qZ4I84g6eZpzlEmJNKtN dnw8YZ3fwRjyy5DzIWZAfSEeLqmfPgouz4oSz1WwwrxAp5QKQeBaZy1V6LIIow/OYbHA 3g3dJVjV/RZlOHhHdZNfvsH9O7Muj/p42uX9K2SwzbkkaNUiVe9pLgoWVwaXxqIgRF4J K7lNtW6U0AKsE7fZN9N1NkCx99HJsaib+wOLE3GKD0Ql3dlSCxkt4pl4vw6IuTZjU+Ow 2hpQ/ZqNx01Uc5ykVBaDXQlDbwepkLWP6w+Kze1Kzh6vAuB5o54Vnxz+FhQUnH1sLY30 RslA== X-Forwarded-Encrypted: i=1; AJvYcCXc3IhPTh8EGBdROqqLO4mqqziOh7moFQ6lb4d3qkll7MOK22n8gRtQ00OlbsQKnrGKbhkLlg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwhxmNtt0DKjbWsmPCguAK32XmH5DlLFXqNEZqLxbtSY3kM8R77 IU5Ty6Jixs/q1/lyPd2R96caOVKTNlOxZG4SmWyWheCPXv0uXu9njzyPsv9d7IdJwJKSVjvQCL2 J1/plniZ1+zglXFi7c/UN+mKLlu9dijQ= X-Gm-Gg: ASbGncuxlCxM3BMEuC+pGPNyXSvBpfCc9SSdGX0CzWqkESgETkRytWnfAbdMxruhbN5 tucgW53gH51DwIye3VLYbRGlxC5rME0CbABsAuHocmGG8Gd5iOYxbIR08QIz7IJx22t87kpzG2w md2GhnRmHjcVLRlXi1sVIiVAKTNG9qZOvdjb2sG+iTAeAewvdGZ87asAhL6Rg1Cht2OzGPx8505 nTG/7FqD0cEnaVkkoDWw3qvams+pBM= X-Google-Smtp-Source: AGHT+IE6qG0q1SXFfsfrQkb4lAkvdEI61KL9ZmdDVQjW+cIGBO+X9OIHOzwc5Wb2m1HZsomWV2acQ/nJ70CO8ltxasM= X-Received: by 2002:a05:6000:2388:b0:3a5:324a:89b5 with SMTP id ffacd0b85a97d-3b60dd68770mr4521185f8f.8.1752875049084; Fri, 18 Jul 2025 14:44:09 -0700 (PDT) MIME-Version: 1.0 References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> In-Reply-To: From: Lynn Winebarger Date: Fri, 18 Jul 2025 17:43:56 -0400 X-Gm-Features: Ac12FXwAvfs_d2c618Ynlp6oNFshD-vbiFmD1c9M2vRm4M-JwPmqpYSttjsdhBg Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="000000000000a30bd8063a3b06cc" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) --000000000000a30bd8063a3b06cc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 17, 2025 at 6:12=E2=80=AFPM Lynn Winebarger wrote: > > On Thu, Jul 17, 2025, 2:51=E2=80=AFPM Mattias Engdeg=C3=A5rd wrote: >> >> 17 juli 2025 kl. 17.09 skrev Stefan Monnier : >> >> > Yeah, this static var is ugly, I'm in favor of removing it. >> >> Same here. I don't think it was ever meant as an optimisation, just a qu= ick and lazy way to implement Funintern. >> >> > BTW, looking at the code of `Funintern` I get the impression that >> > `oblookup_considering_shorthand` is wrong when the argument is a symbo= l: >> > we should take shorthand into account only when passed a string. >> >> Right. Funintern isn't often used but we could do a better job here. > > > Well, I certainly have no opinion on the finer points of the semantics. I= only tried to eliminate the unnecessary global state without altering the = behavior. > Since I've worked out (with Pip Cet's help) the undocumented contracts wi= th debug and elisp-mode, I'm going to be going through the rest of my patch= to rebase it on your recent commits in a more incremental series of change= s. There are some other random bits of detritus in lread that I plan to su= bmit separately from the main patch, just to simplify the larger task a bit= . > Would you (Mattias and Stefan) prefer I submit these bits as a single bug= or one bug per change? > Since I haven't heard back, I'm just going to revise the patch set here. One of the bits I thought was detritus actually depended on one of the other changes I had made in lread.c, so I only have 2 small additional changes. The commit messages are detailed. 0002-Remove-unreferenced-internal-variable.patch eliminates the unused variable load_convert_to_unibyte and associated unwind-protect. 0003-Move-read-char-and-friends-to-keyboard.c.patch cleans up lread.c by grouping read-char et al with read-key-sequence in keyboard.c. Running make check shows no additional failures compared to the baseline. Lynn --000000000000a30bd8063a3b06cc Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Remove-unreferenced-internal-variable.patch" Content-Disposition: attachment; filename="0002-Remove-unreferenced-internal-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md9c9awd1 RnJvbSBjNmQwZjMxMmM2YTZiMGRlMjE5YzdiMjFmYTZmN2M1ZGUwYzZmODcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5pZSBMeW5uIFdpbmViYXJnZXIgPG93aW5lYmFyQGdtYWls LmNvbT4KRGF0ZTogRnJpLCAxOCBKdWwgMjAyNSAxNzoxMDo0OSAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBSZW1vdmUgdW5yZWZlcmVuY2VkIGludGVybmFsIHZhcmlhYmxlCgoobHJlYWQuYyk6 ICBUaGUgdmFsdWUgb2YgbG9hZF9jb252ZXJ0X3RvX3VuaWJ5dGUgZG9lcyBub3QgYXBwZWFyIHRv CmJlIHVzZWQgYnkgYW55IGNvZGUgYW5kIGFwcGVhcnMgbm90IHRvIGhhdmUgYmVlbiBzaW5jZSAx OTk4LiAgUmVtb3ZpbmcKaXQgYWxsb3dzIHVzIHRvIGRpc3BlbnNlIHdpdGggYSB1c2VsZXNzIHJl Y29yZF91bndpbmQuICBJIGNoYW5nZWQgdGhlCmRvYy1zdHJpbmcgZm9yIGV2YWwtYnVmZmVyIHRv IHJlZmxlY3QgdGhhdCB0aGUgVU5JQllURSBhcmd1bWVudCBpcwppZ25vcmVkLCB3aGljaCBpdCBo YXMgZWZmZWN0aXZlbHkgYmVlbiBmb3IgYSBsb25nIHRpbWUuICBObyBjYWxsZXJzCmFwcGVhciB0 byBzZXQgaXQgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiBuaWwgaW4gYW55IGNhc2UuCi0tLQogc3Jj L2xyZWFkLmMgfCAzNCArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvbHJlYWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IGFkMjVmZTA1MmExLi5jMDIwNjBkM2VhNSAx MDA2NDQKLS0tIGEvc3JjL2xyZWFkLmMKKysrIGIvc3JjL2xyZWFkLmMKQEAgLTIzOCw4ICsyMzgs NyBAQCAjZGVmaW5lIFVTRV9BTkRST0lEX0FTU0VUUwogc3RhdGljIExpc3BfT2JqZWN0IFZsb2Fk c19pbl9wcm9ncmVzczsKIAogc3RhdGljIHZvaWQgcmVhZGV2YWxsb29wIChMaXNwX09iamVjdCwg c3RydWN0IGluZmlsZSAqLCBMaXNwX09iamVjdCwgYm9vbCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOworCQkJICAgTGlzcF9PYmplY3QsIExpc3BfT2Jq ZWN0LCBMaXNwX09iamVjdCk7CiAKIHN0YXRpYyB2b2lkIGJ1aWxkX2xvYWRfaGlzdG9yeSAoTGlz cF9PYmplY3QsIGJvb2wpOwogCkBAIC0xNzg0LDE0ICsxNzgzLDE0IEBAIERFRlVOICgibG9hZCIs IEZsb2FkLCBTbG9hZCwgMSwgNSwgMCwKIAogICAgICAgaWYgKCEgdmVyc2lvbiB8fCB2ZXJzaW9u ID49IDIyKQogICAgICAgICByZWFkZXZhbGxvb3AgKFFnZXRfZmlsZV9jaGFyLCAmaW5wdXQsIGhp c3RfZmlsZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgIDAsIFFuaWwsIFFuaWwsIFFuaWws IFFuaWwpOworICAgICAgICAgICAgICAgICAgICAgIDAsIFFuaWwsIFFuaWwsIFFuaWwpOwogICAg ICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgLyogV2UgY2FuJ3QgaGFuZGxlIGEgZmlsZSB3 aGljaCB3YXMgY29tcGlsZWQgd2l0aAogICAgICAgICAgICAgIGJ5dGUtY29tcGlsZS1keW5hbWlj IGJ5IG9sZGVyIHZlcnNpb24gb2YgRW1hY3MuICAqLwogICAgICAgICAgIHNwZWNiaW5kIChRbG9h ZF9mb3JjZV9kb2Nfc3RyaW5ncywgUXQpOwogICAgICAgICAgIHJlYWRldmFsbG9vcCAoUWdldF9l bWFjc19tdWxlX2ZpbGVfY2hhciwgJmlucHV0LCBoaXN0X2ZpbGVfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgIDAsIFFuaWwsIFFuaWwsIFFuaWwsIFFuaWwpOworICAgICAgICAgICAgICAg ICAgICAgICAgMCwgUW5pbCwgUW5pbCwgUW5pbCk7CiAgICAgICAgIH0KICAgICB9CiAgIHVuYmlu ZF90byAoY291bnQsIFFuaWwpOwpAQCAtMjM3NiwxMiArMjM3NSw2IEBAIGJ1aWxkX2xvYWRfaGlz dG9yeSAoTGlzcF9PYmplY3QgZmlsZW5hbWUsIGJvb2wgZW50aXJlKQogICAgIH0KIH0KIAotc3Rh dGljIHZvaWQKLXJlYWRldmFsbG9vcF8xIChpbnQgb2xkKQotewotICBsb2FkX2NvbnZlcnRfdG9f dW5pYnl0ZSA9IG9sZDsKLX0KLQogLyogU2lnbmFsIGFuIGBlbmQtb2YtZmlsZScgZXJyb3IsIGlm IHBvc3NpYmxlIHdpdGggZmlsZSBuYW1lCiAgICBpbmZvcm1hdGlvbi4gICovCiAKQEAgLTI0MTUs OSArMjQwOCw3IEBAIHJlYWRldmFsbG9vcF9lYWdlcl9leHBhbmRfZXZhbCAoTGlzcF9PYmplY3Qg dmFsLCBMaXNwX09iamVjdCBtYWNyb2V4cGFuZCkKICAgcmV0dXJuIHZhbDsKIH0KIAotLyogVU5J QllURSBzcGVjaWZpZXMgaG93IHRvIHNldCBsb2FkX2NvbnZlcnRfdG9fdW5pYnl0ZQotICAgZm9y IHRoaXMgaW52b2NhdGlvbi4KLSAgIFJFQURGVU4sIGlmIG5vbi1uaWwsIGlzIHVzZWQgaW5zdGVh ZCBvZiBgcmVhZCcuCisvKiBSRUFERlVOLCBpZiBub24tbmlsLCBpcyB1c2VkIGluc3RlYWQgb2Yg YHJlYWQnLgogCiAgICBTVEFSVCwgRU5EIHNwZWNpZnkgcmVnaW9uIHRvIHJlYWQgaW4gY3VycmVu dCBidWZmZXIgKGZyb20gZXZhbC1yZWdpb24pLgogICAgSWYgdGhlIGlucHV0IGlzIG5vdCBmcm9t IGEgYnVmZmVyLCB0aGV5IG11c3QgYmUgbmlsLiAgKi8KQEAgLTI0MjcsNyArMjQxOCw3IEBAIHJl YWRldmFsbG9vcCAoTGlzcF9PYmplY3QgcmVhZGNoYXJmdW4sCiAJICAgICAgc3RydWN0IGluZmls ZSAqaW5maWxlMCwKIAkgICAgICBMaXNwX09iamVjdCBzb3VyY2VuYW1lLAogCSAgICAgIGJvb2wg cHJpbnRmbGFnLAotCSAgICAgIExpc3BfT2JqZWN0IHVuaWJ5dGUsIExpc3BfT2JqZWN0IHJlYWRm dW4sCisJICAgICAgTGlzcF9PYmplY3QgcmVhZGZ1biwKIAkgICAgICBMaXNwX09iamVjdCBzdGFy dCwgTGlzcF9PYmplY3QgZW5kKQogewogICBpbnQgYzsKQEAgLTI0NzAsOCArMjQ2MSw2IEBAIHJl YWRldmFsbG9vcCAoTGlzcF9PYmplY3QgcmVhZGNoYXJmdW4sCiAgICAgZW1hY3NfYWJvcnQgKCk7 CiAKICAgc3BlY2JpbmQgKFFzdGFuZGFyZF9pbnB1dCwgcmVhZGNoYXJmdW4pOwotICByZWNvcmRf dW53aW5kX3Byb3RlY3RfaW50IChyZWFkZXZhbGxvb3BfMSwgbG9hZF9jb252ZXJ0X3RvX3VuaWJ5 dGUpOwotICBsb2FkX2NvbnZlcnRfdG9fdW5pYnl0ZSA9ICFOSUxQICh1bmlieXRlKTsKIAogICAv KiBJZiBsZXhpY2FsIGJpbmRpbmcgaXMgYWN0aXZlIChlaXRoZXIgYmVjYXVzZSBpdCB3YXMgc3Bl Y2lmaWVkIGluCiAgICAgIHRoZSBmaWxlJ3MgaGVhZGVyLCBvciB2aWEgYSBidWZmZXItbG9jYWwg dmFyaWFibGUpLCBjcmVhdGUgYW4gZW1wdHkKQEAgLTI2MzAsOCArMjYxOSw3IEBAIERFRlVOICgi ZXZhbC1idWZmZXIiLCBGZXZhbF9idWZmZXIsIFNldmFsX2J1ZmZlciwgMCwgNSwgIiIsCiAgIGEg dmFsdWUgb2YgbmlsIG1lYW5zIGRpc2NhcmQgaXQ7IGFueXRoaW5nIGVsc2UgaXMgdGhlIHN0cmVh bSB0byBwcmludCB0by4KICAgU2VlIEluZm8gbm9kZSBgKGVsaXNwKU91dHB1dCBTdHJlYW1zJyBm b3IgZGV0YWlscyBvbiBzdHJlYW1zLgogRklMRU5BTUUgc3BlY2lmaWVzIHRoZSBmaWxlIG5hbWUg dG8gdXNlIGZvciBgbG9hZC1oaXN0b3J5Jy4KLVVOSUJZVEUsIGlmIG5vbi1uaWwsIHNwZWNpZmll cyBgbG9hZC1jb252ZXJ0LXRvLXVuaWJ5dGUnIGZvciB0aGlzCi0gaW52b2NhdGlvbi4KK1VOSUJZ VEUgaXMgaWdub3JlZC4KIERPLUFMTE9XLVBSSU5ULCBpZiBub24tbmlsLCBzcGVjaWZpZXMgdGhh dCBvdXRwdXQgZnVuY3Rpb25zIGluIHRoZQogIGV2YWx1YXRlZCBjb2RlIHNob3VsZCB3b3JrIG5v cm1hbGx5IGV2ZW4gaWYgUFJJTlRGTEFHIGlzIG5pbCwgaW4KICB3aGljaCBjYXNlIHRoZSBvdXRw dXQgaXMgZGlzcGxheWVkIGluIHRoZSBlY2hvIGFyZWEuCkBAIC0yNjc3LDcgKzI2NjUsNyBAQCBE RUZVTiAoImV2YWwtYnVmZmVyIiwgRmV2YWxfYnVmZmVyLCBTZXZhbF9idWZmZXIsIDAsIDUsICIi LAogICAgIHNwZWNiaW5kIChRbGV4aWNhbF9iaW5kaW5nLCBnZXRfbGV4aWNhbF9iaW5kaW5nIChi dWYsIGJ1ZikpOwogICBCVUZfVEVNUF9TRVRfUFQgKFhCVUZGRVIgKGJ1ZiksIEJVRl9CRUdWIChY QlVGRkVSIChidWYpKSk7CiAgIHJlYWRldmFsbG9vcCAoYnVmLCAwLCBmaWxlbmFtZSwKLQkJIU5J TFAgKHByaW50ZmxhZyksIHVuaWJ5dGUsIFFuaWwsIFFuaWwsIFFuaWwpOworCQkhTklMUCAocHJp bnRmbGFnKSwgUW5pbCwgUW5pbCwgUW5pbCk7CiAgIHJldHVybiB1bmJpbmRfdG8gKGNvdW50LCBR bmlsKTsKIH0KIApAQCAtMjcxMSw3ICsyNjk5LDcgQEAgREVGVU4gKCJldmFsLXJlZ2lvbiIsIEZl dmFsX3JlZ2lvbiwgU2V2YWxfcmVnaW9uLCAyLCA0LCAiciIsCiAKICAgLyogYHJlYWRldmFsbG9v cCcgY2FsbHMgZnVuY3Rpb25zIHdoaWNoIGNoZWNrIHRoZSB0eXBlIG9mIHN0YXJ0IGFuZCBlbmQu ICAqLwogICByZWFkZXZhbGxvb3AgKGNidWYsIDAsIEJWQVIgKFhCVUZGRVIgKGNidWYpLCBmaWxl bmFtZSksCi0JCSFOSUxQIChwcmludGZsYWcpLCBRbmlsLCByZWFkX2Z1bmN0aW9uLAorCQkhTklM UCAocHJpbnRmbGFnKSwgcmVhZF9mdW5jdGlvbiwKIAkJc3RhcnQsIGVuZCk7CiAKICAgcmV0dXJu IHVuYmluZF90byAoY291bnQsIFFuaWwpOwpAQCAtNjA3NSwxMiArNjA2Myw2IEBAIHN5bXNfb2Zf bHJlYWQgKHZvaWQpCiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBmaWxlIGJlaW5nIGxvYWRlZCBp cyBhIHRlbXBvcmFyeSBjb3B5LiAgKi8pOwogICBsb2FkX2ZvcmNlX2RvY19zdHJpbmdzID0gMDsK IAotICBERUZWQVJfQk9PTCAoImxvYWQtY29udmVydC10by11bmlieXRlIiwgbG9hZF9jb252ZXJ0 X3RvX3VuaWJ5dGUsCi0JICAgICAgIGRvYzogLyogTm9uLW5pbCBtZWFucyBgcmVhZCcgY29udmVy dHMgc3RyaW5ncyB0byB1bmlieXRlIHdoZW5ldmVyIHBvc3NpYmxlLgotVGhpcyBpcyBub3JtYWxs eSBib3VuZCBieSBgbG9hZCcgYW5kIGBldmFsLWJ1ZmZlcicgdG8gY29udHJvbCBgcmVhZCcsCi1h bmQgaXMgbm90IG1lYW50IGZvciB1c2VycyB0byBjaGFuZ2UuICAqLyk7Ci0gIGxvYWRfY29udmVy dF90b191bmlieXRlID0gMDsKLQogICBERUZWQVJfTElTUCAoInNvdXJjZS1kaXJlY3RvcnkiLCBW c291cmNlX2RpcmVjdG9yeSwKIAkgICAgICAgZG9jOiAvKiBEaXJlY3RvcnkgaW4gd2hpY2ggRW1h Y3Mgc291cmNlcyB3ZXJlIGZvdW5kIHdoZW4gRW1hY3Mgd2FzIGJ1aWx0LgogWW91IGNhbm5vdCBj b3VudCBvbiB0aGVtIHRvIHN0aWxsIGJlIHRoZXJlISAgKi8pOwotLSAKMi41MC4wCgo= --000000000000a30bd8063a3b06cc Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Remove-micro-optimization-for-Funintern.patch" Content-Disposition: attachment; filename="0001-Remove-micro-optimization-for-Funintern.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md9c9aw60 RnJvbSBjNDgxOGJhMDFmOTQ3MTc4NzZmNzcyZjlhMGI1ZTY3ZDJkMzJkNTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5pZSBMeW5uIFdpbmViYXJnZXIgPG93aW5lYmFyQGdtYWls LmNvbT4KRGF0ZTogV2VkLCAxNiBKdWwgMjAyNSAyMzowNDowNyAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBSZW1vdmUgbWljcm8tb3B0aW1pemF0aW9uIGZvciBGdW5pbnRlcm4KCihscmVhZC5j KTogUmVtb3ZlIHN0YXRpYyB2YXJpYWJsZSBvYmxvb2t1cF9sYXN0X2J1Y2tldF9udW1iZXIuICBS ZW1vdmFsCmFwcGVhcnMgdG8gcmVkdWNlIGV4ZWN1dGlvbiB0aW1lIG9mIG9iYXJyYXkgZnVuY3Rp b25zIGJ5IGFib3V0IDYlLCB3aGlsZQp0aGUgdmFyaWFibGUgd2FzIG9ubHkgdXNlZCB0byBhdm9p ZCBhIHJlZHVuZGFudCBsb29rdXAgaW4gdGhlIHJhcmVseQpjYWxsZWQgRnVuaW50ZXJuLgotLS0K IHNyYy9scmVhZC5jIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAyMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvbHJlYWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IDVi Nzg0OGMzMTE4Li5hZDI1ZmUwNTJhMSAxMDA2NDQKLS0tIGEvc3JjL2xyZWFkLmMKKysrIGIvc3Jj L2xyZWFkLmMKQEAgLTQ5MjcsMTAgKzQ5MjcsNiBAQCBzdHJpbmdfdG9fbnVtYmVyIChjaGFyIGNv bnN0ICpzdHJpbmcsIGludCBiYXNlLCBwdHJkaWZmX3QgKnBsZW4pCiAMCiBzdGF0aWMgTGlzcF9P YmplY3QgaW5pdGlhbF9vYmFycmF5OwogCi0vKiBgb2Jsb29rdXAnIHN0b3JlcyB0aGUgYnVja2V0 IG51bWJlciBoZXJlLCBmb3IgdGhlIHNha2Ugb2YgRnVuaW50ZXJuLiAgKi8KLQotc3RhdGljIHNp emVfdCBvYmxvb2t1cF9sYXN0X2J1Y2tldF9udW1iZXI7Ci0KIHN0YXRpYyBMaXNwX09iamVjdCBt YWtlX29iYXJyYXkgKHVuc2lnbmVkIGJpdHMpOwogCiAvKiBTbG93IHBhdGggb2JhcnJheSBjaGVj azogcmV0dXJuIHRoZSBvYmFycmF5IHRvIHVzZSBvciBzaWduYWwgYW4gZXJyb3IuICAqLwpAQCAt NTE0MSw2ICs1MTM3LDE0IEBAIERFRlVOICgiaW50ZXJuLXNvZnQiLCBGaW50ZXJuX3NvZnQsIFNp bnRlcm5fc29mdCwgMSwgMiwgMCwKICAgICB9CiB9CiAMCisvKiBCdWNrZXQgaW5kZXggb2YgdGhl IHN0cmluZyBTVFIgb2YgbGVuZ3RoIFNJWkVfQllURSBieXRlcyBpbiBvYmFycmF5IE9BLiAgKi8K K3N0YXRpYyBwdHJkaWZmX3QKK29iYXJyYXlfaW5kZXggKHN0cnVjdCBMaXNwX09iYXJyYXkgKm9h LCBjb25zdCBjaGFyICpzdHIsIHB0cmRpZmZfdCBzaXplX2J5dGUpCit7CisgIEVNQUNTX1VJTlQg aGFzaCA9IGhhc2hfY2hhcl9hcnJheSAoc3RyLCBzaXplX2J5dGUpOworICByZXR1cm4ga251dGhf aGFzaCAocmVkdWNlX2VtYWNzX3VpbnRfdG9faGFzaF9oYXNoIChoYXNoKSwgb2EtPnNpemVfYml0 cyk7Cit9CisKIERFRlVOICgidW5pbnRlcm4iLCBGdW5pbnRlcm4sIFN1bmludGVybiwgMiwgMiwg MCwKICAgICAgICBkb2M6IC8qIERlbGV0ZSB0aGUgc3ltYm9sIG5hbWVkIE5BTUUsIGlmIGFueSwg ZnJvbSBPQkFSUkFZLgogVGhlIHZhbHVlIGlzIHQgaWYgYSBzeW1ib2wgd2FzIGZvdW5kIGFuZCBk ZWxldGVkLCBuaWwgb3RoZXJ3aXNlLgpAQCAtNTE3NCwxNCArNTE3OCwxNSBAQCBERUZVTiAoInVu aW50ZXJuIiwgRnVuaW50ZXJuLCBTdW5pbnRlcm4sIDIsIDIsIDAsCiAJCQkJCVNDSEFSUyAoc3Ry aW5nKSwgU0JZVEVTIChzdHJpbmcpLAogCQkJCQkmbG9uZ2hhbmQsICZsb25naGFuZF9jaGFycywK IAkJCQkJJmxvbmdoYW5kX2J5dGVzKTsKLSAgaWYgKGxvbmdoYW5kKQotICAgIHhmcmVlKGxvbmdo YW5kKTsKIAotICBpZiAoRklYTlVNUCAodGVtKSkKLSAgICByZXR1cm4gUW5pbDsKKyAgaWYgKEZJ WE5VTVAgKHRlbSkKICAgLyogSWYgYXJnIHdhcyBhIHN5bWJvbCwgZG9uJ3QgZGVsZXRlIGFueXRo aW5nIGJ1dCB0aGF0IHN5bWJvbCBpdHNlbGYuICAqLwotICBpZiAoQkFSRV9TWU1CT0xfUCAobmFt ZSkgJiYgIUJBU0VfRVEgKG5hbWUsIHRlbSkpCi0gICAgcmV0dXJuIFFuaWw7CisgICAgICB8fCAo QkFSRV9TWU1CT0xfUCAobmFtZSkgJiYgIUJBU0VfRVEgKG5hbWUsIHRlbSkpKQorICAgIHsKKyAg ICAgIGlmIChsb25naGFuZCkKKwl4ZnJlZSAobG9uZ2hhbmQpOworICAgICAgcmV0dXJuIFFuaWw7 CisgICAgfQogCiAgIC8qIFRoZXJlIGFyZSBwbGVudHkgb2Ygb3RoZXIgc3ltYm9scyB3aGljaCB3 aWxsIHNjcmV3IHVwIHRoZSBFbWFjcwogICAgICBzZXNzaW9uIGlmIHdlIHVuaW50ZXJuIHRoZW0s IGFzIHdlbGwgYXMgZXZlbiBtb3JlIHdheXMgdG8gdXNlCkBAIC01MTkzLDcgKzUxOTgsMjQgQEAg REVGVU4gKCJ1bmludGVybiIsIEZ1bmludGVybiwgU3VuaW50ZXJuLCAyLCAyLCAwLAogICBzdHJ1 Y3QgTGlzcF9TeW1ib2wgKnN5bSA9IFhCQVJFX1NZTUJPTCAodGVtKTsKICAgc3ltLT51LnMuaW50 ZXJuZWQgPSBTWU1CT0xfVU5JTlRFUk5FRDsKIAotICBwdHJkaWZmX3QgaWR4ID0gb2Jsb29rdXBf bGFzdF9idWNrZXRfbnVtYmVyOworICBwdHJkaWZmX3QgaWR4ID0gLTE7CisgIHsKKyAgICAvKiBS ZW1vdmVkIHN0YXRpYyB2YXJpYWJsZSBvYmxvb2t1cF9sYXN0X2J1Y2tldF9udW1iZXIgbWljcm8t b3B0aW1pemF0aW9uCisgICAgICAgRG9uJ3QgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGp1c3QgdG8g YXZvaWQgdGhpcworICAgICAgIC0gaG93IGZyZXF1ZW50bHkgdXNlZCBpcyB1bmludGVybiB0aGF0 IHVzaW5nIGEgc3RhdGljIHZhcmlhYmxlCisgICAgICAgdG8gb3B0aW1pemUgYXdheSB0aGlzIHJl ZHVuZGFudCBpbmRleCBjYWxjdWxhdGlvbiB3b3VsZCBiZQorICAgICAgIHdvcnRoIGFkZGluZyBh IHNlY29uZCByZWZlcmVuY2UgcGFyYW1ldGVyPyAqLworICAgIHN0cnVjdCBMaXNwX09iYXJyYXkg Km8gPSBYT0JBUlJBWSAob2JhcnJheSk7CisgICAgaWYgKGxvbmdoYW5kKQorICAgICAgeworCWlk eCA9IG9iYXJyYXlfaW5kZXggKG8sIGxvbmdoYW5kLCBsb25naGFuZF9ieXRlcyk7CisJeGZyZWUg KGxvbmdoYW5kKTsKKyAgICAgIH0KKyAgICBlbHNlCisgICAgICB7CisJaWR4ID0gb2JhcnJheV9p bmRleCAobyxTU0RBVEEgKHN0cmluZyksIFNCWVRFUyAoc3RyaW5nKSk7CisgICAgICB9CisgIH0K ICAgTGlzcF9PYmplY3QgKmxvYyA9ICZYT0JBUlJBWSAob2JhcnJheSktPmJ1Y2tldHNbaWR4XTsK IAogICBlYXNzZXJ0IChCQVJFX1NZTUJPTF9QICgqbG9jKSk7CkBAIC01MjE4LDE0ICs1MjQwLDYg QEAgREVGVU4gKCJ1bmludGVybiIsIEZ1bmludGVybiwgU3VuaW50ZXJuLCAyLCAyLCAwLAogfQog DAogCi0vKiBCdWNrZXQgaW5kZXggb2YgdGhlIHN0cmluZyBTVFIgb2YgbGVuZ3RoIFNJWkVfQllU RSBieXRlcyBpbiBvYmFycmF5IE9BLiAgKi8KLXN0YXRpYyBwdHJkaWZmX3QKLW9iYXJyYXlfaW5k ZXggKHN0cnVjdCBMaXNwX09iYXJyYXkgKm9hLCBjb25zdCBjaGFyICpzdHIsIHB0cmRpZmZfdCBz aXplX2J5dGUpCi17Ci0gIEVNQUNTX1VJTlQgaGFzaCA9IGhhc2hfY2hhcl9hcnJheSAoc3RyLCBz aXplX2J5dGUpOwotICByZXR1cm4ga251dGhfaGFzaCAocmVkdWNlX2VtYWNzX3VpbnRfdG9faGFz aF9oYXNoIChoYXNoKSwgb2EtPnNpemVfYml0cyk7Ci19Ci0KIC8qIFJldHVybiB0aGUgc3ltYm9s IGluIE9CQVJSQVkgd2hvc2UgbmFtZSBtYXRjaGVzIHRoZSBzdHJpbmcKICAgIG9mIFNJWkUgY2hh cmFjdGVycyAoU0laRV9CWVRFIGJ5dGVzKSBhdCBQVFIuCiAgICBJZiB0aGVyZSBpcyBubyBzdWNo IHN5bWJvbCwgcmV0dXJuIHRoZSBpbnRlZ2VyIGJ1Y2tldCBudW1iZXIgb2YKQEAgLTUyNDAsNyAr NTI1NCw2IEBAIG9ibG9va3VwIChMaXNwX09iamVjdCBvYmFycmF5LCByZWdpc3RlciBjb25zdCBj aGFyICpwdHIsIHB0cmRpZmZfdCBzaXplLCBwdHJkaWZmCiAgIHB0cmRpZmZfdCBpZHggPSBvYmFy cmF5X2luZGV4IChvLCBwdHIsIHNpemVfYnl0ZSk7CiAgIExpc3BfT2JqZWN0IGJ1Y2tldCA9IG8t PmJ1Y2tldHNbaWR4XTsKIAotICBvYmxvb2t1cF9sYXN0X2J1Y2tldF9udW1iZXIgPSBpZHg7CiAg IGlmICghQkFTRV9FUSAoYnVja2V0LCBtYWtlX2ZpeG51bSAoMCkpKQogICAgIHsKICAgICAgIExp c3BfT2JqZWN0IHN5bSA9IGJ1Y2tldDsKLS0gCjIuNTAuMAoK --000000000000a30bd8063a3b06cc Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Move-read-char-and-friends-to-keyboard.c.patch" Content-Disposition: attachment; filename="0003-Move-read-char-and-friends-to-keyboard.c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md9c9awf2 RnJvbSA1NDZhMmI3NThlZDNmYTRmZjBhNjRmZTcxYjUwNDEwYTJlYTZjNTJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5pZSBMeW5uIFdpbmViYXJnZXIgPG93aW5lYmFyQGdtYWls LmNvbT4KRGF0ZTogRnJpLCAxOCBKdWwgMjAyNSAxNzoyMDo0OSAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBNb3ZlIHJlYWQtY2hhciBhbmQgZnJpZW5kcyB0byBrZXlib2FyZC5jCgoobHJlYWQu YyxrZXlib2FyZC5jKSBSZWxvY2F0ZSByZWFkLWNoYXIsIHJlYWQtY2hhci1leGNsdXNpdmUsCnJl YWQtZXZlbnQsIGFuZCBzdXBwb3J0aW5nIGZ1bmN0aW9ucyB0byBrZXlib2FyZC5jIHdpdGggb3Ro ZXIgZnVuY3Rpb25zCmZvciBwcm9jZXNzaW5nIGlucHV0IGV2ZW50cy4gIEJhc2VkIG9uIHRoZSBj b2RlIGZvciBGcmVhZCB0cmVhdGluZwoncmVhZC1jaGFyIGFzIHRoZSBub21pbmFsIG5hbWUgb2Yg dGhlIGlucHV0IHN0cmVhbSBmb3IgbGlzcCBleHByZXNzaW9ucwpmcm9tIHVzZXJzLCByZWFkLWNo YXIgbWlnaHQgaGF2ZSBiZWVuIHByb3Blcmx5IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUKbGlzcCBy ZWFkZXIuICBUaGF0IG5vbWluYWwgaW5wdXQgc3RyZWFtIGhhcyBsb25nIGJlZW4gcmVwbGFjZWQg YnkKdGhlIGxpc3AgZnVuY3Rpb24gIydyZWFkLW1pbmlidWZmZXIsIHByZXN1bWFibHkgc2luY2Ug YmxpbmQgaW5wdXQgb2YgbGlzcApleHByZXNzaW9ucyB0aHJvdWdoIHJlYWQtY2hhciB3b3VsZCBi ZSBjaGFsbGVuZ2luZyBhdCB0aGUgbGVhc3QuICBUaGVzZQpmdW5jdGlvbnMgaGF2ZSBiZWVuIG1p Z3JhdGVkIHRvIGJlIGNsb3NlIHRvIHNpbWlsYXIgKGFuZCBtb3JlIHJlY2VudApmdW5jdGlvbnMp IHJlYWQta2V5LXNlcXVlbmNlIGFuZCByZWFkLWtleS1zZXF1ZW5jZS12ZWN0b3IuICBUaGlzIGFs c28KcmVkdWNlcyB0aGUgc2V0IG9mIGZ1bmN0aW9ucyB3aXRoIGFjY2VzcyB0byB0aGUgcHJpdmF0 ZSBzdGF0ZSB2YXJpYWJsZXMKaW4gbHJlYWQuYyB0aGF0IGFyZSB1c2VkIGJ5IHJlYWQsIGxvYWQs IGV2YWwtYnVmZmVyLCBldGMuCi0tLQogc3JjL2tleWJvYXJkLmMgfCAyNzAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2xyZWFkLmMgICAgfCAy NjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspLCAyNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5Ym9hcmQuYwppbmRleCBiMzg5ZDk4ZmVhYS4u Zjk1NDYzMGQ4ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlib2FyZC5jCisrKyBiL3NyYy9rZXlib2Fy ZC5jCkBAIC0xMDMxMiw2ICsxMDMxMiwyNzEgQEAgI2RlZmluZSBQVVNIX0NfU1RSKHN0ciwgbGlz dHZhcikgXAogICAgICAgLyogSGVscCBjaGFyIC0gZ28gcm91bmQgYWdhaW4uICAqLwogICAgIH0K IH0KKwwKKy8qIEdldCBhIGNoYXJhY3RlciBmcm9tIHRoZSB0dHkuICAqLworCisvKiBSZWFkIGlu cHV0IGV2ZW50cyB1bnRpbCB3ZSBnZXQgb25lIHRoYXQncyBhY2NlcHRhYmxlIGZvciBvdXIgcHVy cG9zZXMuCisKKyAgIElmIE5PX1NXSVRDSF9GUkFNRSwgc3dpdGNoLWZyYW1lIGV2ZW50cyBhcmUg c3Rhc2hlZAorICAgdW50aWwgd2UgZ2V0IGEgY2hhcmFjdGVyIHdlIGxpa2UsIGFuZCB0aGVuIHN0 dWZmZWQgaW50bworICAgdW5yZWFkX3N3aXRjaF9mcmFtZS4KKworICAgSWYgQVNDSUlfUkVRVUlS RUQsIGNoZWNrIGZ1bmN0aW9uIGtleSBldmVudHMgdG8gc2VlCisgICBpZiB0aGUgdW5tb2RpZmll ZCB2ZXJzaW9uIG9mIHRoZSBzeW1ib2wgaGFzIGEgUWFzY2lpX2NoYXJhY3RlcgorICAgcHJvcGVy dHksIGFuZCB1c2UgdGhhdCBjaGFyYWN0ZXIsIGlmIHByZXNlbnQuCisKKyAgIElmIEVSUk9SX05P TkFTQ0lJLCBzaWduYWwgYW4gZXJyb3IgaWYgdGhlIGlucHV0IHdlCisgICBnZXQgaXNuJ3QgYW4g QVNDSUkgY2hhcmFjdGVyIHdpdGggbW9kaWZpZXJzLiAgSWYgaXQncyBmYWxzZSBidXQKKyAgIEFT Q0lJX1JFUVVJUkVEIGlzIHRydWUsIGp1c3QgcmUtcmVhZCB1bnRpbCB3ZSBnZXQgYW4gQVNDSUkK KyAgIGNoYXJhY3Rlci4KKworICAgSWYgSU5QVVRfTUVUSE9ELCBpbnZva2UgdGhlIGN1cnJlbnQg aW5wdXQgbWV0aG9kCisgICBpZiB0aGUgY2hhcmFjdGVyIHdhcnJhbnRzIHRoYXQuCisKKyAgIElm IFNFQ09ORFMgaXMgYSBudW1iZXIsIHdhaXQgdGhhdCBtYW55IHNlY29uZHMgZm9yIGlucHV0LCBh bmQKKyAgIHJldHVybiBRbmlsIGlmIG5vIGlucHV0IGFycml2ZXMgd2l0aGluIHRoYXQgdGltZS4K KworICAgSWYgdGV4dCBjb252ZXJzaW9uIGlzIGVuYWJsZWQgYW5kIEFTQ0lJX1JFUVVJUkVELCB0 ZW1wb3JhcmlseQorICAgZGlzYWJsZSBhbnkgaW5wdXQgbWV0aG9kIHdoaWNoIHdhbnRzIHRvIHBl cmZvcm0gZWRpdHMsIHVubGVzcworICAgYGRpc2FibGUtaW5oaWJpdC10ZXh0LWNvbnZlcnNpb24n LiAgKi8KKworc3RhdGljIExpc3BfT2JqZWN0CityZWFkX2ZpbHRlcmVkX2V2ZW50IChib29sIG5v X3N3aXRjaF9mcmFtZSwgYm9vbCBhc2NpaV9yZXF1aXJlZCwKKwkJICAgICBib29sIGVycm9yX25v bmFzY2lpLCBib29sIGlucHV0X21ldGhvZCwgTGlzcF9PYmplY3Qgc2Vjb25kcykKK3sKKyAgTGlz cF9PYmplY3QgdmFsLCBkZWxheWVkX3N3aXRjaF9mcmFtZTsKKyAgc3RydWN0IHRpbWVzcGVjIGVu ZF90aW1lOworI2lmZGVmIEhBVkVfVEVYVF9DT05WRVJTSU9OCisgIHNwZWNwZGxfcmVmIGNvdW50 OworI2VuZGlmCisKKyNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KKyAgaWYgKGRpc3BsYXlfaG91 cmdsYXNzX3ApCisgICAgY2FuY2VsX2hvdXJnbGFzcyAoKTsKKyNlbmRpZgorCisjaWZkZWYgSEFW RV9URVhUX0NPTlZFUlNJT04KKyAgY291bnQgPSBTUEVDUERMX0lOREVYICgpOworCisgIC8qIERv bid0IHVzZSB0ZXh0IGNvbnZlcnNpb24gd2hlbiB0cnlpbmcgdG8ganVzdCByZWFkIGEKKyAgICAg Y2hhcmFjdGVyLiAgKi8KKworICBpZiAoYXNjaWlfcmVxdWlyZWQgJiYgIWRpc2FibGVfaW5oaWJp dF90ZXh0X2NvbnZlcnNpb24pCisgICAgeworICAgICAgZGlzYWJsZV90ZXh0X2NvbnZlcnNpb24g KCk7CisgICAgICByZWNvcmRfdW53aW5kX3Byb3RlY3Rfdm9pZCAocmVzdW1lX3RleHRfY29udmVy c2lvbik7CisgICAgfQorI2VuZGlmCisKKyAgZGVsYXllZF9zd2l0Y2hfZnJhbWUgPSBRbmlsOwor CisgIC8qIENvbXB1dGUgdGltZW91dC4gICovCisgIGlmIChOVU1CRVJQIChzZWNvbmRzKSkKKyAg ICB7CisgICAgICBkb3VibGUgZHVyYXRpb24gPSBYRkxPQVRJTlQgKHNlY29uZHMpOworICAgICAg c3RydWN0IHRpbWVzcGVjIHdhaXRfdGltZSA9IGR0b3RpbWVzcGVjIChkdXJhdGlvbik7CisgICAg ICBlbmRfdGltZSA9IHRpbWVzcGVjX2FkZCAoY3VycmVudF90aW1lc3BlYyAoKSwgd2FpdF90aW1l KTsKKyAgICB9CisKKyAgLyogUmVhZCB1bnRpbCB3ZSBnZXQgYW4gYWNjZXB0YWJsZSBldmVudC4g ICovCisgcmV0cnk6CisgIGRvCisgICAgdmFsID0gcmVhZF9jaGFyICgwLCBRbmlsLCAoaW5wdXRf bWV0aG9kID8gUW5pbCA6IFF0KSwgMCwKKwkJICAgICBOVU1CRVJQIChzZWNvbmRzKSA/ICZlbmRf dGltZSA6IE5VTEwpOworICB3aGlsZSAoRklYTlVNUCAodmFsKSAmJiBYRklYTlVNICh2YWwpID09 IC0yKTsgLyogd3Jvbmdfa2JvYXJkX2ptcGJ1ZiAqLworCisgIGlmIChCVUZGRVJQICh2YWwpKQor ICAgIGdvdG8gcmV0cnk7CisKKyAgLyogYHN3aXRjaC1mcmFtZScgZXZlbnRzIGFyZSBwdXQgb2Zm IHVudGlsIGFmdGVyIHRoZSBuZXh0IEFTQ0lJCisgICAgIGNoYXJhY3Rlci4gIFRoaXMgaXMgYmV0 dGVyIHRoYW4gc2lnbmFsaW5nIGFuIGVycm9yIGp1c3QgYmVjYXVzZQorICAgICB0aGUgbGFzdCBj aGFyYWN0ZXJzIHdlcmUgdHlwZWQgdG8gYSBzZXBhcmF0ZSBtaW5pYnVmZmVyIGZyYW1lLAorICAg ICBmb3IgZXhhbXBsZS4gIEV2ZW50dWFsbHksIHNvbWUgY29kZSB3aGljaCBjYW4gZGVhbCB3aXRo CisgICAgIHN3aXRjaC1mcmFtZSBldmVudHMgd2lsbCByZWFkIGl0IGFuZCBwcm9jZXNzIGl0LiAg Ki8KKyAgaWYgKG5vX3N3aXRjaF9mcmFtZQorICAgICAgJiYgRVZFTlRfSEFTX1BBUkFNRVRFUlMg KHZhbCkKKyAgICAgICYmIEVRIChFVkVOVF9IRUFEX0tJTkQgKEVWRU5UX0hFQUQgKHZhbCkpLCBR c3dpdGNoX2ZyYW1lKSkKKyAgICB7CisgICAgICBkZWxheWVkX3N3aXRjaF9mcmFtZSA9IHZhbDsK KyAgICAgIGdvdG8gcmV0cnk7CisgICAgfQorCisgIGlmIChhc2NpaV9yZXF1aXJlZCAmJiAhKE5V TUJFUlAgKHNlY29uZHMpICYmIE5JTFAgKHZhbCkpKQorICAgIHsKKyAgICAgIC8qIENvbnZlcnQg Y2VydGFpbiBzeW1ib2xzIHRvIHRoZWlyIEFTQ0lJIGVxdWl2YWxlbnRzLiAgKi8KKyAgICAgIGlm IChTWU1CT0xQICh2YWwpKQorCXsKKwkgIExpc3BfT2JqZWN0IHRlbSwgdGVtMTsKKwkgIHRlbSA9 IEZnZXQgKHZhbCwgUWV2ZW50X3N5bWJvbF9lbGVtZW50X21hc2spOworCSAgaWYgKCFOSUxQICh0 ZW0pKQorCSAgICB7CisJICAgICAgdGVtMSA9IEZnZXQgKEZjYXIgKHRlbSksIFFhc2NpaV9jaGFy YWN0ZXIpOworCSAgICAgIC8qIE1lcmdlIHRoaXMgc3ltYm9sJ3MgbW9kaWZpZXIgYml0cworCQkg d2l0aCB0aGUgQVNDSUkgZXF1aXZhbGVudCBvZiBpdHMgYmFzaWMgY29kZS4gICovCisJICAgICAg aWYgKEZJWE5VTVAgKHRlbTEpICYmIEZJWE5VTVAgKEZjYXIgKEZjZHIgKHRlbSkpKSkKKwkJWFNF VEZBU1RJTlQgKHZhbCwgWEZJWE5VTSAodGVtMSkgfCBYRklYTlVNIChGY2FyIChGY2RyICh0ZW0p KSkpOworCSAgICB9CisJfQorCisgICAgICAvKiBJZiB3ZSBkb24ndCBoYXZlIGEgY2hhcmFjdGVy IG5vdywgZGVhbCB3aXRoIGl0IGFwcHJvcHJpYXRlbHkuICAqLworICAgICAgaWYgKCFGSVhOVU1Q ICh2YWwpKQorCXsKKwkgIGlmIChlcnJvcl9ub25hc2NpaSkKKwkgICAgeworCSAgICAgIFZ1bnJl YWRfY29tbWFuZF9ldmVudHMgPSBsaXN0MSAodmFsKTsKKwkgICAgICBlcnJvciAoIk5vbi1jaGFy YWN0ZXIgaW5wdXQtZXZlbnQiKTsKKwkgICAgfQorCSAgZWxzZQorCSAgICBnb3RvIHJldHJ5Owor CX0KKyAgICB9CisKKyAgaWYgKCEgTklMUCAoZGVsYXllZF9zd2l0Y2hfZnJhbWUpKQorICAgIHVu cmVhZF9zd2l0Y2hfZnJhbWUgPSBkZWxheWVkX3N3aXRjaF9mcmFtZTsKKworI2lmIDAKKworI2lm ZGVmIEhBVkVfV0lORE9XX1NZU1RFTQorICBpZiAoZGlzcGxheV9ob3VyZ2xhc3NfcCkKKyAgICBz dGFydF9ob3VyZ2xhc3MgKCk7CisjZW5kaWYKKworI2VuZGlmCisKKyNpZmRlZiBIQVZFX1RFWFRf Q09OVkVSU0lPTgorICByZXR1cm4gdW5iaW5kX3RvIChjb3VudCwgdmFsKTsKKyNlbHNlCisgIHJl dHVybiB2YWw7CisjZW5kaWYKK30KKworREVGVU4gKCJyZWFkLWNoYXIiLCBGcmVhZF9jaGFyLCBT cmVhZF9jaGFyLCAwLCAzLCAwLAorICAgICAgIGRvYzogLyogUmVhZCBhIGNoYXJhY3RlciBldmVu dCBmcm9tIHRoZSBjb21tYW5kIGlucHV0IChrZXlib2FyZCBvciBtYWNybykuCitSZXR1cm4gdGhl IGNoYXJhY3RlciBhcyBhIG51bWJlci4KK0lmIHRoZSBldmVudCBoYXMgbW9kaWZpZXJzLCB0aGV5 IGFyZSByZXNvbHZlZCBhbmQgcmVmbGVjdGVkIGluIHRoZQorcmV0dXJuZWQgY2hhcmFjdGVyIGNv ZGUgaWYgcG9zc2libGUgKGUuZy4gQy1TUEMgeWllbGRzIDAgYW5kIEMtYSB5aWVsZHMgOTcpLgor SWYgc29tZSBvZiB0aGUgbW9kaWZpZXJzIGNhbm5vdCBiZSByZWZsZWN0ZWQgaW4gdGhlIGNoYXJh Y3RlciBjb2RlLCB0aGUKK3JldHVybmVkIHZhbHVlIHdpbGwgaW5jbHVkZSB0aG9zZSBtb2RpZmll cnMsIGFuZCB3aWxsIG5vdCBiZSBhIHZhbGlkCitjaGFyYWN0ZXIgY29kZTogaXQgd2lsbCBmYWls IHRoZSBgY2hhcmFjdGVycCcgdGVzdC4gIFVzZSBgZXZlbnQtYmFzaWMtdHlwZScKK3RvIHJlY292 ZXIgdGhlIGNoYXJhY3RlciBjb2RlIHdpdGggdGhlIG1vZGlmaWVycyByZW1vdmVkLgorCitJZiB0 aGUgdXNlciBnZW5lcmF0ZXMgYW4gZXZlbnQgd2hpY2ggaXMgbm90IGEgY2hhcmFjdGVyIChpLmUu IGEgbW91c2UKK2NsaWNrIG9yIGZ1bmN0aW9uIGtleSBldmVudCksIGByZWFkLWNoYXInIHNpZ25h bHMgYW4gZXJyb3IuICBBcyBhbgorZXhjZXB0aW9uLCBzd2l0Y2gtZnJhbWUgZXZlbnRzIGFyZSBw dXQgb2ZmIHVudGlsIG5vbi1jaGFyYWN0ZXIgZXZlbnRzCitjYW4gYmUgcmVhZC4KK0lmIHlvdSB3 YW50IHRvIHJlYWQgbm9uLWNoYXJhY3RlciBldmVudHMsIG9yIGlnbm9yZSB0aGVtLCBjYWxsCitg cmVhZC1ldmVudCcgb3IgYHJlYWQtY2hhci1leGNsdXNpdmUnIGluc3RlYWQuCisKK0lmIHRoZSBv cHRpb25hbCBhcmd1bWVudCBQUk9NUFQgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGF0IGFzIGEgcHJv bXB0LgorSWYgUFJPTVBUIGlzIG5pbCBvciB0aGUgc3RyaW5nIFwiXCIsIHRoZSBrZXkgc2VxdWVu Y2UvZXZlbnRzIHRoYXQgbGVkCit0byB0aGUgY3VycmVudCBjb21tYW5kIGlzIHVzZWQgYXMgdGhl IHByb21wdC4KKworSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IElOSEVSSVQtSU5QVVQtTUVUSE9E IGlzIG5vbi1uaWwgYW5kIHNvbWUKK2lucHV0IG1ldGhvZCBpcyB0dXJuZWQgb24gaW4gdGhlIGN1 cnJlbnQgYnVmZmVyLCB0aGF0IGlucHV0IG1ldGhvZAoraXMgdXNlZCBmb3IgcmVhZGluZyBhIGNo YXJhY3Rlci4KKworSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFNFQ09ORFMgaXMgbm9uLW5pbCwg aXQgc2hvdWxkIGJlIGEgbnVtYmVyCitzcGVjaWZ5aW5nIHRoZSBtYXhpbXVtIG51bWJlciBvZiBz ZWNvbmRzIHRvIHdhaXQgZm9yIGlucHV0LiAgSWYgbm8KK2lucHV0IGFycml2ZXMgaW4gdGhhdCB0 aW1lLCByZXR1cm4gbmlsLiAgU0VDT05EUyBtYXkgYmUgYQorZmxvYXRpbmctcG9pbnQgdmFsdWUu CisKK0lmIGBpbmhpYml0LWludGVyYWN0aW9uJyBpcyBub24tbmlsLCB0aGlzIGZ1bmN0aW9uIHdp bGwgc2lnbmFsIGFuCitgaW5oaWJpdGVkLWludGVyYWN0aW9uJyBlcnJvci4gICovKQorICAoTGlz cF9PYmplY3QgcHJvbXB0LCBMaXNwX09iamVjdCBpbmhlcml0X2lucHV0X21ldGhvZCwgTGlzcF9P YmplY3Qgc2Vjb25kcykKK3sKKyAgTGlzcF9PYmplY3QgdmFsOworCisgIGJhcmZfaWZfaW50ZXJh Y3Rpb25faW5oaWJpdGVkICgpOworCisgIGlmICghIE5JTFAgKHByb21wdCkpCisgICAgeworICAg ICAgY2FuY2VsX2VjaG9pbmcgKCk7CisgICAgICBtZXNzYWdlX3dpdGhfc3RyaW5nICgiJXMiLCBw cm9tcHQsIDApOworICAgIH0KKyAgdmFsID0gcmVhZF9maWx0ZXJlZF9ldmVudCAoMSwgMSwgMSwg ISBOSUxQIChpbmhlcml0X2lucHV0X21ldGhvZCksIHNlY29uZHMpOworCisgIHJldHVybiAoIUZJ WE5VTVAgKHZhbCkgPyBRbmlsCisJICA6IG1ha2VfZml4bnVtIChjaGFyX3Jlc29sdmVfbW9kaWZp ZXJfbWFzayAoWEZJWE5VTSAodmFsKSkpKTsKK30KKworREVGVU4gKCJyZWFkLWV2ZW50IiwgRnJl YWRfZXZlbnQsIFNyZWFkX2V2ZW50LCAwLCAzLCAwLAorICAgICAgIGRvYzogLyogUmVhZCBhbmQg cmV0dXJuIGFuIGV2ZW50IG9iamVjdCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uCisKK0lmIHlvdSB3 YW50IHRvIHJlYWQgbm9uLWNoYXJhY3RlciBldmVudHMsIGNvbnNpZGVyIGNhbGxpbmcgYHJlYWQt a2V5JworaW5zdGVhZC4gIGByZWFkLWtleScgd2lsbCBkZWNvZGUgZXZlbnRzIHZpYSBgaW5wdXQt ZGVjb2RlLW1hcCcgdGhhdAorYHJlYWQtZXZlbnQnIHdpbGwgbm90LiAgT24gYSB0ZXJtaW5hbCB0 aGlzIGluY2x1ZGVzIGZ1bmN0aW9uIGtleXMgc3VjaAorYXMgPEY3PiBhbmQgPFJJR0hUPiwgb3Ig bW91c2UgZXZlbnRzIGdlbmVyYXRlZCBieSBgeHRlcm0tbW91c2UtbW9kZScuCisKK0lmIHRoZSBv cHRpb25hbCBhcmd1bWVudCBQUk9NUFQgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGF0IGFzIGEgcHJv bXB0LgorSWYgUFJPTVBUIGlzIG5pbCBvciB0aGUgc3RyaW5nIFwiXCIsIHRoZSBrZXkgc2VxdWVu Y2UvZXZlbnRzIHRoYXQgbGVkCit0byB0aGUgY3VycmVudCBjb21tYW5kIGlzIHVzZWQgYXMgdGhl IHByb21wdC4KKworSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IElOSEVSSVQtSU5QVVQtTUVUSE9E IGlzIG5vbi1uaWwgYW5kIHNvbWUKK2lucHV0IG1ldGhvZCBpcyB0dXJuZWQgb24gaW4gdGhlIGN1 cnJlbnQgYnVmZmVyLCB0aGF0IGlucHV0IG1ldGhvZAoraXMgdXNlZCBmb3IgcmVhZGluZyBhIGNo YXJhY3Rlci4KKworSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFNFQ09ORFMgaXMgbm9uLW5pbCwg aXQgc2hvdWxkIGJlIGEgbnVtYmVyCitzcGVjaWZ5aW5nIHRoZSBtYXhpbXVtIG51bWJlciBvZiBz ZWNvbmRzIHRvIHdhaXQgZm9yIGlucHV0LiAgSWYgbm8KK2lucHV0IGFycml2ZXMgaW4gdGhhdCB0 aW1lLCByZXR1cm4gbmlsLiAgU0VDT05EUyBtYXkgYmUgYQorZmxvYXRpbmctcG9pbnQgdmFsdWUu CisKK0lmIGBpbmhpYml0LWludGVyYWN0aW9uJyBpcyBub24tbmlsLCB0aGlzIGZ1bmN0aW9uIHdp bGwgc2lnbmFsIGFuCitgaW5oaWJpdGVkLWludGVyYWN0aW9uJyBlcnJvci4gICovKQorICAoTGlz cF9PYmplY3QgcHJvbXB0LCBMaXNwX09iamVjdCBpbmhlcml0X2lucHV0X21ldGhvZCwgTGlzcF9P YmplY3Qgc2Vjb25kcykKK3sKKyAgYmFyZl9pZl9pbnRlcmFjdGlvbl9pbmhpYml0ZWQgKCk7CisK KyAgaWYgKCEgTklMUCAocHJvbXB0KSkKKyAgICB7CisgICAgICBjYW5jZWxfZWNob2luZyAoKTsK KyAgICAgIG1lc3NhZ2Vfd2l0aF9zdHJpbmcgKCIlcyIsIHByb21wdCwgMCk7CisgICAgfQorICBy ZXR1cm4gcmVhZF9maWx0ZXJlZF9ldmVudCAoMCwgMCwgMCwgISBOSUxQIChpbmhlcml0X2lucHV0 X21ldGhvZCksIHNlY29uZHMpOworfQorCitERUZVTiAoInJlYWQtY2hhci1leGNsdXNpdmUiLCBG cmVhZF9jaGFyX2V4Y2x1c2l2ZSwgU3JlYWRfY2hhcl9leGNsdXNpdmUsIDAsIDMsIDAsCisgICAg ICAgZG9jOiAvKiBSZWFkIGEgY2hhcmFjdGVyIGV2ZW50IGZyb20gdGhlIGNvbW1hbmQgaW5wdXQg KGtleWJvYXJkIG9yIG1hY3JvKS4KK1JldHVybiB0aGUgY2hhcmFjdGVyIGFzIGEgbnVtYmVyLiAg Tm9uLWNoYXJhY3RlciBldmVudHMgYXJlIGlnbm9yZWQuCitJZiB0aGUgZXZlbnQgaGFzIG1vZGlm aWVycywgdGhleSBhcmUgcmVzb2x2ZWQgYW5kIHJlZmxlY3RlZCBpbiB0aGUKK3JldHVybmVkIGNo YXJhY3RlciBjb2RlIGlmIHBvc3NpYmxlIChlLmcuIEMtU1BDIHlpZWxkcyAwIGFuZCBDLWEgeWll bGRzIDk3KS4KK0lmIHNvbWUgb2YgdGhlIG1vZGlmaWVycyBjYW5ub3QgYmUgcmVmbGVjdGVkIGlu IHRoZSBjaGFyYWN0ZXIgY29kZSwgdGhlCityZXR1cm5lZCB2YWx1ZSB3aWxsIGluY2x1ZGUgdGhv c2UgbW9kaWZpZXJzLCBhbmQgd2lsbCBub3QgYmUgYSB2YWxpZAorY2hhcmFjdGVyIGNvZGU6IGl0 IHdpbGwgZmFpbCB0aGUgYGNoYXJhY3RlcnAnIHRlc3QuICBVc2UgYGV2ZW50LWJhc2ljLXR5cGUn Cit0byByZWNvdmVyIHRoZSBjaGFyYWN0ZXIgY29kZSB3aXRoIHRoZSBtb2RpZmllcnMgcmVtb3Zl ZC4KKworSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFBST01QVCBpcyBub24tbmlsLCBkaXNwbGF5 IHRoYXQgYXMgYSBwcm9tcHQuCitJZiBQUk9NUFQgaXMgbmlsIG9yIHRoZSBzdHJpbmcgXCJcIiwg dGhlIGtleSBzZXF1ZW5jZS9ldmVudHMgdGhhdCBsZWQKK3RvIHRoZSBjdXJyZW50IGNvbW1hbmQg aXMgdXNlZCBhcyB0aGUgcHJvbXB0LgorCitJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJ VC1JTlBVVC1NRVRIT0QgaXMgbm9uLW5pbCBhbmQgc29tZQoraW5wdXQgbWV0aG9kIGlzIHR1cm5l ZCBvbiBpbiB0aGUgY3VycmVudCBidWZmZXIsIHRoYXQgaW5wdXQgbWV0aG9kCitpcyB1c2VkIGZv ciByZWFkaW5nIGEgY2hhcmFjdGVyLgorCitJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgU0VDT05E UyBpcyBub24tbmlsLCBpdCBzaG91bGQgYmUgYSBudW1iZXIKK3NwZWNpZnlpbmcgdGhlIG1heGlt dW0gbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBmb3IgaW5wdXQuICBJZiBubworaW5wdXQgYXJy aXZlcyBpbiB0aGF0IHRpbWUsIHJldHVybiBuaWwuICBTRUNPTkRTIG1heSBiZSBhCitmbG9hdGlu Zy1wb2ludCB2YWx1ZS4KKworSWYgYGluaGliaXQtaW50ZXJhY3Rpb24nIGlzIG5vbi1uaWwsIHRo aXMgZnVuY3Rpb24gd2lsbCBzaWduYWwgYW4KK2BpbmhpYml0ZWQtaW50ZXJhY3Rpb24nIGVycm9y LiAgKi8pCisgIChMaXNwX09iamVjdCBwcm9tcHQsIExpc3BfT2JqZWN0IGluaGVyaXRfaW5wdXRf bWV0aG9kLCBMaXNwX09iamVjdCBzZWNvbmRzKQoreworICBMaXNwX09iamVjdCB2YWw7CisKKyAg YmFyZl9pZl9pbnRlcmFjdGlvbl9pbmhpYml0ZWQgKCk7CisKKyAgaWYgKCEgTklMUCAocHJvbXB0 KSkKKyAgICB7CisgICAgICBjYW5jZWxfZWNob2luZyAoKTsKKyAgICAgIG1lc3NhZ2Vfd2l0aF9z dHJpbmcgKCIlcyIsIHByb21wdCwgMCk7CisgICAgfQorCisgIHZhbCA9IHJlYWRfZmlsdGVyZWRf ZXZlbnQgKDEsIDEsIDAsICEgTklMUCAoaW5oZXJpdF9pbnB1dF9tZXRob2QpLCBzZWNvbmRzKTsK KworICByZXR1cm4gKCFGSVhOVU1QICh2YWwpID8gUW5pbAorCSAgOiBtYWtlX2ZpeG51bSAoY2hh cl9yZXNvbHZlX21vZGlmaWVyX21hc2sgKFhGSVhOVU0gKHZhbCkpKSk7Cit9CisKIAwKIC8qIFJl YWRpbmcga2V5IHNlcXVlbmNlcy4gICovCiAKQEAgLTEzMzQxLDEwICsxMzYwNiwxNSBAQCBzeW1z X29mX2tleWJvYXJkICh2b2lkKQogICBtZW51X2Jhcl90b3VjaF9pZCA9IFFuaWw7CiAgIHN0YXRp Y3BybyAoJm1lbnVfYmFyX3RvdWNoX2lkKTsKIAorICBERUZTWU0gKFFyZWFkX2NoYXIsICJyZWFk LWNoYXIiKTsKKwogICBkZWZzdWJyICgmU2N1cnJlbnRfaWRsZV90aW1lKTsKICAgZGVmc3ViciAo JlNldmVudF9zeW1ib2xfcGFyc2VfbW9kaWZpZXJzKTsKICAgZGVmc3ViciAoJlNldmVudF9jb252 ZXJ0X2xpc3QpOwogICBkZWZzdWJyICgmU2ludGVybmFsX2hhbmRsZV9mb2N1c19pbik7CisgIGRl ZnN1YnIgKCZTcmVhZF9jaGFyKTsKKyAgZGVmc3ViciAoJlNyZWFkX2NoYXJfZXhjbHVzaXZlKTsK KyAgZGVmc3ViciAoJlNyZWFkX2V2ZW50KTsKICAgZGVmc3ViciAoJlNyZWFkX2tleV9zZXF1ZW5j ZSk7CiAgIGRlZnN1YnIgKCZTcmVhZF9rZXlfc2VxdWVuY2VfdmVjdG9yKTsKICAgZGVmc3ViciAo JlNyZWN1cnNpdmVfZWRpdCk7CmRpZmYgLS1naXQgYS9zcmMvbHJlYWQuYyBiL3NyYy9scmVhZC5j CmluZGV4IGMwMjA2MGQzZWE1Li4wNjlhNzE2MmUxMiAxMDA2NDQKLS0tIGEvc3JjL2xyZWFkLmMK KysrIGIvc3JjL2xyZWFkLmMKQEAgLTczNywyNzEgKzczNyw2IEBAIHJlYWRfZW1hY3NfbXVsZV9j aGFyIChzb3VyY2VfdCAqc3JjLCBpbnQgYykKIHN0YXRpYyBMaXNwX09iamVjdCBzdWJzdGl0dXRl X29iamVjdF9yZWN1cnNlIChzdHJ1Y3Qgc3Vic3QgKiwgTGlzcF9PYmplY3QpOwogc3RhdGljIHZv aWQgc3Vic3RpdHV0ZV9pbl9pbnRlcnZhbCAoSU5URVJWQUwsIHZvaWQgKik7CiAKLQwKLS8qIEdl dCBhIGNoYXJhY3RlciBmcm9tIHRoZSB0dHkuICAqLwotCi0vKiBSZWFkIGlucHV0IGV2ZW50cyB1 bnRpbCB3ZSBnZXQgb25lIHRoYXQncyBhY2NlcHRhYmxlIGZvciBvdXIgcHVycG9zZXMuCi0KLSAg IElmIE5PX1NXSVRDSF9GUkFNRSwgc3dpdGNoLWZyYW1lIGV2ZW50cyBhcmUgc3Rhc2hlZAotICAg dW50aWwgd2UgZ2V0IGEgY2hhcmFjdGVyIHdlIGxpa2UsIGFuZCB0aGVuIHN0dWZmZWQgaW50bwot ICAgdW5yZWFkX3N3aXRjaF9mcmFtZS4KLQotICAgSWYgQVNDSUlfUkVRVUlSRUQsIGNoZWNrIGZ1 bmN0aW9uIGtleSBldmVudHMgdG8gc2VlCi0gICBpZiB0aGUgdW5tb2RpZmllZCB2ZXJzaW9uIG9m IHRoZSBzeW1ib2wgaGFzIGEgUWFzY2lpX2NoYXJhY3RlcgotICAgcHJvcGVydHksIGFuZCB1c2Ug dGhhdCBjaGFyYWN0ZXIsIGlmIHByZXNlbnQuCi0KLSAgIElmIEVSUk9SX05PTkFTQ0lJLCBzaWdu YWwgYW4gZXJyb3IgaWYgdGhlIGlucHV0IHdlCi0gICBnZXQgaXNuJ3QgYW4gQVNDSUkgY2hhcmFj dGVyIHdpdGggbW9kaWZpZXJzLiAgSWYgaXQncyBmYWxzZSBidXQKLSAgIEFTQ0lJX1JFUVVJUkVE IGlzIHRydWUsIGp1c3QgcmUtcmVhZCB1bnRpbCB3ZSBnZXQgYW4gQVNDSUkKLSAgIGNoYXJhY3Rl ci4KLQotICAgSWYgSU5QVVRfTUVUSE9ELCBpbnZva2UgdGhlIGN1cnJlbnQgaW5wdXQgbWV0aG9k Ci0gICBpZiB0aGUgY2hhcmFjdGVyIHdhcnJhbnRzIHRoYXQuCi0KLSAgIElmIFNFQ09ORFMgaXMg YSBudW1iZXIsIHdhaXQgdGhhdCBtYW55IHNlY29uZHMgZm9yIGlucHV0LCBhbmQKLSAgIHJldHVy biBRbmlsIGlmIG5vIGlucHV0IGFycml2ZXMgd2l0aGluIHRoYXQgdGltZS4KLQotICAgSWYgdGV4 dCBjb252ZXJzaW9uIGlzIGVuYWJsZWQgYW5kIEFTQ0lJX1JFUVVJUkVELCB0ZW1wb3JhcmlseQot ICAgZGlzYWJsZSBhbnkgaW5wdXQgbWV0aG9kIHdoaWNoIHdhbnRzIHRvIHBlcmZvcm0gZWRpdHMs IHVubGVzcwotICAgYGRpc2FibGUtaW5oaWJpdC10ZXh0LWNvbnZlcnNpb24nLiAgKi8KLQotc3Rh dGljIExpc3BfT2JqZWN0Ci1yZWFkX2ZpbHRlcmVkX2V2ZW50IChib29sIG5vX3N3aXRjaF9mcmFt ZSwgYm9vbCBhc2NpaV9yZXF1aXJlZCwKLQkJICAgICBib29sIGVycm9yX25vbmFzY2lpLCBib29s IGlucHV0X21ldGhvZCwgTGlzcF9PYmplY3Qgc2Vjb25kcykKLXsKLSAgTGlzcF9PYmplY3QgdmFs LCBkZWxheWVkX3N3aXRjaF9mcmFtZTsKLSAgc3RydWN0IHRpbWVzcGVjIGVuZF90aW1lOwotI2lm ZGVmIEhBVkVfVEVYVF9DT05WRVJTSU9OCi0gIHNwZWNwZGxfcmVmIGNvdW50OwotI2VuZGlmCi0K LSNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KLSAgaWYgKGRpc3BsYXlfaG91cmdsYXNzX3ApCi0g ICAgY2FuY2VsX2hvdXJnbGFzcyAoKTsKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9URVhUX0NPTlZF UlNJT04KLSAgY291bnQgPSBTUEVDUERMX0lOREVYICgpOwotCi0gIC8qIERvbid0IHVzZSB0ZXh0 IGNvbnZlcnNpb24gd2hlbiB0cnlpbmcgdG8ganVzdCByZWFkIGEKLSAgICAgY2hhcmFjdGVyLiAg Ki8KLQotICBpZiAoYXNjaWlfcmVxdWlyZWQgJiYgIWRpc2FibGVfaW5oaWJpdF90ZXh0X2NvbnZl cnNpb24pCi0gICAgewotICAgICAgZGlzYWJsZV90ZXh0X2NvbnZlcnNpb24gKCk7Ci0gICAgICBy ZWNvcmRfdW53aW5kX3Byb3RlY3Rfdm9pZCAocmVzdW1lX3RleHRfY29udmVyc2lvbik7Ci0gICAg fQotI2VuZGlmCi0KLSAgZGVsYXllZF9zd2l0Y2hfZnJhbWUgPSBRbmlsOwotCi0gIC8qIENvbXB1 dGUgdGltZW91dC4gICovCi0gIGlmIChOVU1CRVJQIChzZWNvbmRzKSkKLSAgICB7Ci0gICAgICBk b3VibGUgZHVyYXRpb24gPSBYRkxPQVRJTlQgKHNlY29uZHMpOwotICAgICAgc3RydWN0IHRpbWVz cGVjIHdhaXRfdGltZSA9IGR0b3RpbWVzcGVjIChkdXJhdGlvbik7Ci0gICAgICBlbmRfdGltZSA9 IHRpbWVzcGVjX2FkZCAoY3VycmVudF90aW1lc3BlYyAoKSwgd2FpdF90aW1lKTsKLSAgICB9Ci0K LSAgLyogUmVhZCB1bnRpbCB3ZSBnZXQgYW4gYWNjZXB0YWJsZSBldmVudC4gICovCi0gcmV0cnk6 Ci0gIGRvCi0gICAgdmFsID0gcmVhZF9jaGFyICgwLCBRbmlsLCAoaW5wdXRfbWV0aG9kID8gUW5p bCA6IFF0KSwgMCwKLQkJICAgICBOVU1CRVJQIChzZWNvbmRzKSA/ICZlbmRfdGltZSA6IE5VTEwp OwotICB3aGlsZSAoRklYTlVNUCAodmFsKSAmJiBYRklYTlVNICh2YWwpID09IC0yKTsgLyogd3Jv bmdfa2JvYXJkX2ptcGJ1ZiAqLwotCi0gIGlmIChCVUZGRVJQICh2YWwpKQotICAgIGdvdG8gcmV0 cnk7Ci0KLSAgLyogYHN3aXRjaC1mcmFtZScgZXZlbnRzIGFyZSBwdXQgb2ZmIHVudGlsIGFmdGVy IHRoZSBuZXh0IEFTQ0lJCi0gICAgIGNoYXJhY3Rlci4gIFRoaXMgaXMgYmV0dGVyIHRoYW4gc2ln bmFsaW5nIGFuIGVycm9yIGp1c3QgYmVjYXVzZQotICAgICB0aGUgbGFzdCBjaGFyYWN0ZXJzIHdl cmUgdHlwZWQgdG8gYSBzZXBhcmF0ZSBtaW5pYnVmZmVyIGZyYW1lLAotICAgICBmb3IgZXhhbXBs ZS4gIEV2ZW50dWFsbHksIHNvbWUgY29kZSB3aGljaCBjYW4gZGVhbCB3aXRoCi0gICAgIHN3aXRj aC1mcmFtZSBldmVudHMgd2lsbCByZWFkIGl0IGFuZCBwcm9jZXNzIGl0LiAgKi8KLSAgaWYgKG5v X3N3aXRjaF9mcmFtZQotICAgICAgJiYgRVZFTlRfSEFTX1BBUkFNRVRFUlMgKHZhbCkKLSAgICAg ICYmIEVRIChFVkVOVF9IRUFEX0tJTkQgKEVWRU5UX0hFQUQgKHZhbCkpLCBRc3dpdGNoX2ZyYW1l KSkKLSAgICB7Ci0gICAgICBkZWxheWVkX3N3aXRjaF9mcmFtZSA9IHZhbDsKLSAgICAgIGdvdG8g cmV0cnk7Ci0gICAgfQotCi0gIGlmIChhc2NpaV9yZXF1aXJlZCAmJiAhKE5VTUJFUlAgKHNlY29u ZHMpICYmIE5JTFAgKHZhbCkpKQotICAgIHsKLSAgICAgIC8qIENvbnZlcnQgY2VydGFpbiBzeW1i b2xzIHRvIHRoZWlyIEFTQ0lJIGVxdWl2YWxlbnRzLiAgKi8KLSAgICAgIGlmIChTWU1CT0xQICh2 YWwpKQotCXsKLQkgIExpc3BfT2JqZWN0IHRlbSwgdGVtMTsKLQkgIHRlbSA9IEZnZXQgKHZhbCwg UWV2ZW50X3N5bWJvbF9lbGVtZW50X21hc2spOwotCSAgaWYgKCFOSUxQICh0ZW0pKQotCSAgICB7 Ci0JICAgICAgdGVtMSA9IEZnZXQgKEZjYXIgKHRlbSksIFFhc2NpaV9jaGFyYWN0ZXIpOwotCSAg ICAgIC8qIE1lcmdlIHRoaXMgc3ltYm9sJ3MgbW9kaWZpZXIgYml0cwotCQkgd2l0aCB0aGUgQVND SUkgZXF1aXZhbGVudCBvZiBpdHMgYmFzaWMgY29kZS4gICovCi0JICAgICAgaWYgKEZJWE5VTVAg KHRlbTEpICYmIEZJWE5VTVAgKEZjYXIgKEZjZHIgKHRlbSkpKSkKLQkJWFNFVEZBU1RJTlQgKHZh bCwgWEZJWE5VTSAodGVtMSkgfCBYRklYTlVNIChGY2FyIChGY2RyICh0ZW0pKSkpOwotCSAgICB9 Ci0JfQotCi0gICAgICAvKiBJZiB3ZSBkb24ndCBoYXZlIGEgY2hhcmFjdGVyIG5vdywgZGVhbCB3 aXRoIGl0IGFwcHJvcHJpYXRlbHkuICAqLwotICAgICAgaWYgKCFGSVhOVU1QICh2YWwpKQotCXsK LQkgIGlmIChlcnJvcl9ub25hc2NpaSkKLQkgICAgewotCSAgICAgIFZ1bnJlYWRfY29tbWFuZF9l dmVudHMgPSBsaXN0MSAodmFsKTsKLQkgICAgICBlcnJvciAoIk5vbi1jaGFyYWN0ZXIgaW5wdXQt ZXZlbnQiKTsKLQkgICAgfQotCSAgZWxzZQotCSAgICBnb3RvIHJldHJ5OwotCX0KLSAgICB9Ci0K LSAgaWYgKCEgTklMUCAoZGVsYXllZF9zd2l0Y2hfZnJhbWUpKQotICAgIHVucmVhZF9zd2l0Y2hf ZnJhbWUgPSBkZWxheWVkX3N3aXRjaF9mcmFtZTsKLQotI2lmIDAKLQotI2lmZGVmIEhBVkVfV0lO RE9XX1NZU1RFTQotICBpZiAoZGlzcGxheV9ob3VyZ2xhc3NfcCkKLSAgICBzdGFydF9ob3VyZ2xh c3MgKCk7Ci0jZW5kaWYKLQotI2VuZGlmCi0KLSNpZmRlZiBIQVZFX1RFWFRfQ09OVkVSU0lPTgot ICByZXR1cm4gdW5iaW5kX3RvIChjb3VudCwgdmFsKTsKLSNlbHNlCi0gIHJldHVybiB2YWw7Ci0j ZW5kaWYKLX0KLQotREVGVU4gKCJyZWFkLWNoYXIiLCBGcmVhZF9jaGFyLCBTcmVhZF9jaGFyLCAw LCAzLCAwLAotICAgICAgIGRvYzogLyogUmVhZCBhIGNoYXJhY3RlciBldmVudCBmcm9tIHRoZSBj b21tYW5kIGlucHV0IChrZXlib2FyZCBvciBtYWNybykuCi1SZXR1cm4gdGhlIGNoYXJhY3RlciBh cyBhIG51bWJlci4KLUlmIHRoZSBldmVudCBoYXMgbW9kaWZpZXJzLCB0aGV5IGFyZSByZXNvbHZl ZCBhbmQgcmVmbGVjdGVkIGluIHRoZQotcmV0dXJuZWQgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2li bGUgKGUuZy4gQy1TUEMgeWllbGRzIDAgYW5kIEMtYSB5aWVsZHMgOTcpLgotSWYgc29tZSBvZiB0 aGUgbW9kaWZpZXJzIGNhbm5vdCBiZSByZWZsZWN0ZWQgaW4gdGhlIGNoYXJhY3RlciBjb2RlLCB0 aGUKLXJldHVybmVkIHZhbHVlIHdpbGwgaW5jbHVkZSB0aG9zZSBtb2RpZmllcnMsIGFuZCB3aWxs IG5vdCBiZSBhIHZhbGlkCi1jaGFyYWN0ZXIgY29kZTogaXQgd2lsbCBmYWlsIHRoZSBgY2hhcmFj dGVycCcgdGVzdC4gIFVzZSBgZXZlbnQtYmFzaWMtdHlwZScKLXRvIHJlY292ZXIgdGhlIGNoYXJh Y3RlciBjb2RlIHdpdGggdGhlIG1vZGlmaWVycyByZW1vdmVkLgotCi1JZiB0aGUgdXNlciBnZW5l cmF0ZXMgYW4gZXZlbnQgd2hpY2ggaXMgbm90IGEgY2hhcmFjdGVyIChpLmUuIGEgbW91c2UKLWNs aWNrIG9yIGZ1bmN0aW9uIGtleSBldmVudCksIGByZWFkLWNoYXInIHNpZ25hbHMgYW4gZXJyb3Iu ICBBcyBhbgotZXhjZXB0aW9uLCBzd2l0Y2gtZnJhbWUgZXZlbnRzIGFyZSBwdXQgb2ZmIHVudGls IG5vbi1jaGFyYWN0ZXIgZXZlbnRzCi1jYW4gYmUgcmVhZC4KLUlmIHlvdSB3YW50IHRvIHJlYWQg bm9uLWNoYXJhY3RlciBldmVudHMsIG9yIGlnbm9yZSB0aGVtLCBjYWxsCi1gcmVhZC1ldmVudCcg b3IgYHJlYWQtY2hhci1leGNsdXNpdmUnIGluc3RlYWQuCi0KLUlmIHRoZSBvcHRpb25hbCBhcmd1 bWVudCBQUk9NUFQgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGF0IGFzIGEgcHJvbXB0LgotSWYgUFJP TVBUIGlzIG5pbCBvciB0aGUgc3RyaW5nIFwiXCIsIHRoZSBrZXkgc2VxdWVuY2UvZXZlbnRzIHRo YXQgbGVkCi10byB0aGUgY3VycmVudCBjb21tYW5kIGlzIHVzZWQgYXMgdGhlIHByb21wdC4KLQot SWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IElOSEVSSVQtSU5QVVQtTUVUSE9EIGlzIG5vbi1uaWwg YW5kIHNvbWUKLWlucHV0IG1ldGhvZCBpcyB0dXJuZWQgb24gaW4gdGhlIGN1cnJlbnQgYnVmZmVy LCB0aGF0IGlucHV0IG1ldGhvZAotaXMgdXNlZCBmb3IgcmVhZGluZyBhIGNoYXJhY3Rlci4KLQot SWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFNFQ09ORFMgaXMgbm9uLW5pbCwgaXQgc2hvdWxkIGJl IGEgbnVtYmVyCi1zcGVjaWZ5aW5nIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIHRvIHdh aXQgZm9yIGlucHV0LiAgSWYgbm8KLWlucHV0IGFycml2ZXMgaW4gdGhhdCB0aW1lLCByZXR1cm4g bmlsLiAgU0VDT05EUyBtYXkgYmUgYQotZmxvYXRpbmctcG9pbnQgdmFsdWUuCi0KLUlmIGBpbmhp Yml0LWludGVyYWN0aW9uJyBpcyBub24tbmlsLCB0aGlzIGZ1bmN0aW9uIHdpbGwgc2lnbmFsIGFu Ci1gaW5oaWJpdGVkLWludGVyYWN0aW9uJyBlcnJvci4gICovKQotICAoTGlzcF9PYmplY3QgcHJv bXB0LCBMaXNwX09iamVjdCBpbmhlcml0X2lucHV0X21ldGhvZCwgTGlzcF9PYmplY3Qgc2Vjb25k cykKLXsKLSAgTGlzcF9PYmplY3QgdmFsOwotCi0gIGJhcmZfaWZfaW50ZXJhY3Rpb25faW5oaWJp dGVkICgpOwotCi0gIGlmICghIE5JTFAgKHByb21wdCkpCi0gICAgewotICAgICAgY2FuY2VsX2Vj aG9pbmcgKCk7Ci0gICAgICBtZXNzYWdlX3dpdGhfc3RyaW5nICgiJXMiLCBwcm9tcHQsIDApOwot ICAgIH0KLSAgdmFsID0gcmVhZF9maWx0ZXJlZF9ldmVudCAoMSwgMSwgMSwgISBOSUxQIChpbmhl cml0X2lucHV0X21ldGhvZCksIHNlY29uZHMpOwotCi0gIHJldHVybiAoIUZJWE5VTVAgKHZhbCkg PyBRbmlsCi0JICA6IG1ha2VfZml4bnVtIChjaGFyX3Jlc29sdmVfbW9kaWZpZXJfbWFzayAoWEZJ WE5VTSAodmFsKSkpKTsKLX0KLQotREVGVU4gKCJyZWFkLWV2ZW50IiwgRnJlYWRfZXZlbnQsIFNy ZWFkX2V2ZW50LCAwLCAzLCAwLAotICAgICAgIGRvYzogLyogUmVhZCBhbmQgcmV0dXJuIGFuIGV2 ZW50IG9iamVjdCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uCi0KLUlmIHlvdSB3YW50IHRvIHJlYWQg bm9uLWNoYXJhY3RlciBldmVudHMsIGNvbnNpZGVyIGNhbGxpbmcgYHJlYWQta2V5JwotaW5zdGVh ZC4gIGByZWFkLWtleScgd2lsbCBkZWNvZGUgZXZlbnRzIHZpYSBgaW5wdXQtZGVjb2RlLW1hcCcg dGhhdAotYHJlYWQtZXZlbnQnIHdpbGwgbm90LiAgT24gYSB0ZXJtaW5hbCB0aGlzIGluY2x1ZGVz IGZ1bmN0aW9uIGtleXMgc3VjaAotYXMgPEY3PiBhbmQgPFJJR0hUPiwgb3IgbW91c2UgZXZlbnRz IGdlbmVyYXRlZCBieSBgeHRlcm0tbW91c2UtbW9kZScuCi0KLUlmIHRoZSBvcHRpb25hbCBhcmd1 bWVudCBQUk9NUFQgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGF0IGFzIGEgcHJvbXB0LgotSWYgUFJP TVBUIGlzIG5pbCBvciB0aGUgc3RyaW5nIFwiXCIsIHRoZSBrZXkgc2VxdWVuY2UvZXZlbnRzIHRo YXQgbGVkCi10byB0aGUgY3VycmVudCBjb21tYW5kIGlzIHVzZWQgYXMgdGhlIHByb21wdC4KLQot SWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IElOSEVSSVQtSU5QVVQtTUVUSE9EIGlzIG5vbi1uaWwg YW5kIHNvbWUKLWlucHV0IG1ldGhvZCBpcyB0dXJuZWQgb24gaW4gdGhlIGN1cnJlbnQgYnVmZmVy LCB0aGF0IGlucHV0IG1ldGhvZAotaXMgdXNlZCBmb3IgcmVhZGluZyBhIGNoYXJhY3Rlci4KLQot SWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFNFQ09ORFMgaXMgbm9uLW5pbCwgaXQgc2hvdWxkIGJl IGEgbnVtYmVyCi1zcGVjaWZ5aW5nIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIHRvIHdh aXQgZm9yIGlucHV0LiAgSWYgbm8KLWlucHV0IGFycml2ZXMgaW4gdGhhdCB0aW1lLCByZXR1cm4g bmlsLiAgU0VDT05EUyBtYXkgYmUgYQotZmxvYXRpbmctcG9pbnQgdmFsdWUuCi0KLUlmIGBpbmhp Yml0LWludGVyYWN0aW9uJyBpcyBub24tbmlsLCB0aGlzIGZ1bmN0aW9uIHdpbGwgc2lnbmFsIGFu Ci1gaW5oaWJpdGVkLWludGVyYWN0aW9uJyBlcnJvci4gICovKQotICAoTGlzcF9PYmplY3QgcHJv bXB0LCBMaXNwX09iamVjdCBpbmhlcml0X2lucHV0X21ldGhvZCwgTGlzcF9PYmplY3Qgc2Vjb25k cykKLXsKLSAgYmFyZl9pZl9pbnRlcmFjdGlvbl9pbmhpYml0ZWQgKCk7Ci0KLSAgaWYgKCEgTklM UCAocHJvbXB0KSkKLSAgICB7Ci0gICAgICBjYW5jZWxfZWNob2luZyAoKTsKLSAgICAgIG1lc3Nh Z2Vfd2l0aF9zdHJpbmcgKCIlcyIsIHByb21wdCwgMCk7Ci0gICAgfQotICByZXR1cm4gcmVhZF9m aWx0ZXJlZF9ldmVudCAoMCwgMCwgMCwgISBOSUxQIChpbmhlcml0X2lucHV0X21ldGhvZCksIHNl Y29uZHMpOwotfQotCi1ERUZVTiAoInJlYWQtY2hhci1leGNsdXNpdmUiLCBGcmVhZF9jaGFyX2V4 Y2x1c2l2ZSwgU3JlYWRfY2hhcl9leGNsdXNpdmUsIDAsIDMsIDAsCi0gICAgICAgZG9jOiAvKiBS ZWFkIGEgY2hhcmFjdGVyIGV2ZW50IGZyb20gdGhlIGNvbW1hbmQgaW5wdXQgKGtleWJvYXJkIG9y IG1hY3JvKS4KLVJldHVybiB0aGUgY2hhcmFjdGVyIGFzIGEgbnVtYmVyLiAgTm9uLWNoYXJhY3Rl ciBldmVudHMgYXJlIGlnbm9yZWQuCi1JZiB0aGUgZXZlbnQgaGFzIG1vZGlmaWVycywgdGhleSBh cmUgcmVzb2x2ZWQgYW5kIHJlZmxlY3RlZCBpbiB0aGUKLXJldHVybmVkIGNoYXJhY3RlciBjb2Rl IGlmIHBvc3NpYmxlIChlLmcuIEMtU1BDIHlpZWxkcyAwIGFuZCBDLWEgeWllbGRzIDk3KS4KLUlm IHNvbWUgb2YgdGhlIG1vZGlmaWVycyBjYW5ub3QgYmUgcmVmbGVjdGVkIGluIHRoZSBjaGFyYWN0 ZXIgY29kZSwgdGhlCi1yZXR1cm5lZCB2YWx1ZSB3aWxsIGluY2x1ZGUgdGhvc2UgbW9kaWZpZXJz LCBhbmQgd2lsbCBub3QgYmUgYSB2YWxpZAotY2hhcmFjdGVyIGNvZGU6IGl0IHdpbGwgZmFpbCB0 aGUgYGNoYXJhY3RlcnAnIHRlc3QuICBVc2UgYGV2ZW50LWJhc2ljLXR5cGUnCi10byByZWNvdmVy IHRoZSBjaGFyYWN0ZXIgY29kZSB3aXRoIHRoZSBtb2RpZmllcnMgcmVtb3ZlZC4KLQotSWYgdGhl IG9wdGlvbmFsIGFyZ3VtZW50IFBST01QVCBpcyBub24tbmlsLCBkaXNwbGF5IHRoYXQgYXMgYSBw cm9tcHQuCi1JZiBQUk9NUFQgaXMgbmlsIG9yIHRoZSBzdHJpbmcgXCJcIiwgdGhlIGtleSBzZXF1 ZW5jZS9ldmVudHMgdGhhdCBsZWQKLXRvIHRoZSBjdXJyZW50IGNvbW1hbmQgaXMgdXNlZCBhcyB0 aGUgcHJvbXB0LgotCi1JZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJVC1JTlBVVC1NRVRI T0QgaXMgbm9uLW5pbCBhbmQgc29tZQotaW5wdXQgbWV0aG9kIGlzIHR1cm5lZCBvbiBpbiB0aGUg Y3VycmVudCBidWZmZXIsIHRoYXQgaW5wdXQgbWV0aG9kCi1pcyB1c2VkIGZvciByZWFkaW5nIGEg Y2hhcmFjdGVyLgotCi1JZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgU0VDT05EUyBpcyBub24tbmls LCBpdCBzaG91bGQgYmUgYSBudW1iZXIKLXNwZWNpZnlpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9m IHNlY29uZHMgdG8gd2FpdCBmb3IgaW5wdXQuICBJZiBubwotaW5wdXQgYXJyaXZlcyBpbiB0aGF0 IHRpbWUsIHJldHVybiBuaWwuICBTRUNPTkRTIG1heSBiZSBhCi1mbG9hdGluZy1wb2ludCB2YWx1 ZS4KLQotSWYgYGluaGliaXQtaW50ZXJhY3Rpb24nIGlzIG5vbi1uaWwsIHRoaXMgZnVuY3Rpb24g d2lsbCBzaWduYWwgYW4KLWBpbmhpYml0ZWQtaW50ZXJhY3Rpb24nIGVycm9yLiAgKi8pCi0gIChM aXNwX09iamVjdCBwcm9tcHQsIExpc3BfT2JqZWN0IGluaGVyaXRfaW5wdXRfbWV0aG9kLCBMaXNw X09iamVjdCBzZWNvbmRzKQotewotICBMaXNwX09iamVjdCB2YWw7Ci0KLSAgYmFyZl9pZl9pbnRl cmFjdGlvbl9pbmhpYml0ZWQgKCk7Ci0KLSAgaWYgKCEgTklMUCAocHJvbXB0KSkKLSAgICB7Ci0g ICAgICBjYW5jZWxfZWNob2luZyAoKTsKLSAgICAgIG1lc3NhZ2Vfd2l0aF9zdHJpbmcgKCIlcyIs IHByb21wdCwgMCk7Ci0gICAgfQotCi0gIHZhbCA9IHJlYWRfZmlsdGVyZWRfZXZlbnQgKDEsIDEs IDAsICEgTklMUCAoaW5oZXJpdF9pbnB1dF9tZXRob2QpLCBzZWNvbmRzKTsKLQotICByZXR1cm4g KCFGSVhOVU1QICh2YWwpID8gUW5pbAotCSAgOiBtYWtlX2ZpeG51bSAoY2hhcl9yZXNvbHZlX21v ZGlmaWVyX21hc2sgKFhGSVhOVU0gKHZhbCkpKSk7Ci19Ci0KIAwKIAogdHlwZWRlZiBlbnVtIHsK QEAgLTU4NzgsOSArNTYxMyw2IEBAIHN5bXNfb2ZfbHJlYWQgKHZvaWQpCiAgIGRlZnN1YnIgKCZT bG9hZCk7CiAgIGRlZnN1YnIgKCZTZXZhbF9idWZmZXIpOwogICBkZWZzdWJyICgmU2V2YWxfcmVn aW9uKTsKLSAgZGVmc3ViciAoJlNyZWFkX2NoYXIpOwotICBkZWZzdWJyICgmU3JlYWRfY2hhcl9l eGNsdXNpdmUpOwotICBkZWZzdWJyICgmU3JlYWRfZXZlbnQpOwogICBkZWZzdWJyICgmU21hcGF0 b21zKTsKICAgZGVmc3ViciAoJlNsb2NhdGVfZmlsZV9pbnRlcm5hbCk7CiAgIGRlZnN1YnIgKCZT aW50ZXJuYWxfX29iYXJyYXlfYnVja2V0cyk7CkBAIC02MTY0LDcgKzU4OTYsNiBAQCBzeW1zX29m X2xyZWFkICh2b2lkKQogCiAgIERFRlNZTSAoUWN1cnJlbnRfbG9hZF9saXN0LCAiY3VycmVudC1s b2FkLWxpc3QiKTsKICAgREVGU1lNIChRc3RhbmRhcmRfaW5wdXQsICJzdGFuZGFyZC1pbnB1dCIp OwotICBERUZTWU0gKFFyZWFkX2NoYXIsICJyZWFkLWNoYXIiKTsKIAogICBERUZTWU0gKFFnZXRf ZmlsZV9jaGFyLCAiZ2V0LWZpbGUtY2hhciIpOwogCi0tIAoyLjUwLjAKCg== --000000000000a30bd8063a3b06cc-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 19 11:37:24 2025 Received: (at 79035) by debbugs.gnu.org; 19 Jul 2025 15:37:24 +0000 Received: from localhost ([127.0.0.1]:43574 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ud9cq-0001Lg-2B for submit@debbugs.gnu.org; Sat, 19 Jul 2025 11:37:24 -0400 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]:51525) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ud9cm-0001LK-Q5 for 79035@debbugs.gnu.org; Sat, 19 Jul 2025 11:37:21 -0400 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-32f1df5b089so28733471fa.3 for <79035@debbugs.gnu.org>; Sat, 19 Jul 2025 08:37:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752939434; x=1753544234; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=MD0V3PKQ0J8h15UC51QWieH0B68S00TDPAae9UuPOk0=; b=G2zs4kPwOICFZIYN/Kkl5OUM9UxyPsbGB5EVWk+BeWSZ1cfwq8nPMe3N6ZnoxjQU5Z 1DwyE1m2Vf48ZbJ63moR1g4h3ehU2gTNNd3UMtFN4ATpOh2wqVl+uT6y2jP7nt9/RSjp BmGb8wJK8LU9yv8HFeY5N0hXTnxXO36WTU5JZpjAZPvwnOJYZiMeZfOy37Zm1lhoTVxQ DQCr78AWrzLVlUA/DE3UFwcbDTM7+90SgfjIo1KOvkTG9uaN8UMSUgYaK/nOT0Rvd8sc EHwlzB7wvTmfq1tvl01NO0WpuIIAWo+RrKYdnagRHt4fARvhH0bOBH3lxa5npVpL8ReA IrOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752939434; x=1753544234; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=MD0V3PKQ0J8h15UC51QWieH0B68S00TDPAae9UuPOk0=; b=UtZrqMEafUropNyoDQncyGg10+dA/RYvbQ/1nfxszM07IdplXLIH+NRUd4VClwqgYv hIoH1qZqGRoR67E2tWJTk+Z46FrEClreLiQWXf+1BEXGhhA12heGsl7XCuGC0CKKbNyL xpoc+r6BUFG8aojniOR9cu0qvfJnaGhvTuQNQNX3YoFwKw83B0SgCd+Jly1Dval4irUd 4Ggo15z+AqRexc9e97eS2zjI7NTbm5zsjj8fkoa+WcwnqTdbC4Xl2IadltzwlULE3p9W 3VKJoTdEs6DzxC9i+ZFgwaKdE4N5zl3GhXFDyDa2/Co9I6Jm7eDDm4u0cR37gQQo0ql3 Ulgg== X-Forwarded-Encrypted: i=1; AJvYcCUBVqTjDawD7lGZNsDP5HmH2Mb+yQ76/18oKWiGvk/AlZTE6shtd/2nA7Jaz2KyBRucj3FJfQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzkx7vuDoem+49U5Kv/3fYj7/KNREdRVNjoAb3G9vxi5TuGvMnf 2Ae9kghw2NOWzZ8j94g0pgCUE9LTsp6yfKH8A7fhmKmkZYX0IWUBW+ab X-Gm-Gg: ASbGncv8sCLAOwzuswSCEf+E0Yqf7qajxgvOHFBWfXG0FfPTtWkXh/uf9vyMvYfuId9 yDzj3znnG+FotHef7jzC8ZbbY6zsEedjjAgQhpeQgpe6fGV56piDkmoBoXbtXb10NWicTB00Nsw KTFt7xfAGZXCDz/tVrWHPC5oEbF3l2ShZZ8oYMqHCK21got1Hy2QYMLdKztdOg25EYcPRX7KOL3 SqGfzLk5kZyIm6EKTYx/KBk/pXrmSVLtWfOWDcmyCCzthJs2ZBk9qp1+BZjo4A9+gn6/sfy+5PY wdjicoI+3VtgHSNvJSXGrOQSlmHqInIFYZlbhylHDJ3Pb/2CMTn6v0yVK4fxkCDTGm++YSBXBuB cMFf/x74FJ6aT9/+yoytcITD8eIAoeAVR9+f9hLX2RRWUqZJZn1MzkvrnTQU8/J+3UY++crkggC 4m1qw1tmqVXXcP X-Google-Smtp-Source: AGHT+IGYVk9LNaO2o+1eTC+I0iqqlYkpBtFUi5cTGs06H5vfd2C0OblEHUq4rUsviebPDEC3TWYAWg== X-Received: by 2002:a05:651c:515:b0:32a:6b16:3a27 with SMTP id 38308e7fff4ca-330a7c559c1mr18127151fa.35.1752939433691; Sat, 19 Jul 2025 08:37:13 -0700 (PDT) Received: from smtpclient.apple (c188-150-186-155.bredband.tele2.se. [188.150.186.155]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-330a91029a8sm6663641fa.32.2025.07.19.08.37.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Jul 2025 08:37:13 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Sat, 19 Jul 2025 17:37:10 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> To: Lynn Winebarger X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) 18 juli 2025 kl. 23.43 skrev Lynn Winebarger : > Since I haven't heard back, I'm just going to revise the patch set > here. I pushed some patches for removing load-convert-to-unibyte (a good = catch, thank you!) and fixing unintern. Regarding read-char etc they indeed don't belong in lread.c but the same = is true for some other things such as the obarray code. Maybe later. Looks like this concludes this bug -- anything else? For future contributions: * House conventions for commit messages. * No walls of text. * No benchmarks with -O0. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 19 12:13:28 2025 Received: (at 79035) by debbugs.gnu.org; 19 Jul 2025 16:13:28 +0000 Received: from localhost ([127.0.0.1]:43743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1udABk-0003t5-2s for submit@debbugs.gnu.org; Sat, 19 Jul 2025 12:13:28 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:40323) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1udABh-0003sN-Nu for 79035@debbugs.gnu.org; Sat, 19 Jul 2025 12:13:26 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-3a4e57d018cso416913f8f.1 for <79035@debbugs.gnu.org>; Sat, 19 Jul 2025 09:13:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752941599; x=1753546399; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=b2/BQ17vGCMtgtEy1rEr6viEp4s9PEdUlRMJnKQmT1w=; b=RgKiNRo6f8gjaBw2Hn115RJi1MvJxkkhs2sAwJ8pGUuq3nb9piDVKEqFfT3itjnz7i 7WtkGXrVMldcYUMQHKPT43GjOoREBRYXGasCsCjXkR6WBJ4PfhxxcDUOwVwZREn09/OL jAz4Srvq90m0aHpZ3apaySUXfbO+HJ0w6oY0/GnSWZW4DmJOoIPvQaR6bBrNJpiJ7CvL xaS7Lb5xzIpdHDQLTianeYr8VTJ8nm0/XWXuMOYyC4Mx4+wDF+rSRceOk+PEUZnTSaLY 7kGhEfpHkZVLj0iPjtAqpLLQSr2s0GTuoLmF8a0ctn2QfCkcN1+QztqYRcEoGlQk5rPS Y9hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752941599; x=1753546399; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=b2/BQ17vGCMtgtEy1rEr6viEp4s9PEdUlRMJnKQmT1w=; b=rIAOl7rNjoYTjF0fTkVLjEVLmUyPHzXwscbpM85ATQvs86UkwptsZ2AWUEY7Xfk2qJ WTvVgCFdtMepxIPiHC8qaWoX2la797hii6TEnWlTKnXzy7ktx6yrSJb7MFTLdPjv5Tfe PulQmqa7lyhPN8mz52qikAw1gtnSicB7zc2u6wcMYdejSLU5TPBUyPNDUShK5MzYsX42 IM5hxR8e0wnDqvLPu0vk77H4xT7OF9wMvBmsqS9vSVZ9jlmdoe4mYsOl+dZtdrt0RlPE VExP3eCg49Won51p++nm9q2GYZu+0AMa1wRz4R7VfRyCIeczqvqG/v8zpEXGRoCGQCs0 I+Eg== X-Forwarded-Encrypted: i=1; AJvYcCVtl0LjT0kXZN/hR3214OdvvCzWJvusfxbP7GNJq6hVhGBGDWfgpZHXu9x7020YWvHHTTFC9Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzdWhIAwZQpMHZ5Lqumd2fh5SZZfGS1Sp6Hm+6YKKZwjftUKgMO A72ZiRDjpMydhzs5JItFBRPEUh/Vun39TKWRcmZ0CzLJNzkGwUcATwO3YbWyc3Yq/yj5tk1Xyrf tTO2npRFnEBkwqiSahI5kwnjubqFWS9M= X-Gm-Gg: ASbGncue/cSpMCHYFAArpe4TuseCe3Z+QGqO/P+I2zD/tBPtmDAe/uixMrzSnjOQD1+ rBxBW2YRJBmLwuvzbNzPHQZV8wNam/TEAIeSVAWVbJSWUZvs+bKKmhmZ2YAwmYKIxOtybn+tsiD c4szgnvReljvlFfAOaVCMps7+bhXhyQ7BzjvgLsy7OPymZX4iJzBFe89IFJHguJtaXCCg3Vjbbp 94LhuzEvtePmne/2d+MOwpf7kPHbMw4LlKkGe4= X-Google-Smtp-Source: AGHT+IHqowor1GEtdfwOwWqs4FI3Dh8IjIx7LiuVBnQN4Oad2pXuePXJRh9l7Xj5wWaxS51OHu4TEUYNkUtn9BnQJM4= X-Received: by 2002:a05:6000:420b:b0:3a4:e740:cd6e with SMTP id ffacd0b85a97d-3b60dd54d8fmr5270888f8f.8.1752941599099; Sat, 19 Jul 2025 09:13:19 -0700 (PDT) MIME-Version: 1.0 References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> In-Reply-To: <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> From: Lynn Winebarger Date: Sat, 19 Jul 2025 12:13:07 -0400 X-Gm-Features: Ac12FXy59TL5bV1MZarCyIVIirdjvb2mIn5f0XlRl_38gZVO5DIfeFUH9a7cHGE Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/alternative; boundary="000000000000539176063a4a8506" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) --000000000000539176063a4a8506 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jul 19, 2025, 11:37=E2=80=AFAM Mattias Engdeg=C3=A5rd < mattias.engdegard@gmail.com> wrote: > 18 juli 2025 kl. 23.43 skrev Lynn Winebarger : > > > Since I haven't heard back, I'm just going to revise the patch set > > here. > > I pushed some patches for removing load-convert-to-unibyte (a good catch, > thank you!) and fixing unintern. > > Regarding read-char etc they indeed don't belong in lread.c but the same > is true for some other things such as the obarray code. Maybe later. > Wasn't sure about obarrays since read0 might conceivably inline code referencing the initial obarray for performance. > Looks like this concludes this bug -- anything else? > > For future contributions: > > * House conventions for commit messages. > I'm trying to get there. * No walls of text. > I don't know what that means. Although I suspect your reaction to that is something like "Obviously".... * No benchmarks with -O0. > Ok. Do you have any benchmarks you prefer to see? Lynn --000000000000539176063a4a8506 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sat, Jul 19, 2025, 11:37=E2=80=AFAM M= attias Engdeg=C3=A5rd <ma= ttias.engdegard@gmail.com> wrote:
18 juli 2025 kl. 23.43 skrev Lynn Winebarger <<= a href=3D"mailto:owinebar@gmail.com" target=3D"_blank" rel=3D"noreferrer">o= winebar@gmail.com>:

> Since I haven't heard back, I'm just going to revise the patch= set
> here.

I pushed some patches for removing load-convert-to-unibyte (a good catch, t= hank you!) and fixing unintern.

Regarding read-char etc they indeed don't belong in lread.c but the sam= e is true for some other things such as the obarray code. Maybe later.
<= /blockquote>

Wasn&= #39;t sure about obarrays since read0 might conceivably inline code referen= cing the initial obarray for performance.

=

Looks like this concludes this bug -- anything else?

For future contributions:

* House conventions for commit messages.
I'm trying to get there.

<= div dir=3D"auto">
* No walls of text.
I don'= ;t know what that means.=C2=A0 Although I suspect your reaction to that is = something like "Obviously"....

<= div dir=3D"auto">
* No benchmarks with -O0.
Ok.=C2=A0 Do you have any benchmarks you prefer to= see?

Lynn


--000000000000539176063a4a8506-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 19 13:31:37 2025 Received: (at 79035) by debbugs.gnu.org; 19 Jul 2025 17:31:37 +0000 Received: from localhost ([127.0.0.1]:44111 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1udBPN-00013S-5Y for submit@debbugs.gnu.org; Sat, 19 Jul 2025 13:31:37 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:41387) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1udBPI-00012Z-5Z for 79035@debbugs.gnu.org; Sat, 19 Jul 2025 13:31:34 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3a4f64cdc2dso497099f8f.1 for <79035@debbugs.gnu.org>; Sat, 19 Jul 2025 10:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752946286; x=1753551086; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nK60I0nTxrLUoQ+0i5toQk2v5Rj+53WyC6d52e0Nl80=; b=WBEsGuJ3tuZTqOy5a1horVZZnHpnzCJ60gdOT6zk93xv8SEzp7jxt8w+Df/WopbUXY iBgRY6CBh2wq9OkIcJJQJwjK/mtEqyBkMyqNEeOcOTK5O5vEXCEuvzKViTWPHjHQgnyL sjpzzT2kv5XZssuHpBFmXQ4bLT13cOUWKvdjeOSV+JrVQbDAQEDafS0/xOXWQaZa/cwa MPvfxR6ZvQKClIgXgYtY9j0oo+xBh2RH0m6SNV1B1d2FH3ZEhBFIbf0cZV329iFET9f3 SJ1ZgE0pfkv3WU0rLa1iQlhdpSLlxNPCP6s28H53+GRmPu9BnJ+cUiCK333CDiMXGZ0H jnvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752946286; x=1753551086; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nK60I0nTxrLUoQ+0i5toQk2v5Rj+53WyC6d52e0Nl80=; b=WfttK8D36Y0viiXXca+FiSQxhWmtpnAhXOSMAblsDgXQbLlYpVXTL3GREUzg2c4T1p wDblZWJ2egjTqcWbOSAqCeEazHDBfN9hbmWrK72lE4EjghkqL73DUf+YrpRIf7MWvNJ9 3IoH5Pjkfp2FSkWbMNjvG5A4A6Tj/TTYoyPEJbQ45EzMQgGzUc4OuulPtNgdxNmmY3ZX YPAFXPQTgQlsASvPLpBfrEQcJDwBGekH5B9DEBrNSR+amFuEinPjAPqtV3iLxAEydpWw Crer5WxGeSAPTPcsiTe/WhKC17HVwV4KXcvAh2peeDqQfYbuWbaVL2IX+VJy6wWab/+5 Fgkw== X-Forwarded-Encrypted: i=1; AJvYcCXUzZbLTYqdEsHh1+z/6W4pl3AZ3K6tTLdSEJ2FbBtaWiCnb5JUHaRniLWP2E4dEYE3qSo/3Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyX2nkSO+SihaKb0asFmygH8KETHozvF8hbmSQzauCEsSvMiDwV r1KdQUYBbX321bqCfsMO1AgFSUSXYAWKZ3FeTsrZfHoH7koH9HvHRt4sG0M5kK8QliwyCD+kEId 6U3s+DsAEwFP8586Eqyfn0WzIvWajTwY= X-Gm-Gg: ASbGnctIoBDV4Z7Z3k/e+hCrO3fKEvthVmPMW8CqGKFxAbFjpbIVSyenYLe1IEpfH1d 8okKMYmo6iA45VunAZwhFODg8Up1z8Aqgbvjyjl9HrliIwlV+KMvkZ3MsXvID1UcUiClWyi/oVZ yhToa/NQK9OfFDY+iVJwA686KM+kTWr8X3dDn7RLcGBr+RYbePL+X6ZxUxJm8lrGkPAv+0jJGzJ IPkTxqpsUHOvLAiQqe7zwabTDMBuR8HYymO1TQ= X-Google-Smtp-Source: AGHT+IEMHdxJwl/Ziw41Xxc6lnK9ZZCnitK197e5M6UQyzg5Z6PD01aKwVyJIYtuJfJoiXr9i7ToNoU/xbqRDGMFk4g= X-Received: by 2002:a05:600c:548b:b0:456:23d4:4ef9 with SMTP id 5b1f17b1804b1-4562e0462d4mr64652935e9.3.1752946285543; Sat, 19 Jul 2025 10:31:25 -0700 (PDT) MIME-Version: 1.0 References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> In-Reply-To: From: Lynn Winebarger Date: Sat, 19 Jul 2025 13:31:14 -0400 X-Gm-Features: Ac12FXxuzNA4paO3gdMV7cynRkLSU_WDbE66UqBCmJWKP4C61Bn3RkaQJvXhpmA Message-ID: Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/alternative; boundary="000000000000a90527063a4b9cd4" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) --000000000000a90527063a4b9cd4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jul 19, 2025, 12:13=E2=80=AFPM Lynn Winebarger = wrote: > On Sat, Jul 19, 2025, 11:37=E2=80=AFAM Mattias Engdeg=C3=A5rd < > mattias.engdegard@gmail.com> wrote: > >> >> Looks like this concludes this bug -- anything else? >> > No. > >> For future contributions: >> >> * House conventions for commit messages. >> > I'm trying to get there. > But unfortunately I see what you mean after review. Lynn --000000000000a90527063a4b9cd4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sat, Jul 19, 2025, 12:13=E2=80=AFPM L= ynn Winebarger <owinebar@gmail.com= > wrote:
=
On Sat, Jul 19, 2025, 11:37=E2=80=AFAM Mattias Engdeg=C3=A5rd = <mattias.engdegard@gmail.com> wrote:

Looks like this concludes this bug -- anything else?
=
No.

For future contributions:

* House conventions for commit messages.
I'm trying to get there.

But unfortunately I see wha= t you mean after review.

Lynn

--000000000000a90527063a4b9cd4-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 30 06:57:20 2025 Received: (at 79035) by debbugs.gnu.org; 30 Jul 2025 10:57:20 +0000 Received: from localhost ([127.0.0.1]:39758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uh4Uq-0005Jd-JZ for submit@debbugs.gnu.org; Wed, 30 Jul 2025 06:57:20 -0400 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]:53378) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uh4Un-0005JA-Rb for 79035@debbugs.gnu.org; Wed, 30 Jul 2025 06:57:18 -0400 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-32b7123edb9so86289851fa.2 for <79035@debbugs.gnu.org>; Wed, 30 Jul 2025 03:57:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753873031; x=1754477831; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=NQZsTQ+cXfw9PtCjJFaZjSLNHz+0cF+xBguAV8VRyzE=; b=OzN/ceSK38CwhNWArVFe35TNIqCwIvq8W4RCOosBkMOjNBURcT67sAkaD+IuBCkjBN uJG6P6VX7/llBY65z0EepsgIkdcJzCh6PIQkig5G71GLaxPxgy3iB6JOxMesH8CJiG+X d8J/rE4404VYb/oT++S0SeLacoq7WoQxdxk3bIZkbps5Lgfsy7f5ghl9/bOYpb3cj4pw UMOEyQIsOslyWT+NqRA87lEcbbAiG1USbtN9EtGCT4hp6T79l3Kja37oZbHBXolqda7x HLzlu37WEPsnDDe+/QaPb80YU1fl2SSlVDBzkcMYXut5LnEn3VLU+bbtof4fxLhL3KVF 7Q8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753873031; x=1754477831; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NQZsTQ+cXfw9PtCjJFaZjSLNHz+0cF+xBguAV8VRyzE=; b=G04WHmXz9eLMa4aGuXuLTx9VsXppTICe6/fH9MEHyHMq2FSgsBGBo6c1oGHSDb8Pk6 rsiiBNJhtUYnVDoffrbf7V+MYw8NN3Qep0HHLngs3v1/0Hkg0jN6TMn72fYXYzZuoUn7 unX+dBUc1JfvAEMWIhQQHSVWRS+Gm3+zEefQollvQKUzAIdP3aFA5r1rTHL0yBOW2Cc4 bMqZHsHoz/mur1c1Db859vIYhtG664TrHIU4JN1ZNszzxZY5UhNdo1w50agvLlpdoCx2 RgW9rUDOQkkwY2T/q57xk4yHE/zkeXPY/PmVVT4dk6GNxkyIoyrpk5Fr5P0If/qvLgg9 QI8A== X-Forwarded-Encrypted: i=1; AJvYcCVY4I+kAwRNjKlCUV7zSgI4pcNUlxgKtnfe97rnPLVcdTBDeNRD9IegFsSRHWeyY00Ij7EGVQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyEJLuL/4kysADQbnenpf1JibkWmpalc9wsjdZGz1wuwj6eVJGM bVYb6o2hpJFDeQFIp9bw9cMgqVg/dWjUSiGtZRyDj67JTPM5iW422JUI X-Gm-Gg: ASbGncvkyqUII/8K4OHXnqgeuBq5cr6dZKs3AeuRjR9gVF3vcTlRJD0AfB050FYrKeI 4bqjTmY+M8jKRDsMb0y8kOLpbbswKjeXEZHWpV8aMQfU8p1ELWsgckQdbOh3NjsfdFPtDvxwz8W LnFVedfgaTEmBptwZIfqEtC04Sp59Wyy6nswUsSSxbteYyS2jv0Wmo4rq5WlwOJavdWe7y+eiqx RYo5kNNWIwHAZtexeUZSfU/fL/C169bqOVQObJ3ZLD39wEikNVwxzgDYYnIIuPoP9R4dK+n1FqL 1pNtb8ZrFMGm4tUTwZMLo1AJlzaQbBfvML4NwtWMPIYZ1og1YZNsqzwbYQp+TCL8GFhczPYGeSd pTAgsotNXMlSReIUsEL5RvCVXZW3qJOXkfoihTBPFnkUXHkKRvC7/0UeZ1TCdDGLiHS3/YXvCKB bv0FEB11BzLkV2 X-Google-Smtp-Source: AGHT+IGvoPSl0I14wqJD8puj5xLDNq0Sxr2qVQVCfTGj2HU4yz2146drvmDgaRWFpHZ1qKvQwd6cWA== X-Received: by 2002:a05:651c:401c:b0:32f:219d:75e5 with SMTP id 38308e7fff4ca-33224c2fa7dmr8620241fa.33.1753873030686; Wed, 30 Jul 2025 03:57:10 -0700 (PDT) Received: from smtpclient.apple (c188-150-186-155.bredband.tele2.se. [188.150.186.155]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-331f40a2f56sm18827321fa.32.2025.07.30.03.57.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Jul 2025 03:57:10 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#79035: Remove micro-optimization for Funintern for performance From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> Date: Wed, 30 Jul 2025 12:57:08 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <5CA884DB-5377-4953-94DC-D6521FBE0287@gmail.com> References: <38D2BB03-D69D-49B9-A79C-B1525568B1F1@gmail.com> <5A3F5149-BFDB-4A0C-BF0B-87C61D1D3245@gmail.com> To: Lynn Winebarger X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79035 Cc: Stefan Monnier , 79035@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 (-) Reconsidering this, no harm comes from moving read-char from lread.c to = keyboard.c; now done on master.