Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126643 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 B1F0B1A00BC for ; Sat, 8 Mar 2025 11:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1741431615; bh=SCfuW+2zEuyMgcL5Dl5ApT+l3amV27hDL1ODKCpsehg=; h=Date:From:To:In-Reply-To:References:Subject:From; b=EriYJ0chaeNA9yKJvGCHH+OEfkEv9ylGsxEnB9ONYv/Nbc7HIJFQIXfSBYZhMYSfW FST8nU7UZe1B6ePsGownvhZ6CVUQINBmhItIENzEGFqE6Vj1GstMdmVurLHufzMfC8 A3yrYVy3UWGkvH+MXsXzrdAIsUerTsYVN7GFjYy9et+xXqBm7qLG/SSuet0ggIp09m Xl51GM99JdwS1dMutfyeKvgHUD4HWpy15vuqR0OHG+IurNGhb1NFzxWBIB5gBVBrQI sYLlntyS4z896JGb5DswBF4sul1XjK9qbvZSbwT1wfFK8XdlGYQTidHwgFy0ZUMTeT FsjjFmTCTRFvQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id DE9DC1801D6 for ; Sat, 8 Mar 2025 11:00:14 +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.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_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (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, 8 Mar 2025 11:00:14 +0000 (UTC) Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-abf45d8db04so412394266b.1 for ; Sat, 08 Mar 2025 03:02:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741431768; x=1742036568; darn=lists.php.net; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=fsXm30gAuDjF5yIm+qz6VW348V4xbp+k3CYeQy7Itno=; b=PPGm1esX9mxQS7emwfoGF8JtKRNSGfZHZAt/e6Yr/Wl7779y3k3eerz6fo6b72NUrP M3YYLs1vpGqWv88QLAsygZlpwRxZLztDMJl90gz33hkBaMXNAVtSLLmidBKqZjKV4rwa tPQPJj0zLAoVNE6egBSkWgziNs7SGlsIgnkyZkT91xCA/ybiqO/7MWjd6nz0Z2yjfNZ9 pkQaeYlh9d0Q1NEyzNEYEkoo5s8C54Q6sfb2J3dw6iiieLb7/GCE2i9aJYWBSusnvGki 80XwBLK5JQGXEP4/n9StduIg43DIMkbLOyrOn+tKxnMgMDMcctZRlUX4bE/QKjMjFETL 9eTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741431768; x=1742036568; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fsXm30gAuDjF5yIm+qz6VW348V4xbp+k3CYeQy7Itno=; b=Z6PTPVOtT9gjY/OH3LMF3Rr/NtQB+1gjUv+aa7rFw4T59UtFpKTSX+aq1606YBHShi WHL+6n0kllsCwOAHmhifRX0Kq9+83Oe44dGxYS0JcdInubo0S+HLe5gJLcwWPiFDouFT 6VqWt3YlRWzPw5MtZqJJwOySpff38p1j8LvDdXfZ530Wk5vgsToGsCEyn1Go9TYzqKV2 w3K+uAjfBpixdzGpvr7Tfayok8jq8Wvq0QH4KmxFfaBeacWyV8wcAMnNBS+suk0qP1eH mH2lhJhN5Uf/2iu9iZ3lhtptgD6uDNi0T8kE0+RCj/OaguDlo2HSghwgR+pMYxVbjwvK 7EXw== X-Gm-Message-State: AOJu0Yzlpd2Z7S8bS3M+7KobPTS8yJlsAh+ziu7OlTwrmCLHLRYR+X4O CArM+n8yfv3YsmYE/JOqoenwI7q63JTxSaRWNQS1migUmS9FsWCVxg6iog== X-Gm-Gg: ASbGncuofEMOuRFN+TewI5NxYvJ6Z55pMR7ksmYV6PFXBnIGEc9yiB3hYNDHBQmiNfW MII4o1ZQ//ghafUhrM4LHj9/jbS/eL6hlrQ/fEVjXjJf/1GcYODG16FzQWh8HJ2lyS/ba81QceU f/rmB2NK/BdG9bZ+U9DF4Q/w0d8ZpQocOOS/UWzd00fFEmZsXPy4LHY8QHB9MUZJwyCVQ8Paebc QN+3Ug2CP9s8uys02O1Z/JP+zDhfbySbNmnHOjPc5tlQXv4Kyrj46o7MQnZfHQwRnvlIj+3PBnE nqRpqXAe+l75x/K2hUT74X7IrMl0MccR3+m83Utu63oV76gGtPmRC9yM3a3yiHtdJMCr+zFbFAf hs4DauYvhkvcYC84jIyVZPl8CjoDU X-Google-Smtp-Source: AGHT+IF4KHN8PRTdPjnSlhWmU6LgSl8aOxO7k4zifsGmIKdFawQRaGLiw8N6iGHyzlA5n9PTAXiS5w== X-Received: by 2002:a17:907:3f2a:b0:abf:7a26:c47e with SMTP id a640c23a62f3a-ac252e9e7cfmr750906666b.43.1741431767887; Sat, 08 Mar 2025 03:02:47 -0800 (PST) Received: from ?IPv6:::1? (luna-749a6f85f554075d0000f.net.as198747.daniil.it. [2a0e:97c0:38f:0:d570:455f:58f6:a947]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac23948578bsm426216866b.59.2025.03.08.03.02.47 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 08 Mar 2025 03:02:47 -0800 (PST) Date: Sat, 8 Mar 2025 12:02:43 +0100 (GMT+01:00) To: internals@lists.php.net Message-ID: <68dcac11-f722-43d8-bb9d-60fac5826d9e@gmail.com> In-Reply-To: References: <9964db8c-0ffe-43d5-8246-47fc76b07180@app.fastmail.com> <78a03dd0-fd4a-4f4a-ad8a-37e5704f06fc@app.fastmail.com> <08c8ad0b-e8f4-46e3-99f0-b80748d40b89@app.fastmail.com> <07973EAE-2D83-47A8-8FA0-84286C77C02B@rwec.co.uk> <48d66433-3ae9-4895-8361-7c81a0a3670d@app.fastmail.com> Subject: Re: [PHP-DEV] PHP True Async RFC Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_24_87338737.1741431764154" X-Correlation-ID: <68dcac11-f722-43d8-bb9d-60fac5826d9e@gmail.com> From: daniil.gentili@gmail.com (Daniil Gentili) ------=_Part_24_87338737.1741431764154 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Mar 8, 2025 9:29:15 AM Edmond Dantes : >>=C2=A0 >>for($i =3D 0; $i < 10; $i++) $results[] =3D async\async(fn($f) =3D> file_= get_contents($f), >> $file[$i]); >> // convert $results into futures somehow -- though actually doesn't look= like it is >> possible. >> $results =3D async\awaitAll($results); >> > > And this semantics can be simplified to:=C2=A0=C2=A0 > ```async file_get_contents($file[$i]);``` > or > ```spawn file_get_contents($file[$i]);``` > > From this perspective, I like that any function can be called with *spawn= /async* without worrying about its internals or modifying its code. The pro= s and cons of this approach are well known.=C2=A0=C2=A0 Loving this. One might even consider to use the go keyaord along with async/spawn, to mo= re easily associate the operation with go's (gc)oroutines... Regards, Daniil Gentili. ------=_Part_24_87338737.1741431764154 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Mar 8, 2025 9:29:15 AM Edmond Dantes <edmond.ht@gmail.com>:

>> 
>>for($i = 0; $i < 10; $i++) $results[] = async\async(fn($f) => file_get_contents($f),
>> $file[$i]);
>> // convert $results into futures somehow -- though actually doesn't look like it is
>> possible.
>> $results = async\awaitAll($results);
>>
>
> And this semantics can be simplified to:  
> ```async file_get_contents($file[$i]);```
> or
> ```spawn file_get_contents($file[$i]);```
>
> From this perspective, I like that any function can be called with *spawn/async* without worrying about its internals or modifying its code. The pros and cons of this approach are well known.  

Loving this.

One might even consider to use the go keyaord along with async/spawn, to more easily associate the operation with go's (gc)oroutines...

Regards,
Daniil Gentili.
------=_Part_24_87338737.1741431764154--