Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129336 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 E0A9E1A00BC for ; Thu, 20 Nov 2025 16:37:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763656683; bh=eVt4ircOQz17ZzXW/+Q6bLBhGWhDeAdxWTBMQIVazrE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=TtyZS7H6L4QuRBP2hPoYxYloJz3nWKh9UfJ5Vvt1/XL7CsSqLKy9CwV9WA7U0TxRW bD9zy+MnRkpWONdFevBSZZ+vQvuwKc5FSEtlV5mI1H7JU98g22HS66vzXYpb2mPZYl ahozS0Aq3GUH7Cv2MSycM91fvAfs2I67cb/8hkOl1c2or5PpwBlQ9UgFiqtIZtQXM6 +B0G5icSmgjQZR9YUKYaCwqBNievFnJ0gqXHMaJWUTgdIljW+JwPos1GHU0TBdrlZs pS75X+EKaBr6TeOe4GShy9+/YxQm4eAZZ+A8tWQgTf1Rv1vAdiptjANeJaAKw+sLjy 9GlVw7Y4gGXtQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C71DF1801FD for ; Thu, 20 Nov 2025 16:38:02 +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, 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-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 ; Thu, 20 Nov 2025 16:38:02 +0000 (UTC) Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b725ead5800so144490866b.1 for ; Thu, 20 Nov 2025 08:37:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763656676; x=1764261476; darn=lists.php.net; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=eVt4ircOQz17ZzXW/+Q6bLBhGWhDeAdxWTBMQIVazrE=; b=aygpzdoeTJ8h4Sml3eRcavYx+Bq6nLMpq+OEH5klsF8k1Nh/Mdc/7ILncIrMb+UpwQ qOuddVzx2YAtrWVbBrPmmXQH7vz/dfAfCUOBD86FzuI8ke/R4Kxnb+shv+TDMbGYDuyi 0r0DLC4bte/KrTpZUZdmofJY9t0mSvf4Q6i6COlmfmMIZ72e/vcsl4aW+rf1UvQV95m9 UN74m8FuPjxQW2WDYirqjcjeKZQJe/RR6KfwiiyFxbGzmhFMg0mSmFs9PcXoZCeumtng 4GZofCsjeUsW55hEa33gx6xvvtx8DOfkl8zFiwP2qZNjsWavTH0eQ72mReDuoGsHwaud frJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763656676; x=1764261476; h=content-transfer-encoding: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=eVt4ircOQz17ZzXW/+Q6bLBhGWhDeAdxWTBMQIVazrE=; b=bBg2FIh8bW3H25yUff084mvjRLoJYhaLNWovzST2/SOag+MxF5sGneMsNKCg7opbsI ArOe9LOOZfVAZDjYECPXfJWOSbdyrO8Ny9+6gUpDPx5zWut8peSu8iINjIgTiY+sIgTi B02C4qQ1jR20sjnbtfo1wyUfBlSUg28gXU72TtbLRVpt+joyLNb5iH5bEFBm5oWzI7wz n0eD0/lF8KuDTTVkAqRYuDjqdwaApeAGIQAVAy1AZYyZyR16Zz1EAIcunHARKyvGCKs6 Ar91nfc93Kolh7/tbkTT/5fZrneDtBoL/Akh1sJqWue2A/q7bGUJV7fCvWFn8M8IZJaF eJBw== X-Gm-Message-State: AOJu0Yzl4BXWJOpnk7I9ugYNCT94aSmVXH25+lKso7eOheQLcmdXVnRi hUPNmWU/n0p7uOFXykmV0Am3cvYXBNoyZHVTQ0Ux+UthLFcGGXcohnJ5axqI3gB2Y5j+ntZww0Z 6RRafDHjznWjl4E6oWVdMc2IMsaypQ0J2TDSe X-Gm-Gg: ASbGncs2RdDGodklYOBa9A7/I0zNNNER0K8JYItLxL55XNPVBjE61xKb/IK44xO3sIX mTa5bdI5efy0ypjttdG5Io/883pfvDKJMjOGmUD0KNhHqagBnl6vibPSBP+MMFyxFavkMTVMsXP A/NHgura2GnNHT4S3RKlhRajQi7LlBnDo0cddg2eqP6aggH7piZw/I+n4s62zJG2hYSyxv3u5Uy ObPtYfxQCx7i5GbneW1ijwLgClqfuwmXg6vig3dMAM0bUKVzkJIIWHRCQMMuLIYrHYMgI4= X-Google-Smtp-Source: AGHT+IEtkS0sG1l+tHCi4K5CxqazkCByJV4iACdnbH2PZPz6u5ryL4vIkFsDUt9fFDMjJdfTKpjyHuPv3TFgZVnmVVM= X-Received: by 2002:a17:906:fd85:b0:b73:5e4d:fae0 with SMTP id a640c23a62f3a-b7654d37e9fmr389901966b.23.1763656676000; Thu, 20 Nov 2025 08:37:56 -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: Thu, 20 Nov 2025 17:37:44 +0100 X-Gm-Features: AWmQ_bloP5ow6ozxOCIElU5XxlvXqZTMIAuiXjzRdA5LkWpXddrK11SD7M6h1gc Message-ID: Subject: Re: [PHP-DEV] First-class constructor callables To: Valentin Udaltsov Cc: php internals Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: arnaud.lb@gmail.com (Arnaud Le Blanc) On Thu, Nov 20, 2025 at 3:21=E2=80=AFPM Arnaud Le Blanc wrote: > > Hi Valentin, > > On Thu, Nov 20, 2025 at 2:20=E2=80=AFPM Valentin Udaltsov > wrote: > > Question for Larry and Arnaud: > > > > In PFA v2, you note that constructor references pose significant techni= cal challenges. > > Could you elaborate on what those challenges are and whether they are f= undamental, or potentially addressable with a more limited or explicit synt= ax such as `new Foo(...)`? > > One issue is that partial application needs to resolve the function > being applied, but constructors can not be resolved without > instantiating the class first (at least, not on all classes). To clarify, constructors are normally resolved after creating an object, by calling the get_constructor() handler on the object. The handler isn't known before creating the object, at least for internal classes, so we can't resolve a constructor without creating an object first. This would have to be addressed in order to support partial application of classes.