Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108346 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 18960 invoked from network); 2 Feb 2020 04:12:13 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 2 Feb 2020 04:12:13 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9944D1804AC for ; Sat, 1 Feb 2020 18:23:45 -0800 (PST) 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, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS 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-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 1 Feb 2020 18:23:45 -0800 (PST) Received: by mail-pg1-f181.google.com with SMTP id a33so5800009pgm.5 for ; Sat, 01 Feb 2020 18:23:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:autocrypt:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=mBAjUIXi17jJ5r+CgtZLwdNeo443pppfcoW/G1Bczec=; b=LOmMrvkElZ8TPdWJeV77e8g4fBeAkw6L/HV6W2LCv83gYaien4X3cSiLRZDRAwGdSi jmHjIIVq9iZkQ6Bq/ar9gwOkHo5lXEAk0ItX9wROb9UoOARZ/94F0uW/fi6uBkiBynBt /nBX+ITqRD02Rntp9qODh48ZTR/p5pe0CMnk+PNkUEljQIGMoyhFusr/KM82bCp65oJj 9rdTIsjpi/pRy6QAH+DB0OBx+ee3Vem30BdlPIqDG1Tq9O1PCYFip3tBBMhUurQ2LqNi nxGbmbyJrL87OGKzYcLSKkKlAFn/0ROCy5NxT/hts3BuVHhJqMaE+hX9YiFRvXMb3R0U 579w== 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:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=mBAjUIXi17jJ5r+CgtZLwdNeo443pppfcoW/G1Bczec=; b=Cz0dtVuIqBnoiJ5rsENE6pqUMMU5/zj0hHkoQsS9xUDE/fl4YBGovIx1O/rVm3gMjl yluGVOEagYzDX7KVALcOwfUoC/vJo0Jfgg8B4CIW/PwyhhzezAyIYtWUAiXjuzjZCYq6 4l/dCQK99+PMb24ky8YonaysKuMwgbfnuccvnjS6cqLdUhmA+8CKekAgK+a10buaY1Eo 5UlTHnjVZorGqCQXmGW4bKkCcHodreGN0Nl/ImgtcDfJIqLm8xJgOIR2yjOTUO5iH/l4 c/tSEWy/koEO6CZxmeVZIQtS3Oj+Ej/cuTM/laBOyemvyJ7rXolnAVFjcJV+DM8Mjbav 0t8g== X-Gm-Message-State: APjAAAWNEK/bfQjHh04ig8YW/uLa2NepxvmJ3g+GRn1TRaZqQMSBKU98 jtc3A4IGEdVNOGYyBm6PW+454+E7eg== X-Google-Smtp-Source: APXvYqwhdjWfP57M3JY6mJzfnLJjZf/naWN3G6BjwwRMNMKdMXz97y6LUtFGADK6a+DWo2nDgB8U/Q== X-Received: by 2002:a63:9313:: with SMTP id b19mr14171300pge.273.1580610222257; Sat, 01 Feb 2020 18:23:42 -0800 (PST) Received: from Stas-Mac.local (c-76-126-84-88.hsd1.ca.comcast.net. [76.126.84.88]) by smtp.gmail.com with ESMTPSA id g19sm15230651pfh.134.2020.02.01.18.23.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 01 Feb 2020 18:23:41 -0800 (PST) To: tyson andre , "internals@lists.php.net" References: Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Sat, 1 Feb 2020 18:23:41 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Planning an RFC to allow calls to global functions in constant expressions From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > The constant expressions will be evaluated at the same time php currently evaluates constant > expressions. But you essentially propose running arbitrary code at that time, which is much bigger deal than evaluating simple constant expressions. While simple functions like strlen() would probably be OK, running arbitrary function means possibility for arbitrary side effects, which makes the whole thing completely unpredictable. > Another problem with using define() is that opcache cannot optimize global constants, opcache can't also optimize runtime-evaluated constants, because results and side-effects of an arbitrary function call is not guaranteed to be the same. It could only optimize anything if it were guaranteed that the function is pure, does not depend on anything but its arguments and has no side effects. > because define() will emit a notice instead of raising an Error if the constant already exists. You can trivially check for this, and if it ever would be a problem, define() error level can be changed, but I don't think it's a real issue since it was never changed so far. > So the performance is slightly worse. If you try to optimize performance this way, you're optimizing performance in a wrong way. No sane code would depend on performance of define(). -- Stas Malyshev smalyshev@gmail.com