From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#40671: [DOC] modify literal objects Date: Tue, 21 Apr 2020 23:30:37 -0700 Organization: UCLA Computer Science Department Message-ID: <60f0eb0d-7761-6167-c6c5-42b1a1267152@cs.ucla.edu> References: <83tv1finob.fsf@gnu.org> <1E9E4C19-37C2-4E24-91B7-8101F9CFBF35@acm.org> <527dc4b5-3176-38b5-f2c1-1483ffc814a1@cs.ucla.edu> <87k12b6sv2.fsf@web.de> <2225099d-16e1-645d-0342-a054da53363f@cs.ucla.edu> <87a7376nv9.fsf@web.de> <99d7a8f9-7732-e1e3-414e-aabbea4433ac@cs.ucla.edu> <87o8rnasfk.fsf@web.de> <877dyaltfq.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="53833"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 Cc: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , 40671@debbugs.gnu.org, ke.vigouroux@laposte.net To: Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Apr 22 08:31:26 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1jR8ur-000DvK-SF for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Apr 2020 08:31:25 +0200 Original-Received: from localhost ([::1]:43072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jR8uq-0003Mj-VW for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Apr 2020 02:31:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35690) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jR8uY-0003MR-P8 for bug-gnu-emacs@gnu.org; Wed, 22 Apr 2020 02:31:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jR8uV-0008IG-5y for bug-gnu-emacs@gnu.org; Wed, 22 Apr 2020 02:31:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39586) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jR8uU-0008HI-Cr for bug-gnu-emacs@gnu.org; Wed, 22 Apr 2020 02:31:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jR8uU-0002Aj-99 for bug-gnu-emacs@gnu.org; Wed, 22 Apr 2020 02:31:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 22 Apr 2020 06:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 40671-submit@debbugs.gnu.org id=B40671.15875370528327 (code B ref 40671); Wed, 22 Apr 2020 06:31:02 +0000 Original-Received: (at 40671) by debbugs.gnu.org; 22 Apr 2020 06:30:52 +0000 Original-Received: from localhost ([127.0.0.1]:51132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jR8uK-0002AF-2e for submit@debbugs.gnu.org; Wed, 22 Apr 2020 02:30:52 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51492) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jR8uH-00029z-SC for 40671@debbugs.gnu.org; Wed, 22 Apr 2020 02:30:51 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 6F31B160052; Tue, 21 Apr 2020 23:30:43 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id eqFUtllZmKoE; Tue, 21 Apr 2020 23:30:42 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9103E1600AF; Tue, 21 Apr 2020 23:30:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id O-fBMgbmgCrr; Tue, 21 Apr 2020 23:30:42 -0700 (PDT) Original-Received: from [192.168.1.9] (cpe-23-242-74-103.socal.res.rr.com [23.242.74.103]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 623BD160052; Tue, 21 Apr 2020 23:30:42 -0700 (PDT) In-Reply-To: <877dyaltfq.fsf@web.de> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Received-From: 209.51.188.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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:178775 Archived-At: On 4/19/20 8:36 PM, Michael Heerdegen wrote: > Paul Eggert writes: > >> + A mutable object can become constant if it is passed to the >> +@code{eval} function, because you should not modify an object that is >> +being or might be executed. The reverse does not occur: constant >> +objects should stay constant. >> + > > I don't know if what you say about the interpreter is true (I hope it is > not), Unfortunately it is true, for performance reasons: you can't reliably change a form that is currently being executed by the Lisp interpreter. This is because the interpreter can cache parts of such forms, or can check forms and later execute them under the assumption that the checks succeeded, and if the caches are invalid or the earlier checks no longer apply then Emacs can dump core or worse. > "you should not modify an > object that is being or might be executed" - isn't that quite common > when calculating macro expansions (which, typically, are executed)? You can modify the object before giving it to 'eval' (and macro expansion can do modifications like that), but you shouldn't modify it while it's being evaluated.