From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 08:02:08 2021 Received: (at submit) by debbugs.gnu.org; 4 Jan 2021 13:02:08 +0000 Received: from localhost ([127.0.0.1]:58084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwPUu-0003Cv-Pg for submit@debbugs.gnu.org; Mon, 04 Jan 2021 08:02:08 -0500 Received: from lists.gnu.org ([209.51.188.17]:37658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwPUt-0003Cn-1S for submit@debbugs.gnu.org; Mon, 04 Jan 2021 08:02:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53186) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kwPUs-0004L4-Qc for bug-gnu-emacs@gnu.org; Mon, 04 Jan 2021 08:02:06 -0500 Received: from cyan.elm.relay.mailchannels.net ([23.83.212.47]:41032) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kwPUq-0004AW-57 for bug-gnu-emacs@gnu.org; Mon, 04 Jan 2021 08:02:06 -0500 X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id D4EEE7E2048 for ; Mon, 4 Jan 2021 12:55:17 +0000 (UTC) Received: from pdx1-sub0-mail-a63.g.dreamhost.com (100-98-118-97.trex.outbound.svc.cluster.local [100.98.118.97]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 75AFC7E27EF for ; Mon, 4 Jan 2021 12:55:17 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from pdx1-sub0-mail-a63.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 04 Jan 2021 12:55:17 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@jidanni.org X-MailChannels-Auth-Id: dreamhost X-Thread-Abortive: 4cf8d38c6d570853_1609764917730_2003634760 X-MC-Loop-Signature: 1609764917730:3794498770 X-MC-Ingress-Time: 1609764917730 Received: from pdx1-sub0-mail-a63.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a63.g.dreamhost.com (Postfix) with ESMTP id 1BDBC7F0C8 for ; Mon, 4 Jan 2021 04:55:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to :subject:date:message-id:mime-version:content-type; s= jidanni.org; bh=OvZ8hfxfrCS/fm92jaQdKc3Skr0=; b=CFBYz/Qc4Vift5yB LaXjN5UKS5r71AhXin68yH2XNHUWVZmNEPVqLvb8HW8zZb0Yua1O9HTo/Zf6oD4a 5ESEpBSPcCUT4DtNHxVJZBX2UsvcqZWOwQC6gd62d0FzNEYZcEQh2e21ytUj5L64 W0rF750Hu1ukqhBHFfqAoGc+7rw= Received: from jidanni.org (1-170-81-36.dynamic-ip.hinet.net [1.170.81.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by pdx1-sub0-mail-a63.g.dreamhost.com (Postfix) with ESMTPSA id 41A477EFF8 for ; Mon, 4 Jan 2021 04:55:00 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a63 From: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson To: bug-gnu-emacs@gnu.org Subject: so-long mode not triggered despite big file with very long lines Date: Mon, 04 Jan 2021 19:47:04 +0800 Message-ID: <877dosudon.5.fsf@jidanni.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=23.83.212.47; envelope-from=jidanni@jidanni.org; helo=cyan.elm.relay.mailchannels.net 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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" --=-=-= Content-Type: text/plain Here we see the file(1) command knows a file has very long lines. $ file www.youtube.com.har www.youtube.com.har: UTF-8 Unicode text, with very long lines $ wc www.youtube.com.har 45982 330703 14075335 www.youtube.com.har Alas, even in my https://www.jidanni.org/comp/configuration/.emacs with (global-so-long-mode 1) (setq so-long-action 'so-long-minor-mode) this certain file does not trigger so-long mode. Where to get such a file to test? Real simple. In Chrome Developer Tools network tab, visit https://www.youtube.com/c/jidanni2/playlists?view=1 and right click "Save all as HAR with content." --=-=-= Content-Type: image/jpeg Content-Disposition: inline; filename=20210104T194123.jpg Content-Transfer-Encoding: base64 Content-Description: screenshot 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 5JHnP+Xl5/spqaNN/o90z9jn2PFu7eLCecfx1MIIxtKM8XJR+T8Hy4zWPVGgbTdLBIhNJkqmCA7E YekXGQsqC8kJeWVlTyAo52ubgPNWaVrTT8XS8fUsm6hu1yUhTLqm3MrBBICUbd5OATjGcJJ8hxvg tQHNauQ8/UfzipqaNRD0fZkyotxkRCu4MoZ3lMhwNOONp2pcU2CELWkcgpSSRgYxivp/RmmnoV6h OWxPAvbpeuKQ6scVZxzyFZR0B7pHPn1JrYSpXZoz0h1akoaQpaykFRwASSAOZ6HkMn4q1yNT2dcm 0x0XJJdvLS3rcnCiX0JSlaiOXLCVA4OOv56upoyXXSFguhbMuG6C3H7L/R5TrG9n8EvhqTvRzPdV kczy51vY7bbLCGWkJQ2hISlKRgJA6ADzVUZeutORi5xLk8oNOPId4cV50NcFwturUUIO1CVhSSs9 3KTg1YkPFaAtDpUkjIIVkGoqfSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7 aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdS oO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9f pq9tN6/TV7aCdSoO9fpq9tN6/TV7aCdSoO9fpq9tN6/TV7aCteDz7yv/AKwr6Ka32lfvS5+uy/8A zDlaPwdNrVZHikD+sq8uOexNbAWO4NqWIeoLpEZW4t3hNojKSkrUVHG5onqT1JrNGzVW6Rc8/ZPb +f8A8HJ+mxXJ/DJDb/8AxbJudomTFrs7PimQ3HWtDG3i8UBwDDRJIKgSnenA73QdUg2iUxOTLl3W dcXENqbQJCWUhCVFJVgNoT6Cai3nSNnus8T7hCU6+EIQspkuIQ8lCipKXEJUEuAKyQFggEmtxNmJ hSJDE9q6uW02u5LcOr25pcTEcLIj7UEucQJ2Y/skZyPLy51TpNhmf6P3It20zdZlzXpWAzagmA4t UdxDa+KjcB9qXu+EDgrGEjJ5V+gwy56PT46cFz0fnpmLORs2O6r8Ikh+XuRLN647MlFkdW4uHgYb 7WXA2hooBQUFOc55KODWx15YpF0sWqX2Y7zqoFuft9nhNRFJQEqYbKlJAA4hUTtBSdoCdo727HS+ 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 7rblwdQ2iYhCttuS2d/HChjC0lKdgyCVlPkCsWZ212927t3VyGwucy2WmpCkArbSeoSeoznyVMAy OYoOO2my3m6XjRcJ5i76cXZbXc7dMegMBLe9C4iUbFutrSWnEoK0nqcYySlQrBG01fuy2aE0/emX mtdTZKrgYyFPJZMeWEvnc2W9qipI3bdp3jB5iu1YpigpPgut8+AdRIvPa5F1XdV8ee80EJmt7EBh aNqQjAa2IITyC0K8pNXVPSvaDkMCgUpSgUpSgUpSgUpSgUpSgUpSgVHlfd4v6U/QVUio8r7vF/Sn 6CqCQKUFKCq+DH7wv/rSvopq1VVfBj94X/1pX0U1aqzRs1VuUpStMlKUoFKUoFKUoFKUoFKUoFKU oFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFR533EY68Vv6YqRWCd9xT+l b+mKDxKpePuLHyyvdr3dL/AsfLH3azjpSgwbpf4Fj5Y+7TdL/AsfLH3az0oMG6X+BY+WPu03S/wL Hyx92s9KDBul/gWPlj7tN0v8Cx8sfdrPSgwbpf4Bj5Y+7TdL/AsfLH3az0oMG6X+BY+WPu03S/wL Hyx92s9KDBul/gWPlj7tN0v8Cx8sfdrPSgwbpf4Fj5Y+7TdL/AsfLH3az0oMG6X+BY+WPu03S/wL Hyx92s9KDBul/gWPlj7tN0v8Cx8sfdrPSgwbpf4Fj5Y+7TdL/AsfLH3az0oMG6X+BY+WPu03S/wL Hyx92s9KDBul/gWPlj7tN0v8Cx8sfdrPSgwbpf4Fj5Y+7WJwvGRH4qEJHF5bVlX9hfxCplR5X3eL +lP0FUEgdKUFKCq+DH7wv/rSvopq1VVfBj94X/1pX0U1aqzRs1VuUpStMlKUoFKUoFKUoFKUoFKU oFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFYJv3JP6Vv6YrPWCb9y T+lb+mKDOOlKDpSgUpSgpPhNn36DKtXYHb1Gs6+N4wlWeE3LltLGzhANrQ5lB+2bilCjySOQJNRL HrWVJg2y3WdbOrLo+xIfXIB7C2GmXeGeIFJJQ8SpKSjaO8F8kAYqyaksC7rLjzIt5uVnmx0KbRIh ls7kLIKkKQ6haFDupIJTkc8EZOdNH8HkCJ2Z+3Xu8wLk32jjT2lMqflcdYcd4m5so5rSlQ2pG3A2 4GQQ0l78J82TYbhL0pZFSlMadTeTIlyA0hhK0v7UqSASpYUwrug4OFd4YGbFq29XiD4JL1fwG4V2 jWSRLQG1cZLTqGVqSRuSN3MA4Kf4/cLQljiQ50JhuQmJNszFmcZ4gwI7XG24ON288deVEnPI8jnM yXptqZoWXpO5XOdLYlQXYT0tYbS9w3EKQT3UBGQk4B245cwedBQYOt7lZro69JuN+vFsYszk+Wm7 25EJ5JQ40FLj4Za4qUoW4pY2nGEd4bhnpVku7d0lXJuOg8GDIEbi7spdVw0qVtPmG8J/Ok1XTo56 Gs3J65XPVM6PEciw410cYZaQhwpCwCyynqEjKlBRwMDGTW28HOnEaU0RatPpc4y4jAS87uKuI6SV OKyeZysqPPz0FgHMUpSgUpSgUpSgUpSgUpSgUpSgUpSgV4TjOMmva+SM5HloOd+D3X869611Dpad bnVG2zZCGZrKftfDS6pKUueZWByI64PIYJN9kHL0X9KfoKr5tlug29t5MGM0wH31yHShOC44tWVK UfKSfKfiHkr7lfd4v6U/QVQSBSgpQVXwY/eF/wDWlfRTVqqq+DH7wv8A60r6KatVZo2aq3KUpWmS lKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUC sE37kn9K39MVnrBN+5J/St/TFBnHSlB0pQKUpQKYGMeSqhrDWsPTGsbHbLrMgQbdcYcx1x+SvYQ4 yqOEJSSQOYdWTn0Rjoag6c8Ica42hyaUCep+8SLfbWrcNy5aWyohQ3KwO4kqKiQB+0ZC+0qro1nF et0eXAtV3uDjxeSuOywlK2FMr2OpcK1JQkpVywVd7qnI51pdUeE6BF0jcLvYIsu5uR7IboFJj5bj pU2tTRfG4KAJbIITkgAk7RzoOhYHmFKqjuuLYzOMdbExbLL7ESVObbBjR5DoTsbUrO4k8RGSkKSn cNxBzU3TWpomoJE9ECNODMGS5FW+8zw23HW3FtuJQScq2lHM4xzAznIAb6lc0l611IixTtasotat NQZjrS4hYWZTkdp4tOPh0ObAcpUsNlBykDvAnlvbhr60wbzMt78W5cKDMZhTJiY/9HjuvJbU2FKz nB4qASAducqwOdBbqVQbFr1+5CIqbbnLMh2+yrYRKSlYcSy3JVyUhZ4ahwMqKsgYIGchQzjwlWFN ufuUlm5xIaLa7dYzr7ASJsVpIUtxoZzyCknaoJVhQOMc6C70qnv+EC0Ro81cuNc4b0QxsR34+1x5 MlwtMKQM9FrBT3tpSR39tb6yXTxpDU+qDPt60OKbWzMZ2LSR15glKk/lJJT8eeQDZUonpSgUpSgU pSgUpSgUwPNSvlWeuaD6qPK+7xf0p+gqqbonwiwL9qy8aWeZXGudulvtIA7yHmm3FJ35/skYGQfi wTkgXGR91i/pT9BVBJFKClBVfBj94X/1pX0U1aqqvgx+8L/60r6KatVZo2aq3KUpWmSlKUClKUCl KUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUCsE37kn9K3 9MVnrBN+5J/St/TFBnHSlB0pQKUpQaS42IytZ2nUPatni6HLi8Hh54nHUwd27PLbwOmOe7yY51a7 eDNiawkmXBkSmrzJurIn28SI544WFNLa3jcAFZCgpJCkg9Mg9ExSg5zL8Gpdj2hKZFjc7CiSFxn7 GhUJS3lpVxG2ErSlC0BO1KlFZ2qIJUSVVAa8FdwhaYl6ftOqGo8a42ZFrnuu23iLWlCXEJcbw4lK FFLhCgQoYSCNprquBTAzmg52nwZx2tUSLmyuyqYlTWprxk2Vt+WlaUoCkNvLVhKVbAeaFFO5W0jI ItekbKLBaXIAk9pC50uXv4ezHHkuv7cZPweJtz5cZwM4G5wMYxypQUB3QM1UaVYk3xpOlpU5Ut2C YJMgBbpecZS9v2hpSyeWwqAUpII5Yiu6Mvt1v+rGpc9mJYrreosksGLxHJLTUSICUOBY4YUtpSDu SThPLGQa6TgeamB5hQUNOg3VTG0yroy7bWb1JurcdMRQdPaGZLbrSl78YzJKgQkYA28yQoa+T4NJ 0/Ths101Gy+3GscizW1xu3lCmkPISguOjiEOLCUIxt2DO445jHTKYGc450FQ1HpBy63S7Tm7hFQZ 8CJDLEq3pksEMPPOYcQo4WlYe2lI2kbchXMYz+DrSv2J22bDTIjuIkyzJSxFjqYjRgUITw2W1LXt T3NxG7G5SiAM4q0UoA6UpSgUpSgUpSgUpSgV4ep54r2mB5qDT2DTtpski4SbdES3JuElcmU6eanF rUVcyfICTgCthJ+7Rf0p+gqpFR5P3aL+lP0FUEgUoKUFV8GP3hf/AFpX0U1aqqvgx+8L/wCtK+im rVWaNmqtylKVpkpSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApS lApSlApSlApSlAqNcVJRG3rUEpS42SScAAKHnqTWt1P94Zf+5/zFB4JVox982/30+9XvarR+M2/3 0+9XOaUHRu1Wj8Zt/vp96narR+M2/wB9PvVzmlB0btVo/Gbf76fep2q0fjNv99PvVy663W2WlhMi 63GJAZUoJC5D6Wkk8zgFRHPlWeM+1Ijtvx3m3mnEhSHG1hSVA+UEciKDpXarR+M2/wB9PvU7VaPx m3++n3q5zSg6N2q0fjNv99PvU7VaPxm3++n3q5zUd6dDZdWy7MjtuJCCpKnQCOIooRkZyNygUjzk YHOg6d2q0fjNv99PvU7VaPxm3++n3q51nma8oOjdqtH4zb/fT71O1Wj8Zt/vp96ubSH2o8ZyRIeQ yy0kqccWrCUJAyST0GBXhkx0vNMqktJceBLSS4MrAHMgdTjl089B0rtVo/Gbf76fep2q0fjNv99P vVzHxjAAllU2MnsQ/pQLo+0DG7v8+73TuyfJWC0Xuz3gr8U3eBcSg98RJCHdv90nH7cfHQdV7VaP xm3++n3qdqtH4zb/AH0+9XOQeXI5FYnZUZl5LLsllt1SFOJQtwJJSnG5WD/ZG5OT0GR5xQdL7VaP xm3++n3qdqtH4zb/AH0+9XNUPsKfWwh9tTzaUqU2FDclKshKiPjwfYelZOfx0HRu1Wj8Zt/vp96n arR+M2/30+9XOaUHRu1Wj8Zt/vp96narR+M2/wB9PvVzhK0qUpKVBSk8iAeh64Pm5c69ByM5oOjd qtH4zb/fT71O1Wj8Zt/vp96ublaQsIK07yCUpJ5nGM8vKOfzivug6L2q0fjNv99PvV43IguSmERZ aHlcQkgSOIcbFecnz1zqt1ov7/N/7iv8qC/DpSlKCq+DH7wv/rSvopq1VVfBj94X/wBaV9FNWqs0 bNVblKUrTJSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSlKBSl KBSlKBSlKBWt1R94Zf8Auf8AMVsq1mp/vFLH5I6/noOdUoOnWlApSlBUNeqix7tapy72zY5jDb6Y 8qYwFxFBYRvbcKlJAUdqSnvJJAUBnnVZRf0u2m1MK7NbWXlTVhxi4LgQnwh0YdbUEqWpSyoqSgHB BX8IAE9UUAoYUAR8dekA4zg4Of21Ry7T98vr7NlhSZkhx3UESM408QRwlMn+lebbubCSDy7xOPMM 2l7td5ep44lXOO3ONxkty4Spzi1hlJcCU9mDQS0AAhQc3c+XM7wD0ugAC94wFefy1BTfCDchHuVs grlmMh5p5wrcuaoLCinYAC4hJWpfe5IBAIyTnFU+HPlXKGxNnOlcp2FptTqlJwSvxm6CSOXM459P LjGMV2EgHGQOXSvfioKx4Q7iIEG3NF9UdMqYGitU3sjQAbWcOPBJUhJxgbcEq2jlzqjpvk96zQnH 78yhhuROaDbt2cil9KXRwlIlFGHFIT0SrG9J3HOCa6+eYIPMHrQ4IwcEUFQ1TK7f4GbtOUmQjtGn XnT2lIS6N0dRO8JwArHXAABBwMVrVi527V+nZd8u0WTHbgzHDw4ZZLaQhskk71Z5fEK6D+2nkxmg 4nchcrZZb1Mudu7GnUlgn8VRdCt8kNvPtggYwQ0txOOuG0jyVcrGzcB4QICb69CLjdnWbeuLHU0l 1Klo4yVblEkpw0QByO8k9KvVBy6UHPdb3TUFv1G9Dtz0hSFtN3VICSftUcK47Iz03EMDHX7ar89Q L8/PutiQHX5ZRddP3eahlC1JVgrYUwjl3u6hYSQMZyrPU11GlW45NKCFM6ju1nvcoog6WivxnmJR WHHUGYoFSsneApJBSSU8yCOmLtrqc/G0+y+3JXDYdlMImSWzhTDCljesE/BABwVH4IOeWMixJASM JAA6cq9/bUHNl3SCblGiyNVy2tOqalLYnGVw+K8lbeGw+TlwJSVlJz3sHO7YahKn6glWO7XGddLh El23S8ac222rhjtOJKt60Y6nhoyg93yEdMdVwMAYGB0Hmr0cjkGg5Td5btpuWqHYU5TUyRPhOPJd nKRw4riGg46MhWxIO5PECTsGemKmW+VcZj9sgt3wrgSb2tkLhzXHzwhCdWWu0KQkrG9OdwJ28xuy nl0kAA5AGcYoAAAAAABgYq3HM7UpLmqtPSbpc5P2mRdIDLr0tSA6W5QSyg8wFrKUnrkq2jOa6aOn KvClJ6gHnnmK9/bUCt1ov7/N/wC4r/KtLW50V9/2/NsV/kaC/wBKDpSgqvgx+8L/AOtK+imrVVV8 GP3hf/WlfRTVqrNGzVW5SlK0yUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpS gUpSgUpSgUpSgUpSgUpSgUpSgVhktl1spSoJVkEEjI5EHp+z56zUoMATLx93Y+RPvU2zPw7HyJ96 s9KDBtmfh2PkT71Nsz8Ox8iferPSgwbZn4dj5E+9TbM/DsfIn3qz0oMG2Z+HY+RPvU2zPw7HyJ96 s9KDBtmfh2PkT71Nsz8Ox8iferPSgwbZn4dj5E+9TbM/DsfIn3qz0oMG2Z+HY+RPvU2zPw7HyJ96 s9KDBtmfh2PkT71Nsz8Ox8iferPSgwbZn4dj5E+9TbM/DsfIn3qz0oMG2Z+HY+RPvU2zPw7HyJ96 s9KDBtmfh2PkT71Nsz8Ox8iferPSgwbZn4dj5E+9TbM/DsfIn3qz0oMG2Z+HY+RPvU2zPw7HyJ96 s9KDBtmfh2PkT71fPCfU62p15spQScJbIzyI9I+epNKAOlKUoP/Z --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 10 09:53:56 2021 Received: (at 45652) by debbugs.gnu.org; 10 Jan 2021 14:53:56 +0000 Received: from localhost ([127.0.0.1]:53604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyc6N-0005sj-Qs for submit@debbugs.gnu.org; Sun, 10 Jan 2021 09:53:56 -0500 Received: from quimby.gnus.org ([95.216.78.240]:42186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyc6M-0005sM-CJ for 45652@debbugs.gnu.org; Sun, 10 Jan 2021 09:53:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Z9tQRzVdJvg6UVVWjkd/V39v7rKOeazx89W30cSvrrs=; b=XZHcJStToqbGVMm7Tqee2YnJR/ 9nXgyAdRE+YzrGkmCA9OfvidbS5gszUGLkQquQE20hiuvCK/5qkrxyuEiSbVG93hvt8AoSunbSjB1 WPA+63EC0UgyyTpmPPd5aACZM6Hv5rVLRFKJ5tXs+dbA3XcLDe5Tkoywl/fUFqGzuaCo=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyc69-0007vf-Lw; Sun, 10 Jan 2021 15:53:48 +0100 From: Lars Ingebrigtsen To: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> X-Now-Playing: The Durutti Column's _The Guitar and Other Machines_: "Arpeggiator" Date: Sun, 10 Jan 2021 15:53:40 +0100 In-Reply-To: <877dosudon.5.fsf@jidanni.org> (=?utf-8?B?IuepjeS4ueWwvA==?= Dan Jacobson"'s message of "Mon, 04 Jan 2021 19:47:04 +0800") Message-ID: <87wnwkrggb.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: 積丹尼 Dan Jacobson writes: > Where to get such a file to test? > Real simple. In Chrome Developer Tools network tab, visit > https://www.youtube.com/c/jidanni2/playlists?view=1 and right click > "Save all as HAR with content." Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@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 (-) =E7=A9=8D=E4=B8=B9=E5=B0=BC Dan Jacobson writes: > Where to get such a file to test? > Real simple. In Chrome Developer Tools network tab, visit > https://www.youtube.com/c/jidanni2/playlists?view=3D1 and right click > "Save all as HAR with content." Sorry, that's not a good way to reproduce this problem. Could you put a test file somewhere that can be retrieved with curl? --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 10 09:54:02 2021 Received: (at control) by debbugs.gnu.org; 10 Jan 2021 14:54:02 +0000 Received: from localhost ([127.0.0.1]:53608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyc6U-0005tP-9C for submit@debbugs.gnu.org; Sun, 10 Jan 2021 09:54:02 -0500 Received: from quimby.gnus.org ([95.216.78.240]:42200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyc6S-0005si-DR for control@debbugs.gnu.org; Sun, 10 Jan 2021 09:54:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=VMtGj+MxQdBHIq3UJguD6YaX2u43jqP3iSCBuHQYhn4=; b=CW5NeMm30eU3ZlgMtKZsZ+kKeD jpzc77XKWnQP6Be17a60/Of54Y9hrrCC6R4J8V5rZWcpYYIQGRdBspV7q47r9t9W5UhnqfafywSLN uFwjzRM++hZSwqoDIksx95Yl8hVdazrMWVOIa2vxMn29CPEi8o5b3nr0fQvt9kl4SD8s=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyc6K-0007vq-Nw for control@debbugs.gnu.org; Sun, 10 Jan 2021 15:53:54 +0100 Date: Sun, 10 Jan 2021 15:53:51 +0100 Message-Id: <87v9c4rgg0.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #45652 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 45652 + moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control 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 (-) tags 45652 + moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 06:21:33 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 11:21:33 +0000 Received: from localhost ([127.0.0.1]:55869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyvGP-0008NB-Kk for submit@debbugs.gnu.org; Mon, 11 Jan 2021 06:21:33 -0500 Received: from cross.elm.relay.mailchannels.net ([23.83.212.46]:48224) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyvGM-0008Mz-M8 for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 06:21:31 -0500 X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id B4FF37E2035; Mon, 11 Jan 2021 11:21:28 +0000 (UTC) Received: from pdx1-sub0-mail-a23.g.dreamhost.com (100-98-118-97.trex.outbound.svc.cluster.local [100.98.118.97]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 00AD27E2020; Mon, 11 Jan 2021 11:21:26 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from pdx1-sub0-mail-a23.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 11 Jan 2021 11:21:28 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@jidanni.org X-MailChannels-Auth-Id: dreamhost X-Irritate-Celery: 26d0ff9564619651_1610364087226_1569583165 X-MC-Loop-Signature: 1610364087226:2061200134 X-MC-Ingress-Time: 1610364087225 Received: from pdx1-sub0-mail-a23.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a23.g.dreamhost.com (Postfix) with ESMTP id 845F7BA3C7; Mon, 11 Jan 2021 03:21:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to:cc :subject:references:date:message-id:mime-version:content-type :content-transfer-encoding; s=jidanni.org; bh=WIPuYXo5cVQI5jRGBc n8Ic8npOs=; b=Ag9Ev26yniqsU2lEsQrZiBcpGk/MseEIaqELEFck/cuw7N7BTL cgoO3B7yPkz1IznwKQkqy/wa90bfDWwhoMxBsvcgrBfW389uV0L3meng02XGdcRg Jf+dnK0aT+Qhcw9It4JLFv0IFJwCHnSjxOiImrJzuLL69FzrEGfSeXXUg= Received: from jidanni.org (114-41-16-129.dynamic-ip.hinet.net [114.41.16.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by pdx1-sub0-mail-a23.g.dreamhost.com (Postfix) with ESMTPSA id 974DA7E461; Mon, 11 Jan 2021 03:21:24 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a23 From: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson To: Lars Ingebrigtsen Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwkrggb.fsf@gnus.org> Date: Mon, 11 Jan 2021 19:21:18 +0800 Message-ID: <871rern2hd.5.fsf@jidanni.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@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 (-) >>>>> "LI" =3D=3D Lars Ingebrigtsen writes: LI> =E7=A9=8D=E4=B8=B9=E5=B0=BC Dan Jacobson writes= : >> Where to get such a file to test? >> Real simple. In Chrome Developer Tools network tab, visit >> https://www.youtube.com/c/jidanni2/playlists?view=3D1 and right click >> "Save all as HAR with content." LI> Sorry, that's not a good way to reproduce this problem. Could you pu= t LI> a test file somewhere that can be retrieved with curl? I know. Problem is with my 64K ADSL upload speeds here on my mountain, it would take hours to upload. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 06:28:29 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 11:28:29 +0000 Received: from localhost ([127.0.0.1]:55893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyvN7-0000Gk-IP for submit@debbugs.gnu.org; Mon, 11 Jan 2021 06:28:29 -0500 Received: from smtp-3.orcon.net.nz ([60.234.4.44]:35255) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyvN5-0000Gb-G5 for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 06:28:28 -0500 Received: from [101.53.216.160] (port=29856 helo=[192.168.20.103]) by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kyvN3-00079J-0t; Tue, 12 Jan 2021 00:28:25 +1300 Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines To: =?UTF-8?B?56mN5Li55bC8IERhbiBKYWNvYnNvbg==?= , 45652@debbugs.gnu.org References: <877dosudon.5.fsf@jidanni.org> From: Phil Sainty Message-ID: Date: Tue, 12 Jan 2021 00:28:24 +1300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <877dosudon.5.fsf@jidanni.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-GeoIP: NZ X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Dan, On 5/01/21 12:47 am, 積丹尼 Dan Jacobson wrote: > Alas, even in my https://www.jidanni.org/comp/configuration/.emacs with > (global-so-long-mode 1) > (setq so-long-action 'so-long-minor-mode) > this certain file does not trigger so-long mode. I see that Emacs uses js-mode for .har files, so it *is* a targeted major mode for so-long, which means that it's probably just not meeting the configured criteria for a file with long lines. See the docstring for `so-long-detected-long-line-p' for details. I'm also in the process of making changes to some of the relevant default values, so you could test the current WIP version from here: https://git.savannah.nongnu.org/cgit/so-long.git/plain/so-long.el?h=wip > Where to get such a file to test? > Real simple. In Chrome Developer Tools network tab, visit > https://www.youtube.com/c/jidanni2/playlists?view=1 and right click > "Save all as HAR with content." I don't have Chrome installed, sorry; but if it's not a config issue then I'll be happy to take a look at an example file, if you provide one (compressed, please). > Here we see the file(1) command knows a file has very long lines. > $ file www.youtube.com.har > www.youtube.com.har: UTF-8 Unicode text, with very long lines > $ wc www.youtube.com.har > 45982 330703 14075335 www.youtube.com.har Those programs have no bearing on so-long's criteria, of course. In particular, so-long doesn't (by default) look at the whole file, and the above file is apparently 45,982 lines long. For context I am currently looking at increasing the maximum number of lines checked by so-long (by default) to 500 -- approximately the first 1% of your file. Even if we go with a larger number, I think it's likely to *be* a fixed maximum number in the default config, which means there will always be scope for a file to have its first gigantic line on the (max+1)th line, and not be detected by so-long. Hopefully the new default config will be more reliable than before, though. -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 07:55:55 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 12:55:55 +0000 Received: from localhost ([127.0.0.1]:56007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kywjj-0004qi-6O for submit@debbugs.gnu.org; Mon, 11 Jan 2021 07:55:55 -0500 Received: from eastern.birch.relay.mailchannels.net ([23.83.209.55]:51032) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kywjg-0004qX-AF for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 07:55:53 -0500 X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 6DBDF320A77; Mon, 11 Jan 2021 12:55:47 +0000 (UTC) Received: from pdx1-sub0-mail-a22.g.dreamhost.com (100-100-138-63.trex.outbound.svc.cluster.local [100.100.138.63]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id AE4E832176A; Mon, 11 Jan 2021 12:55:46 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from pdx1-sub0-mail-a22.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 11 Jan 2021 12:55:47 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@jidanni.org X-MailChannels-Auth-Id: dreamhost X-Vacuous-Tasty: 1b47312f6e03fc72_1610369746948_722628607 X-MC-Loop-Signature: 1610369746948:2982742321 X-MC-Ingress-Time: 1610369746948 Received: from pdx1-sub0-mail-a22.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a22.g.dreamhost.com (Postfix) with ESMTP id 5C6DC8846A; Mon, 11 Jan 2021 04:55:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to:cc :subject:references:date:message-id:mime-version:content-type; s=jidanni.org; bh=TkvWMe2doeI0jRDByL4Q85AG9mI=; b=p5Cr7PiLmUk6L 08u6SNm6Vjwp+ZRpefLWtiWebRQSECl+xlAXF+qH8NdgUpMg3KNAp8ZHWagHk1uw 0tMVIDmiXqC9cEihknMOQZfSIWVxSxlmy94qVKrJuDvWZqxCqe0YYibAsSX26mTj doxWbKn0NvyMkdDeMm5NGkmc0dtYdc= Received: from jidanni.org (114-41-16-129.dynamic-ip.hinet.net [114.41.16.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by pdx1-sub0-mail-a22.g.dreamhost.com (Postfix) with ESMTPSA id B53F5880FA; Mon, 11 Jan 2021 04:55:44 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a22 From: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> Date: Mon, 11 Jan 2021 20:55:38 +0800 Message-ID: <87k0sjljjp.5.fsf@jidanni.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@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 (-) Let's make a deal: have so-long mode be the default (for those who have opted in) for all "big" files in the first place. I recall for this .har, it starts out well behaved, but then the whopping lines are closer to the bottom of the file. I would say that opening any large file is fraught with danger (of locking up emacs, requiring kill -1.) And, if the user is sure his file is safe, he can always toggle so-long mode off for that file. Even having emacs scan a file for big lines sounds like it might be risky. So it would be great to give the scanner a vacation in such large file cases. PS> for `so-long-detected-long-line-p' for details. Not yet in 27.1 PS> https://git.savannah.nongnu.org/cgit/so-long.git/plain/so-long.el?h=wip That's OK, I'm not really following this that closely. Just giving suggestions. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 13:39:33 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 18:39:33 +0000 Received: from localhost ([127.0.0.1]:58235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz26H-0001ti-Er for submit@debbugs.gnu.org; Mon, 11 Jan 2021 13:39:33 -0500 Received: from quimby.gnus.org ([95.216.78.240]:56100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz26F-0001tW-SP for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 13:39:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=u4geXH2fZS8yw0B5ZiAf6pYxUer0tqDrgfCxxT7x/CA=; b=abQXyvoAXulEB4BPDSbAec09Yj 4OYjvmr1MzRVshkb41b3yhrU7k5AfRb7KQRDtZy1EqjNEYfBHXyd/ky+fEounhb0lKK2Drmq70Rw/ bEjdl8JqcIdrIdJ04bpcMeVkAbvEEsyoPE7tmNYkE7OJpaLgLdT/2vmtSzKBRVEMF+ys=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kz263-0001bU-SO; Mon, 11 Jan 2021 19:39:24 +0100 From: Lars Ingebrigtsen To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEUrJSYkHh5NOkOQ T0b///+qhH9IAAAAAWJLR0QEj2jZUQAAAAd0SU1FB+UBCxIkMd+oGKIAAAHCSURBVDjLXVSLscQg CERtAHMNKDYQof/e3oLm97iLM2FxQRZDRIxfWCJO9TJ3MMU71cdSjWiRlkkaUR3TY/iwFECT1rID 2c4gZesXf1gdpitbpo9l8x0cdXz8Q0fr/0I1w48acvINmymLDPG1XZ5iQlGt24czgCw3kmXXYPYC nAo1ZbENyGMRFn75At4Zd2ujLyCmj/8NoCWmK9cnuVjLcvvfW+Bq7448wMd9k42oPvpfaeux/Usn iJjeZGhQ6OSaX5osLjtx9jUMvKjaat9Qantw0ktxpsOcfpXHq/C2Bm2oJG5xGkyhB/TFfOjojAoA eZKa8F+LmQO2hEGROIEfwlLZQOTUkRV+jM7oGE1u5plwHCsJwUWtjMnDAQmAix3qVPoDEFXJLt6W bLBJluoaJI7kbp49JSS/Os8qp/Xxg7/X5M++UMep45z2Q/pODngb2TurOrCjIBHuF9iocnSdJ+g7 iI4pwmjjtYMnKp0AsiqAfUf9cmpRPVFTswmAq1NtVUJmLEdn5YSqoPTnrmWBVIjxK/e+cckBxEOh VtI1R1up0xd06+S3G8EzdBRZyV9AaJxpDVatzzfn39fnftn7HP4DLF1Z0zFFb68AAAAldEVYdGRh dGU6Y3JlYXRlADIwMjEtMDEtMTFUMTg6MzY6NDgrMDA6MDABzbx4AAAAJXRFWHRkYXRlOm1vZGlm eQAyMDIxLTAxLTExVDE4OjM2OjQ4KzAwOjAwcJAExAAAAABJRU5ErkJggg== X-Now-Playing: Keith Seatman's _Scarred For Life 2_: "One Lost Weekend" Date: Mon, 11 Jan 2021 19:39:18 +0100 In-Reply-To: (Phil Sainty's message of "Tue, 12 Jan 2021 00:28:24 +1300") Message-ID: <87wnwjco89.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Phil Sainty writes: > In particular, so-long doesn't (by default) look at the whole file, > and the above file is apparently 45,982 lines long. For context > I am currently looking at increasing the maximum number of lin [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?utf-8?B?56mN5Li55bC8?= Dan Jacobson 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 (-) Phil Sainty writes: > In particular, so-long doesn't (by default) look at the whole file, > and the above file is apparently 45,982 lines long. For context > I am currently looking at increasing the maximum number of lines > checked by so-long (by default) to 500 -- approximately the first > 1% of your file. Have you considered adding a C-level primitive that just looks at the entire buffer? It should be reasonably simple and very fast -- just count areas between "\n"s, skipping the buffer gap. We don't have to care about characters as such, I think, so this should be massively faster than counting line lengths in Lisp. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 14:10:46 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 19:10:46 +0000 Received: from localhost ([127.0.0.1]:58281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2aT-0002gd-TS for submit@debbugs.gnu.org; Mon, 11 Jan 2021 14:10:46 -0500 Received: from smtp-2.orcon.net.nz ([60.234.4.43]:42661) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2aR-0002gU-Rn for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 14:10:44 -0500 Received: from [101.53.216.160] (port=49789 helo=[192.168.20.103]) by smtp-2.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kz2aO-0003Bn-LU; Tue, 12 Jan 2021 08:10:40 +1300 Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines To: =?UTF-8?B?56mN5Li55bC8IERhbiBKYWNvYnNvbg==?= References: <877dosudon.5.fsf@jidanni.org> <87k0sjljjp.5.fsf@jidanni.org> From: Phil Sainty Message-ID: <7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz> Date: Tue, 12 Jan 2021 08:10:40 +1300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <87k0sjljjp.5.fsf@jidanni.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-GeoIP: NZ X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 12/01/21 1:55 am, 積丹尼 Dan Jacobson wrote: > Let's make a deal: have so-long mode be the default (for those > who have opted in) for all "big" files in the first place. Emacs currently notices when you ask it to visit a very large file, and offers to let you open the file 'literally' which I would suggest trying if you are unsure of the contents. See (info "(emacs)Visiting") That's already a good way to improve performance in the buffer (with its own set of trade-offs), but adding a so-long option to that menu could be something to consider. That aside, a custom `so-long-predicate' could use the buffer length as a trigger, instead of scanning for newlines. > I recall for this .har, it starts out well behaved, but then > the whopping lines are closer to the bottom of the file. That might remain problematic, then. You could always configure Emacs to open all .har files in so-long-mode, if this is the only way you encounter them? > Even having emacs scan a file for big lines sounds like it > might be risky. There's no risk in checking where the newlines are, other than time expended in doing it. (It should be pretty quick, provided the number of lines being scanned isn't absolutely massive.) On that note though, I have been wondering whether the newline cache (not part of so-long) could keep tabs on the longest line seen thus far when it's being built, and store that value in a buffer-local variable which so-long could see? I don't know much about that cache; but if it's all built when the file is initially inserted into the buffer, then this could be a nice alternative to having so-long scan for long lines itself, and may let us 'see' the whole file, rather than just checking the first N lines. > PS> for `so-long-detected-long-line-p' for details. > Not yet in 27.1 It's definitely in 27.1, if so-long.el is loaded. It's a function. "C-h o so-long-detected-long-line-p" should find it. -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 14:18:48 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 19:18:48 +0000 Received: from localhost ([127.0.0.1]:58301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2iF-0002tT-QF for submit@debbugs.gnu.org; Mon, 11 Jan 2021 14:18:48 -0500 Received: from smtp-2.orcon.net.nz ([60.234.4.43]:42723) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2iD-0002tK-F6 for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 14:18:45 -0500 Received: from [101.53.216.160] (port=21507 helo=[192.168.20.103]) by smtp-2.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kz2iB-0003fa-1m; Tue, 12 Jan 2021 08:18:43 +1300 Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines To: Lars Ingebrigtsen References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> From: Phil Sainty Message-ID: Date: Tue, 12 Jan 2021 08:18:42 +1300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <87wnwjco89.fsf@gnus.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-GeoIP: NZ X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?UTF-8?B?56mN5Li55bC8IERhbiBKYWNvYnNvbg==?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 12/01/21 7:39 am, Lars Ingebrigtsen wrote: > Have you considered adding a C-level primitive that just looks at the > entire buffer? It should be reasonably simple and very fast -- just > count areas between "\n"s, skipping the buffer gap. We don't have to > care about characters as such, I think, so this should be massively > faster than counting line lengths in Lisp. Agreed. See my reply to Dan a few minutes ago for a similar thought. I don't know what the correct approach to this would be, but there's definitely scope for some kind of improvement along these lines (pun not intended :) -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 14:30:46 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 19:30:46 +0000 Received: from localhost ([127.0.0.1]:58317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2tp-0003E5-PG for submit@debbugs.gnu.org; Mon, 11 Jan 2021 14:30:46 -0500 Received: from quimby.gnus.org ([95.216.78.240]:56480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz2tm-0003Dq-4R for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 14:30:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Kkw+vC4lABNF61/CBFkarWEONVe8aaZDugeqTkhhM+U=; b=fTzl6s5Ec++2IXX5goAR302Zua BouLFdNpo35RIm8uwsorUc01XyLR5lxh8ZkVHLAJ0JJPdMGjnMExhEm2Z91ZKflV2QNTcp5ISj1Bd GrUQRikv33ORZAjBGyn0lJjZdo8sTuZ8Khz0xm4SQA+rhPXdoOYImzFQFYrP9fybZHdY=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kz2tV-00021P-Hc; Mon, 11 Jan 2021 20:30:34 +0100 From: Lars Ingebrigtsen To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEX09Nb7++Le3sFj Y1SKiXUGBgK4uJ8tLSVHRjt/f23///+3Y8xXAAAAAWJLR0QKaND0VgAAAAd0SU1FB+UBCxMWKSB2 vrIAAAGvSURBVDjLdZRNT8JAEIZnkFSOu0B65kOCV4OaeKPCL6AMcFSM0SMayxk1Gn62M7Nttwvy HnbD+7DztW0BRAbBehlr0aoPXUR7IPVbyZGvAAcMsOqhLgZvkiCHZgGIujElYNdiXDyKO5l20QCc fwwpwdcF/8tkC15aRBsQQERJnxhAk+bGIhvvknrIYEQMAPsMoJ3lQE6w5gbrmawD/jELAPsChgrQ gzijCvAn0h86AGf7PZXi5CVg/ZwCgyqQ0DNjxK+1SrBwYAduuv3CTztazBYU4EV54M2N6ApkViCN 5dpAAViR90NQd97yCIBLPb8UYKoAXl0HvKX3Wu4OKmTeNC8cEALw4nqOeetAw4M8FLQPQJ8CwOXv quWmqIAf1nP61Ak28ua2Cu57vWfadqqAftvlBN4DQNd++iHwkhvsMUjdHL9pNWJNp9MHB1ZrBR8x bSovR6+xeqhlenuRTrdUfQwKrmpxCPgW3YnuwQmpzOWI+LHxpjQJRVXLr3+BxDMBcKGk8xKg2xTc xh4UXwYBvxDprQRgMhrd8vZ0N84j5Z8MyMfA73LRG8IJ2RM+2j+QnMAKWUIZ/wAAACV0RVh0ZGF0 ZTpjcmVhdGUAMjAyMS0wMS0xMVQxOToyMjo0MSswMDowMIGmX5QAAAAldEVYdGRhdGU6bW9kaWZ5 ADIwMjEtMDEtMTFUMTk6MjI6NDErMDA6MDDw++coAAAAAElFTkSuQmCC X-Now-Playing: RP Boo's _Planet Mu 25_: "Finally Here (ft. Afiya)" Date: Mon, 11 Jan 2021 20:30:22 +0100 In-Reply-To: (Phil Sainty's message of "Tue, 12 Jan 2021 08:18:42 +1300") Message-ID: <877dojclv5.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Phil Sainty writes: > I don't know what the correct approach to this would be, but there's > definitely scope for some kind of improvement along these lines (pun > not intended :) Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?utf-8?B?56mN5Li55bC8?= Dan Jacobson 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 (-) Phil Sainty writes: > I don't know what the correct approach to this would be, but there's > definitely scope for some kind of improvement along these lines (pun > not intended :) I can give writing something like that a shot... It could return, say, the length of the longest line, and the number of lines? The median line length would be nice, but would be slower. The length of the lines would be in bytes, not characters, for efficiency. I guess we could do characters with minuscule penalty (looking for \n while counting utf-8 characters can be really fast, but we'd need to special-case for unibyte/multibyte). I don't know whether it'd make much difference for so-long. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 16:07:37 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 21:07:37 +0000 Received: from localhost ([127.0.0.1]:58457 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz4PY-0005ei-5j for submit@debbugs.gnu.org; Mon, 11 Jan 2021 16:07:37 -0500 Received: from quimby.gnus.org ([95.216.78.240]:57200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz4PV-0005eU-Le for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 16:07:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=bhYQjkC6v+NSYcn2YcMPryZwr4gqqmRbMWNVytHXP28=; b=lKWBVznw1qsf7EApu6C9MHNhAM LyxNO25ijLq40PaqN78yDCuXLy4bPmXV74CR65p/TP4tZ5Y6AvQeqZaEIv7/HWYF+BA0VwSaOJrxl NXpErHhb3WNxmwaz2QY9TCSUug5d6SuUNQwkgmZxmtdgbaVsxByMIgzfZekfDZSBRepo=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kz4PK-00034Z-Cs; Mon, 11 Jan 2021 22:07:26 +0100 From: Lars Ingebrigtsen To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEUYERNbTU2HZ2TC vr////8cf1h3AAAAAWJLR0QEj2jZUQAAAAd0SU1FB+UBCxUGFthf/WwAAAFwSURBVDjLnZPRccMw CIZBWQDwAhJeIBb771aQrBgnaR/KnS8Wn0HwQwAYoSISgz9I4L9QGdy4EAlWAX9KdVDwOcCfhr8C Fja39klU9q8AeHP/ES9NON/Nu2mPF2lNKIHN+jwK65YyFruASAIPB/ONILrPwGaoqq5LCOMKM1pf mD1HC+4YTbyDqFXiVOEYYO+jIddJOAL81FbEMTsSuU4p1dZwBES9xYtlNzojbIHTR2VUvmufBFk1 AJKMiKl4dLjArHXvCzBnxYt1PQG5Sjz1CvM5LOCro9cs9gRYHKzNMH2lEpeWhnihiGnTG4BXBJ8d VtGu8AU8xXqaam+s1nmk6noBtCbqsygHuQhac4O764c81OmUQeymxa23ouZkXKhYYE1FlTkLBYk7 UlE43K0FwAzA3b5jHGMFrimiNw0CD3diBo3YN8loP2DpB+ci+pZ4++/gmtj4i2dLn92A19v4G4g+ +J5zga4L1Fuqzyr+Zz9tRUWH+LRwVQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMS0xMVQyMTow NjoyMiswMDowMAHEo4MAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDEtMTFUMjE6MDY6MjIrMDA6 MDBwmRs/AAAAAElFTkSuQmCC X-Now-Playing: Doubting Thomas's _Father Don't Cry_: "audio_08.mp3" Date: Mon, 11 Jan 2021 22:07:20 +0100 In-Reply-To: <877dojclv5.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 11 Jan 2021 20:30:22 +0100") Message-ID: <8735z7chdj.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Lars Ingebrigtsen writes: > I can give writing something like that a shot... It could return, say, > the length of the longest line, and the number of lines? The median > line length would be nice, but would be slower. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?utf-8?B?56mN5Li55bC8?= Dan Jacobson 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 (-) Lars Ingebrigtsen writes: > I can give writing something like that a shot... It could return, say, > the length of the longest line, and the number of lines? The median > line length would be nice, but would be slower. Mean would be easy, and standard deviation would be possible (but require two passes, I guess?) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 18:04:41 2021 Received: (at 45652) by debbugs.gnu.org; 11 Jan 2021 23:04:41 +0000 Received: from localhost ([127.0.0.1]:58692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz6Er-0002y7-A0 for submit@debbugs.gnu.org; Mon, 11 Jan 2021 18:04:41 -0500 Received: from purple.birch.relay.mailchannels.net ([23.83.209.150]:46555) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz6Eo-0002xv-3n for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 18:04:39 -0500 X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id CDC6D183513; Mon, 11 Jan 2021 23:04:35 +0000 (UTC) Received: from pdx1-sub0-mail-a62.g.dreamhost.com (100-96-27-101.trex.outbound.svc.cluster.local [100.96.27.101]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 62C2218346A; Mon, 11 Jan 2021 23:04:35 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from pdx1-sub0-mail-a62.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 11 Jan 2021 23:04:35 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@jidanni.org X-MailChannels-Auth-Id: dreamhost X-Fearful-Minister: 17800a1327ad01b2_1610406275615_1828805030 X-MC-Loop-Signature: 1610406275614:2495087245 X-MC-Ingress-Time: 1610406275614 Received: from pdx1-sub0-mail-a62.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a62.g.dreamhost.com (Postfix) with ESMTP id 22D4E7E0BE; Mon, 11 Jan 2021 15:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to:cc :subject:references:date:message-id:mime-version:content-type; s=jidanni.org; bh=nTjjg/IiLQGFE+/VwjzKxpDLYkM=; b=apKyb7oAp2d7P hVIhDozTcqI4nDeS0lGqUPkd6QnQbmy5lbKevAoYqgKJ9dUo6Qxt1yrOzldVpa9q ByYfnSvk5lYYCh0OacPKf89cnk0FZf3Hg2/I0BvrBScBsI8O1VsHWC2PyXzoUyD5 xZqwrriSJkKMxazkMMFeC9y1NvDAb4= Received: from jidanni.org (114-46-57-246.dynamic-ip.hinet.net [114.46.57.246]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by pdx1-sub0-mail-a62.g.dreamhost.com (Postfix) with ESMTPSA id 52BAE895EB; Mon, 11 Jan 2021 15:04:34 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a62 From: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87k0sjljjp.5.fsf@jidanni.org> <7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz> Date: Tue, 12 Jan 2021 07:04:30 +0800 Message-ID: <87y2gzvzwh.5.fsf@jidanni.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@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 (-) PS> Emacs currently notices when you ask it to visit a very large PS> file, and offers to let you open the file 'literally' which I PS> would suggest trying if you are unsure of the contents. PS> See (info "(emacs)Visiting") PS> That's already a good way to improve performance in the buffer PS> (with its own set of trade-offs), but adding a so-long option PS> to that menu could be something to consider. Yup, definitely add so-long mode to those choices. As even with "literally" the problems come when the user hits ^S and searches within possible long lines. (Sure hope there is a "?" or "C-h" choice there too to describe what each choice does too.) PS> You could always configure Emacs to open all .har files in PS> so-long-mode, if this is the only way you encounter them? Any archive format that that day has some nasty file at the bottom of it will have the same problem. PS> It's definitely in 27.1, if so-long.el is loaded. It's a function. PS> "C-h o so-long-detected-long-line-p" should find it. I see. I was still using C-h v as today is the first time I heard of C-h o. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 21:30:09 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 02:30:09 +0000 Received: from localhost ([127.0.0.1]:58812 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz9Rg-0007sd-TO for submit@debbugs.gnu.org; Mon, 11 Jan 2021 21:30:09 -0500 Received: from smtp-3.orcon.net.nz ([60.234.4.44]:45725) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz9Re-0007rT-Vk for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 21:30:08 -0500 Received: from [10.253.37.70] (port=9873 helo=webmail.orcon.net.nz) by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kz9Rb-0002YN-TX; Tue, 12 Jan 2021 15:30:04 +1300 Received: from wlgwil-nat-office.catalyst.net.nz ([202.78.240.7]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Tue, 12 Jan 2021 15:30:03 +1300 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Tue, 12 Jan 2021 15:30:03 +1300 From: Phil Sainty To: =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC_Dan_Jacobson?= Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines In-Reply-To: <87y2gzvzwh.5.fsf@jidanni.org> References: <877dosudon.5.fsf@jidanni.org> <87k0sjljjp.5.fsf@jidanni.org> <7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz> <87y2gzvzwh.5.fsf@jidanni.org> Message-ID: <80d8793e5161ecd5857642a1751f2ff1@webmail.orcon.net.nz> X-Sender: psainty@orcon.net.nz User-Agent: Orcon Webmail X-GeoIP: -- X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2021-01-12 12:04, 積丹尼 Dan Jacobson wrote: > Yup, definitely add so-long mode to those choices. As even with > "literally" the problems come when the user hits ^S and searches > within possible long lines. I think that so-long may not perform any better, but it would still be *different* (and hence potentially useful), so I think it's probably a good idea. > PS> You could always configure Emacs to open all .har files in > PS> so-long-mode, if this is the only way you encounter them? > > Any archive format that that day has some nasty file at the bottom > of it will have the same problem. Oh, it's an archive format? In that case Emacs should probably learn to treat it similarly to tar files, etc? If the "long line" is actually some distinct file with an archive, and Emacs treated it as an archive, then opening that file from within the archive would be more likely to trigger so-long when necessary. Looking at https://en.wikipedia.org/wiki/.har I can see why js-mode has been associated, but it's surely not the ideal solution. > I was still using C-h v as today is the first time I heard of C-h o. Remember that C-h v is only for variables. C-h f is for functions (which would have worked here), and C-h o is a good choice when you know what something is named, but don't know exactly what it is. -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 21:42:42 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 02:42:43 +0000 Received: from localhost ([127.0.0.1]:58826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz9dp-0008Az-Rg for submit@debbugs.gnu.org; Mon, 11 Jan 2021 21:42:42 -0500 Received: from smtp-3.orcon.net.nz ([60.234.4.44]:52465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kz9dn-0008Aq-ID for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 21:42:40 -0500 Received: from [10.253.37.70] (port=55266 helo=webmail.orcon.net.nz) by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kz9dl-0003H2-9s; Tue, 12 Jan 2021 15:42:37 +1300 Received: from wlgwil-nat-office.catalyst.net.nz ([202.78.240.7]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Tue, 12 Jan 2021 15:42:37 +1300 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 12 Jan 2021 15:42:37 +1300 From: Phil Sainty To: Lars Ingebrigtsen Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines In-Reply-To: <8735z7chdj.fsf@gnus.org> References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> Message-ID: <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> X-Sender: psainty@orcon.net.nz User-Agent: Orcon Webmail X-GeoIP: -- X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC_Dan_Jaco?= =?UTF-8?Q?bson?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 12/01/21 7:39 am, Lars Ingebrigtsen wrote: > Have you considered adding a C-level primitive that just looks at the > entire buffer? It should be reasonably simple and very fast -- just > count areas between "\n"s, skipping the buffer gap. We don't have to > care about characters as such, I think, so this should be massively > faster than counting line lengths in Lisp. FYI, this also triggered a memory from several years ago: https://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00761.html Stefan's thought at the time was: > I wonder if we could improve the detection part with some help from > the C code. I'm thinking of trying to keep track of "the last \n > before point" and calling a hook whenever this is larger than a > threshold. I never followed up on that (I ended up shelving the idea of releasing so-long.el for a couple of years or so, as my own use-cases at the time turned out to be due to one specific badly-behaved library which had already been fixed upstream, so for a while I thought it might not be as useful as I'd originally thought). On 2021-01-12 10:07, Lars Ingebrigtsen wrote: >> I can give writing something like that a shot... It could return, >> say, >> the length of the longest line, and the number of lines? The median >> line length would be nice, but would be slower. > > Mean would be easy, and standard deviation would be possible (but > require two passes, I guess?) I'm not sure that so-long itself would find it useful to know any kind of averages, but longest line is obviously useful, and the number of lines sounds more or less like a freebie, and might be useful too. -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 22:25:43 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 03:25:43 +0000 Received: from localhost ([127.0.0.1]:58851 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzAJT-0000sv-97 for submit@debbugs.gnu.org; Mon, 11 Jan 2021 22:25:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45352) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzAJQ-0000sh-Ab for 45652@debbugs.gnu.org; Mon, 11 Jan 2021 22:25:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51506) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzAJK-0000Ip-KS; Mon, 11 Jan 2021 22:25:34 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2767 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kzAJD-00034B-Tb; Mon, 11 Jan 2021 22:25:33 -0500 Date: Tue, 12 Jan 2021 05:25:37 +0200 Message-Id: <83v9c2eszy.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <8735z7chdj.fsf@gnus.org> (message from Lars Ingebrigtsen on Mon, 11 Jan 2021 22:07:20 +0100) Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.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: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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: Lars Ingebrigtsen > Date: Mon, 11 Jan 2021 22:07:20 +0100 > Cc: 45652@debbugs.gnu.org, > 積丹尼 Dan Jacobson > > Lars Ingebrigtsen writes: > > > I can give writing something like that a shot... It could return, say, > > the length of the longest line, and the number of lines? The median > > line length would be nice, but would be slower. > > Mean would be easy, and standard deviation would be possible (but > require two passes, I guess?) There are algorithms that don't require 2 passes. Let me know if you need me to describe something like that. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 00:53:42 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 05:53:42 +0000 Received: from localhost ([127.0.0.1]:59055 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzCcf-0006hZ-Mw for submit@debbugs.gnu.org; Tue, 12 Jan 2021 00:53:41 -0500 Received: from antelope.elm.relay.mailchannels.net ([23.83.212.4]:61783) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzCcT-0006hB-E1 for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 00:53:39 -0500 X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 549D6122797; Tue, 12 Jan 2021 05:53:27 +0000 (UTC) Received: from pdx1-sub0-mail-a59.g.dreamhost.com (100-96-8-109.trex.outbound.svc.cluster.local [100.96.8.109]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 2048F1220A4; Tue, 12 Jan 2021 05:53:16 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jidanni@jidanni.org Received: from pdx1-sub0-mail-a59.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Tue, 12 Jan 2021 05:53:27 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@jidanni.org X-MailChannels-Auth-Id: dreamhost X-Cold-Oafish: 131fd486200f5aca_1610430807120_430189326 X-MC-Loop-Signature: 1610430807120:3692376715 X-MC-Ingress-Time: 1610430807120 Received: from pdx1-sub0-mail-a59.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a59.g.dreamhost.com (Postfix) with ESMTP id CF9138910E; Mon, 11 Jan 2021 21:53:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to:cc :subject:references:date:message-id:mime-version:content-type; s=jidanni.org; bh=dgo4oGzLZj5PZus62Fc4RiDncHQ=; b=MQkFxjRRQ94EV 4i0RjVYq509fpQNNGqZLYaxCHoj5dUgD7KbHH/K5SvERJUCEueKvxSTGyRAgovGg +LB3XfQYouf/hdHD527RevrEdbkYOcT2CRGcDlM9RklMJFqwqHlRwV4+tSZs29XM wXjQeRnWDLGCKPN7V3Z3dILkElD2VU= Received: from jidanni.org (36-234-68-18.dynamic-ip.hinet.net [36.234.68.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by pdx1-sub0-mail-a59.g.dreamhost.com (Postfix) with ESMTPSA id 416738910B; Mon, 11 Jan 2021 21:53:15 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a59 From: =?utf-8?B?56mN5Li55bC8?= Dan Jacobson To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87k0sjljjp.5.fsf@jidanni.org> <7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz> <87y2gzvzwh.5.fsf@jidanni.org> <80d8793e5161ecd5857642a1751f2ff1@webmail.orcon.net.nz> Date: Tue, 12 Jan 2021 13:53:11 +0800 Message-ID: <87v9c2itvc.5.fsf@jidanni.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >>>>> "PS" == Phil Sainty writes: PS> Oh, it's an archive format? In that case Emacs should probably PS> learn to treat it similarly to tar files, etc? OK but emacs will never be able to keep up with who knows what new archive mode gets invented. Hence so-long mode will always have its place. Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [23.83.212.4 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [23.83.212.4 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-Debbugs-Envelope-To: 45652 Cc: 45652@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: 0.2 (/) >>>>> "PS" == Phil Sainty writes: PS> Oh, it's an archive format? In that case Emacs should probably PS> learn to treat it similarly to tar files, etc? OK but emacs will never be able to keep up with who knows what new archive mode gets invented. Hence so-long mode will always have its place. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 07:40:42 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 12:40:42 +0000 Received: from localhost ([127.0.0.1]:59523 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzIyX-00064o-O9 for submit@debbugs.gnu.org; Tue, 12 Jan 2021 07:40:42 -0500 Received: from quimby.gnus.org ([95.216.78.240]:35892) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzIyV-00064U-QX for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 07:40:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=BwWC9P6aX95izyrjMzcCDR5UBl7jJJBx2SCBK4Y9ayQ=; b=synS6gaUyShMK11rbMuKSjAqgS iznWLIY4mJBA+zABLUjb7M3S5MFvGuKEl4rhXWx6fA52KvKWjjXnrTJ9y47wibacTy8TVDR9yj/Zo KXw8P0SbKVO5q9Hdbr+bIT6CrHxrcwp7HbAQ0wi/f1KHzELMvITbs/p28H5dculeUjbQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzIyM-0004sN-1s; Tue, 12 Jan 2021 13:40:32 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <83v9c2eszy.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEU7GBm6JSvYy8T/ //+ng3msAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+UBDAwfAtelIE8AAAF3SURBVCjPVdFBS8MwFAfw 19KObadOFtCd9LBLP0UCzc6J7A305FH3KcpAkJ1kbAN7kjJHfZ/Sf9pVNIfQX/L6+Cch+jseZfO1 q2RX5WXe4ghsBJiJfH1XInICHlqspTo1OQ2V2SszzTS+iAayV7rtlZJJmdn7MDEZi9kbDmsBJiCs ke2xVACzsX1ZCw4NAB2x5ozGCPFBBCh3QSyPCPaSAxXFDbBu5vhlBYzXkje3bYNYBgF3HZo4l/wU oC5o5suA6C0eXavniI37vRekmRINY9lqkVfLCHodi5Tn8wENlsiWep0VOE8PLnyB6+igCkfLC0gV OOy0g1PWeg5bUeJdZuzEO/o/dOKNTtNk4jpYp9C7B03YesqAFGWZsojhAhzKLMqeAO5wO8XDJMwA pqigMuEJEhQc0pX9UcOOTiKUXn3iwoTKUb3eDs+1HMIrjGrZjutNi3ImTT6WqsX7jcgMT7A9yoFo JAuR+mBXwugU0WJ4H+kiTX8A+hWg7VXPXpYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMTJU MTI6MzE6MDIrMDA6MDDQvCRhAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTEyVDEyOjMxOjAy KzAwOjAwoeGc3QAAAABJRU5ErkJggg== X-Now-Playing: Soft Cell's _Cruelty Without Beauty (2)_: "Together Alone (2020 Extended Mix)" Date: Tue, 12 Jan 2021 13:40:28 +0100 In-Reply-To: <83v9c2eszy.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Jan 2021 05:25:37 +0200") Message-ID: <87wnwi9vlv.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: >> Mean would be easy, and standard deviation would be possible (but >> require two passes, I guess?) > > There are algorithms that don't require 2 passes. Let me know if you > need me to describe som [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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 (-) Eli Zaretskii writes: >> Mean would be easy, and standard deviation would be possible (but >> require two passes, I guess?) > > There are algorithms that don't require 2 passes. Let me know if you > need me to describe something like that. It sounds like this wouldn't be useful for Phil, so I'll skip it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 07:42:09 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 12:42:09 +0000 Received: from localhost ([127.0.0.1]:59527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzIzx-00067h-89 for submit@debbugs.gnu.org; Tue, 12 Jan 2021 07:42:09 -0500 Received: from quimby.gnus.org ([95.216.78.240]:35914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzIzv-00067R-KI for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 07:42:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=sKFyr8rQRkR9kcS9Ep/t6mmBraS9fbuuQue+Ne3GsIc=; b=phk0KFc3sVE6JDvs4tDdX0bqco xY7iDwBfgyy+VDDQKRXIkov0y6v6J4IAd/T5dlS44/R/AKIUDf+Gy2APxcps/KbhqKGcwUeb/3zDS YBxvgJ0HWeWk0fVdY4bazZ1B0wkjNYsIWN7DYrNcvdC0qLwOJBSi8cc7p0196MOO7aQQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzIzn-0004tQ-7I; Tue, 12 Jan 2021 13:42:01 +0100 From: Lars Ingebrigtsen To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEU7GBm6JSvYy8T/ //+ng3msAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+UBDAwfAtelIE8AAAF3SURBVCjPVdFBS8MwFAfw 19KObadOFtCd9LBLP0UCzc6J7A305FH3KcpAkJ1kbAN7kjJHfZ/Sf9pVNIfQX/L6+Cch+jseZfO1 q2RX5WXe4ghsBJiJfH1XInICHlqspTo1OQ2V2SszzTS+iAayV7rtlZJJmdn7MDEZi9kbDmsBJiCs ke2xVACzsX1ZCw4NAB2x5ozGCPFBBCh3QSyPCPaSAxXFDbBu5vhlBYzXkje3bYNYBgF3HZo4l/wU oC5o5suA6C0eXavniI37vRekmRINY9lqkVfLCHodi5Tn8wENlsiWep0VOE8PLnyB6+igCkfLC0gV OOy0g1PWeg5bUeJdZuzEO/o/dOKNTtNk4jpYp9C7B03YesqAFGWZsojhAhzKLMqeAO5wO8XDJMwA pqigMuEJEhQc0pX9UcOOTiKUXn3iwoTKUb3eDs+1HMIrjGrZjutNi3ImTT6WqsX7jcgMT7A9yoFo JAuR+mBXwugU0WJ4H+kiTX8A+hWg7VXPXpYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMTJU MTI6MzE6MDIrMDA6MDDQvCRhAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTEyVDEyOjMxOjAy KzAwOjAwoeGc3QAAAABJRU5ErkJggg== X-Now-Playing: Soft Cell's _Cruelty Without Beauty (2)_: "Caligula Syndrome (2020 Extended Mix)" Date: Tue, 12 Jan 2021 13:41:58 +0100 In-Reply-To: <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> (Phil Sainty's message of "Tue, 12 Jan 2021 15:42:37 +1300") Message-ID: <87sg769vjd.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Phil Sainty writes: > I'm not sure that so-long itself would find it useful to know any kind > of averages, but longest line is obviously useful, and the number of > lines sounds more or less like a freebie, and might be [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?utf-8?B?56mN5Li55bC8?= Dan Jacobson 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 (-) Phil Sainty writes: > I'm not sure that so-long itself would find it useful to know any kind > of averages, but longest line is obviously useful, and the number of > lines sounds more or less like a freebie, and might be useful too. OK, I'll write up a simple function, and we can tweak it later, if it turns out that more info is useful. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 10:27:56 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 15:27:57 +0000 Received: from localhost ([127.0.0.1]:32861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLaO-0004aV-KN for submit@debbugs.gnu.org; Tue, 12 Jan 2021 10:27:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42652) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLaK-0004aD-T0 for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 10:27:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33353) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzLaF-0007TF-Dz; Tue, 12 Jan 2021 10:27:47 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3360 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kzLaE-0001nI-KE; Tue, 12 Jan 2021 10:27:47 -0500 Date: Tue, 12 Jan 2021 17:28:00 +0200 Message-Id: <83ft36dvjz.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87sg769vjd.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 12 Jan 2021 13:41:58 +0100) Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87sg769vjd.fsf@gnus.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: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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: Lars Ingebrigtsen > Date: Tue, 12 Jan 2021 13:41:58 +0100 > Cc: 45652@debbugs.gnu.org, > 積丹尼 Dan Jacobson > > > I'm not sure that so-long itself would find it useful to know any kind > > of averages, but longest line is obviously useful, and the number of > > lines sounds more or less like a freebie, and might be useful too. > > OK, I'll write up a simple function, and we can tweak it later, if it > turns out that more info is useful. You are going to use find_newline_no_quit or somesuch, I hope? From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 10:37:39 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 15:37:39 +0000 Received: from localhost ([127.0.0.1]:32875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLjm-0004sk-H6 for submit@debbugs.gnu.org; Tue, 12 Jan 2021 10:37:39 -0500 Received: from quimby.gnus.org ([95.216.78.240]:37498) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLjj-0004sR-Pa for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 10:37:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=VbofX2sQgQU0cIBJPC5/B/c8RTCdjV93OYcj5Pd55VM=; b=S/uX8Odo0L+Q+AsAtliLyj6AB5 ABY3v5g72BtjvO/A9raQiuRDmtJKpK0EP4jh7ukPODi0+j01i7W5++6UdOB23BWzMzkGS8L4xXOHM TCr9+esUsGeGTbmoPrQUVSfqYhK100KXTDeXQoq2ts4oCLmo+w1RkLTAXtd161I6yeT0=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzLjZ-0007WH-Lz; Tue, 12 Jan 2021 16:37:28 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87sg769vjd.fsf@gnus.org> <83ft36dvjz.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAG1BMVEV9aoWzs7nd3OP8 /Pikq9OVPGRPXqGau0f///87stifAAAAAWJLR0QIht6VegAAAAd0SU1FB+UBDA8jKQqsHqkAAAGw SURBVDjLlZSxbuMwDIaVwPZsuclljSi23e17ADdHeI4H3eweUu42Cuj1S6aFqhTxcBoChJ+o/ycp 2Wws6Op+LmPvhgU0AL67D+7GFXQrwP8vWIl3RtZmR/QH6ARHa20CIYTzX+YTDESP8icBfhNABMDy sw9jAgOX56DVK8DyIYFfTDacAFBB1h1zluPDFuCJL7fA2gbqB68xmzfBxBhnyXAtQF02cPQ3YARN 8ftgQg6Wuhyv02r3IQezhMrt73L00GbgEHUvnqXqEY5jmYCTs1vwrjZ2AzW45EpFn+fDUvVMSJS6 rTOH2LiF+6nY9QXllyE24JaKiAbmSwI7OIgt9z5MRLuKOQGykoA0E6sGc9KwcQE3Y8SBtyiH+cyV yLgFdLZ5dxvQ0t0s0pPYzVwdYvMJqKccvFx7hQpOYvdbI2qCuhIgBjIgCYgUUQFmrj7fjTqTecie pHHRnXLhUJXEWsqohEjB/9Qq9pmGYXqRghXTjauCpyuopooVfN/2il8FTBITkM1jY/tX7E0hZRdI Wa/SLf75cNaBXwHrz3ntA7C9Tq31d4FfA53mtF+Rry0fCyDtq2U8hFsAAAAldEVYdGRhdGU6Y3Jl YXRlADIwMjEtMDEtMTJUMTU6MzU6NDErMDA6MDARhpYkAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIx LTAxLTEyVDE1OjM1OjQxKzAwOjAwYNsumAAAAABJRU5ErkJggg== X-Now-Playing: Liquid Liquid's _Cavern Remix_: "Cavern (The Cut Chemist Rocks A Rave In A Missile Silo Remix)" Date: Tue, 12 Jan 2021 16:37:20 +0100 In-Reply-To: <83ft36dvjz.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Jan 2021 17:28:00 +0200") Message-ID: <87ft36jhe7.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: > You are going to use find_newline_no_quit or somesuch, I hope? I'm not sure whether that would make sense -- this is something that typically would be called right after visiting a file... and find_newline doesn't count line sizes. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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 (-) Eli Zaretskii writes: > You are going to use find_newline_no_quit or somesuch, I hope? I'm not sure whether that would make sense -- this is something that typically would be called right after visiting a file... and find_newline doesn't count line sizes. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 10:50:35 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 15:50:35 +0000 Received: from localhost ([127.0.0.1]:32887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLwI-0005DH-OU for submit@debbugs.gnu.org; Tue, 12 Jan 2021 10:50:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzLwF-0005D1-E3 for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 10:50:33 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33859) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzLw9-0006nU-D3; Tue, 12 Jan 2021 10:50:25 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4752 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kzLvn-0005CE-Pb; Tue, 12 Jan 2021 10:50:06 -0500 Date: Tue, 12 Jan 2021 17:50:15 +0200 Message-Id: <83blduduiw.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87ft36jhe7.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 12 Jan 2021 16:37:20 +0100) Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87sg769vjd.fsf@gnus.org> <83ft36dvjz.fsf@gnu.org> <87ft36jhe7.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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: Lars Ingebrigtsen > Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.org > Date: Tue, 12 Jan 2021 16:37:20 +0100 > > Eli Zaretskii writes: > > > You are going to use find_newline_no_quit or somesuch, I hope? > > I'm not sure whether that would make sense -- this is something that > typically would be called right after visiting a file... and > find_newline doesn't count line sizes. It returns the position, though. And it's lightning-fast, because it uses memchr. Maybe I don't understand what function did you intend to write. Can you tell more about that? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 12:44:52 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 17:44:52 +0000 Received: from localhost ([127.0.0.1]:33000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzNit-0008Lv-Mt for submit@debbugs.gnu.org; Tue, 12 Jan 2021 12:44:51 -0500 Received: from quimby.gnus.org ([95.216.78.240]:38298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzNiq-0008Lg-Je for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 12:44:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=+T8/SGpJxMzippERtqMPRO0WBK4Z3D0htJXV6QXAsXA=; b=ivHRWG+7kB26vz0ykvcj6JszIU uec0vLqB5XP4gWE+X/jS9izCSsQfr2pWsjeJaZSBwC6WgIkLg58BjEMy4HjtI9z/spTpcwWvwuSX8 lTysyV7ya2U1wUUXFbE1VviWaACV2eLxiMVIol2B4ywOv4cIfyM/NM8ebADkvzUbaFgk=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzNiY-0000DB-RK; Tue, 12 Jan 2021 18:44:41 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87sg769vjd.fsf@gnus.org> <83ft36dvjz.fsf@gnu.org> <87ft36jhe7.fsf@gnus.org> <83blduduiw.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEUbGRoODQ0wLi81 NDUnJSZOTE0fHR7d3OB/foCdnZ5ubW4gHh/Pz9H09PU/Pj8eHh////85QAFWAAAAAWJLR0QQlbIN LAAAAAd0SU1FB+UBDBEsBalU4P8AAAFZSURBVEjH5ZSNSsUwDIWbv9a0zfX939aTXe9FEdsJwgQD G2P0W3JOkpVyVdBlmT8HCzOr8jPyeQWI4maS9dNDxBLgmkAzfXHvydG3QL0DoxQtZkW6z+hFbZch S8oLtx7RAZEsgaFIpZoJxU1mhGw05OeH6tCRsi2a7EpSgZcJwdPiwZuSqopJqsgkajO0rAH4opxn 0TER87BNhiJWKhAxFoO1bZfBcLIom3Uzn7PdqK6BG0oqNQH3bB2NTQY9XKyc53ubOU+bxo30tPbZ ZsxmVM+MBjN5RLTpdDdiDaBfUAvA3U4B5oSxa+FKD6uXAKWf+Lx96M0mg3kqEKonAdTkLWKezoBu 95aaz+30sXHD51HUKQBjzTmlKOodWHZaRQRjrQKvTI6/lCyBZxDR9T/XG5YH+4zS5ZZKsKIGMakD auwroMce66cYx+uceL1az6/G638E/mD8XMMbChgKAfMY1ikAAAAldEVYdGRhdGU6Y3JlYXRlADIw MjEtMDEtMTJUMTc6NDQ6MDUrMDA6MDDHJnc7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTEy VDE3OjQ0OjA1KzAwOjAwtnvPhwAAAABJRU5ErkJggg== X-Now-Playing: The Names's _From Brussels With Love (1)_: "Cat" Date: Tue, 12 Jan 2021 18:44:29 +0100 In-Reply-To: <83blduduiw.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Jan 2021 17:50:15 +0200") Message-ID: <8735z6jbia.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: > It returns the position, though. And it's lightning-fast, because it > uses memchr. > > Maybe I don't understand what function did you intend to write. Can > you tell more about that? Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: psainty@orcon.net.nz, 45652@debbugs.gnu.org, jidanni@jidanni.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 (-) Eli Zaretskii writes: > It returns the position, though. And it's lightning-fast, because it > uses memchr. > > Maybe I don't understand what function did you intend to write. Can > you tell more about that? I think it's faster just to code than explain, so I did that, and pushed now. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 14:22:59 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 19:22:59 +0000 Received: from localhost ([127.0.0.1]:33173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzPFr-0004eJ-3u for submit@debbugs.gnu.org; Tue, 12 Jan 2021 14:22:59 -0500 Received: from quimby.gnus.org ([95.216.78.240]:39036) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzPFo-0004e0-VF for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 14:22:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=cPtGh8uYfLQO8lI3MHEAE/xYVCFAUoGRSUgQsLEOdLs=; b=UFuVj1m1tfPHg9CvGE5N1cGiif i5S04F5HEn8Z1J5IueMpG8ifZ0mYamNm4IyQZJkano6QNoSlvM//CGK96cvdozF9bE16PkJudbA1G o1nk8tiVH0mPYxSyu6ecT4v/QBdsSZGaQce6wMsRcQTZ/w+ybDUD9v29B5/95xO7ZhkQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzPFf-0001DK-Ei; Tue, 12 Jan 2021 20:22:49 +0100 From: Lars Ingebrigtsen To: Phil Sainty Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAFVBMVEX8+/uuqKFfWlKN hXPY0tAcFxb///+s7z54AAAAAWJLR0QGYWa4fQAAAAd0SU1FB+UBDBIlEBcNAQQAAAGhSURBVDjL zdO9lqsgEABgiNzeWU0fB+gTxV4i9nfRef9X2QFjTNzd4nZ3Cp3DJzP8HIX455DIoYPSXSm7lnOL XVcyFMQBoUZ9LRCJ0FJsrw+IEsoNdIUtbkAdDhYZONVejztEJxAvGRrfNnspJ0T7AO1G3EFkOGlu rBvon6Xi8ARdNZ19BZWhpzk42IGcGHrLgLwHE3AHvIjWmpPl1M4Qd4BFWIb0SeRdxsvW4z4roiWB 1p3dgSzJB8RQ8fMJNJ8SxLTz/g2WKUE+EvsG5pzgg7P6DXDIM7yNGBL83VZlywRFDZXjI9D7IVKZ Sr3f+dpj6H+BZQUYjjBnkNYdgWLP8Mep7zClGdfvYFS/SKEChxDhdQaopRjrsMYLUAhGnvEHKGEp CINL43nRCgDq/NFwokakcb/uhjPuyS+Gz9I/Z8g5LZUg3+BsPNeo1+Ve+nkie5stQ0Qeb02V/w/j 28ncHXxkGMSdYkzHLpfg7zA6AKfqtAa19fgMQ+W903V9+AejD+dQXdtgDkA3mDpQFpcjzLexaPjl jqXwxlcnsTnAfxlfdeid5hiGxPwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMTJUMTg6Mzc6 MTYrMDA6MDDfGBaNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTEyVDE4OjM3OjE2KzAwOjAw rkWuMQAAAABJRU5ErkJggg== X-Now-Playing: Gavin Bryars's _From Brussels With Love (2)_: "White's S.S.(unedited version)" Date: Tue, 12 Jan 2021 20:22:46 +0100 In-Reply-To: <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> (Phil Sainty's message of "Tue, 12 Jan 2021 15:42:37 +1300") Message-ID: <87lfcyhse1.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Phil Sainty writes: > I'm not sure that so-long itself would find it useful to know any kind > of averages, but longest line is obviously useful, and the number of > lines sounds more or less like a freebie, and might be [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?utf-8?B?56mN5Li55bC8?= Dan Jacobson 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 (-) Phil Sainty writes: > I'm not sure that so-long itself would find it useful to know any kind > of averages, but longest line is obviously useful, and the number of > lines sounds more or less like a freebie, and might be useful too. The `buffer-line-statistics' function is now on the trunk, and it returns count/longest/mean, since those three are free-ish. (I could also add standard deviation or variance -- it would basically just be a sqrt and a division per line?) Testing in a 18MB zip file (which is probably on the outer limits of what people load into Emacs, size-wise, for editing), it takes 0.002 seconds to compute the data, so for real usage, it should be unnoticeable. The data for that file is (81472 2632 220.35040259229885) There's a bit more newlines in that zip file than I'd expect? I mean, if it was totally random, it should be 255 or something? Anyway, I digress. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 12 18:49:51 2021 Received: (at 45652) by debbugs.gnu.org; 12 Jan 2021 23:49:51 +0000 Received: from localhost ([127.0.0.1]:33708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzTQ6-0003T9-SI for submit@debbugs.gnu.org; Tue, 12 Jan 2021 18:49:51 -0500 Received: from smtp-2.orcon.net.nz ([60.234.4.43]:36501) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kzTQ4-0003Sz-Go for 45652@debbugs.gnu.org; Tue, 12 Jan 2021 18:49:50 -0500 Received: from [10.253.37.70] (port=50323 helo=webmail.orcon.net.nz) by smtp-2.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1kzTQ2-00059j-4u; Wed, 13 Jan 2021 12:49:46 +1300 Received: from wlgwil-nat-office.catalyst.net.nz ([202.78.240.7]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Wed, 13 Jan 2021 12:49:46 +1300 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 13 Jan 2021 12:49:46 +1300 From: Phil Sainty To: Lars Ingebrigtsen Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines In-Reply-To: <87lfcyhse1.fsf@gnus.org> References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87lfcyhse1.fsf@gnus.org> Message-ID: <5654491f5382eba1310fc7ca777ced5d@webmail.orcon.net.nz> X-Sender: psainty@orcon.net.nz User-Agent: Orcon Webmail X-GeoIP: -- X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC_Dan_Jaco?= =?UTF-8?Q?bson?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2021-01-13 08:22, Lars Ingebrigtsen wrote: > The `buffer-line-statistics' function is now on the trunk That all sounds great, thanks Lars. I'll try to do some testing with this sometime soon. -Phil From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 18 10:02:04 2021 Received: (at control) by debbugs.gnu.org; 18 Jan 2021 15:02:04 +0000 Received: from localhost ([127.0.0.1]:47908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l1W2d-0006O2-Qk for submit@debbugs.gnu.org; Mon, 18 Jan 2021 10:02:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42166) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l1W2Y-0006NR-Ip for control@debbugs.gnu.org; Mon, 18 Jan 2021 10:02:02 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57408) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l1W2T-0003Cz-An for control@debbugs.gnu.org; Mon, 18 Jan 2021 10:01:53 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1l1W2R-0003Vh-P5 for control@debbugs.gnu.org; Mon, 18 Jan 2021 10:01:52 -0500 Subject: control message for bug 45955 To: X-Mailer: mail (GNU Mailutils 2.99.98) Message-Id: From: Glenn Morris Date: Mon, 18 Jan 2021 10:01:51 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control 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 (---) forcemerge 45652 45955 From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 04 07:24:14 2021 Received: (at control) by debbugs.gnu.org; 4 Feb 2021 12:24:14 +0000 Received: from localhost ([127.0.0.1]:40142 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l7dgD-000270-Sq for submit@debbugs.gnu.org; Thu, 04 Feb 2021 07:24:14 -0500 Received: from quimby.gnus.org ([95.216.78.240]:56988) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l7dgC-00026g-43 for control@debbugs.gnu.org; Thu, 04 Feb 2021 07:24:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HPfQM/w89MvTdiXGPlQohdpxp3q0Y9UOagOyRomjdao=; b=Txb3OqzzWsKDj1HlaeEhIBcj2E /J3TMTQjdkwbqYSyLqel02HQcPffHF4KDQa4j0MWgcE9K0q/we8ptBy7WEd9S2vKasEsi9vwd+leD 06OxSEdh6rf4esNWDNUbLaTxouBxVKx03oJgNrKtvqgj7nSRlWsRFh0gi97uvCOR9fHQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l7dg4-0007AX-CM for control@debbugs.gnu.org; Thu, 04 Feb 2021 13:24:06 +0100 Date: Thu, 04 Feb 2021 13:24:03 +0100 Message-Id: <87v9b8qavw.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #45652 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 45652 - moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control 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 (-) tags 45652 - moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 30 01:30:09 2021 Received: (at 45652) by debbugs.gnu.org; 30 Jul 2021 05:30:09 +0000 Received: from localhost ([127.0.0.1]:58758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m9L61-0006LA-28 for submit@debbugs.gnu.org; Fri, 30 Jul 2021 01:30:09 -0400 Received: from smtp-1.orcon.net.nz ([60.234.4.34]:36635) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m9L5y-0006Jz-OV for 45652@debbugs.gnu.org; Fri, 30 Jul 2021 01:30:08 -0400 Received: from [10.253.37.70] (port=36174 helo=webmail.orcon.net.nz) by smtp-1.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1m9L5v-0003CL-2i; Fri, 30 Jul 2021 17:30:03 +1200 Received: from wlgwil-nat-office.catalyst.net.nz ([202.78.240.7]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Fri, 30 Jul 2021 17:30:02 +1200 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 30 Jul 2021 17:30:02 +1200 From: Phil Sainty To: Lars Ingebrigtsen Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines In-Reply-To: <5654491f5382eba1310fc7ca777ced5d@webmail.orcon.net.nz> References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87lfcyhse1.fsf@gnus.org> <5654491f5382eba1310fc7ca777ced5d@webmail.orcon.net.nz> Message-ID: X-Sender: psainty@orcon.net.nz User-Agent: Orcon Webmail X-GeoIP: -- X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652 Cc: 45652@debbugs.gnu.org, =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC_Dan_Jaco?= =?UTF-8?Q?bson?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2021-01-13 08:22, Lars Ingebrigtsen wrote: > The `buffer-line-statistics' function is now on the trunk I've pushed an updated scratch/so-long branch which includes the changes for using `buffer-line-statistics' by default. The relevant commit is: https://git.savannah.gnu.org/cgit/emacs.git/commit/?h=scratch/so-long&id=3d685baa92732df866412873f4485b6315c086eb I'll look to merge this branch in a few days, if there aren't any objections. -Phil From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 07:47:07 2021 Received: (at 45652-done) by debbugs.gnu.org; 3 Aug 2021 11:47:08 +0000 Received: from localhost ([127.0.0.1]:39952 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAst1-0000lf-PC for submit@debbugs.gnu.org; Tue, 03 Aug 2021 07:47:07 -0400 Received: from smtp-3.orcon.net.nz ([60.234.4.44]:49633) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAst0-0000lT-An for 45652-done@debbugs.gnu.org; Tue, 03 Aug 2021 07:47:06 -0400 Received: from [10.253.37.70] (port=50964 helo=webmail.orcon.net.nz) by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1mAssx-0000pc-QE; Tue, 03 Aug 2021 23:47:03 +1200 Received: from ip-116-251-162-85.kinect.net.nz ([116.251.162.85]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Tue, 03 Aug 2021 23:47:03 +1200 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 03 Aug 2021 23:47:03 +1200 From: Phil Sainty To: Lars Ingebrigtsen Subject: Re: bug#45652: so-long mode not triggered despite big file with very long lines In-Reply-To: References: <877dosudon.5.fsf@jidanni.org> <87wnwjco89.fsf@gnus.org> <877dojclv5.fsf@gnus.org> <8735z7chdj.fsf@gnus.org> <9463451af6d023fb4595ffa9182615b6@webmail.orcon.net.nz> <87lfcyhse1.fsf@gnus.org> <5654491f5382eba1310fc7ca777ced5d@webmail.orcon.net.nz> Message-ID: <7886aeee95e9a43601807dbaeb313895@webmail.orcon.net.nz> X-Sender: psainty@orcon.net.nz User-Agent: Orcon Webmail X-GeoIP: -- X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45652-done Cc: 45652-done@debbugs.gnu.org, =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC_Dan?= =?UTF-8?Q?_Jacobson?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2021-07-30 17:30, Phil Sainty wrote: > I'll look to merge this branch in a few days, if there aren't > any objections. Now merged to master, so I'm closing this bug. -Phil From unknown Mon Jun 16 23:47:16 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 01 Sep 2021 11:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator