From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Adam Porter Newsgroups: gmane.emacs.devel Subject: Obsoleting of generalized variable setters in 48aacbf292fbe8d4be7761f83bf87de93497df27 Date: Mon, 21 Nov 2022 15:19:43 -0600 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22471"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Nov 21 22:21:15 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 1oxEE6-0005Zw-LX for ged-emacs-devel@m.gmane-mx.org; Mon, 21 Nov 2022 22:21:15 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oxECt-0002Dc-5c; Mon, 21 Nov 2022 16:19:59 -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 1oxECq-0002Cg-Ej for emacs-devel@gnu.org; Mon, 21 Nov 2022 16:19:56 -0500 Original-Received: from cyan.elm.relay.mailchannels.net ([23.83.212.47]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oxECn-0007El-Oy for emacs-devel@gnu.org; Mon, 21 Nov 2022 16:19:56 -0500 X-Sender-Id: dreamhost|x-authsender|adam@alphapapa.net Original-Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 3D5E0882121 for ; Mon, 21 Nov 2022 21:19:50 +0000 (UTC) Original-Received: from pdx1-sub0-mail-a291.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 939C6881ECE for ; Mon, 21 Nov 2022 21:19:49 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1669065589; a=rsa-sha256; cv=none; b=Fw6P13f1DDKwpUFBVGYTEP5NwlYi4s3HvgHOsPJu9WZkCPLUyfjUxFZAB0Vk0ZdvHHaYID 38d3p/kACGzBtfciuGHt1RmZgniXXjCs/oDUcZvMYXsY13+sNvbIRvwz5dKBicvlJlPk2d TDa6WS/OIULbzREJkO0bpIurWI2tD4PvIf3XbVsruviOYgwwpGHAZgvx5VgE2UIYonu/6T 5bMMHlqY/x3z96R0a2U3GCWa4+2oruyspK+6eLRVco5pg08S5r65CHutsOVbxrEBEvgZvN zT3jQPN6NCJ03ZeLJfZfElrWwhTL/X7JCgVJrYY/xqNyjFTZkr9mSTp4cGXj6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1669065589; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=AVO3hqOC5n540xckT1kj/0yz/Sz839qEwCyroiMIRkQ=; b=GzFg/Q7KJqmTGHdBNzaV3qMs9+C2h+ii9V61sabY45yEsyR6Wy5CkK6lvdcSeUjL4mTMuT IJFcSjZko2y/nQmw06kgmZZxBIzQA2iVrmVuJ4uqR86jzKs5jsuFSQBKHwObedr6rU9CQc QfEYAHzC9fPIMJAN8/Tm0KA5IzgD5RXhnmGYZgtQi8Q8FGZxeiAeaUT1UcpUyWE666IsBQ VY5JWk0q4OIIKDRbonmnuVBme7Gff7KDDcyD+ub0kCp6btzCpqe+W2n6DddkEdujmYmdcE lA8nGeezXenTxPgKEvnjRDLIgsJfFI34NgRwE4inKLEwSE9799+CY8/3nFTatg== ARC-Authentication-Results: i=1; rspamd-65567d767-txlb7; auth=pass smtp.auth=dreamhost smtp.mailfrom=adam@alphapapa.net X-Sender-Id: dreamhost|x-authsender|adam@alphapapa.net X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|adam@alphapapa.net X-MailChannels-Auth-Id: dreamhost X-Invention-Descriptive: 272765327ac20bb1_1669065589822_2148884737 X-MC-Loop-Signature: 1669065589821:2662142854 X-MC-Ingress-Time: 1669065589821 Original-Received: from pdx1-sub0-mail-a291.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.126.30.54 (trex/6.7.1); Mon, 21 Nov 2022 21:19:49 +0000 Original-Received: from [10.67.0.58] (unknown [216.73.160.186]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) (Authenticated sender: adam@alphapapa.net) by pdx1-sub0-mail-a291.dreamhost.com (Postfix) with ESMTPSA id 4NGKz90cvCz8q for ; Mon, 21 Nov 2022 13:19:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alphapapa.net; s=dreamhost; t=1669065589; bh=AVO3hqOC5n540xckT1kj/0yz/Sz839qEwCyroiMIRkQ=; h=Date:To:From:Subject:Content-Type:Content-Transfer-Encoding; b=JGDYH3CdCzuGFwwOEAsQfRzKWd4FuEaxFlmg4al+pq4aUPis2iDgpIG2U7McjX6J9 49/4UtrmBzHoVUsJKU5dpym9UqJ3iLlkN+o9J8DpvV4nagfg1tEYzbCJ5fS/oxlIEG LWcpk/RYxVQGK+GvAhr55/yokx4d/KmCExkYY9i2ByXGfbqifPcXFaC5OqtLmVO9Yj lM7qCW0yNWEKALkHmdpKMTig7eZ0h+s9nyyxtK3q9qdGDf9I9YywtQ71RxAMJVle1D xJUbppjNziM7+GV0UFRVtxhkLY/S1CZDpe4ldYehz2aCo6YoaTICq1Nr/kaHJXww1h aj8kh3k6JPYrQ== Content-Language: en-US Received-SPF: neutral client-ip=23.83.212.47; envelope-from=adam@alphapapa.net; helo=cyan.elm.relay.mailchannels.net X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 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_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 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:300310 Archived-At: Hi, I recently received a bug report to one of my Elisp packages to replace the use of a (setf (point) ...) form with (goto-char ...) because the generalized setter has been marked as obsolete in Emacs 29. Digging into emacs.git, I found that this was done in August in commit 48aacbf292fbe8d4be7761f83bf87de93497df27. The rationale given by Lars was twofold: - The vast majority of these are unused in-tree, - many of them perform actions that aren't obvious when reading the code. The latter seems like a good reason to obsolete some forms. But the former doesn't seem like a good reason to remove working code. AFAIK, a simple (setf (point) ...) form, for example, doesn't cause any problems or have any unexpected side effects. I discovered the ability to use forms like (point) as generalized variables relatively recently, and I've enjoyed using it in my code, as it follows a convenient, more concise pattern in many cases. I'd generally (ha) like to see more generalized variables and setters in Elisp, not less. The fact that many such forms have gone unused for a while in-tree is likely due to few people being aware that they can be used, as well as the existence of (setf ...) itself being relatively unknown among Elispers. I don't think it means that no one wants to use them, or that no one would do so in the future. So I'd like to ask that this commit, or at least some parts of it, be reverted--that the setters that present no traps for the unwary programmer be restored to fully accepted status. At the least, it would seem like a good idea to have an open discussion before removing 38 such setters from Elisp. If these kinds of setters are to be disallowed, it seems like that ought to be a known policy with a stated justification rather than an unwritten rule. (Please cc me on replies.) Thanks, Adam