From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: phs Newsgroups: gmane.emacs.devel Subject: Re: More re odditie [Was: regular expressions that match nothing] Date: Thu, 16 May 2019 12:59:19 +0200 Organization: CNRS & ENS Paris Saclay Message-ID: <4f88e61c-77d0-96fd-9deb-c35686757c99@lsv.fr> References: <7a6b23f52418b093a4cf7a6db4306cf425533249.camel@acm.org> <87a7fnzd3u.fsf@web.de> <128EBFB8-78FF-47C3-8F28-C1EF91BFC4BB@acm.org> <84fcfdce-39d7-1ebb-c0c7-98aa05854646@lsv.fr> Reply-To: phs@lsv.fr Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------53DAB39CB8BD6E923B64FF6A" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="124771"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 Cc: Michael Heerdegen , Stefan Monnier , emacs-devel@gnu.org To: =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu May 16 15:04:15 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hRG3S-000WFy-Ce for ged-emacs-devel@m.gmane.org; Thu, 16 May 2019 15:04:14 +0200 Original-Received: from localhost ([127.0.0.1]:55227 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hRG3R-0004r0-Eb for ged-emacs-devel@m.gmane.org; Thu, 16 May 2019 09:04:13 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:57065) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hRE6e-0002k2-ES for emacs-devel@gnu.org; Thu, 16 May 2019 06:59:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hRE6d-0004yy-Cz for emacs-devel@gnu.org; Thu, 16 May 2019 06:59:24 -0400 Original-Received: from olive.lsv.fr ([138.231.81.248]:34512 helo=olive.lsv.ens-cachan.fr) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hRE6d-0004vb-00 for emacs-devel@gnu.org; Thu, 16 May 2019 06:59:23 -0400 Original-Received: from brol.lsv.fr (brol.lsv.fr [138.231.81.57]) by olive.lsv.ens-cachan.fr (Postfix) with ESMTP id 328D44C01D8; Thu, 16 May 2019 12:59:20 +0200 (CEST) Openpgp: preference=signencrypt Autocrypt: addr=phs@lsv.fr; prefer-encrypt=mutual; keydata= mQINBFBXOYABEADaoNODK+BwbRfymBJhplueXfR527vDCce7qWC8foYu/tSEjRy5Nplpfetm 1foD5I7sM/DwDIKXUg2jP4z8LTMZJovdHGFV4SXAAx4aeZF3awHPaaTPwL8SVy5mraAB1oa2 cPu9C1n0M+l9Hm2x2RosglOziXVDSXLXj0+OSglmbsFLF0t3iHYCXN2PrXUFS2ZJFGDHU5t2 6Pw92TmvJ93OvoSCueRXwx4YKC/ipx+66tmWyHXtYdgeVieSK2794SzDbEp+sdzHICK/uQPw eFbw5lSaP9LczSN9cwFtWea+ZACkfWLvaHDrR4nabS2xDhf3uo2DiHs80ZYcpjzE2915D+QE zSsKGJB4vdiMmRDkzqU8Fbc0rZmMSl0360lJlsfyEo94/thxvENBeWb2ysLgmPl1k9YCmOlN 4FoIoM8KT+jwK2XRiJvfCc1I4f+ei8okATEesI3V8jH+adBtwof0C3RH8ITUGBA04bOjk+RV KU2yRhrWh4na4WDJlFueOgsBizh9t8wv6c9GoZ3B+144rR7lyVXB1SAE0a+e+sE89VH8bw/6 su1RxUfFHpo3vYQtCdDMviC8L+BTKje9Sc3QmAy8E98/qlAQQRuI6otGNp8zx0uOkremy+d1 7st8iEKI1Z//OZe8XSaMoWEdCVWNNTGp8Cr5QlLBeKK1VQgoQQARAQABtCxQaGlsaXBwZSBT Y2hub2ViZWxlbiA8cGhzQGxzdi5lbnMtY2FjaGFuLmZyPokCPwQTAQIAKQUCUFc5gAIbAwUJ HDIEgAcLCQgHAwIBBhUIAgkKC In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 138.231.81.248 X-Mailman-Approved-At: Thu, 16 May 2019 09:00:04 -0400 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:236575 Archived-At: This is a multi-part message in MIME format. --------------53DAB39CB8BD6E923B64FF6A Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Mattias, On 2019/05/16 11:29, Mattias Engdeg=C3=A5rd wrote: > 16 maj 2019 kl. 08.57 skrev phs : > Actually this one is documented: >=20 > For historical compatibility, special characters are treated as ordin= ary > ones if they are in contexts where their special meanings make no sen= se. > For example, `*foo' treats `*' as ordinary since there is no precedin= g > expression on which the `*' can act. I missed that. Thanks for pointing it out. > and in any case the 'correct' behaviour would be to signal a syntax err= or, not repeat the empty string. I'd rather read `*' as meaning "repeat the empty string", as with `\(\)*', but this is a matter of taste, and historical compatibility is very important. BTW, can your scans of regexps tell if this compatibility is relied on a lot? It would be safe to replace `*' and `+' with `\*' and `\+' where this happens. I've just grep'ed quickly through the code and only noticed a risky use of "+" (and "[..]") in the definition of `term-word' in term.el > Thanks for reporting it, and you are right, that's a (known) bug in rx. When rx is fixed, I suggest we add the following extra tests (see patch) --phs --------------53DAB39CB8BD6E923B64FF6A Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="more-rx-tests.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="more-rx-tests.patch" ZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3J4LXRlc3RzLmVsIGIvdGVzdC9s aXNwL2VtYWNzLWxpc3AvcngtdGVzdHMuZWwKaW5kZXggNGE1OTE5ZWRmMC4uMzczYmM5YjJl MyAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcngtdGVzdHMuZWwKKysrIGIv dGVzdC9saXNwL2VtYWNzLWxpc3AvcngtdGVzdHMuZWwKQEAgLTEwOSw1ICsxMDksMTYgQEAK ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMCBzKSkKICAgICAgICAg ICAgICAgICAgICAiYSIpKSkpCiAKKyhlcnQtZGVmdGVzdCByeC1rbGVlbmUtZW1wdHktc3Ry aW5nICgpCisgIDs7IFRlc3Qgd2hldGhlciB0aGUgcmVwZXRpdGlvbiBvZiBlbXB0eSBzdHJp bmcgLS10aGF0IG1hdGNoZXMgZXZlcnl3aGVyZS0tIGlzIGhhbmRsZWQgY29ycmVjdGx5Cisg IChzaG91bGQgKHN0cmluZy1tYXRjaCAocnggKHplcm8tb3ItbW9yZSAiIikpICJmb28iKSkK KyAgKHNob3VsZCAoc3RyaW5nLW1hdGNoIChyeCAob25lLW9yLW1vcmUgIiIpKSAiZm9vIikp KQorCisoZXJ0LWRlZnRlc3Qgcngta2xlZW5lLXVubWF0Y2hhYmxlICgpCisgIDs7IFRlc3Qg d2hldGhlciB0aGUgcmVwZXRpdGlvbiBvZiByZWdleHAtdW5tYXRjaGFibGUgaXMgaGFuZGxl ZCBjb3JyZWN0bHkKKyAgKHNob3VsZCAoc3RyaW5nLW1hdGNoIChyeCAoemVyby1vci1tb3Jl IChvcikpKSAiZm9vIikpCisgIChzaG91bGQtbm90IChzdHJpbmctbWF0Y2ggKHJ4IChvcikp ICJmb28iKSkKKyAgKHNob3VsZC1ub3QgKHN0cmluZy1tYXRjaCAocnggKG9uZS1vci1tb3Jl IChvcikpKSAiKyIpKSkKKwogKHByb3ZpZGUgJ3J4LXRlc3RzKQogOzsgcngtdGVzdHMuZWwg ZW5kcyBoZXJlLgo= --------------53DAB39CB8BD6E923B64FF6A--