Bug #80073 [Ver]: levenshtein(): new ValueError not documented
| From: | nikic@php.net | Date: | Tue, 06 Oct 2020 15:18:57 +0000 |
| Subject: | Bug #80073 [Ver]: levenshtein(): new ValueError not documented | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-229428@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80073&edit=1
ID: 80073
Updated by: nikic@php.net
Reported by: claude dot pache at gmail dot com
Summary: levenshtein(): new ValueError not documented
Status: Verified
Type: Bug
-Package: Documentation problem
+Package: *General Issues
PHP Version: 8.0.0
-Assigned To:
+Assigned To: nikic
Block user comment: N
Private report: N
New Comment:
PR to drop the check: https://github.com/php/php-src/pull/6286
Previous Comments:
------------------------------------------------------------------------
[2020-10-06 15:10:59] nikic@php.net
I wonder if we can't just drop that error condition altogether. Why is there a limitation of
255 characters? My best guess is that it's supposed to protected against the quadratic time
complexity of the algorithm. But then again, the similar_text() function which has much worse
(cubic) complexity, does not come with such a limitation. This doesn't seem like something PHP
should be enforcing.
------------------------------------------------------------------------
[2020-09-07 10:01:39] requinix@php.net
Changed during https://github.com/php/php-src/pull/5816
------------------------------------------------------------------------
[2020-09-07 09:52:13] claude dot pache at gmail dot com
Moreover, the change of behaviour of levenshthein() between PHP 7 and PHP 8 (which is a BC break) is
currently not documented in UPGRADING:
https://github.com/php/php-src/blob/php-8.0.0beta3/UPGRADING
------------------------------------------------------------------------
[2020-09-07 09:38:16] claude dot pache at gmail dot com
Description:
------------
In the manual page:
https://www.php.net/manual/function.levenshtein.php
it is stated that levenshtein() returns -1 if one argument is too long, but it doesnât say that
an error is emitted.
Test script:
---------------
var_dump(levenshtein(str_repeat('X', 300), 'a'));
Expected result:
----------------
Per the manual page; dumps -1 without warning/error.
Actual result:
--------------
In PHP 7: Emits a Warning and dumps -1.
In PHP 8: Throws a ValueError.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80073&edit=1