From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Wolfgang Jenkner Newsgroups: gmane.emacs.bugs Subject: bug#12314: 24.2.50; `add-to-history': use `setq' with `delete' Date: Mon, 10 Sep 2012 13:54:40 +0200 Message-ID: <85zk4yoyto.fsf@iznogoud.viz> References: <7602D24B74DE42CF9901322634B85CA2@us.oracle.com> <87sjas4mc2.fsf@gnu.org> <83ipbomv6e.fsf@gnu.org> <2C45207ADF0E46BC98AF1B486695F632@us.oracle.com> <83fw6smti6.fsf@gnu.org> <9A8F619FD7584123A6319BD089E444E4@us.oracle.com> <83bohgmrdv.fsf@gnu.org> <83a9x0mq5e.fsf@gnu.org> <8E40573C868D4B339513A16A02588F5E@us.oracle.com> <837gs4mcqy.fsf@gnu.org> <852E534DA6A342708069D17B8C3C3DFF@us.oracle.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1347279589 7655 80.91.229.3 (10 Sep 2012 12:19:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 10 Sep 2012 12:19:49 +0000 (UTC) Cc: 12314@debbugs.gnu.org, cyd@gnu.org To: "Drew Adams" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Sep 10 14:19:49 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TB2xt-0000F1-M3 for geb-bug-gnu-emacs@m.gmane.org; Mon, 10 Sep 2012 14:19:45 +0200 Original-Received: from localhost ([::1]:53329 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB2xq-0005kl-7A for geb-bug-gnu-emacs@m.gmane.org; Mon, 10 Sep 2012 08:19:42 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52773) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB2xj-0005js-2h for bug-gnu-emacs@gnu.org; Mon, 10 Sep 2012 08:19:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TB2xc-0005WV-EA for bug-gnu-emacs@gnu.org; Mon, 10 Sep 2012 08:19:35 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41998) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB2xc-0005WR-Af for bug-gnu-emacs@gnu.org; Mon, 10 Sep 2012 08:19:28 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TB2yA-0003q9-Ch for bug-gnu-emacs@gnu.org; Mon, 10 Sep 2012 08:20:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <7602D24B74DE42CF9901322634B85CA2@us.oracle.com> Resent-From: Wolfgang Jenkner Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Sep 2012 12:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12314 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 12314-submit@debbugs.gnu.org id=B12314.134727958614729 (code B ref 12314); Mon, 10 Sep 2012 12:20:02 +0000 Original-Received: (at 12314) by debbugs.gnu.org; 10 Sep 2012 12:19:46 +0000 Original-Received: from localhost ([127.0.0.1]:51543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TB2xt-0003pV-OS for submit@debbugs.gnu.org; Mon, 10 Sep 2012 08:19:46 -0400 Original-Received: from mx18.lb01.inode.at ([62.99.145.20]:8535 helo=mx.inode.at) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TB2xn-0003pF-CA for 12314@debbugs.gnu.org; Mon, 10 Sep 2012 08:19:43 -0400 Original-Received: from [91.119.101.188] (port=2053 helo=iznogoud.viz) by smartmx-18.inode.at with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1TB2xC-0002Qe-TF; Mon, 10 Sep 2012 14:19:03 +0200 Original-Received: from wolfgang by iznogoud.viz with local (Exim 4.80 (FreeBSD)) (envelope-from ) id 1TB2xA-0000wV-4B; Mon, 10 Sep 2012 14:19:00 +0200 User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2.50 (berkeley-unix) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:64032 Archived-At: On Sun, Sep 09 2012, Drew Adams wrote: >> Variables that point to that list structure will point to something >> whose value is unpredictable, a.k.a. "garbage". It is enough to say >> that the old value is garbage and shouldn't be used, IMO. > > No. It all depends. Lisp programs that use list modification do so sometimes > for performance in calculating the new list, but more often they do so in order > to take advantage of SHARING list structure. > > Consider the example I gave before: > > (setq a '(1 2 3 4)) > (setq b (cddr a)) > > a => (1 2 3 4) > b => (3 4) > > (delq 4 b) > > a => (1 2 3) > b => (3) Though using `delete' and friends this way would have unpredictable results in ANSI Common Lisp[1] or Scheme (delete! in srfi1[2]), hence may be regarded as questionable programming style in Emacs Lisp as well, which I understand is Eli's point. The following should work in both CL (except for the missing DEFVARs) and Emacs Lisp, but sort of defeats the point about easy sharing ;-) (setq a (list 1 2 3 4)) (setq b (cddr a)) (setf (cddr a) (setq b (delete 4 b))) [1] http://www.lispworks.com/documentation/HyperSpec/Body/f_rm_rm.htm#delete http://www.lispworks.com/documentation/HyperSpec/Issues/iss293_w.htm [2] http://srfi.schemers.org/srfi-1/srfi-1.html#LinearUpdateProcedures Wolfgang