From mboxrd@z Thu Jan 1 00:00:00 1970 Path: quimby.gnus.org!not-for-mail From: "Stefan Monnier" Newsgroups: gmane.emacs.devel Subject: Re: save-match-data woes Date: Mon, 25 Feb 2002 03:21:07 -0500 Message-ID: <200202250821.g1P8L7K14888@rum.cs.yale.edu> References: <20020221115255.A397.LEKTU@terra.es> <200202221643.g1MGh3a30474@rum.cs.yale.edu> <20020225090007.B039.LEKTU@terra.es> NNTP-Posting-Host: quimby2.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: quimby2.netfonds.no 1014625630 30514 195.204.10.66 (25 Feb 2002 08:27:10 GMT) X-Complaints-To: usenet@quimby2.netfonds.no NNTP-Posting-Date: 25 Feb 2002 08:27:10 GMT Cc: "Stefan Monnier" , emacs-devel@gnu.org Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby2.netfonds.no with esmtp (Exim 3.12 #1 (Debian)) id 16fGTW-0007w4-00 for ; Mon, 25 Feb 2002 09:27:10 +0100 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.33 #1 (Debian)) id 16fGQh-00021G-00; Mon, 25 Feb 2002 03:24:15 -0500 Original-Received: from rum.cs.yale.edu ([128.36.229.169]) by fencepost.gnu.org with esmtp (Exim 3.33 #1 (Debian)) id 16fGNh-0001qw-00 for ; Mon, 25 Feb 2002 03:21:09 -0500 Original-Received: (from monnier@localhost) by rum.cs.yale.edu (8.11.6/8.11.6) id g1P8L7K14888; Mon, 25 Feb 2002 03:21:07 -0500 X-Mailer: exmh version 2.4 06/23/2000 with nmh-1.0.4 Original-To: Juanma Barranquero Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.5 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: quimby.gnus.org gmane.emacs.devel:1511 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:1511 > > On Fri, 22 Feb 2002 11:43:03 -0500, "Stefan Monnier" wrote: > > > I think this is a wrong approach. The match-data need only be saved > > in a few particular circumstances and I'd rather handle those cases > > in a special way. > > Well, I'm not so sure about the "few particular circumstances". I think > is bad for a function to arbitrarily change the match data and not > saving it and not even documenting that it does modify it. That's bound > to cause trouble somewhere far away, where perhaps the trouble won't be > so easily connected with match data. I have no hard data, but my gut > feeling is that you will end saving/restoring match-data in many places > just to protect you against the relatively few functions that do not do > that now. What if one of your elisp modules is safely using a function > in another module and its maintainer just modifies slightly the > implementation, using now pp-to-string where he didn't before? Probably > you weren't saving match data because you didn't see the reason... and I > fail to see *why* you should have any reason now. It is not you who > changed anything. My experience is quite different: the match data is in 99% of the cases used right after a call to a regexp-match function, with almost no other functions called inbetween apart from some very primitive ones. Why this is so is because many functions do regexp-matching and thus destroy the match-data: the match-data is just very volatile. Another reason why it's volatile is because any buffer modification can make the match-data stale. There are cases where it is important for the match-data to be preserved, most notably in file-name-handlers (since various pieces of code rely on the fact that the default implementation of file operations do not do any regexp-matching). But for most other cases, preserving the match-data is just a waste of time and it's almost always easier to use the match-data right after pattern-matching rather than rely on the match-data being preserved (and still meaningful) by a function whose behavior might be changed without your knowing. > (Unrelated:) On the matter of ielm, is there any objection to my patch > of a few days back that makes ielm-prompt customizable and read-only? I don't have any, hence my non-response. Stefan _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://mail.gnu.org/mailman/listinfo/emacs-devel