Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120309 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 79949 invoked from network); 16 May 2023 12:12:48 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 16 May 2023 12:12:48 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 3CB6A180083 for ; Tue, 16 May 2023 05:12:44 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 16 May 2023 05:12:43 -0700 (PDT) Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-3f42c865535so82511885e9.1 for ; Tue, 16 May 2023 05:12:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684239162; x=1686831162; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=dhpYvW3OSjc/ENd4RE5SNWW39OTrrQLgBZTgSkBN6pU=; b=OaZ4Xf2ulrKG8+E/ghRGEoxmAY02RMz8g/s8ILng7sETHPb2DAFzhfwA/TF6Q1kRqQ g/4sSmCoke5uqcfU10PiI7qNx3XG19xiiY+6jhNGRSHO4zspOKm3dXcRdY5DlYkRl2ad SdQGxSxw8UdyI9fvkM3D5TqVzuEJrl6WmPR0yh2kj9W0ebRjQu6XPGo6PdE6+Mc9obGd u1FUtsVWYOWY/y+t/goSIQ/+U0Am9HaHfcioJMqALzPD2BzRsXSgG2tKScEr8UolJrFr DpIlwLaIYTKgeYMeNteAGLbJNYmqK43YYoafDr1c5sQCEie8FPHF0X2bXZGTeUcahpVM A5Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684239162; x=1686831162; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dhpYvW3OSjc/ENd4RE5SNWW39OTrrQLgBZTgSkBN6pU=; b=ejghIFOCuNlX2KVnfYc2dXz+nRIGuqNAMffNtk1PUPtRf6B+77IeUceeaOYxwndu5G L9PnURSSJoH2kEtBF4DpoezVhlv1F+gK1FC5yQTyl7dOA+oeQ8szzHQaWv5d9XjUpapw glwuntONXv32ehT0I7hqw5OdxSqCK6+CS542viqpuB1tRcTNwJcKIN/3ZtI94XdYKV5z wuerm4VA0BmeCexa8FtXiJ3YBEa7nXiM9kR2kXuc/iIP7CglsO/I54aQKxFYlVO0N3sE Vc2DYspOXqOFoOGkAnZhBJiEe8MyGTG4N2uQGCPBUesYveyOj3DwLlpK1tvbucJwQQLz nD5g== X-Gm-Message-State: AC+VfDwnz9uGyq5/9VBBHBY8UecPECtsONop9yhdBVICDIvIbjaH7PH1 vY7mjfEjPMw9jOhT55V7xK4+Ds3YjVe3hP8v+X5lDXHPBYs= X-Google-Smtp-Source: ACHHUZ77bZH7oc+2XISGAcCabbmMpxUlepv94GCy+ff4LTwsYmiVOYUosLPBFqV7yTxGYY9p4egPUA4/DLehqAQ7KM8= X-Received: by 2002:a7b:c047:0:b0:3f5:f04:4607 with SMTP id u7-20020a7bc047000000b003f50f044607mr3778325wmc.22.1684239162066; Tue, 16 May 2023 05:12:42 -0700 (PDT) MIME-Version: 1.0 References: <9ab0173f-a6f2-66f6-3ab3-d5f0c44feb05@bastelstu.be> <9F928894-199E-4C46-A590-136BDDE035F7@gmail.com> <68c1b984-1bcd-4dfd-8499-65fe392d7783@app.fastmail.com> <731143A6-D1A2-47E1-B878-8F4C5906139C@gmail.com> In-Reply-To: Date: Tue, 16 May 2023 13:12:29 +0100 Message-ID: To: internals@lists.php.net Content-Type: multipart/alternative; boundary="000000000000f8cc5605fbce7c24" Subject: Re: [PHP-DEV] [RFC] [Discussion] Deprecate functions with overloaded signatures From: rowan.collins@gmail.com (Rowan Tommins) --000000000000f8cc5605fbce7c24 Content-Type: text/plain; charset="UTF-8" On Tue, 16 May 2023 at 12:03, G. P. B. wrote: > > Because this proposal of "let's do majors every 5 years" now reduces what > we can do, as we cannot (or should not) deprecate stuff in X.0, as it makes > it harder for people to upgrade to the new major (see how we postponed the > 8.0 deprecation RFC to 8.1 after various comments). > Again, the solution to "people don't like deprecation messages" is not "don't deprecate things", it's "improve how deprecation messages work". There should be absolutely zero reason not to deprecate something in an X.0 release, or even in an X.0.15 release, because a deprecation message form the code should serve the same purpose as, and have similar impact to, a note in the documentation. > But apparently we cannot deprecate anything in X.3 or X.4 because there > will "never" be a X.5 again and this is "too short" of a time frame. > I don't think that's what anyone's saying. They're saying that if we have a predictable release cycle, we can decide for each case between a one-to-two-year deprecation, and a five-to-six-year deprecation. If we don't have any idea when PHP 9.0 will come out, then we can't even begin to discuss that, we have to say "the deprecation period will last anywhere between one year and ten years, depending when we get round to a major release". I don't think that helps anybody. > Considering, this was partially the argument used against Max Kellerman > with the header changes: "this should have been done for PHP 7.0 or PHP > 8.0". > Having a fixed release cycle actually allows this to be turned around to something more productive: "we could consider this for PHP 9.0, which will happen in 2 years time". Without it, all we can say is "we could consider this for PHP 9.0, but you have to regularly read the internals mailing list for several years to get a hint of when that might be". Note that prior to PHP 5.4, we had this same "when things are ready" approach to tagging *any* release. Since then, we've had an annual release cycle, which I think has worked well in terms of both contributors and users being able to plan ahead. My understanding as to *why* the JIT caused the major bump was because of > major changes within the Zend Engine, not necessarily the feature in itself. > I mentioned JIT, because around this time in the 7.x life cycle, I was regularly having this same debate, and people used "everyone knows PHP 8 will be whenever the JIT is ready" as though it was more important than any other planning we might want to do. I disagreed then, and I disagree now. > And again, the only "good" reason I see for a major bump is something like converting streams from resources to objects, as this is a massive shift and has the possibility to cause issues for a lot of codebases. Given that we changed a whole list of resources to objects in PHP 8.1, it's clearly not considered that massive a shift to most people https://www.php.net/manual/en/migration81.incompatible.php#migration81.incompatible.resource2object Regards, -- Rowan Tommins [IMSoP] --000000000000f8cc5605fbce7c24--