Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:124363 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 6CE771A00B7 for ; Wed, 10 Jul 2024 18:08:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1720635023; bh=9AKWj/8ptpjMnr74VVpHRFiKw5jEUxwRgQUQo0a6PBI=; h=References:In-Reply-To:From:Date:Subject:To:From; b=fIuaUOCIFceYGLbb8tmjhgMXhpwPdYNZUJ+CHEMO3h+QPuw3nn3neU+WiJzIY7T6r yzCsocik94w8/WzmEZkTxtM4uelO+M1ptZ96Mb2ngVT+t2Xy8Ui1prqMfra6Do16Tv N4ID+K5iUQb4l0bB4+JGJWrRSoqPhJuNd+nz6X3LCWQvrwrG56/kFxTHcaUnLhU0k7 gTS+S6J0Y4msct5MGXWNEmow7STHSZvYvVQxeg5i7DqZfPK9oC7scfBWhKPcEOJ9rY HRYeU9o7lIrT9fn608r/3K2L+k+lpLGHdbh1fZqXBJQ2W2i66TxGKxqvFBbYNO/pgW wcxIbz0B4aRTA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B04EC180F89 for ; Wed, 10 Jul 2024 18:10:20 +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_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-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) (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 ; Wed, 10 Jul 2024 18:10:18 +0000 (UTC) Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-6b5daf5ea91so539816d6.1 for ; Wed, 10 Jul 2024 11:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720634932; x=1721239732; darn=lists.php.net; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=SOQjjJR8s8jV2J9ezSctP452D563Mq1EMEZ63ksqc6o=; b=neVvmets50tWgmQPU8+aU88j9a9sebQyGjAWedmLks3l8aHwH8PIFH2NcKWahQXCUL lMWoCYNyufRjeojWqvzKUSuJy8hUfTnlZ8dNO6P/LOjIzG0q6theIFPo27w1bra1q9Zn tW1OKvKG//TlsPMpbTtAewgYucO6tROJ07j/vyTk4s1f8Pwlkgp2U/Qm5SpAMkZTlv82 1naCsUAik2l5Gf2HHcoR3LbeGO2T4+QnLwuEHGwvKRYy55XNnUioQoATXHg7n4dM2JUq U1CBe5+vwmymjoF/hvgiTGQYbKDIirMvySeg+g0JP3LkM2iL2KTGpoiqYy9TRTTFtbPx Yo3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720634932; x=1721239732; h=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=SOQjjJR8s8jV2J9ezSctP452D563Mq1EMEZ63ksqc6o=; b=JOBjlnx9NOMkRo/0mEKvu5JjKkkv+EN5nFaX9WutIP5fMczI1KqwG08tdz7k3vzyCI GTkFGnZrqjCk0vUFu8y35184IPgnLWiBHt2gbGP1n7gFjJ/oi+9UziWcBwvfte50IZ/Z dO/x6YH9Mgw4cmWbGZQpbN+GRkjU1Pm5/tgCDv5hgF9T1nc9ugP1/oDePJkN3IAxYZGS KuRg+tqNbhOt4+gGISPcqZ/VXrOCROwamwsCp61Y6Duwefs9uPEGzOwqOQca+XbmYH9Y AsOTOZ9osicfK/D3RJ3pXcjMSHVdGSj2CXfBg8uou4fG3ME17O9OFk/Zlpv0C3V0sJw4 cB4A== X-Gm-Message-State: AOJu0YwdGMpDdttypDuC10mHc0/MfMDku3tHVA8dkrg07W+Yp6rfXv3c Hv/IF2OoJ8mtoMp8m53oW8Dm+eEr7Er5XBKOlhyc1i+67L/H76gT4TIFu/MvRam0TnTMtGYUmFM fyOgpZXP2qiPaH+ymvY0niF4UmC0wmg== X-Google-Smtp-Source: AGHT+IEw6KRsXVvyV7efD/EI8RPiOeBgbsKdCQs59aG56FqzxzGqHeL2p5NqoqsZ4w34rcyajMdwlIshTZ/7lZaHRFw= X-Received: by 2002:ad4:5baa:0:b0:6b5:df48:bc6d with SMTP id 6a1803df08f44-6b61bca19a0mr80653976d6.14.1720634931687; Wed, 10 Jul 2024 11:08:51 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 References: <09559430-4477-4516-8D78-6F4071E1AA6C@newclarity.net> <0182F3D6-F464-477F-9029-A2D0A8B50C71@koalephant.com> <1AFD7AAE-8BEA-460D-88A8-15BB3D30A775@koalephant.com> <1BE6A849-A2A9-4E17-9C11-5099EF74F5C0@rwec.co.uk> <1d0df8f2-541a-4302-a658-4d7d30003342@seld.be> In-Reply-To: <1d0df8f2-541a-4302-a658-4d7d30003342@seld.be> Date: Wed, 10 Jul 2024 14:08:39 -0400 Message-ID: Subject: Re: [PHP-DEV] [PHP-Dev] Versioned Packagers (Iteration IV) To: PHP internals Content-Type: multipart/alternative; boundary="000000000000e442d8061ce889c3" From: tendoaki@gmail.com (Michael Morris) --000000000000e442d8061ce889c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jul 10, 2024 at 5:51=E2=80=AFAM Jordi Boggiano = wrote: > > As for the rest of the thread, I feel like everyone needs to take a few > days to chill because it's getting a bit heated around here. > People are passionate about the things they love. I've been busy with work and on Iteration V. Details later this week, likely in the form of a github repo hosted markdown file that will be easier to follow, as the number of points to address is getting too lengthy to deal with in a list conversation and, more worryingly, people are glomming onto and criticizing the proposal for things already dropped. In particular - I'm not talking about ditching composer. I don't want to get in the business of building a package manager, especially when there's an existing one. Some highlights of what I am working on 1. Import Maps - These would be prepared by hand or by a package manager like composer. An internal autoloader will work with them. Unlike autoload functions, import maps get merged together so the actual seek operation can remain optimized. Given Composer already can build an optimized class map file it is already well positioned to feed information into this code. The reason to use it is that it will be able to detect symbols the autoload system cannot: functions and constants. It will also be able to load packages and modules. 2. Packages - Packages load differently and can effectively monkey-type the code of an existing package on the fly in much the same way that namespaces themselves work with symbol names as a flat string replace. Existing code can be loaded into packages, but also an outline for writing packages that have privacy modifiers to their members - i.e. protected class SomeClass {} 3. Modules - Files which are code first instead of template first. These are being prepped as at least 3 interrelated RFC drafts which can be dealt with piecemeal, and any of the three not receiving enough support for inclusion doesn't preclude the others from going forward. --000000000000e442d8061ce889c3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Wed, Jul 10, 2024 at 5:51=E2=80=AF= AM Jordi Boggiano <j.boggiano@seld= .be> wrote:
=20 =20 =20

As for the rest of the thread, I feel like everyone needs to take a few days to chill because it's getting a bit heated around here= .

People are passionate=C2=A0about the things th= ey love.=C2=A0 I've been busy with work and on Iteration V.=C2=A0 Detai= ls later this week, likely in the form of a github repo hosted markdown fil= e that will be easier to follow, as the number of points to address is gett= ing too lengthy=C2=A0to deal with in a list conversation and, more worrying= ly, people are glomming onto and criticizing the proposal for things alread= y dropped.

In particular - I'm not talking abo= ut ditching composer.=C2=A0 I don't want to get in the business of buil= ding a package manager, especially when there's an existing one.
<= div>
Some highlights of what I am working on

1. Import Maps - These would be prepared by hand or by a package m= anager like composer. An internal autoloader will work with them. Unlike au= toload functions, import maps get merged together so the actual seek operat= ion can remain optimized.=C2=A0 Given Composer already can build an optimiz= ed class map file it is already well positioned to feed information into th= is code. The reason to use it is that it will be able to detect symbols the= autoload system cannot: functions and constants. It will also be able to l= oad packages and modules.
2. Packages - Packages load differently= and can effectively monkey-type the code of an existing package on the fly= in much the same way that namespaces themselves work with symbol names as = a flat string replace. Existing code can be loaded into packages, but also = an outline for writing packages that have privacy modifiers to their member= s - i.e. protected class SomeClass {}
3. Modules - Files which ar= e code first instead of template first.

These are = being prepped as at least 3 interrelated RFC drafts which can be dealt with= piecemeal, and any of the three not receiving enough support for inclusion= doesn't preclude the others from going forward.


=C2=A0
--000000000000e442d8061ce889c3--