From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Unbalanced change hooks (part 2) [Documentation fix still remaining] Date: Wed, 10 Aug 2016 12:11:21 -0400 Message-ID: References: <83fuqnm6og.fsf@gnu.org> <83eg67m3aq.fsf@gnu.org> <20160808143614.GA7208@acm.fritz.box> <83mvkni7xf.fsf@gnu.org> <20160808165449.GB7208@acm.fritz.box> <83d1lji3ih.fsf@gnu.org> <20160808184223.GC7208@acm.fritz.box> <838tw7hyk2.fsf@gnu.org> <20160808195459.GD7208@acm.fritz.box> <83tweugeu9.fsf@gnu.org> <20160809163814.GD4893@acm.fritz.box> <83inv9hkjd.fsf@gnu.org> <83h9ashfgx.fsf@gnu.org> <831t1wharr.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1470859552 19948 195.159.176.226 (10 Aug 2016 20:05:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 10 Aug 2016 20:05:52 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 10 22:05:47 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXZl3-0004yW-Cf for ged-emacs-devel@m.gmane.org; Wed, 10 Aug 2016 22:05:45 +0200 Original-Received: from localhost ([::1]:43685 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXZl0-0007Rk-9y for ged-emacs-devel@m.gmane.org; Wed, 10 Aug 2016 16:05:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53585) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXZkp-0007Q3-4P for emacs-devel@gnu.org; Wed, 10 Aug 2016 16:05:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXZkn-0001hK-6G for emacs-devel@gnu.org; Wed, 10 Aug 2016 16:05:30 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:45259) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXZki-0001g0-LN; Wed, 10 Aug 2016 16:05:24 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CjFACJI6tX/2aIs2tdHAEBIoMFhEuFULBdgX2GFwQCAoFdOxIBAQEBAQEBXSeEXwEBAwFWIxALNBIUGA0kiDwIwVwBAQgCJYp3hBGFbR0FmTyYWYV8kCwlDSKEFiCHXgEBAQ X-IPAS-Result: A0CjFACJI6tX/2aIs2tdHAEBIoMFhEuFULBdgX2GFwQCAoFdOxIBAQEBAQEBXSeEXwEBAwFWIxALNBIUGA0kiDwIwVwBAQgCJYp3hBGFbR0FmTyYWYV8kCwlDSKEFiCHXgEBAQ X-IronPort-AV: E=Sophos;i="5.28,500,1464667200"; d="scan'208";a="251012879" Original-Received: from 107-179-136-102.cpe.teksavvy.com (HELO pastel.home) ([107.179.136.102]) by smtp.teksavvy.com with ESMTP; 10 Aug 2016 16:05:20 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id A7F1A64E0A; Wed, 10 Aug 2016 12:11:21 -0400 (EDT) In-Reply-To: <831t1wharr.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 10 Aug 2016 19:03:04 +0300") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.181 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:206553 Archived-At: >> > AFAICT, this is what happens, indeed, >> Then the old text was right: it's called before ANY modification. > Convince Alan, and I will change it back. >> > except that the call to before-change-functions in some cases does not >> > precede the first modification of the series. IOW, by the time the >> > hook is called, some modifications were already done. >> Sounds like a bug. > I'm not convinced it's a bug. before-change-functions should be called *before* a change occurs. If there is a call to b-c-f before the first modification, and then another call before the second modification in that series, then it's OK (assuming the BEG/END values are sufficiently large in each call to cover the changes that occur before the next call). But if a change occurs without having been "announced" by an earlier b-c-f then it's a bug. >> In any case, my point is that the doc should still say "before any >> modification" because that's really what the code *should* do. We could >> add a blurb in the doc saying that the before and after hooks may not be >> properly paired (neither in number of calls nor in the specific value of >> BEG/END), but we should still claim that they're both called for any and >> all modifications > Which is inaccurate when modifications are done in several separate > parts, and you already agreed it's okay to call the hooks only once. > So "for any and all modifications" is bound to draw fire from people > who take that at face value. They're free to misunderstand it, I'm fine with it. But saying it's called for "most" implies that there are changes where b-c-f is simply not called at all, which would break uses such as syntax-ppss's. Stefan