Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126541 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 9F6E71A00BC for ; Sat, 1 Mar 2025 17:20:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1740849480; bh=ZsfaQ5RwjecaWopS+tXur3A4GymRRIatQaODCQkbLxs=; h=Date:Subject:To:References:From:In-Reply-To:From; b=TMMDFI8R9HlFmUqvXKjAVuiy7N/O7vWtS5Fxqx7YEbWVV84BrcKwZ2P3I6jOXTFDk /IJmsfZOZCW1lVgVKtVxfJrwl2KNgk/xwoY9fWuPoSVl3i+zZn3xkWTLscvo5tw1YP /VzGvPga7gBp6WEyaWaxUftg13N/aR2bcMyR8mbzgpo3lf0g/CQFzFa/YUeK5SZLm1 KfskZrBNgvwOB63q0SiKkEZdJhNuk1vZdoBeqfaHQyxBrSFLG/L4xLBLMBk1xX1Ukt i3D/uCA/WOwQQZIok8THIpSjPpeIE4gdtV8TpCXbALhKFZf1Henvf0T2k/vN1BESfe VLkmGBNAGmm3A== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id E4FE118004E for ; Sat, 1 Mar 2025 17:17:58 +0000 (UTC) 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.4 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from fout-b4-smtp.messagingengine.com (fout-b4-smtp.messagingengine.com [202.12.124.147]) (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 ; Sat, 1 Mar 2025 17:17:58 +0000 (UTC) Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfout.stl.internal (Postfix) with ESMTP id 67701114012C for ; Sat, 1 Mar 2025 12:20:35 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Sat, 01 Mar 2025 12:20:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rwec.co.uk; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1740849635; x=1740936035; bh=csXJsCIJyzGTNf+mEXlHDDrysK1V5Mym2KaW6G/FX7A=; b= NUjfjpmq5ANn4+0gLQIpUKr4FIRhZgnYONqgGoNbO5Jh2QUbXNhVVDfAvVj2eCRN VrC/kBbKcaCNmM6KnawcRIaajrcshLZ8Jzy057KOBFp1Rc4eHMObgVsFYyMkBSY4 BJVLymZsmnAA7MDs5sQcvYWY0xmmTCs3OcIhvytnP7sdoz3kDam1Kx0XKwMdyDSf 0QEpfBaoE/Os5udFA7adDDQZ6jxI4ojXkGyjj4s10AHeCN4LmlkFEDmpcO6DnNUi QTGsBovd4nMkLiyO42HE+y8OLFZ3PqlEe/3OrTQUp8iOXkL1yxTqPF3/Jv5cHSwQ y47QcTeXz7Pl7reFef0UcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; t=1740849635; x=1740936035; bh=c sXJsCIJyzGTNf+mEXlHDDrysK1V5Mym2KaW6G/FX7A=; b=EfZJmGVmlWJFDayqB mH8NWH65z/vCEqlDb/uhnKDJPvZezbYmWq/p2rHeBXOt/nYmmChl6rCzpNMKpC6R rbSNLBSDx0QbX/NmTYvoq6YQDUme2vnP+8qgNrOh+7Y0t3x7c0yX6JOjDTCld3eI nSFyqXduoamNHh+tY0cppSab5W/QlE1p0/7PGpaT/gQ68W954Eyhi7HHbtAi9ruu UbK7jdCPGSvttJaMjpPUFonPHUVbA3HWHCdVuyek8rIYqGS0Jf5p59PacJAFfBXb pwyFjpRqAr92505JZKZVZLIghutK3AwXVuLDEGwu2fIqJYVFJUZecESMdkF7kvsN iW5Yw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdelfeekkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhepkfffgg gfuffvfhfhjggtgfesthekredttddvjeenucfhrhhomhepfdftohifrghnucfvohhmmhhi nhhsucglkffoufhorfgnfdcuoehimhhsohhprdhphhhpsehrfigvtgdrtghordhukheqne cuggftrfgrthhtvghrnhepledtteejtedvheetffeggfelveeigfevheejleelheeggeet keehjeetieehuefhnecuffhomhgrihhnpehphhhprdhnvghtnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepihhmshhophdrphhhphesrhifvggt rdgtohdruhhkpdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgtph htthhopehinhhtvghrnhgrlhhssehlihhsthhsrdhphhhprdhnvght X-ME-Proxy: Feedback-ID: id5114917:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sat, 1 Mar 2025 12:20:34 -0500 (EST) Message-ID: Date: Sat, 1 Mar 2025 17:20:30 +0000 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] PHP True Async RFC To: internals@lists.php.net References: Content-Language: en-GB In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit From: imsop.php@rwec.co.uk ("Rowan Tommins [IMSoP]") On 01/03/2025 09:11, Edmond Dantes wrote: > > Good day, everyone. I hope you're doing well. > > I’d like to introduce a draft version of the RFC for the True Async > component. > > https://wiki.php.net/rfc/true_async > My reaction to this can be summed up as "this is huge!" By that I mean multiple things... First: PHP having native async support would be a huge step forward for the language. It's really exciting to see how this proposal develops. Second: it's clear you've put a huge amount of work into this, so a huge thank you for that, and I hope it is rewarded. Third: this is a huge proposal to digest. I wonder if there are ways it can be split into smaller pieces, so that we don't overlook details in one part because our focus is drawn to another. That might mean releasing a partial implementation this year, and more features next year; or it might just mean discussing and merging some core pieces first, then immediately following up with a series of feature RFCs, all targeting the same release. Fourth: design decisions here will have a huge impact on the language for years to come. We should spend plenty of time looking at experience from elsewhere - other languages, and existing third-party async implementations for PHP. This is closely related to the previous point, since expanding the current RFC with comparisons for every decision would make it impractically long. Fifth: this is a huge amount of new code - GitHub says 24 thousand lines of added code, although some of that is tests and documentation (which is great to see included!) We need to make sure there are enough people who understand the implementation to maintain that. Maybe we can try to tempt some of the core contributors to existing third-party libraries to spend some of their time on php-src instead. I realise I haven't actually given any concrete feedback on the proposal - I don't have any experience with other async implementations, and don't fully understand the concepts involved, so don't feel qualified to comment on the high-level design questions. I might have opinions on smaller design details (random example: RESOLVE, CANCEL, and TIMEOUT should be cases on an enum, not int constants) but see point 4: there's just too much here to discuss in that level of detail, and there are top-level decisions which should be our focus first. To re-iterate: this is really exciting, and thanks for getting it to this stage! -- Rowan Tommins [IMSoP]