From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Howard Melman Newsgroups: gmane.emacs.devel Subject: Re: master baf1a7a4a0: Turn gv-synthetic-place into a function Date: Thu, 22 Sep 2022 10:11:14 -0400 Message-ID: References: <835yhkzmn8.fsf@gnu.org> <878rmfx51p.fsf@web.de> <831qs7zj9e.fsf@gnu.org> <87v8piec78.fsf@web.de> <834jx2xphy.fsf@gnu.org> <878rmenmd4.fsf@web.de> <87sfklgmba.fsf@dataswamp.org> <87edw4bzrp.fsf@web.de> <83y1ucu4k9.fsf@gnu.org> <87y1ub7kjp.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10719"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin) To: emacs-devel@gnu.org Cancel-Lock: sha1:6+fR+3wTB8F63oFou/beKu66e5E= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 22 18:29:16 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 1obP4d-0002WB-Dn for ged-emacs-devel@m.gmane-mx.org; Thu, 22 Sep 2022 18:29:15 +0200 Original-Received: from localhost ([::1]:44698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1obP4c-0004Fc-2h for ged-emacs-devel@m.gmane-mx.org; Thu, 22 Sep 2022 12:29:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36758) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1obMvG-0000Kb-Ux for emacs-devel@gnu.org; Thu, 22 Sep 2022 10:11:27 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:44272) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1obMvF-0002HB-I6 for emacs-devel@gnu.org; Thu, 22 Sep 2022 10:11:26 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1obMvD-0001uW-Vb for emacs-devel@gnu.org; Thu, 22 Sep 2022 16:11:23 +0200 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: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 22 Sep 2022 12:12:35 -0400 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:295988 Archived-At: Lars Ingebrigtsen writes: > So I'd rather keep "generalized variable", long and unwieldy as it is. > I think we should avoid "place" as much as possible, though. +1 I've written elisp for decades but am not completely comfortable with the "new" stuff like cl-lib and gv and it took me a little to wrap my head around setf. I like the term "Generalized Variable" and would prefer to see "gv" used instead of "place". The beginning of the Generalized Variables section of the elisp manual is fine for me and mostly the sub-section "12.17.1 The ‘setf’ Macro". But referring to "the left side" of a sexp doesn't help me, e.g., "The ‘setf’ form is like ‘setq’, except that it accepts arbitrary place forms on the left side rather than just symbols. For example, ‘(setf (car a) b)’..." I can follow the rest but I don't think of "the first argument" to setq as "the left side". And I think rather than -- Macro: setf [place form]... This macro evaluates FORM and stores it in PLACE, which must be a valid generalized variable form. If there are several PLACE and FORM pairs, the assignments are done sequentially just as with ‘setq’. ‘setf’ returns the value of the last FORM. I'd prefer -- Macro: setf [gv val]... This macro evaluates VAL and stores it in GV, which must be a valid generalized variable form. If there are several GV and VAL pairs, the assignments are done sequentially just as with ‘setq’. ‘setf’ returns the value of the last VAL. I find it much easier to process GV as "generalized variable" rather than "place", as long as each docstring where I run across GV uses "generalized variable" someplace so I could look up the term. I'm less invested in changing "form" above to "val" but did it for two reasons: it matches what setq calls its second argument (and the actual setf docstring) and it doesn't reuse the term "form" which is used in the description of the first argument. I'm fine thinking of lisp forms, but since everything is a form, I'd rather actually name arguments to differentiate them when possible. Just my $0.02 -- Howard