Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118764 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 20752 invoked from network); 6 Oct 2022 11:17:03 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 6 Oct 2022 11:17:03 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 0EC271804F8 for ; Thu, 6 Oct 2022 04:17:02 -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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,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-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (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 ; Thu, 6 Oct 2022 04:17:01 -0700 (PDT) Received: by mail-lf1-f42.google.com with SMTP id s20so2171478lfi.11 for ; Thu, 06 Oct 2022 04:17:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=c+DUH1KUCjL5g9GJsN5fjOL+wcNZ0KE/GXNIbw3hC90=; b=hclPlXpgMEqWRvHVvhI1lztxqp0y6Nlx7FvqBTziTRfq3/uaZuBx4xkgyBlqFgQ/fJ AxjO+MulUDBa6EybT/cTDkiGWeDSqWiJjX6Sc46Q0EN5PwtjdZO1c4ZgPeVuk7AEo+BM 9dquR2H9bd1HzQd5YrzsV33HH0c34nNOqQSh1TQlbIcTbn6D3DBYc1cKlZbpofMGf23p uueahQT1bhjkkmdi+L+s59Li+HkU/3qVNsf62hoYtRVVhFhmHfEXoBebmU9UuReTcjz0 yuQsqLlwYkp4vmSbDQuiytw/OPyUjfJS86yF0yqjrrCVm5IVcGJ0jG6JlHWwaSjfshk0 cjbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c+DUH1KUCjL5g9GJsN5fjOL+wcNZ0KE/GXNIbw3hC90=; b=OVos+IJR6iepPJyu149L+OSiHc2FREQP2AHXKlpEzC9kFtSmYnT/L01udukvi5dgkG 6MEzOhnm8qq+jnoFrgmvxk8yGBbWdY8BA7u4Rw7SBVstXlgSZ+HMJcSpC/TgETv29SkM xyn/iftPKasmAO5ZZ96+AWR05eUG10H6vuxuJFEkEYK8R/IKMDRJHuJc/2oQWj29ZBkN 1YqyQrpcj3pxRZXJOiLQe4a2wx9Cc+UuUYsB97ORknsMRThUwsE2Jk7pYQSdu+4gVwqD +to4Oa7p5s8Wim5nxRon0wr7sFFr2fxMzYnxJDGOiXHnJmLMXystT21oK4sqxkFHsiOS CzaA== X-Gm-Message-State: ACrzQf1+YCslRxkCI/+6HdrzYA+y1yRv0V5EGyH2jJ0hNzoY1nJR5PKC TOWj/keXnA4DqENVBkHx8XXyCOxf5LICSg== X-Google-Smtp-Source: AMsMyM7SLMgXGzXT+58+3uLLqXTbHthINQf6RBekmLx/TyOcNMnwTJbhUuBaB/2fSFVdMNaKpEFcYw== X-Received: by 2002:a05:6512:3b99:b0:4a2:6152:365f with SMTP id g25-20020a0565123b9900b004a26152365fmr1779223lfv.33.1665055019621; Thu, 06 Oct 2022 04:16:59 -0700 (PDT) Received: from smtpclient.apple ([213.109.238.56]) by smtp.gmail.com with ESMTPSA id y13-20020a05651c220d00b0026dd39ce46asm1340365ljq.52.2022.10.06.04.16.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Oct 2022 04:16:59 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) In-Reply-To: Date: Thu, 6 Oct 2022 14:16:57 +0300 Cc: PHP Internals Content-Transfer-Encoding: quoted-printable Message-ID: References: To: Rowan Tommins X-Mailer: Apple Mail (2.3696.120.41.1.1) Subject: Re: [PHP-DEV] Experimental features From: autaut03@gmail.com (Alex Wells) > On 5 Oct 2022, at 20:41, Rowan Tommins = wrote: >=20 > On Wed, 5 Oct 2022 at 18:07, David Rodrigues = wrote: >=20 >> Another advantage in this sense is that it would be possible to have = a >> single development branch for PHP 8.1 (current version) and 8.2 >> (development version), for example, with the difference of some = definitions >> in the code that activate or deactivate the experimental features = already >> developed for the future version. >>=20 >=20 >=20 > The problem I predict with this is that unless they have a convenient = "hook > point", experimental features would lead to ugly code: they need to be > enabled at run-time rather than build-time, so are hard to optimise; = and > they are going to be released after a short test cycle, so need to = avoid > refactoring. >=20 > Maybe there are enough "hook points" in the engine that some = categories of > feature could be implemented without too much disruption, but it's a > complex beast with a shortage of experts, so I'm wary of adding more > complexity. >=20 > I also agree with the previous comment that this would need to be = coupled > with some way of monitoring the results - imagine we released an > experimental feature 3 months ago, what do we do exactly to find out = if it > needs changing? >=20 > Regards, > --=20 > Rowan Tommins > [IMSoP] A marker merely just tells the compiler "hey, allow me to use this = feature right here", i.e. it denotes a piece of code as allowed to use = the feature, not enable it. Effectively, all experimental features are = just regular features that are "always on" and hence can be optimized = the same way regular features are. The marker serves two purposes: allow = simple discovery of usages (by the compiler or other tools) and force = the developer to acknowledge they're using an experimental feature with = an unstable API/syntax/spec.=20 Regarding the monitoring - that is a problem that needs to be solved and = there are multiple solutions: GitHub issues, corporate/public messengers = (Slack?) or the internals mailing list.=