From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: multi-eq hash tables Date: Tue, 03 May 2022 20:58:02 +0200 Message-ID: <87h766tpdx.fsf@gnus.org> References: <165159846589.6567.527908635296473829@vcs2.savannah.gnu.org> <20220503172106.30B09C009A8@vcs2.savannah.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="17185"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 03 20:59:05 2022 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 1nlxjk-0004Dq-F7 for ged-emacs-devel@m.gmane-mx.org; Tue, 03 May 2022 20:59:04 +0200 Original-Received: from localhost ([::1]:50856 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nlxjj-0006qa-CI for ged-emacs-devel@m.gmane-mx.org; Tue, 03 May 2022 14:59:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54922) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nlxit-000601-H4 for emacs-devel@gnu.org; Tue, 03 May 2022 14:58:11 -0400 Original-Received: from quimby.gnus.org ([2a01:4f9:2b:f0f::2]:48230) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nlxis-0005vH-1q for emacs-devel@gnu.org; Tue, 03 May 2022 14:58:11 -0400 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=LFkeh5BBKnd16IrUR5PRsNcW6ZPmyI3fqGF2/GlrdVI=; b=mHe13N1cF7YzoIbtQeB+Y5ul9W Tk22gXwpdSr02n/u5ivaWdLnNpDsym0RojShh3JpFLEKQbzu0WxTu+hMGSSvACVlDiONArfrCApW6 PYmCpqq5vHUnlKAlQJ0y9DXD3YQUIivHUXp2fmadiWNbq8lmPNYZbBCqVXymg9+q0mzM=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nlxil-00019h-5o; Tue, 03 May 2022 20:58:05 +0200 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEWBgnuSkouspZn9 /f3z8OrXyrdzdG15enJqa2Xf2dS0vt4+GhViXliEdnDKtp6tmHv///8jAvd+AAAAAWJLR0QQlbIN LAAAAAd0SU1FB+YFAxE6LNwJCXwAAAGcSURBVEjHtdaNboQgDABgKNCCOnz/t13Lzw0UiC5bc+oF +WgRNSqlNf9A658dGGMNb7wD7eoZ0EppQKVJtcFnFIMaIA3Sxr0VcWA6dERRC0h/mlP4+kdQgnQB pUPtxgCpjwvoAweAEPKEZeYanwErQHZvgA3mOUjrcCsJOWagxj8B/TcZcAX4KoVtg22UgYbAmLDh 7jPARsyB3fb9uKzDvCT3FU3wu74u3BzsDPSOFciEl4A7mvNSEtaSaAD4JorHbQ5IC2APf9wmvQIG whuQYvA8rMHtXvoFaN8aDwBf1XdALuw7sMwQwsuSomsB5v7T27sH+S76gEcZPilmIITonB0+02Pg YnRQQClmXZKAWEEbTzJQHr0+DyNgY8oQYlNSWYgJgAzOmgGRJkBO+ALAgQBczwGvAG8A+/FbcF5A njSWMmvuDqhhBuwL7YAfgNsgd+B74NFzpJ0cD7BnjJAA+TYy8HVN6hgHhATOBqD0Tv8UeuJvD3bE HyCyFXBGBtZzs+IPEo0qfURwBuR3Yo082sGDg4DIQNryVs5+A3X/NZWE4oh1AAAAJXRFWHRkYXRl OmNyZWF0ZQAyMDIyLTA1LTAzVDE3OjU4OjQ0KzAwOjAwx3e3SwAAACV0RVh0ZGF0ZTptb2RpZnkA MjAyMi0wNS0wM1QxNzo1ODo0NCswMDowMLYqD/cAAAAASUVORK5CYII= X-Now-Playing: Eurythmics's _Sweet Dreams (Are Made Of This)_: "This City Never Sleeps" In-Reply-To: (Stefan Monnier's message of "Tue, 03 May 2022 14:12:40 -0400") Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: 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" Xref: news.gmane.io gmane.emacs.devel:289120 Archived-At: Stefan Monnier writes: > Maybe we should introduce something like: > > (define-hash-table-test shallow-equal > (lambda (x1 x2) (while (and (consp x1) (consp x2) (eql (car x1) (car x2))) > (setq x1 (cdr x1)) (setq x2 (cdr x2))) > (equal x1 x2))) > ...) Yes, that would be excellent. > and we could even improve the weakness support so that `key` used with > such a hashtable would mean that as soon as one of the values in the > key's list can be GC'd then the entry is removed. > > This way we could have our hash table such that entries are flushed by > the GC when a terminal disappears or when one of the tool-bar-map > objects dies (instead of the current code which prevents us from GC'ing > the terminal objects and the old tool bar maps). Hm, interesting... It's slightly niche, though. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no