From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Unbinding let-bound built-in variables Date: Thu, 23 May 2024 14:28:00 +0800 Message-ID: <87pltdcaa7.fsf@yahoo.com> References: <87pltdcaa7.fsf.ref@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18635"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 23 08:29:24 2024 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 1sA1x6-0004gf-1o for ged-emacs-devel@m.gmane-mx.org; Thu, 23 May 2024 08:29:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sA1w2-00015K-FT; Thu, 23 May 2024 02:28:18 -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 1sA1vz-00014u-5u for emacs-devel@gnu.org; Thu, 23 May 2024 02:28:15 -0400 Original-Received: from sonic305-20.consmr.mail.ne1.yahoo.com ([66.163.185.146]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sA1vx-0005Cb-9U for emacs-devel@gnu.org; Thu, 23 May 2024 02:28:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1716445689; bh=teNhDEQhO36FCvp4luNpb3uH4OVxnEpY6NUxmkoVDIQ=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=iOQTc2FdK9vpGbvpDbZdfGjrzV/NDrcySbmmc1Yk0CRf7pWVVNZ3r1D/ndWleshBG7H0ilqBhFfqwW2b0OUk1CWyNLbNrRUesVBaw3uxSvoVOJvUhUP5TctIzrUnbPO0LJrJ4kyyqdS76LQ6rEVrVifVoAT3kaOwjZmxS/DLk/kHNURHWC2FjLMmND8YJ2vdHX4QHt7Stn4/0fK63ZwkDjoMe34II0f1/rKSPGP9j8GmnWCG9G+iUOrC/1nbpoE2zZH5m9hR73CoUmH9NQy93hcEM0GdNj6gRt4Hs5A65GIWpcrJGdPfMtUzajTuQZ81USYGF+R6AAluKozdaUN2Rw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1716445689; bh=CTSi/wIcyiZCeMo30r7xzdihtE2R3OJM53ifAis4w/X=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=A6yvCBnYbmChAzD3WcpyquiW9M5EtBrwi9dIU/lLnJeLR6Q9+RPLFqfQT44vrXpDW39+jt39SesFHci48smcc+HXBC3Sl9gJ2ohbiksxd+KPZ1YJmhrdkC8xlXwVM0kh9ioWlVqrbKouPoyfsVytrzioSppilKZg2e2FykSdU64U18vo6V1Fzd4gqNkj0aAEQ921JXvohh/JRhrXwd1EvLDEk7tKSujwXbYIQI+6N16Tb/hnPiYjF6mt7CCbLoipXEyKkvg11XLTeLGoY8VmBLbg3Xvpp+/3vs8LSoBAMe8M0IuGJLjrFLPIjWNEEc9oh2UxJ2UX82ofiH+FVcvnrg== X-YMail-OSG: 4jywc.MVM1kqisbMXP8sdWMDPSsIIEGgBVMcAN2SHeiyZ6VDp9.Bl3tkDFVrfGM OAqlVRuc2f.tSBnfg5bg85c3Z1qg7BYuBalaRhKErGsNQASFN..fi8ATUDsa52ww8bdoQEbsA32M MSDPJ8LZAeOqnUAqJtwi7puRZkiO8V4QSXY4JhQmIo3WOwxm72KKj8pyf2MJkhkahlSl1QAKRME8 dP1YxJK7Ffq5LB6nHEUiiacKOZglc.uG57PRAhm6CZdqc90GyhdmMFgMrnY7khozrSbkM_Wnydzo tpJSs_iUdq1d8KgXvC7P.XpDBXcqgneBJHwl47i8Jpey9X3BqV4s6lY7SRB5jiVKKIcCU4C1X80z s6rFQom7wGXd6PpFM7z3NTMG_8YqqSZZs7m9aSsYYARV6pVLOGnMByTnwsal01JHjJuSZuN4eg14 H39dpP6yGtYkB6DR0nEX9pV_5ofN4.bSgDE4vHVhyfpd4JQmBXe8F6xX1QyPSJtCV2ot85Rqn6ZS 84.vP1bHvGWvP7fD9_fq4iKkTglAfTuCvli4_CCXYTGm0sc05nf0li7hW2YyHTE3t.XjL4KG0oiy gHX7OBSbR_JThJbwt9TBjsyf4Etd8LZupasKBln3Vcdj8PtAk5R5ZPy_LL6o51qEv6.oWdhxu4EH zCrdZtb9LYMaXMnjX1V6oG9WFTwO5Wy53nOqf0huq6UMeQj0SYTysoPHyVq15_pkjWVBWFZQg.nw A2vnDTEk3GQHs59AWHkvrUUGEtgTbE02V8vrUwuPo31clVjZZfDtHTWszN7ZV0JFmCczj8eoFqKk qYbDtbbWGKs8M1CQK7SSTPAJqlRmp1Pd.dwja1VYg2 X-Sonic-MF: X-Sonic-ID: 58b524c8-3b0e-4c55-b1ae-ca25bb0c3fb1 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.ne1.yahoo.com with HTTP; Thu, 23 May 2024 06:28:09 +0000 Original-Received: by hermes--production-sg3-6f9f87bd85-sgvbv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID ea9ab37a480ba71133f8125bfd8bce0f; Thu, 23 May 2024 06:28:06 +0000 (UTC) X-Mailer: WebService/1.1.22356 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.185.146; envelope-from=luangruo@yahoo.com; helo=sonic305-20.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-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:319495 Archived-At: set_internal clears the forwarding pointer of a symbol when the new value is Qunbound, which is reasonable if the symbol should be globally bound, but has the undesired effect of disconnecting a symbol's value from its forwarding pointer when its binding will be reestablished once a let-binding is unwound: (let ((initial-window-system 'foo)) (makunbound 'initial-window-system) initial-window-system) initial-window-system => x (gdb) p Vinitial_window_system $1 = XIL(0x834fa10) (gdb) xsymbol $2 = (struct Lisp_Symbol *) 0x8fac130 "foo" How do you suggest that this be resolved? I'm quite loath to introduce another field in the *fwds holding whether the symbol is bound, or to save forwarding pointers in specbindings, as either of these solutions would conflict with another ongoing project of mine (as does the current arrangement, which I am attempting to eliminate), and strikes me as not terribly elegant. Let me also ask whether it is really worth the while to permit let-bound built-in symbols to be unbound in the first place?