Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97452 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 85216 invoked from network); 21 Dec 2016 16:47:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Dec 2016 16:47:08 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.210.176 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.210.176 mail-wj0-f176.google.com Received: from [209.85.210.176] ([209.85.210.176:36708] helo=mail-wj0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F6/80-36089-602BA585 for ; Wed, 21 Dec 2016 11:47:03 -0500 Received: by mail-wj0-f176.google.com with SMTP id c11so1787765wjx.3 for ; Wed, 21 Dec 2016 08:47:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=mFXKzItfgqYEZ4J76TYb4vJWmGvBb8uAzREHSjgm1Bk=; b=fV7eJVChWw+mm1cvxXUd/8VxWehAlMhcTVl5r4U7q4WTYpLSuW3TYlfUdpjJJfUJaA xNXcm93b8qVcSLAA+kJwMY1+p8lJFtLrFEOqskkARzKjCpjzYSiOSf1k1peHD7M35WwB lw56bddYA+ehlnMDdf9uBQpSogOkWNH2XG9ZQ9A6d95wF3/Sy34EG+ZjoK7LlVvOu+20 Ko5A0VyiKgUVkfMCAbpNollzy7OH1ZzaME8Sh8FCw4+lXJscr/FPo5lKlDMUNw4PnWdG 2R4sN9eUDXm0m16KQtVtt9xf/4lF40f3WPZQyRO+MxCUAJwLWjxno0BZYD5po6RyawK/ Botg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=mFXKzItfgqYEZ4J76TYb4vJWmGvBb8uAzREHSjgm1Bk=; b=h/0VLfR0Ct5e8vES1I5u69bXHeSxTgKbx6zg0IzY9EiP7M0WiBEwekDR0vl7BhQwDp WkLrh1Ozhqf6nVd/9h1VqOQq7yx1iqbq+KocmONmM9Ap2kQ7wC9ZaYYzPt2YXti542C0 1CvShrc7jAmIVz37exw56b8a3E11+PoGl08FGHaJHTOYNTJcjh+1taS/eBLfWCwo7P4r 9qS9LIIGIQxKRIb9Pk9qpToUprJbL2oVF45H4o32ugv/vikcRrD6PRY8y2N3llvgh3Ud qQ3KuJQxyes9LO3Y4EI10SiPt5EXdskzRNnBVKRsZ9MccFKfeqtj6VgPvnl+Be6ZYhuB vwzQ== X-Gm-Message-State: AIkVDXKAYzp96u4MqRK9wgi1IHVD2cNUd237Ih65XhWikIf+2VcmudaMYdQWd/LTn6eVrnwpxWY/Bh+ZE9GnCQ== X-Received: by 10.194.158.100 with SMTP id wt4mr6071965wjb.148.1482338818862; Wed, 21 Dec 2016 08:46:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.80.145.16 with HTTP; Wed, 21 Dec 2016 08:46:58 -0800 (PST) In-Reply-To: References: Date: Wed, 21 Dec 2016 17:46:58 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary=089e0115ee3cbc40e905442de682 Subject: Re: [RFC] Deprecations for PHP 7.2 From: nikita.ppv@gmail.com (Nikita Popov) --089e0115ee3cbc40e905442de682 Content-Type: text/plain; charset=UTF-8 On Fri, Nov 18, 2016 at 3:55 PM, Nikita Popov wrote: > Hi internals! > > I've submitted this RFC for PHP 7.1 previously, but didn't follow through > due to time constraints. Now I'd like to propose an extended version for > PHP 7.2 and vote on it sooner rather than later to avoid a repeat > performance. > > https://wiki.php.net/rfc/deprecations_php_7_2 > > The RFC combines a number of deprecation and removal proposals. Each one > will get a separate 2/3 majority vote. The RFC overlaps with some recently > discussed topics (each, binary strings) -- I'm fine with dropping these if > someone has a more specific RFC. > > I expect some of these are no-brainers, while others are more > controversial -- please share your specific concerns. > > Thanks, > Nikita > I would like to proceed to voting on this RFC soon. There are only two items on this list that I am not entirely certain about: a) assert() with a string argument: Multiple people pointed out that it might be too early to deprecate this function. In particular, some Drupal contributors mentioned that Drupal currently uses assert() with string arguments as an optimization to avoid executing certain code in production. I have changed the RFC to clarify that assert() with a string argument will only throw a deprecation warning if assertions are enabled. As such projects have a choice between either using the non-string form and incurring a penalty in production on PHP 5 (my default recommendation), or using the string form and incurring a penalty in debug mode on PHP >=7.2 (the penalty being caused by deprecation warnings). The latter might be preferable in some cases, especially as the string form of assert() is already very slow if assertions are enabled. b) The $errcontext parameter for the error handler. A few people raised concerns about this, but on further discussion it always turned out that they were interested in information provided by debug_backtrace(), not by $errcontext. I have now added an explicit reference to debug_backtrace() to the RFC. I will likely proceed with both deprecations included and let voting decide on the question. Regards, Nikita --089e0115ee3cbc40e905442de682--