Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:121933 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 69987 invoked from network); 5 Dec 2023 18:31:52 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 5 Dec 2023 18:31:52 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 54F9B180003 for ; Tue, 5 Dec 2023 10:32:03 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 5 Dec 2023 10:32:02 -0800 (PST) Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-33338c47134so3105123f8f.1 for ; Tue, 05 Dec 2023 10:31:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701801109; x=1702405909; darn=lists.php.net; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=5cmIesayIjBXhwhdDt8ifgQTHrGoLCQ7NZnxEWvjf3M=; b=fdFHSo9Xb2H2kGBXWunbQ4wvAqwFblvDMQqDYcMFAG6GiEdgsVmUi6OfVKlfiwuI/x QrErSSUQJGUss/ZInAr+2gGAj85wd8ZyO5yIaTwHCgi9TZvbmy8OxH8zoGmXEopEYzSh PTYGNp0DaYElx/AW9tKlsdN5kVNWdxYdbYJSrQ5Yv14xttzuLPGNMKl3hw3foG4+Ucji 3ZYxrUyhfbV1siojSK8QkepPp29KP6dpw1ani3L64MprauC/9iXMlvrJodBmq+K7WqpF KXhf/QOCYolGjdek6RC2C2OUZuHm8yUvy5826xUhRBTLpTbFqKieOsOwLgNi/MTUCYrB G6HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701801109; x=1702405909; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5cmIesayIjBXhwhdDt8ifgQTHrGoLCQ7NZnxEWvjf3M=; b=ooW2K3nMnDvrKVp9Gxh8LAambCjMb+k6os8aFvpZigSDsPHv4RnIkG/uBWjpJBEKR8 hU6sUNRhEdJaiRKR5ZebNuQk/RY+S4F7J8C882OMX/lDmQN98XYiZ/TjpeNgPQsyO1UP 9Dyk8fgAvyUfLrk0DLlBuVq6PM720Koim/0j5cnj5nRxqOjV1L07NsLvhd2J6UYGIyHp joS6fD3yuJEClkaIWvdcJTrNgCQwy/SFUdJsm9YbQNcEnCq7DDBGIkeQ2OIH68eWpnFW BuF0WoJDxm/cR6c6N/hWPfx1h0aWTr3uASCVtJ/bVuSvpQzrRkS4Y0NqeV78oZ20c5pe AJcg== X-Gm-Message-State: AOJu0YxthzpdxBI+I+BiQDLAqWjIU3qou37bq2j41uttxKDNTRw2knhU I8y7mv+NEwxjM8urczVC+3MP08Js6zU= X-Google-Smtp-Source: AGHT+IH1vS2vJoLSW9Cnx61OzRy7o2GOQCRjxa7sUtakg+uooPWaslyN7I48M4tcR112/9vCbR4Tog== X-Received: by 2002:a5d:51cc:0:b0:333:2fd2:6f68 with SMTP id n12-20020a5d51cc000000b003332fd26f68mr5042633wrv.114.1701801109170; Tue, 05 Dec 2023 10:31:49 -0800 (PST) Received: from ?IPV6:2a0e:97c0:38f:0:5697:3845:aa07:4c4? (luna-4c4070aa548379650000f.net.as198747.daniil.it. [2a0e:97c0:38f:0:5697:3845:aa07:4c4]) by smtp.gmail.com with ESMTPSA id q4-20020a05600000c400b003333fa3d043sm8747772wrx.12.2023.12.05.10.31.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 05 Dec 2023 10:31:48 -0800 (PST) Message-ID: Date: Tue, 5 Dec 2023 19:31:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: internals@lists.php.net References: Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [VOTE] [RFC] Final anonymous classes From: daniil.gentili@gmail.com (Daniil Gentili) Hi all, Thanks for the feedback, sorry the RFC was a bit too thin, given the multiple internals threads I started on the topic, including the latest [RFC] discussion thread, I mistakenly assumed that everyone was already familiar with the topic, even if by just lurking. To reply to some of the feedback received in this thread, >I am especially missing a reasoning as to why final for anonymous classes is a thing in the first place. What pain is this RFC adressing? The only real pain I was addressing was indeed the inability to enable some possible opcache optimizations when using final classes, as mentioned in the Proposal section; I believe that that is reason enough to add support for a minor feature like this. >There is no reasoning, or examples Added some more reasoning, even though as said both here and the RFC, the reason behind the RFC is quite simple, just allow using some optimizations that were excluded due to an oversight in the original implementation of anonymous classes. Regarding the examples I again mistakenly assumed that everyone was already familiar with the (rather basic) patch and the examples in the testsuite, corrected that mistake now. Regarding the voting options, after feedback received in the last [RFC] discussion thread from Nicolas Grekas: >Hi Daniil, >>> While I'm open to Proposal 1, which introduces final anonymous classes >>> without breaking BC, Proposals 2 and 3 are a different story. >>> In summary, I advocate for the RFC to focus on the non-BC-breaking option. >>> Let's maintain our commitment to stability and gradual evolution in PHP. >>> Cheers, >>> Nicolas >> Agree with your points, just adding final anonymous classes seems the best solution to me, but given the interest in alternative solutions both in the pull request discussion, and in the previous mailing list thread, I think I'll leave the other options in the RFC, to see how the votes will go (I'm actually curious myself :). >> Regards, > Daniil Gentili >I think this is a dangerous game. Breaking BC shouldn't be proposed unless absolutely needed IMHO. >Nicolas I had moved a large chunk of the rationale and removed basically all the alternative polls I had initially planned to propose; the initial text of the RFC can be seen at the bottom, in the newly updated Rejected Features section (https://wiki.php.net/rfc/final_anonymous_classes). I've also added some additional pro and counterpoints on my own. As I see now, it was a mistake to remove the other two planned voting options just based on a single feedback, thus I would like to ask, would it be OK to add back the two voting options I removed basically a day before opening voting, with end date @ 2023-12-20? Here are the options I removed a few days ago, and would like to add back: - Make all anonymous classes final by default, without the option to make them final? - Yes/No - Make all anonymous classes final by default, provide an optional ''open'' keyword to make them non-final - Yes/No Again to clarify, the voting options would be mutually exclusive as proposed in the original version of the RFC. Regards, Daniil Gentili.