Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106963 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 33495 invoked from network); 12 Sep 2019 17:08:15 -0000 Received: from unknown (HELO php-smtp3.php.net) (208.43.231.12) by pb1.pair.com with SMTP; 12 Sep 2019 17:08:15 -0000 Received: from php-smtp3.php.net (localhost [127.0.0.1]) by php-smtp3.php.net (Postfix) with ESMTP id 089312C2BB4 for ; Thu, 12 Sep 2019 07:44:10 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp3.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, SPOOFED_FREEMAIL autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp3.php.net (Postfix) with ESMTPS for ; Thu, 12 Sep 2019 07:44:06 -0700 (PDT) Received: by mail-wm1-f42.google.com with SMTP id q18so348427wmq.3 for ; Thu, 12 Sep 2019 07:44:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :thread-index:content-language; bh=ccTv82aOHs5Zyd3ppkWE7PEBNj+f0I/3twt960QOg98=; b=CgAB4kTTRpqtfpiHl9SPZmOrsUHfOF6WPO9oKBnRZNVmzFtu07hFK4Su+vbD48SiAu +vFBdO7l8MehXYj3aORNE0WYSeDVPVAgU0dzJqJc9b+wQq/MrUeA5ozZMs5KPIjKmmMZ K6Le1/4dTCq4d0k2/2AA4IQF9f7EnEiURpAOm8lnl7pyIep4opx8ynoXAD5S99L7Bglk V1vcVRcR0KstKRdLtk0he3P8/sIeN+wsld2SZrC4tczk3NHrSEujwDm3PmArJnuvSKvM Fqm9V0Ff8Y6gLg9tU1mcNLK71wVj1nUG4MFEXdrPq8NjgfOEGv0D/F6+Mg6FU0IzSMm+ ZbFQ== X-Gm-Message-State: APjAAAUyRAlSKGXDopxISM/EAKK0lVvSfVTBg0Huu96wqAlXK6P56huc TmiGMC0INaOV6ZAXdTrbLWVLCG0K X-Google-Smtp-Source: APXvYqzbJ5WRG2K16RUmdiLPT25quUY37u/yG5FuElHQaysu8eazFmbbL7xGgXpUVFKUIT5+8ZZC8Q== X-Received: by 2002:a7b:c7c9:: with SMTP id z9mr269362wmk.61.1568299444776; Thu, 12 Sep 2019 07:44:04 -0700 (PDT) Received: from eCenter710 ([77.137.81.220]) by smtp.gmail.com with ESMTPSA id i93sm23707601wri.57.2019.09.12.07.44.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2019 07:44:04 -0700 (PDT) To: "'PHP Internals List'" Date: Thu, 12 Sep 2019 17:44:03 +0300 Message-ID: <076701d56978$86020910$92061b30$@php.net> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0768_01D56991.AB500460" X-Mailer: Microsoft Outlook 16.0 thread-index: AdVpdKJV77qMYNHSRqeIC8bFiEITfA== Content-Language: he X-Envelope-From: Subject: Changing fundamental language behaviors From: zeev@php.net ("Zeev Suraski") ------=_NextPart_000_0768_01D56991.AB500460 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I was really really hoping that we will avert having to dive into this and instead go for the alternative solution that was proposed of changing default php.ini error levels. But since the RFC went on to a vote - we need to make something clear. The RFC process was never, ever meant to handle fundamental changes to the language. It was meant to deal predominantly with additions to the language, as can be inferred from numerous parts in the phrasing. As I mentioned in the past - it wasn't even intended to deal with simpler deprecations, but it appears that the cat is out of the bag on this one. However, the fact the cat is out, doesn't mean we'll let a tiger waltz out of the same bag. Using the RFC to deprecate fundamental behaviors of the language - such as how the language deals with undefined variables - is simply off the table. You may be wondering, in that case, what processes do we have to deal with such changes then? The answer is simple. We don't. We don't have to have them either - the fundamental language behaviors are here to stay. Deprecating the ability to rely on the expected default value of uninitialized variables falls squarely in that category. Reclassifying a notice to a warning is a possibility - people's code will still run, and they'll be able to continue using these behaviors going forward as well if they want to (perhaps with minor tweaks to error reporting levels). Turning a notice to an error isn't reclassifying an error level. It's deprecating a behavior - and we're not talking about some esoteric extension, but a documented, well-defined, fundamental behavior of the language for over two decades. The fact many of you think it's horrible does not change that. Deprecating such fundamentals is simply outside of the mandate of internals@, regardless of whatever majority appears to exist in favor of it at a given time. Similarly - adding typed variables - is certainly a future option. Changing PHP to require typed variables (without opting in) - is well outside of the internals@ mandate. For areas like that - our options are either doing nothing, or providing opt-in mechanisms to cater to stricter-loving audiences. I'm all for the 2nd option, but there is no 3rd. Zeev ------=_NextPart_000_0768_01D56991.AB500460--