Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129243 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 lists.php.net (Postfix) with ESMTPS id 0A2411AD8DC for ; Sat, 15 Nov 2025 21:27:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763242078; bh=59j/nEo5h+HFZq2foAJ4N0ImPBlCdsoKgcmv1Kdl5kU=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=KueVnOOF7TX+5g6MIgIHHvH6Cq2tzMMIxyTfbKNnaCBh75ljsS3uC/7P927dwIZVm mdT5vu+0YsXYaPg0H8uwlmHkvbxI+bzfmyF+xGi6y5JJTK2el3Lsdm5HGlYfpD67CS F1YzgvGCbe/ZUea99HgWsUpCone42IlqlV+J8+EEzylNBWkPmlustUBONTMxub3rGa joSEIq53FM3dnK5E3FJiIL5ihdB+Aneifv1S05nhwpuRdwlPEULdSkx5pJFwU7IIDQ IIAU/d6CDRR5XaiCsWNeU5FYGUgojHQPzv3R30SJ++Ahm4htTm0cDoL4uV/UxEWspm vuMW8QfM5MlTQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 7CBA71804D8 for ; Sat, 15 Nov 2025 21:27:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_50,DMARC_NONE, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com [209.85.161.50]) (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, 15 Nov 2025 21:27:54 +0000 (UTC) Received: by mail-oo1-f50.google.com with SMTP id 006d021491bc7-6574ace76dbso119595eaf.3 for ; Sat, 15 Nov 2025 13:27:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763242069; x=1763846869; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=59j/nEo5h+HFZq2foAJ4N0ImPBlCdsoKgcmv1Kdl5kU=; b=ao/q7zk1mMJQ+YdBbDJnx0LT3SSKGy7vTKEuc6rU4cE4VQmF+w+DuZD46H6Na101Qu 1+o2hnr1yY8GLM/XqmTDDr5FnZPq9r/vkCv5RKBwfvrTcH+DYTu785v/g+cCQPoKRFrK F5RlaTKTvLBPB/rc9dT1ZFlS1giMBcZ9xz+709fooPvU9aGIzEub4Y91YUhRZ1DkagPP vssRe7qRd3n7TLi34++rinL2AWQ2BT5HVNt91DDGmYukuqpYFIcJ4No2mV3rvSYIMCAb J1UDhllcGcCL0v/Dyx5wh6pTO4md9TR6mQTKQNSeLUoPhObYXZtqsXSu4VHrLSmMEcwF +GZA== X-Gm-Message-State: AOJu0YynCYytiN+cSHXkRbZgPolpR9r0hq0T5NESJSoQH9WKphdCKriV aM8pK3gP7R5YFAvwik9SYkj+N7dEo/CtxqIQW0cwS9ycgP3lfC1XZQ0JJFG/CPQzjosjyyGTJQl IXabGGcv8pDS8D7mMwFQu6eI+H7OHKpo= X-Gm-Gg: ASbGncsLJEfagb3kh26u1N+adRuzilCOi2HAIJW7+sP8NTiQfbHo+MHTNWCtFOxy+P3 jAi6T/phmvZfijlD5/c5Qm0uJ/PseMoBzs/ZpmrixadaNM36N9OAE5fpCFsQMkrKXxKPK9S6rRb n1/vs2SRbsJUqcpiUZrLmmV49yGy8VVdYPW2wAFe84/fQ4oOM6DqJfMqF+EafCQ/tGwtPmqYiqr rcJvXk9JevyvFge2e907BN/8ZxkFMynQWZ03JbLRYU5LiEQTrxnsdb2WfKLiP0zELd9EA== X-Google-Smtp-Source: AGHT+IFRb6bdFCtNMb1V5xoXQ5WcY38VAxf4nkh6mgPFpS3+k84bjfkmW4vrrafrT21TMvkPzwp13GoNHhgHFC8ypoM= X-Received: by 2002:a05:6871:723:b0:3e8:8e56:671b with SMTP id 586e51a60fabf-3e88e56b13cmr1198562fac.55.1763242068826; Sat, 15 Nov 2025 13:27:48 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 15 Nov 2025 22:27:37 +0100 X-Gm-Features: AWmQ_bmXrGyNPDXh_4P90uCkpkU-zHdrIlQvmCeckif1rUPST0qEyvyEGMSaBSo Message-ID: Subject: [PHP-DEV] Re: PHP True Async RFC Stage 5 To: Edmond Dantes Cc: php internals , Larry Garfield Content-Type: multipart/alternative; boundary="0000000000002a5f750643a8c9f6" From: bukka@php.net (Jakub Zelenka) --0000000000002a5f750643a8c9f6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, Nov 13, 2025 at 4:25=E2=80=AFPM Edmond Dantes = wrote: > Hello Jakub. > > > I think it would be good to see the implementation that can cover the > currently proposed API and try to strip it as much as possible so it > doesn't contain much more than that. We saw that PR for the async API was > already quite > > big and we didn't really get any agreement there partially also because > there was no user of that and it was not possible to have any tests for i= t > (without writing them in C). > > So what I'm thinking is that if some minimal version that implements > just this (e.g. reactor can be just dummy because there is no io atm. and > other things can be stripped too), then the voters would get better idea > what they are > dealing with and could even try it out. > > I understand what you mean. > > ** Regarding simplifying the code.** > Any =E2=80=9Csimplification=E2=80=9D essentially comes down to removing s= tub files and > the C classes that implement the PHP classes. This is a relatively > small part of the project. > It's 1.6k lines so it might help a little bit > For example, removing Scope from the C code doesn=E2=80=99t make much sen= se, > because it turned out (even unintentionally) to be a very convenient > structure for tracking a group of coroutines. > In other words, no major changes to the code are expected before the > PR review begins. > I don't think you can create PR with the whole project. It's not gonna get reviewed and merged. It might not even open in GH. So you will need to come up with a way how to split to small pieces and I think this is the first self contained bit that should be offered in minimal form. > > ** Reactor. ** > Since the reactor uses libUV and we currently do not plan to provide a > pure-C implementation, we agreed to move it into a separate library. > > Why do you need reactor for this specific part of proposal? The thing is that there shouldn't be any IO so you reduce scheduler code as well and make it simpler and more reviewable. Kind regards, Jakub --0000000000002a5f750643a8c9f6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Thu, Nov 13, 2025 at 4:25= =E2=80=AFPM Edmond Dantes <edmond= .ht@gmail.com> wrote:
Hello Jakub.

> I think it would be good to see the implementation that can cover the = currently proposed API and try to strip it as much as possible so it doesn&= #39;t contain much more than that. We saw that PR for the async API was alr= eady quite
> big and we didn't really get any agreement there partially also be= cause there was no user of that and it was not possible to have any tests f= or it (without writing them in C).
> So what I'm thinking is that if some minimal version that implemen= ts just this (e.g. reactor can be just dummy because there is no io atm. an= d other things can be stripped too), then the voters would get better idea = what they are > dealing with and could even try it out.

I understand what you mean.

** Regarding simplifying the code.**
Any =E2=80=9Csimplification=E2=80=9D essentially comes down to removing stu= b files and
the C classes that implement the PHP classes. This is a relatively
small part of the project.

It's 1.6= k lines so it might help a little bit
=C2=A0
For example, removing Scope from the C code doesn=E2=80=99t make much sense= ,
because it turned out (even unintentionally) to be a very convenient
structure for tracking a group of coroutines.
In other words, no major changes to the code are expected before the
PR review begins.

I don't think you= can create PR with the whole project. It's not gonna get reviewed and = merged. It might not even open in GH. So you will need to come up with a wa= y how to split to small pieces and I think this is the first self contained= bit that should be offered in minimal form.
=C2=A0

** Reactor. **
Since the reactor uses libUV and we currently do not plan to provide a
pure-C implementation, we agreed to move it into a separate library.

Why do you need reactor for this specific= part of proposal? The thing is that there shouldn't be any IO so you r= educe scheduler code as well and make it simpler and more reviewable.
=

Kind regards,

Jakub
=
--0000000000002a5f750643a8c9f6--