Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126543 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 4C2251A00BC for ; Sat, 1 Mar 2025 18:44:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1740854506; bh=+V9ejwQCdFku95f3QUjPknnRpIurkWOwrSKNA1Sbao4=; h=Date:From:To:In-Reply-To:References:Subject:From; b=GMWyLwZKBZHSDwJg5AeX+jmv887ocYQGMdBQiBcIfZKk6poimvAoK24qcjjFdiS3Z 6ON2l7Rm2/PWJd2RUoQOXG1QWxsfnDCzYdCOVkRvSXv7zJB5hfqQIEBm90VinZ4Y5g vk78r9BaDTcnvar2ZWRWiiZgxJ2AAZ880COQhrGIuObIPOCKK4zGYmSQsldZG4OB0Z uhJlPsetahJvRuR9yegQGRSbpNCAHZ8WrHvIPtjnS7/IKSGHwn7/xtqyKcG9FZuhCh Yax6NFbLc+h/ZAhK2vAWZ/tGEysZPzG9IsD+XY0+K077VdGynVz3zpoKKtazZ+uDG6 rZaGH2XcVsKRA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 82A9E18004B for ; Sat, 1 Mar 2025 18:41:45 +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=-0.9 required=5.0 tests=BAYES_20,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,HTML_MESSAGE, 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-b5-smtp.messagingengine.com (fout-b5-smtp.messagingengine.com [202.12.124.148]) (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 18:41:45 +0000 (UTC) Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfout.stl.internal (Postfix) with ESMTP id 48B5F1140193 for ; Sat, 1 Mar 2025 13:44:22 -0500 (EST) Received: from phl-imap-09 ([10.202.2.99]) by phl-compute-12.internal (MEProxy); Sat, 01 Mar 2025 13:44:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bottled.codes; h=cc: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=fm2; t=1740854662; x=1740941062; bh=+V9ejwQCdF ku95f3QUjPknnRpIurkWOwrSKNA1Sbao4=; b=hxAWWWWQXUR77LTmRg78ltV9/t cmmFXGmRfQFX6WLC+OaO7QR62Em65L3mwErVSTDZq6Or5KWdbPHLg0tnJIJm8Z9q Gt/Wk+ZqxC7c8j59Gef9y1OpLCM2xDxiT9tPQMaboe7840LcOHBlrOA7WoufSjay KGN+OzrG8ff9qN65vgCue1XrNovj1BAgGUdLudYg24CcDd6hQGhnwKOiANo5Eb5n DBd/TWOfXzfR+EV7nd75sPGMcZqGPYRlSNTVfm0xC6u5dKcTmsdGCR3VXm/DX74x dN6yvI6XTxhgOZ5tnPKniE33LjFeHobo/Vf3MtxU1P1kiF5tFhdZULEi4bmg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc: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= 1740854662; x=1740941062; bh=+V9ejwQCdFku95f3QUjPknnRpIurkWOwrSK NA1Sbao4=; b=mfOkpI5tLsENcv79ztzhFXI/UrvyQJAmegZf9iTU7DeJSitsniY RWxGIRBh1LRlD+s7/g099O5aLDYc09TlVcp5UNwiZ/BGtu8CpAysM3UoxSy6aAMP pVJIJu+jz5EiON4shiqmYoJgErtI5Q61eCP+P8FXkQ8mXt27cW6B8vC+bhjvhPFw cWrZQVot4+cLhYb/67j9NXVz78zCfFfBOg9PeJZy+/l1j3Q0a2gZyT0v/+21CCmA Pz4HigXNWKROgffn6eki+E9eHaXPunrzvoYRBLe4kONfNLMOOWF9fQXAaV8V3krI KXmSgBMmYcOpyxMorktfYnEeR2rK2ieU47Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdelgedthecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhepofggff fhvffkjghfufgtsegrtderreertdejnecuhfhrohhmpedftfhosgcunfgrnhguvghrshdf uceorhhosgessghothhtlhgvugdrtghouggvsheqnecuggftrfgrthhtvghrnhepleekhe dtgfefhfelieelgfegiefhkedvleefjedtffelhfehheffgfduteduuddtnecuffhomhgr ihhnpehphhhprdhnvghtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomheprhhosgessghothhtlhgvugdrtghouggvshdpnhgspghrtghpthhtohep uddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepihhnthgvrhhnrghlsheslhhish htshdrphhhphdrnhgvth X-ME-Proxy: Feedback-ID: ifab94697:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id A1A5F780069; Sat, 1 Mar 2025 13:44:21 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Date: Sat, 01 Mar 2025 19:44:01 +0100 To: internals@lists.php.net Message-ID: In-Reply-To: References: Subject: Re: [PHP-DEV] PHP True Async RFC Content-Type: multipart/alternative; boundary=a23052fa6ac0438397adc11056bff9c6 From: rob@bottled.codes ("Rob Landers") --a23052fa6ac0438397adc11056bff9c6 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Sat, Mar 1, 2025, at 18:20, Rowan Tommins [IMSoP] wrote: > On 01/03/2025 09:11, Edmond Dantes wrote: > > > > Good day, everyone. I hope you're doing well. > > > > I=E2=80=99d like to introduce a draft version of the RFC for the Tru= e Async=20 > > component. > > > > https://wiki.php.net/rfc/true_async > > >=20 > My reaction to this can be summed up as "this is huge!" By that I mean=20 > multiple things... >=20 > First: PHP having native async support would be a huge step forward fo= r=20 > the language. It's really exciting to see how this proposal develops. >=20 > Second: it's clear you've put a huge amount of work into this, so a hu= ge=20 > thank you for that, and I hope it is rewarded. >=20 > Third: this is a huge proposal to digest. I wonder if there are ways i= t=20 > can be split into smaller pieces, so that we don't overlook details in=20 > one part because our focus is drawn to another. That might mean=20 > releasing a partial implementation this year, and more features next=20 > year; or it might just mean discussing and merging some core pieces=20 > first, then immediately following up with a series of feature RFCs, al= l=20 > targeting the same release. >=20 > Fourth: design decisions here will have a huge impact on the language=20 > for years to come. We should spend plenty of time looking at experienc= e=20 > from elsewhere - other languages, and existing third-party async=20 > implementations for PHP. This is closely related to the previous point= ,=20 > since expanding the current RFC with comparisons for every decision=20 > would make it impractically long. >=20 > Fifth: this is a huge amount of new code - GitHub says 24 thousand lin= es=20 > of added code, although some of that is tests and documentation (which=20 > is great to see included!) We need to make sure there are enough peopl= e=20 > who understand the implementation to maintain that. Maybe we can try t= o=20 > tempt some of the core contributors to existing third-party libraries = to=20 > spend some of their time on php-src instead. >=20 >=20 > I realise I haven't actually given any concrete feedback on the propos= al=20 > - I don't have any experience with other async implementations, and=20 > don't fully understand the concepts involved, so don't feel qualified = to=20 > comment on the high-level design questions. I might have opinions on=20 > smaller design details (random example: RESOLVE, CANCEL, and TIMEOUT=20 > should be cases on an enum, not int constants) but see point 4: there'= s=20 > just too much here to discuss in that level of detail, and there are=20 > top-level decisions which should be our focus first. >=20 > To re-iterate: this is really exciting, and thanks for getting it to=20 > this stage! >=20 > --=20 > Rowan Tommins > [IMSoP] >=20 I second this, and as a long time user of amphp, go, and C#, I=E2=80=99d= be coming into it with a specific mindset.=20 My only thing so far is that it appears the scheduler cannot be replaced= ; at least, easily. I don=E2=80=99t know if we would do so over on Frank= enPHP, but it would be interesting to replace the scheduler with somethi= ng that utilized go-routines for true multi-threading. Whether that work= s or not, is a whole different can of worms. I=E2=80=99m compiling a deeper review, but that speaks more to the imple= mentation than the spec.=20 =E2=80=94 Rob --a23052fa6ac0438397adc11056bff9c6 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

=
On Sat, Mar 1, 2025, at 18:20, Rowan Tommins [IMSoP] wrot= e:
On 01/03= /2025 09:11, Edmond Dantes wrote:
>
> = Good day, everyone. I hope you're doing well.
>
> I=E2=80=99d like to introduce a draft version of the RFC for= the True Async 
> component.
>
>
=
My reaction to this can be summed up as "this is huge!" B= y that I mean 
multiple things...

<= /div>
First: PHP having native async support would be a huge step fo= rward for 
the language. It's really exciting to see = how this proposal develops.

Second: it's cl= ear you've put a huge amount of work into this, so a huge 
thank you for that, and I hope it is rewarded.

<= /div>
Third: this is a huge proposal to digest. I wonder if there ar= e ways it 
can be split into smaller pieces, so that = we don't overlook details in 
one part because our fo= cus 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 piece= s 
first, then immediately following up with a series= of feature RFCs, all 
targeting the same release.

Fourth: design decisions here will have a hug= e impact on the language 
for years to come. We shoul= d spend plenty of time looking at experience 
from el= sewhere - other languages, and existing third-party async 
implementations for PHP. This is closely related to the previous p= oint, 
since expanding the current RFC with compariso= ns for every decision 
would make it impractically lo= ng.

Fifth: this is a huge amount of new cod= e - GitHub says 24 thousand lines 
of added code, alt= hough 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 contribu= tors 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 p= roposal 
- I don't have any experience with other asy= nc implementations, and 
don't fully understand the c= oncepts involved, so don't feel qualified to 
comment= on the high-level design questions. I might have opinions on 
<= /div>
smaller design details (random example: RESOLVE, CANCEL, and T= IMEOUT 
should be cases on an enum, not int constants= ) but see point 4: there's 
just too much here to dis= cuss in that level of detail, and there are 
top-leve= l decisions which should be our focus first.

To re-iterate: this is really exciting, and thanks for getting it to&n= bsp;
this stage!

-- 
=
Rowan Tommins
[IMSoP]

<= /blockquote>

I second this, and as a long time user o= f amphp, go, and C#, I=E2=80=99d be coming into it with a specific minds= et. 

My only thing so far is that it a= ppears the scheduler cannot be replaced; at least, easily. I don=E2=80=99= t know if we would do so over on FrankenPHP, but it would be interesting= to replace the scheduler with something that utilized go-routines for t= rue multi-threading. Whether that works or not, is a whole different can= of worms.

I=E2=80=99m compiling a deeper r= eview, but that speaks more to the implementation than the spec. 

=E2=80=94 Rob
--a23052fa6ac0438397adc11056bff9c6--