From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: LdBeth Newsgroups: gmane.emacs.devel Subject: Re: using finalizers Date: Fri, 31 Dec 2021 19:41:26 +0800 Message-ID: References: <878rw1pvcw.fsf@logand.com> <875yr5p9t3.fsf@logand.com> <87bl0xm39e.fsf@logand.com> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26596"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.2 (x86_64-apple-darwin18.7.0) MULE/6.0 (HANACHIRUSATO) Cc: LdBeth , emacs-devel@gnu.org To: Tomas Hlavaty Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Dec 31 12:45:22 2021 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 1n3GLY-0006jp-Up for ged-emacs-devel@m.gmane-mx.org; Fri, 31 Dec 2021 12:45:21 +0100 Original-Received: from localhost ([::1]:56448 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n3GLX-0001RP-MH for ged-emacs-devel@m.gmane-mx.org; Fri, 31 Dec 2021 06:45:19 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:33520) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n3GI7-0007gM-SF for emacs-devel@gnu.org; Fri, 31 Dec 2021 06:41:47 -0500 Original-Received: from out162-62-57-137.mail.qq.com ([162.62.57.137]:34785) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n3GHv-0007kd-Np for emacs-devel@gnu.org; Fri, 31 Dec 2021 06:41:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1640950889; bh=/4Q6rQP1n3wtzSDQxxU+whiskwH4vs+7ngrRbOFX/sc=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=MAE7nbB+9BxhkcDgGbAixe0DaWqDYCMk58aNSBfylw4huixRshyzeXc9M5M9dvnjW 0ALNZyxJyp468ZRBZPfBawFzy4VCluN7j5CTwBcuyJvZZB1Xnss9se6JxeGE0cKGoh Llx3hPdSZPCZam7bv+IpR1FAzMxutFMl76Lq0gX8= Original-Received: from Costume-Party.local ([125.111.88.153]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id A5B87223; Fri, 31 Dec 2021 19:41:27 +0800 X-QQ-mid: xmsmtpt1640950887te19o1lz0 X-QQ-XMAILINFO: NSHyY+L3HkGie/LeLrxP0gkEw1MiYJH54oV06HZSWLj+ox1NxkKddeJ415SXAj UUcoqCAFRJypzkrUmAbbJHyst0dw3DnEwbAJy66dWiIO5xyg7db0MP59r1vUkA6XzkJsye908n8u 5obQRsPMkkqGw3L+GiVEqXSD/mkDLgyciU5rVmsdFAIDPJwX0Ok7/y5ECtK8UQ576IAiD/KRLpoK bYdX9PSZamzU5JmC6YCPbL06sluv7KE/jDzrWBfok+jGacH8gmc9W7Ap6K7kEk2Y4u53yPrmlEwD bHr/woKwZtyqjhj5LZpaMaVh7j/BC0OsQJDjZmhzj7nHTHfvTpOXpfizthayyZnW84balCC8R3/7 sqq+2sBJNCoBd2q4BwqeFovNKwU0l/vTd91TYWktqBM8e7CcZGu6R0iCoNRFL9lRermol8yGCzv7 w4yK3GFK4A48plCnJPtHZCzwNBhLpP3cl/4tgFqy50vx02qzQ3xp9e2RfOsiiiuOvYupgVLIdmnU XsuMFI5DnQYgt1bTw7Ret9FCiV/XLhFosNpr25Z3f7e3rjxMUrluEW6O8O/acjuY55ENPxxwvJ3u qTlo4gHUp158jh8eWbflUkClO9Kzprolis/FI2TPVKAu3Qh2l3mO6e6NqtymGAd1FGdqWgj0cChD odxIPV+0kwKeW8DGtn2+shi/eijkJTxVv7DN+/mh3RcLy5iL/tc+VuAkm7fdTReATlyIOCIJ4VHP QyIyhqbEYPR/XZDxkeUWyeWYqUosKzj4LNHg8pdgo+iB7CGhEL97SWi2DmC269DitB9uKQDRNtcd tc740KhNXD2ApASrgBLUZlVt+0g2+XzuavXc4mYb Original-Received: by Costume-Party.local (Postfix, from userid 501) id 96FCB203D64ED9; Fri, 31 Dec 2021 19:41:26 +0800 (CST) X-OQ-MSGID: In-Reply-To: <87bl0xm39e.fsf@logand.com> X-Face: %[!P\u/BKFRGn_9h9|yO"ho?C0ej^LmM}WMb-`Jfj8OsS^^AKmHYGlD@^|7SEA3UzOGPFbB"OFczY?'\JtJ\lR'@&Y5j; s8{$&|3D>^i.U4l2h?1qpD.+{[$~j]vBeHZf^|BGyL8{/`4 X-Attribution: ldb Received-SPF: pass client-ip=162.62.57.137; envelope-from=andpuke@foxmail.com; helo=out162-62-57-137.mail.qq.com X-Spam_score_int: 27 X-Spam_score: 2.7 X-Spam_bar: ++ X-Spam_report: (2.7 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HELO_DYNAMIC_IPADDR=1.951, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RDNS_DYNAMIC=0.982, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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:283732 Archived-At: >>>>> In <87bl0xm39e.fsf@logand.com> >>>>> Tomas Hlavaty wrote: ldb> You would only need finalizers for complex objects, so ideally you ldb> could use OOP to manage that, probably EIEIO but not limited to that, ldb> and you may even come up with your own. Tomas> What do you mean? Tomas> Why not do it "properly" and future-proof the make-finalizer interface, Tomas> pass the object explicitly there and leave the rest as implementation Tomas> detail instead of leaking the issue to the programmer? Isn't it doesn't make sense to associate a primitive data types such as numbers, symbols, strings with a finalizer? If you need such a feature on primitive data types, you are probably using this in a way not intended. And meawhile it would be problematic to hardcode what kinds of objects are allowed to have objects. Notice this is a C function so it is not very flexible. You can think this is the primitive API that Emacs provides, and people can build up more higher level ones that suit their particular needs.