On Fri, Aug 9, 2019 at 2:54 PM Zeev Suraski <z...@php.net> wrote: > It's available here: https://wiki.php.net/pplusplus/faq > > It's possible I missed something while on holiday. There are certainly a lot of messages to page through. I dig the idea of resolving this tug-of-war between progress and BC, but I'm not 100% clear on what the final goals are. I understand that we're talking about more aggressively breaking BC in this new mode while preserving BC in "normal" PHP files, but I think it would help the conversation if we enumerated specific aims.
Some guesses on what we're talking about: 1. Short open tags. This is probably the ugliest nut to crack since it can't even be guarded on a declare directive. Adding a new open tag doesn't really fix that though, it just changes the specific shape of the problem. Unless you add an INI for disabling PHP mode. 2. Strict(er) typing - I'm not sure, on the surface, what future expansions we'd plan for in this area which couldn't fit into standard PHP in a non BC-breaking way. 3. Failing closed. Things like strpos() being able to return int(0) which is a falsey value. This has been a long standing "complaint" about PHP which isn't actually "fixable" without a big BC fail. We've already shown we're willing to bite this bullet for security issues (openssl_random_bytes). 4. Argument order/Naming consistency. I have little respect for this complaint about PHP, but perhaps this is an assumed goal? If it is, then the reusability of the majority of the runtime comes into question since anything we "fix" in P++ needs to have branching and/or multiple implementations. Am I *completely* off base? -Sara