Re: BC break in master (7.2) - Distinguish betweenunmatched subpatterns and empty matches in preg_*()

From: Date: Mon, 15 May 2017 15:05:31 +0000
Subject: Re: BC break in master (7.2) - Distinguish betweenunmatched subpatterns and empty matches in preg_*()
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-99045@lists.php.net to get a copy of this message
On 15.05.2017 at 12:12, Pierre Joye wrote: > On Mon, May 15, 2017 at 1:57 PM, Nicolas Grekas > <nicolas.grekas@gmail.com> wrote: > >> in master, feature request https://bugs.php.net/61780 has >> been implemented >> and merged into master thanks to >> https://github.com/php/php-src/pull/1303 >> >> But as noted in the PR and even in the UPGRADING file, this is a BC break: >> . preg_match() and other PCRE functions now distinguish between unmatched >> subpatterns and empty matches by reporting NULL and "" (empty string), >> respectively. Formerly, either was reported as empty string. >> >> While trying to run Symfony's test suite against 7.2, we noticed that this >> BC break is hitting several components badly. If Symfony is hit, there will >> be many more userland code impacted for sure. >> >> As written explicitly in the releasing policy of php-src, BC breaks must >> not happen in minor versions. Therefore, I'm kindly but strongly asking for >> this BC break to be reconsidered and removed. > > I agree that a minimum 5 years old possible bug, quite small, causing > BC breaks is not good. As far as the fix is critical or justified, I > think it is sometimes ok to break BC for edge cases. However I do not > see this is not the case here. > > @RMs revert for 7.2 and re evaluate for later? I'm not against reverting the commit, but if we want to postpone this change to PHP 8, I suggest not to set unmatched subpatterns at all, then. The current solution has been an attempt to keep the BC break small, but that apparently has failed. -- Christoph M. Becker

« previous php.internals (#99045) next »