Re: [RFC] Deprecate remains of string evaluated code assertions
| From: | Claude Pache | Date: | Tue, 27 Jun 2023 08:46:54 +0000 |
| Subject: | Re: [RFC] Deprecate remains of string evaluated code assertions | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-120692@lists.php.net to get a copy of this message | ||
> Le 27 juin 2023 à 10:36, Claude Pache <claude.pache@gmail.com> a écrit :
>
>
>
>> Le 26 juin 2023 à 17:06, G. P. B. <george.banyard@gmail.com> a écrit :
>>
>> On Wed, 31 May 2023 at 13:08, G. P. B. <george.banyard@gmail.com> wrote:
>>
>>> Hello internals,
>>>
>>> I would like to start the discussion about deprecating various remains
>>> from the now removed string code evaluated assertions functionality of
>>> assert().
>>>
>>> The RFC is located on the wiki at the following address:
>>> https://wiki.php.net/rfc/assert-string-eval-cleanup
>>>
>>> Initially, this was part of the mass PHP 8.3 deprecation RFC, but only the
>>> assert_options() function was part of it.
>>>
>>
>> Head's up, I'm planning on opening the vote on this on Wednesday the 28th
>> of June.
>>
>> Best regards,
>>
>> George P. Banyard
>
> Hi,
>
> Still some points:
>
> I don’t see the RFC listed under
> https://wiki.php.net/rfc#under_discussion.
>
> The RFC is imprecise in what is meant by “deprecating”. I guess that a deprecation notice
> (E_DEPRECATED) will be triggered at least under the following conditions:
>
> * at startup when one of the assert.* setting has not the default value;
> * at runtime when
assert_options(...) is used;
> * at runtime when ini_set(...) is used to set an
> assert.* option to a non-default value?
>
> It is unclear to me what will happen when:
>
> * ini_set(...) is used to set an
> assert.* option to its default value, either as a no-op or not?
>
> Moreover, by removing assert.callback (and other options), are
> you effectively removing a feature? (I don’t really know, I have never considered it even in my
> worst dreams.) If so, it should be noted in a “Backward Incompatible Changes”.
>
> —Claude
>
... and, of course, changing the return value of assert(...) from bool
(true) to void is also a BC break, (and it is unclear to me what is the effective
advantage of the break).
—Claude