zendtech / ZendOptimizerPlus

Other
914 stars 142 forks source link

Dropping support for 5.2 in next PECL release? #158

Closed TerryE closed 9 years ago

TerryE commented 10 years ago

With each version of PHP we need to add extra preprocessor logic to handle the different code variants. The biggest source is 5.2 vs 5.3 or greater.

I am assuming that the next release of the PECL ZendOpcache package (7.0.4) will be coincident with PHP-5.6 and will support 5.6. Have you considered declaring 7.0.3 as the last version to support 5.2, and make 7.0.4 support only 5.3+ ? This would allow us to strip out all 5.2-specfic code.

Surely this wouldn't be a material issue for 5.2 users as they still have the option to continue with 7.0.3 and most of the 7.0.4 added changes don't impact 5.2 users anyway.

nikic commented 10 years ago

Can't we keep this repo (and PECL releases) compatible with 5.2-5.5 and in bugfix-only mode and do further development only on the version merged with PHP - without any ifdefs? I don't see why we need PECL releases for versions that already ship with their own opcache anyways.

TerryE commented 10 years ago

@nikic Nikita, I see that there are two main problems with the approach that you suggest:

dstogov commented 10 years ago

Hi,

This repository was created especially to support OLD PHP versions, actually it's near the clone of ext/opcache from PHP-5.5. I think we will include most new features only into PHP-5.6 and above and of course we will remove annoying backward compatibility in PHP-5.6 at some point, but I don't see a big reason to do it in PECL.

We may decide to backport some new features back to PECL, but make them available only for certain PHP versions e.g. 5.4 and above.

Thanks. Dmitry.

On Wednesday, January 8, 2014, Terry Ellison wrote:

@nikic https://github.com/nikic Nikita, I see that there are two main problems with the approach that you suggest:

  • This would fork the codebase into two variants: one for PECL ZendOpcache; and one for ext/opcache. A bad idea as this is going to increase the development and maintenance burden.
  • We've desperately lost our way in the Internals Lists and our priorities. We debate 'crtitcal' issues (such as the binding precidence of the unitary vs binary "-" operator compared to a new _"_" one to death; subleties over GMP overloading yet we have absolutely no discussion on who we can bring the 99% of PHP websites (according to w3techshttp://w3techs.com/technologies/details/pl-php/5/all), that still run PHP 5.4 or earlier onto more current and supported versions. I see an extending OPcache functionality as a key tactic here and to do this, we need to offer the latest functionality to 5.4 at a minimum and preferably to 5,3 as this still represents over half the websites out there.

— Reply to this email directly or view it on GitHubhttps://github.com/zendtech/ZendOptimizerPlus/issues/158#issuecomment-31788137 .

TerryE commented 10 years ago

@dstogov, hope you had a good break.

we will remove annoying backward compatibility in PHP-5.6 at some point, but I don't see a big reason to do it in PECL

Surely the argument for this is that making the codebase different (PECL vs core at latest release) adds to the maintenance burden and has no advantages, so why do it? If we decide to simply the code by establing a new minimum baseline, then it would be a lot simple to be this in both. People who want OPcache support for 5.2 (and 5.3 as you suggest) can simply use 7.0.3

dstogov commented 10 years ago

Thanks :)

I see your point, and I really have additional head ache maintaining several repositories, but it was an original decision to use PECL only for backward compatibility. Otherwise we wouldn't need to include opcache into PHP source tree at all.

Removing support for 5.2 and 5.3 wouldn't allow as fix critical bugs for them.

Thanks. Dmitry.

On Thu, Jan 9, 2014 at 9:23 AM, Terry Ellison notifications@github.comwrote:

@dstogov https://github.com/dstogov, hope you had a good break.

we will remove annoying backward compatibility in PHP-5.6 at some point, but I don't see a big reason to do it in PECL Surely the argument for this is that making the codebase different (PECL vs core at latest release) adds to the maintenance burden and has no advantages, so why do it? If we decide to simply the code by establing a new minimum baseline, then it would be a lot simple to be this in both. People who want OPcache support for 5.2 (and 5.3 as you suggest) can simply use 7.0.3

— Reply to this email directly or view it on GitHubhttps://github.com/zendtech/ZendOptimizerPlus/issues/158#issuecomment-31903861 .