Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:107721 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 67892 invoked from network); 28 Oct 2019 11:16:40 -0000 Received: from unknown (HELO php-smtp3.php.net) (208.43.231.12) by pb1.pair.com with SMTP; 28 Oct 2019 11:16:40 -0000 Received: from php-smtp3.php.net (localhost [127.0.0.1]) by php-smtp3.php.net (Postfix) with ESMTP id 0B0352CC1C2 for ; Mon, 28 Oct 2019 02:04:02 -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,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Virus: No Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) (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 ; Mon, 28 Oct 2019 02:04:01 -0700 (PDT) Received: by mail-io1-xd2c.google.com with SMTP id c16so9851868ioc.3 for ; Mon, 28 Oct 2019 02:04:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tSev6v9t+npQQZeVBtYK/tPyic65Eq43NlM1KV+JaZo=; b=Zy26+fw6B3YCcMJxz7ySNrdymszWc8/SUcQwo9fPFaUbfyC7+W51KiAy5MPNdfnLvR kdeMyhCMsPZahkDvD0kd3Le2mmN2OJ6nWiHfaTERJPviYll1Y1UjFL6Av/8Jk9HgMzI8 FrI6QIK68Ga//S2U3exSuz8NPHOulfNw2SzALD9skxbxQJa0Zpcs+4A7Jf6TELl2EJtS k7FhOxH2GUBremgRRjvhoNlXsig1m8TfPv3pedSRketZttkCSv2WFx8WTWXqdMd1MZ3e UwL2kVAnr73Rs60UoRnoUPpK3qQs/QZSKTGcRIZHAI4XcB1EdgFpwUI9tJmcj3nxsgiW MOTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tSev6v9t+npQQZeVBtYK/tPyic65Eq43NlM1KV+JaZo=; b=t3FVGVWftO9Ba8s79IMXGUOS4GpNtBZuxDR8AhD3SDOP2ZCOvLdstGKm3wgi/9wL6e Bj0KgZeIu8SgXLOwC7hsAe7vqRfmrlv4B0R+qZTVupy8KXt1hMMYynr2orpsUB+B5+wI tS7lZdhWxjq2375NLNY7Csav9C8fZkOCwpF1ZagvvfVtO0BvduC1YD2kTULHT9rjp79Y d1dOT31ZComZJ5jCmeOYtfl6MWmSVehZWNoZtmTadKOnKptG+mi3IYCp20wfr1pacvOb bhzZOoREZcpKGy9q9auJihVxxkfBGIO2GeafKiZPKyUmwJrHn5WlrzMdkHJTw/WpI1s6 XTdg== X-Gm-Message-State: APjAAAUZa3XeQitqaQKpkUN3lAQXOnibX88zHn/rnzKtRO+VwaLXscp2 jPp/bQRea1L3BmZdDxGu3+CABGGA7Cd2kOepOVg= X-Google-Smtp-Source: APXvYqwVEpbYN4u/H3RgKPwzaQRrDtY0p+elVqa+PcbgFRWpr3fdoup/2mwfX8fzzohYSg9FNlMDMG+WN1fm22LcpjU= X-Received: by 2002:a02:c855:: with SMTP id r21mr12421947jao.120.1572253440870; Mon, 28 Oct 2019 02:04:00 -0700 (PDT) MIME-Version: 1.0 References: <9d3f9895-5ab6-1d75-4eb2-0ba93f13a8fe@gmail.com> <9D2698F0-49A4-4EA0-BEEE-552D28BE995A@newclarity.net> In-Reply-To: Date: Mon, 28 Oct 2019 10:03:50 +0100 Message-ID: To: Andreas Hennings Cc: Mike Schinkel , Rowan Tommins , PHP Internals Content-Type: multipart/alternative; boundary="000000000000d70fbe0595f4c75d" X-Envelope-From: Subject: Re: [PHP-DEV] Optional pre-compiler for PHP8? From: benjamin.morel@gmail.com (Benjamin Morel) --000000000000d70fbe0595f4c75d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > This would break as soon as we have two versions of a class, and a > runtime choice which of them to use. > (see also Mark Randall's comment) That's why I'm suggesting to only make these optimizations when preloading is in use, which means that you know ahead of time the class definitions, and you cannot have 2 runtime definitions of a given class. No preloading =3D no optimizations. Full preloading (whole codebase) =3D maximum optimizations. Partial preloading =3D the compiler should still be able to optimize *some = *of the code involving only the preloaded classes. We already have, since PHP 7.4, a mechanism to know static class definitions on startup, so why not build further optimizations on top of it= ? =E2=81=A0=E2=80=94 Benjamin --000000000000d70fbe0595f4c75d--