On Mon, Feb 23, 2015 at 2:53 PM, Zeev Suraski <z...@zend.com> wrote: > Thanks for testing, but it's a bit premature to jump to conclusions. > > First, disabling phar is in the patch instructions at > github.com/php/php-src/pull/1110 - it's a bug in phar that needs to be > fixed. We'll address it. > > Secondly, as was obvious both from Francois' email and mine, this is just an > initial patch, and yes, we know it presently fails 8% of the test cases (as > I stated a few hours ago in an email to Benjamin). I still think it's not a > bad start at all; It would be a pretty bad ending, but I think we can tweak > the rules to get a lot less breakage. If you're up for it, you can > experiment with the many the 12 configuration switches that govern this > patch - but even that is a bit premature. Let people who actually want this > RFC to pass try and tweak the patch first :)
I understand it is a initial patch. However I totally fail to see how changing the casting rules by default is doing us and our users anything good. Yes, they are inconsistent, nobody can remember or even know all of them or edge cases. But after a decade or more, most of them (rare "magic" edge cases are partially covered already) are part of what a huge amount of codes rely on. As Benjamin pointed out, most of these codes are not tested. And for the parts being tested, I can say that it is nearly impossible to extrapolate the impact of such change in user land. It is not a lack of desire to do so but the very large and difficult surface we have to cover. I will be against any change in this area not related to extreme edge cases, if done by default without any possibility to disable the new casting behaviors. I consider as a expected disaster in order of magnitude bigger than what we see in python 2>3. > Thirdly, as I shared earlier, the RFC was updated to go for E_DEPRECATED in > PHP 7, which means there would be zero breakage in PHP 7, and ample time for > people to migrate whatever issues this would introduce to their code until > PHP 8. All functionality changes will go through the E_DEPRECATED cycle, > exactly like the stuff that got removed in PHP 7. Well, E_DEPRECATED as it is now has no meaning. But why not. That being said, again, I do not see how changing casting rules won't introduce BC breaks. Please enlighten me. > Last, we don't yet have an answer to your question about the billions of > lines of code out there. But as I told to Benjamin, we have every intention > to try the patch out on some real world apps and see how it performs. Patch applications to test something that does not break BC? I understand the need of testing a new feature and we do similar things for strict typing interacting with legacy code, but one must do test case is legacy codes remaining untouched to actually see the impact, with or without new addition of modules or codes relying on a new mode. > Let me assure you that if we find that there are hundreds of issues trying > to get common apps to work, after we tweak the rules - I'll either retract > the RFC or the very least rethink the internal functions part of it. The common apps are a very but loud part of the PHP codes out there. I worry about these parts more than about Wordpress, for example. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php