Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126542 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 889A71A00BC for ; Sat, 1 Mar 2025 18:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1740853938; bh=8lpHaEI1W8+Uy0UnQS+yWfadII80eueD1WZZGbrQlNA=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=eWzR/BtKlBYwqzwO3w0fQURKWjrSqJ0WLhmRXtfqtfBPLuPp7SexJ3bwpI5YETHhM 8qj8QPQVbKnaptwgTg7XaJhCYQTlMOZsIrK0v5Br9SQWuphp47JEZLC3RepxaGGW/S 7HTLUD61q6rgNtnvuuxy/gK+xfCgkqWBsuuavy9XPp8pY4K0CXhbRHXX4im/1knw9o AiagIs8QPKCljIr8lnKc9in4yHlt7tsQdjdjrcyLHjFxT9Nb73zjmFsYSxgXzODTPR aYt9+AeNctzEUCV2QrESW4InZIfbBuEFKS0L9gG+vHYcZevhM5JMx/a9Kg7HZDjgVx 1HsnAHnQ8Im8Q== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 47AD018007C for ; Sat, 1 Mar 2025 18:32:17 +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=-2.0 required=5.0 tests=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, HTML_MESSAGE,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-yw1-f171.google.com (mail-yw1-f171.google.com [209.85.128.171]) (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:32:16 +0000 (UTC) Received: by mail-yw1-f171.google.com with SMTP id 00721157ae682-6fd3b6a6a24so21200877b3.3 for ; Sat, 01 Mar 2025 10:34:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740854093; x=1741458893; darn=lists.php.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9B8+M2A17d5b5YVeTvpN1xYrL6TtaV9GL2X9xD2oTIg=; b=jdTw3mR+95efFebU6vCw9DjVwa4bZcZs7gHIk5zNVcr3h4A/wbM/EbHs0KRNMvR7K9 i1wI39aiwBi5ugkTCowydxeXfYSiVcLLBS6zn36Cvz3fCNyLX1+rCxdpdDl4kHfWzVX/ Gqj60Fem1TBeqIEiOn6H3bOcpTdvJFxXfz9VjWuz5h4APPn2b4uljALwSPhcRFfu4T1c mLY3FRcA/dbdflPGbdc4zr0Bv1ow/AsSCmxgbsk7xjAHc2eTqyFizC+w6e1VclNi9qSp brQ9pOcbjwYe2CCDZyCbN1tLwB8fyoejBKTPA4i5KY0dxFml2LBRRkrbECYsapPlEY1E PNgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740854093; x=1741458893; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9B8+M2A17d5b5YVeTvpN1xYrL6TtaV9GL2X9xD2oTIg=; b=hS8AfFSK/A5/cNSMQPPjVCPKrxYqehxgv2Op/jO9d2C0RmxHRqqQSQ3f4CaUn0/xhc Fxvbz7cWyhV/ONRLSYyoZEx4Rj8WRwEWE0UdHWRugYdkkGYgfd5McvTxME4RiBEkzPEc GKFaAXKzuITlHJU77znubMdMA1TRfxQLIty1U5cNVsqSRcmZOorR/FiJaRW4+ovg8eTI fO7n0Lu2mHQnOoDdkUwTA3BgVcOkolhKP2/tGKyNdE9+5JqHxc0AO6aAo6+/BNSVcwgC VAxmvzYpnof7Z75LkgsfPs0bJjL6Sl1YT4kXDPWeZk6oHgWk9vbYXqQRjmlfiDSaMJaD Iqng== X-Gm-Message-State: AOJu0Ywwtbj1RZSd+Ti1NScz5wzkwJ0ffoEvJYH49aJ78q2M4NnDxMei y8D0aJLAm749id+uyz9pm4EbUZMpBq7MmCVNgYKuUtu0byvBGEhQD313eBYm+hyAXEvjW+l85xI nfJC/X4GESZmGyyT6RIFaPcthpGT8TXlg X-Gm-Gg: ASbGncv163CbtD4WCbh0gyRtdiGterrcZ+b29+Q3zH0QWyGyVufvNCnY/1saML9NHTg RbGRuEfSNIHoxrnQ/9aZ0GrBf1VnO8ShSvtLhKX10GOEXOn1MDtgwJYV59IEf4dvHItV+TRkwKP 6v229p/o3eBviK2SaGOkniPP3N3Q== X-Google-Smtp-Source: AGHT+IEjhGTfJRnicSvohw7kDPrGY55IsZK0W5nHEcC3QL/Dor9DzWMkO+ssOtC1uUcjbrqIfzDDmI7pPIn1WcRnba8= X-Received: by 2002:a05:690c:893:b0:6fb:9786:5871 with SMTP id 00721157ae682-6fd49f86b1dmr110906297b3.7.1740854093429; Sat, 01 Mar 2025 10:34:53 -0800 (PST) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 1 Mar 2025 20:34:41 +0200 X-Gm-Features: AQ5f1Jq3fykv97efAglm6WPBqGMm-kbgYr0MH8t7fkrHAswkWUvkDjBeOZ2Atag Message-ID: Subject: Re: [PHP-DEV] PHP True Async RFC To: "Rowan Tommins [IMSoP]" Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary="000000000000d845a8062f4c2d1e" From: edmond.ht@gmail.com (Edmond Dantes) --000000000000d845a8062f4c2d1e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > 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. > > Thank you for the kind words, it was awesome to read. 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 anoth= er. I can suggest the following workflow: 1. *Approval of the core concept*: Changes affecting the language core. 2. *Decision on the low-level API*: Async\wait + Resume + microtask. Should it be exposed to PHP developers or not? (I don=E2=80=99t have a definiti= ve answer). This is a crucial point that impacts 30-40% of the code. If the decision= is made to hide this API, the code will need to be adjusted. Next, the RFC can be split into two parts: - *Low-level*: Basic PHP primitive functions + C API - *High-level*: Future, await, Channel, and maybe Pool. So the process would be: 3. Approval of the *Low-level RFC* 4. Approval of the *High-level RFC*. Step 4 depends on Step 3 in terms of implementation but is almost independent in terms of *semantics*. This means it can be discussed separately and more freely. Additionally, the *Low-level API* can be released independently, allowing PHP extensions to adopt concurrency earlier. As for function names, I really hope for your support in this matter because it's far from trivial. Thanks, Ed. --000000000000d845a8062f4c2d1e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
First: PHP having native async sup= port would be a huge step forward for
the language. It's really exci= ting to see how this proposal develops.

=C2=A0 Tha= nk you for the kind words, it was awesome to read.

=C2=A0=C2=A0I wonder if there are ways it ca= n be split into smaller pieces, so that we don't overlook details in on= e part because our focus is drawn to another.
=C2= =A0

I can suggest the following workflow:

  1. Approval of the core concept: Changes affecting the language cor= e.=C2=A0

  2. Decision on the low-level API: Async\wait + Resume=C2=A0+ microtask. Should it be e= xposed to PHP developers or not? (I don=E2=80=99t have a definitive answer)= . This is a crucial point that impacts 30-40% of the code. If the decision = is made to hide this API, the code will need to be adjusted.

<= p>Next, the RFC can be split into two parts:

  • Low-level: Basic PHP primitive functions + C API
  • High-level: Future, await, Channel, and= maybe=C2=A0Pool.

So the process would be:
3. A= pproval of the Low-level RFC
4. Approval of the High-level RFC
. Step 4 depends on Step 3 in terms of implementati= on but is almost independent in terms of semantics. This means it ca= n be discussed separately and more freely.

Additionally, the = Low-level API can be released independently, allowing PHP extensio= ns to adopt concurrency earlier.

As for function names, I really hope= for your support in this matter because it's far from trivial.

T= hanks, Ed.

--000000000000d845a8062f4c2d1e--