Re: BC break in master (7.2) - Distinguish betweenunmatched subpatterns and empty matches in preg_*()
| From: | Christoph M. Becker | 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