Re: [RFC] Deprecations for PHP 8.4

From: Date: Sat, 06 Jul 2024 01:22:20 +0000
Subject: Re: [RFC] Deprecations for PHP 8.4
References: 1 2  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message

> On Jul 5, 2024, at 1:11 PM, Claude Pache <[email protected]> wrote:
>> Le 25 juin 2024 à 16:36, Gina P. Banyard <[email protected]> a écrit :
>> https://wiki.php.net/rfc/deprecations_php_8_4
> 
> 
> * About strtok(): An exact replacement of strtok() that is reasonably performant
> may be constructed with a sequence of strspn(...) and strcspn(...) calls; here is an implementation
> using a generator in order to keep the state: https://3v4l.org/926tC <https://3v4l.org/926tC>
Well your modern_strtok() function is not an _exact_ replacement as it requires using a generator
and thus forces the restructure of the code that calls strtok(). 

So not a drop-in — search-and-replace — replacement for strtok(). But it is a reasonable
replacement for those who are motivated to do the restructure.

========

Just out a curiosity for the performance of your modern_strtok() function so I benchmarked it and
found it takes — on rough average — about ~2.5 times as long to run compared to when using
strtok():

https://3v4l.org/AMECf#v8.3.9 <https://3v4l.org/AMECf#v8.3.9>

That makes yours the fastest alternative I have benchmarked, but significantly still slower than
strtok().

I was curious to see if I could improve its performance by avoiding the generator, but that just
made it slightly worse, e.g. taking — on rough average — ~2.75 times as long to run as
strtok():

https://3v4l.org/ZVS5Md#v8.3.9 <https://3v4l.org/ZVS5Md#v8.3.9>

#fwiw

-Mike


Thread (68 messages)

« previous php.internals (#124238) next »