From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.devel Subject: Re: Should `get-file-buffer' be implemented in Elisp? Date: Sun, 16 Jul 2023 20:19:10 +0000 Message-ID: <87h6q31uf5.fsf@localhost> References: <87pm4r1z03.fsf@localhost> <83fs5n8zaz.fsf@gnu.org> <87mszv1xur.fsf@localhost> <83cz0r8ygk.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11794"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jul 16 22:19:59 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qL8Dn-0002q5-4M for ged-emacs-devel@m.gmane-mx.org; Sun, 16 Jul 2023 22:19:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qL8Ct-00054V-8v; Sun, 16 Jul 2023 16:19:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qL8Cq-000547-Vx for emacs-devel@gnu.org; Sun, 16 Jul 2023 16:19:01 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qL8Cp-0005mc-Ge for emacs-devel@gnu.org; Sun, 16 Jul 2023 16:19:00 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 5FB08240101 for ; Sun, 16 Jul 2023 22:18:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1689538737; bh=Z0RBxB/INHjwOxHM/1Xrv9g3gIAPT1RYTChT6+36et0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=arUeBoldkB9UrB6ajh02sKHpi/aYIRYc6zus1J3Unxg8/09axFE7ODkYxaNrTrkJD wR/oo7yFoPmb2aRwpEuqMEN1qNrpBwOlcIchBLkUHxOYqIhJ/kcb4Um2KE9ozh2k2e +cMYUkxUpFBYlALnyhG22ncTpBGMZssWU0YbTCqbTQ394FptFr/FhxxEc5pPQcaTvB rp1zE9VWSimZf1hUdeKcW6tucThFUgH2xx1GG+Hr9lROx9AOhrhK3PhGVAFO7nvAMs xthUu1VEXZCrEHDaMnezMWjY6iAQv3YyAlF2qNw8l/G34YvlOnxs8raO1ly3XctcAt BXOIO/SAgRI0A== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4R3xPX68tZz6ty0; Sun, 16 Jul 2023 22:18:56 +0200 (CEST) In-Reply-To: <83cz0r8ygk.fsf@gnu.org> Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -53 X-Spam_score: -5.4 X-Spam_bar: ----- X-Spam_report: (-5.4 / 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_MED=-2.3, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:307902 Archived-At: Eli Zaretskii writes: >> I stay corrected. > > No need to stand corrected: the key is the interpretation of "as many > as possible" -- it is not as simplistic as perhaps it could be. > > Basically, we have enough good reasons to rock the boat and make > changes which could as side effects introduce bugs and subtle behavior > change; let's not risk that when we don't have such a good reason. Ok. My original motivation about `get-file-buffer' was an observation that searching alist might be sub-optimal. I now have (length (buffer-list)) ;=> 578 and I though that it might be a good idea to keep track of buffer name -> buffer associations in a hash table. In particular, when using `get-buffer-create', and the buffer name does not exist, Emacs has to scan all the buffer list, fail, and go ahead creating the buffer. Hash table would help significantly in such scenarios. And in general lookup as well as hash tables start to outperform alists just at 20-30 elements [1] But hacking C code and adding yet another internal variable looked like not justified. [1] https://flandrew.srht.site/listful/embracing-emacs-lisp-hash-tables-introducing-xht.html -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at