Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129379 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 8BF431A00BC for ; Fri, 21 Nov 2025 20:07:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763755657; bh=nhy37y0cYMGWJCpKYiwXh0oRpbCgM5qqCez5XllHI9Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=RVsbleM4SwYf+9H6yxBSG9bbhTl8QZui7IfwpTcCoHWz/nqAWluf2FRfFAh5EyISf l1TZQdMoQt8UoQKnCqpzYHzxV/mPzWipBchVvKKii+cMLU6I/QwzriHR4YmlLorfV7 lNtlGXSRC2+1XF25pf9XDtIFqlBTJcREAs5La3IDZ2HPNSQ9Dy4LG0t4mQGWZSRMdq kbcJgEa8Xz0ojZDzNFqGMgdQDy6oVg2sdlHWHXFfOnZvwg5rl+jrZv3dtzbAE2/rmv aCHs4LsHrvb8JmMiAHX0bBNm6v7IfP/2CB/XK2hFU8yygRJmEDX1cTtljoyiq54ZvU FnbKH8f7y9IMw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 0E906180040 for ; Fri, 21 Nov 2025 20:07:36 +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=0.6 required=5.0 tests=BAYES_50,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.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) (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 ; Fri, 21 Nov 2025 20:07:35 +0000 (UTC) Received: by mail-lf1-f66.google.com with SMTP id 2adb3069b0e04-59445ee9738so1889297e87.3 for ; Fri, 21 Nov 2025 12:07:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763755649; x=1764360449; 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=nhy37y0cYMGWJCpKYiwXh0oRpbCgM5qqCez5XllHI9Q=; b=k7HPrjdfDc2xlVs0A3LCok2Exl6wkG83p+61lj/Od+SMRqkGhJDYt6GD37OyltkPJa GwPsD81Mr3jr+DsTZguT2TzHPWHW3mHu3BKunP0gINna4QMp8pN9FgJ+Aqbdd6hE5Zlo hqWpNk0/iPxhWVbgUz0NtbSris/Axib80quPGtlwMCdIDWaYSrJL7G5eB4Ljx3pbFb5e JjytGczuSd2t3JlcDM8K2J76MKlT3py3+DXz1hsfZfbpA1+uRmruQLNy6QBDcDWaoFXA 4WLuXDyFfB5o9ckwmCRt233JeBhjiQ8pGf9/s7PQbW1wZvE13eoJdL34e5klp0r5Iq8k eJDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763755649; x=1764360449; 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=nhy37y0cYMGWJCpKYiwXh0oRpbCgM5qqCez5XllHI9Q=; b=m5IFjGObpOG3vSgYKYpWKC0+Om/+diOKFYfeaHTNgwVIyOdFAFRBH2jNYittxx9IRK zC0jFOfRs5EXcnMtA3TD5idvqL7U6xi0kvLkUu3mB40HM0+CC+E9TZKGUgLoXBYFekqD IKecr40UwXKotmVXTNKakRHlRLYfUNr0pYOTUHMAg4TVYNvb/JGlosBjKUJv9zy83duZ cmM4pO380L+vdaOOHblEhILTTtWtrSDKXsdgWpcuP4P5xt1LIFDoGkVkQ+ki7CAFp6mI pdGNDX43qsoLKq6RT+bBVU0dzwHf7dOriac6GRBDlNma1YV74YhE4keVwzBzjknyRrgU jB5g== X-Forwarded-Encrypted: i=1; AJvYcCVEDu6pf+4dwcXdho8y6AfYxErjGoBKFz9UEFzt8N3k/4URiZocx5KEOkcQssmJzpqGjy1YrUiPGbw=@lists.php.net X-Gm-Message-State: AOJu0Yxy6fXemA6jk/ZF/Sw+0P8wkBpNYZqKVYnbCXfQxWH9qELKjAyp KUw1BGJH+K171YmsfZI4QzFOj0/oNa8ntj6vtjM9qSi5OeAxfPJIcPMrbw8bs67HqtedQb4oYHz nqvjkredWNchTqKYN5JAby3JoN4l0ZbI= X-Gm-Gg: ASbGncuf9dLHIZNb9rSScwKAR/fPMK82qspR9b5V6O/pIQtLrV3iGgXgdCylYcbehVC RRMpWIxnDX4cRfO6JIhk51gRoqvjFf8igOt42tw7mZFYlJrnYW1w6D8cg6Vtr7630QtKviWwhNe lJV025l859qB54teT9EWnqw8ZElRLOhVfiuZ3kbLrZMApcxlr0Z/sKBE6xX2IJaOdf1y73IB/Mp mIgnnkDDOph26gHLUj1gbdDvtBmcCSC68QoSjDahD2665VRc6vGX4e7DNcHgZjUmp3xAQ3Tw+Xd 8uHwDF/3UbSV+sPQC4FvTO4YNKj84jmyE58YZOc= X-Google-Smtp-Source: AGHT+IF8IPZ8NW5fquIKSTOCvdMQ9Y58P/I9R/t/ZlWABlYW39Jvbfrjr7JImJkkZZk4ZgImYSNMl+wxNuSX+I0wM8E= X-Received: by 2002:a05:6512:e8c:b0:594:51ac:138 with SMTP id 2adb3069b0e04-596a3e9fca2mr1325806e87.2.1763755648737; Fri, 21 Nov 2025 12:07:28 -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: Fri, 21 Nov 2025 17:07:15 -0300 X-Gm-Features: AWmQ_blU16UhizdbG9P7Oar26H6LZWskgmhNfSdJrilcC9MEVYueBJPhXJST0po Message-ID: Subject: Re: [PHP-DEV] [VOTE] True Async RFC 1.6 To: Jakub Zelenka Cc: Edmond Dantes , Deleu , "Rowan Tommins [IMSoP]" , internals@lists.php.net Content-Type: multipart/alternative; boundary="000000000000e9e28e0644205cba" From: luisvscbarros@gmail.com (=?UTF-8?Q?Lu=C3=ADs_Vin=C3=ADcius_Santos_da_Costa_Barros?=) --000000000000e9e28e0644205cba Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, from a Brazil that is (as always) very, very, very hot. I believe that using a php.ini flag would be the approach that makes the most sense, especially in an experimental stage. Since that isn=E2=80=99t p= ossible, I think having a function inside the Async namespace is the best alternative, something like Async\enable(), without a corresponding Async\disable(), of course. Sincerely, Lu=C3=ADs Vin=C3=ADcius. Em sex., 21 de nov. de 2025, 16:45, Jakub Zelenka escreveu: > > > On Fri, Nov 21, 2025 at 3:22=E2=80=AFPM Edmond Dantes wrote: > >> Hello >> >> > how do I keep my project always-sync without risking one of my compose= r >> packages suddenly calling spawn() and causing bugs I have no idea how to >> even begin to understand? >> >> This idea was mentioned a bit earlier in the discussion. You can use a >> special setting to disable asynchrony. There are many different >> possibilities here. For example, you can tell Composer not to use >> async packages. And so on. You can come up with your own protection >> mechanisms. There is no technical problem here in terms of >> implementation. >> Why not enable asynchronous mode in PHP explicitly through php.ini? >> > > I'm not sure if INI is going to be successful. I would bet that it is > going to get rejected as PHP has been moving against introducing INI for > language / extension behavior changes. > > It reminds to some extend the scalar type hints with strict / non strict > discussion that ended up using declare keyword. So maybe async could use = it > too and it could be enabled per file in a similar way as strict types. I > haven't thought if it would always make sense for async but for projects > that want to be fully async, it would need to be declared in each file. > > Cheers > > Jakub > > > --000000000000e9e28e0644205cba Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello, from a Brazil that is (as always) very, very, very= hot.

I believe that using a p= hp.ini flag would be the approach that makes the most sense, especially in = an experimental stage. Since that isn=E2=80=99t possible, I think having a = function inside the Async namespace is the best alternative, something like= Async\enable(), without a corresponding Async\disable(), of course.
<= div dir=3D"auto">
Sincerely,
Lu=C3=ADs Vin=C3=ADcius.

Em sex., 21 de nov. de 2025, 16:45, Jakub= Zelenka <bukka@php.net> escreveu:


On Fri, Nov 21, 2025 at 3:22=E2= =80=AFPM Edmond Dantes <edmond.ht@gmail.com> wrote:
Hello

> how do I keep my project always-sync without risking one of my compose= r packages suddenly calling spawn() and causing bugs I have no idea how to = even begin to understand?

This idea was mentioned a bit earlier in the discussion. You can use a
special setting to disable asynchrony. There are many different
possibilities here. For example, you can tell Composer not to use
async packages. And so on. You can come up with your own protection
mechanisms. There is no technical problem here in terms of
implementation.
Why not enable asynchronous mode in PHP explicitly through php.ini?

I'm not sure if INI is going to be success= ful. I would bet that it is going to get rejected as PHP has been moving ag= ainst introducing INI for language / extension behavior changes.
=
It reminds to some extend the scalar type hints with strict = / non strict discussion that ended up using declare keyword. So maybe async= could use it too and it could be enabled per file in a similar way as stri= ct types. I haven't thought if it would always make sense for async but= for projects that want to be fully async, it would need to be declared in = each file.

Cheers

Jakub


--000000000000e9e28e0644205cba--