From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: master de6b1e1efb1: Replace XSETSYMBOL with make_lisp_symbol Date: Sat, 02 Mar 2024 16:57:28 -0500 Message-ID: References: <86plwlyb5a.fsf@gnu.org> <86il2dxf7h.fsf@gnu.org> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19385"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:ZDbW3gZedRTYImQAyc2foq9ibik= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 02 22:58:15 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 1rgXN1-0004ub-9h for ged-emacs-devel@m.gmane-mx.org; Sat, 02 Mar 2024 22:58:15 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rgXMR-0007fJ-Qi; Sat, 02 Mar 2024 16:57:39 -0500 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 1rgXMP-0007es-Ur for emacs-devel@gnu.org; Sat, 02 Mar 2024 16:57:37 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rgXMO-0006ny-Bg for emacs-devel@gnu.org; Sat, 02 Mar 2024 16:57:37 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1rgXML-00044w-NC for emacs-devel@gnu.org; Sat, 02 Mar 2024 22:57:33 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:316715 Archived-At: >> More in detail, `a=f(b)` is inherently simpler, more transparent, concise >> and composable than `X(a,b)`. It is obvious to the reader that it's an >> assignment and that `a` is only modified, `b` not at all and is only >> evaluated once. There is no need for an assignment at all if the result is >> used elsewhere. > > This is your stylistic preference, which I don't share, probably > because I'm biased by many years of staring on Emacs code that uses > such macros everywhere. I don't have a strong opinion about whether we should keep the XSETFOO style of macros, but I've been annoyed several times in the past at the need to introduce a "tmp" local var just to do XSETFOO (tmp, mything); ... tmp ... which can turn from merely inconvenient and ugly to almost impossible when such code needs to be used in an expression macro, which we can't really introduce such local variables. For that reason, I started using `make_lisp_ptr` and things along these lines. Stefan