Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:107728 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 95860 invoked from network); 30 Oct 2019 00:01:44 -0000 Received: from unknown (HELO php-smtp3.php.net) (208.43.231.12) by pb1.pair.com with SMTP; 30 Oct 2019 00:01:44 -0000 Received: from php-smtp3.php.net (localhost [127.0.0.1]) by php-smtp3.php.net (Postfix) with ESMTP id 61A842D2013 for ; Tue, 29 Oct 2019 14:49:29 -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=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: X-Spam-Virus: No Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (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 ; Tue, 29 Oct 2019 14:49:28 -0700 (PDT) Received: by mail-wr1-x42f.google.com with SMTP id p4so50824wrm.8 for ; Tue, 29 Oct 2019 14:49:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=PaxU+UYWxz9yIUgQMy//nd6DZHqKApsxPhnmq5UmvzA=; b=uNAs9XK5ecXDCWH7MSPZQmHG3QKvBZBRGMyWjHIsO1djdZR3Y9mxMKmh+CeT1W7rZl aiJxu39Q87Kqlc/k9XYK26uh8+cMrhdAavucgMAtCmWRekj+qlrmhi0Egdf/3+Hh43EW 2jEt/IQ6/DnyNGzsn/McNGHw/d2IB+37T1erh2hslYiK98tdwVfk8K44iQHLoM1xeVTj d8/C3zHja4yX1sqgupBf2jfv3SA1lkt7pJTy2oZNOFqOg+z1AbznE948rjjJxpQPsLCQ ferUknXaUmYJAsuH0qHRx4PsZgFsRexoTE2vlPlWDgc5hBKatasj5Qkaf0TIRiy5V463 unXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=PaxU+UYWxz9yIUgQMy//nd6DZHqKApsxPhnmq5UmvzA=; b=sIRmlfBX1quBTYbodvBOnOSRUUpGCPW38WlYAE+WMpJt6iS3/Mb9/D81U3CF2PSA3/ NkwYqMekj69vSY2L42xLXn5ersHoyLfKHiF23jiofvqaI6vFPIxlT8lA8UQoGcR3G2N8 PnSxtJSGV4Mv9Rb24nWSMQ1pyxCkLf80mDjsQNbGVKXG7kVlmK46c0QXHgKgjMFxAxwH SqFEVtDYlbYqS8ATW9kxYXZx9ibPbb9OA2okqTpjpwDfkPANjE4H3GOSR3q7e4dMjg9n oxDOGuR5cG6MkKrFRxcGyObhRUpANTFVDvaPq9iuTkx1VFcsbTLKpOID3PJXWfs40kRc j0iA== X-Gm-Message-State: APjAAAUFaJWg57l7/MfSZ8UGwUvOeUIIb0BtrvsDbs8K0SzMbmY+zNYS y5EpXVcl7azw+EJe6BpmrypQEYLYURA= X-Google-Smtp-Source: APXvYqxOjD5wsb2MokKG6/MvACTKarokpPlEaLON3jwP5Fknu1Ue38fbB7frRNOnnTlFxM2N/k0u8w== X-Received: by 2002:adf:ea85:: with SMTP id s5mr21016819wrm.18.1572385767498; Tue, 29 Oct 2019 14:49:27 -0700 (PDT) Received: from [192.168.0.16] (cpc84253-brig22-2-0-cust114.3-3.cable.virginm.net. [81.108.141.115]) by smtp.googlemail.com with ESMTPSA id y19sm3395025wmd.29.2019.10.29.14.49.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Oct 2019 14:49:26 -0700 (PDT) To: PHP internals References: <9d3f9895-5ab6-1d75-4eb2-0ba93f13a8fe@gmail.com> <9D2698F0-49A4-4EA0-BEEE-552D28BE995A@newclarity.net> Message-ID: <374ad5f6-be02-8762-c4c3-12cf34e70cad@gmail.com> Date: Tue, 29 Oct 2019 21:49:25 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB X-Envelope-From: Subject: Re: [PHP-DEV] Optional pre-compiler for PHP8? From: rowan.collins@gmail.com (Rowan Tommins) On 29/10/2019 19:04, Mike Schinkel wrote: >> Note that this was exactly what "P++" was intended to avoid - the two >> dialects would exist in the same engine, and get the same performance and >> security enhancements. > > It could also be one engine, it just seemed like that coupling > would be more problematic than separating them. > I think the problem is that as soon as you have two engines targeting different feature sets, it will be hard to persuade people to spend equal attention on both. If all the new features end up being added to one engine, the other one is going to increasingly feel like "legacy mode", rather than "equal but different". >> Both of these are reasons to have some sort of "strict mode", but not for >> tying it to some other feature. > > I don't understand your reply, but maybe it is moot considering > the rest of the dialog? > > What we have today is a rock vs a hard-place, and no one wants to > give even a millimeter. > > So, if this is not a viable solution in your mind to break the > logjam between BC and the desire for strictness-in-all-the-things, > do you have an alternate, better proposal? > The idea of an "extra strict" and/or "less backwards compatible" mode has been mentioned on the list several times, but you're the first to suggest making it mandatory when using an otherwise unrelated performance feature. It would be much better to keep it separate, and opt into it via a declare() statement, or a package configuration, or a file extension. There have been proposals for a single flag, lots of separate flags, a complete "P++" dialect, or bundles of settings ("Editions"). Whatever the approach, a key goal in my mind should be to maximise the compatibility between the two, and share as much implementation as possible. Both/all modes should get the same performance improvements, except where the actual features are necessarily slower or faster. Regards, -- Rowan Tommins (né Collins) [IMSoP]