Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106506 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 12731 invoked from network); 9 Aug 2019 23:35:32 -0000 Received: from unknown (HELO mail-qk1-f180.google.com) (209.85.222.180) by pb1.pair.com with SMTP; 9 Aug 2019 23:35:32 -0000 Received: by mail-qk1-f180.google.com with SMTP id w190so72736976qkc.6 for ; Fri, 09 Aug 2019 14:03:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=d38zsn8nkx7hIvObEuSKlxMPOC7pGGXFYjotgrpodGI=; b=ug6h+e1/BchdHIk/O4T6B7Nf4sAkwj8aB5NiefQyxPXoLZZVoorfeMBCxrya2Yuxa4 UUgWGIbrzgJ1+XhJfaYSLqMlFXOa43Ruycpgvg4mElu+LyCrQVhx4GWic3IQQCoV9JE6 isQPGTD2ynFyg47h66FO1zT1siv9QlNDLxieekCy6BeDsuMpkSrYcIMQGkjjlu82w7Vj caS/zINc0REPMOqblR5TIvczR3DO1R0TlT3flYRCV38CpXWp+NYNAdiP5QvFOeR4BYnN 3T287ZIq/Hr6/Jhy4jv5+rw6Jt3TDpnoZ35p1zAqtLW0JyzRK70dGKjOcJkDIKQBF0Nt MnsA== X-Gm-Message-State: APjAAAXPdxzbB4xP0e4doB3+3BvZ0GsREgg8qIpOd675kUoNjYY+9b9m Ms7qNV4EmW8+qYB1x7whFUITMraXROBb/iNc8Ipspw== X-Google-Smtp-Source: APXvYqxWpnb+wF5TPbcSG2Y7KRr30EZo+3TKPzW4YewuM+3UlQkbdKUVNpd2AORMt14H9sqh7+BsEhJ5/oNxF6GyLPY= X-Received: by 2002:ae9:ee14:: with SMTP id i20mr18382175qkg.428.1565384581444; Fri, 09 Aug 2019 14:03:01 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Fri, 9 Aug 2019 16:02:50 -0500 Message-ID: To: Zeev Suraski Cc: Internals Content-Type: multipart/alternative; boundary="000000000000ea0c53058fb57f78" Subject: Re: [PHP-DEV] P++: FAQ From: pollita@php.net (Sara Golemon) --000000000000ea0c53058fb57f78 Content-Type: text/plain; charset="UTF-8" On Fri, Aug 9, 2019 at 2:54 PM Zeev Suraski 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 --000000000000ea0c53058fb57f78--