Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:124222 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 A95871A009C for ; Thu, 4 Jul 2024 18:03:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1720116263; bh=++6D5xpO22juY4ZUyi5xK3xE9y4WZ7xRptgo4UDYoHw=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=Uu5Hvy8eWqQ9fniGyga2fErl20AjzODmIBEnW4Zwh+vlkYTvyGpGNU0+jLR6Wam1G GlkYCdmsc4hhdyilD634HZ4zHVWnPX1kX+csOvjFxynh0sfCSlyXylRwe/gliVThub qiRVYP835C3rEPE5SkUd+wbekMH6tfMVasUzoFsVukL7U3uWN4V80ZZ/bUaqEoSBW6 NmWhDX6RXeLpyXn5PZLKnw4ErN+tq8EI1ngm3Llb15+1h718hUQoZf1hBlNdfsQlyW esVl4S5f9er4AwYOHhX2Fa7wnjk6zzfCy7GStCxAR6N0QE61PWNGXjwSNWQdcyJXrM FMPBu0S9V9UgA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 01F1B1806DE for ; Thu, 4 Jul 2024 18:04:23 +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.8 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DMARC_MISSING,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-yb1-f177.google.com (mail-yb1-f177.google.com [209.85.219.177]) (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, 4 Jul 2024 18:04:22 +0000 (UTC) Received: by mail-yb1-f177.google.com with SMTP id 3f1490d57ef6-e03a63ec15eso824828276.1 for ; Thu, 04 Jul 2024 11:03:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newclarity-net.20230601.gappssmtp.com; s=20230601; t=1720116179; x=1720720979; darn=lists.php.net; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=HdXG30U8cfPtvYie16gtI1J7qUuIo9VYfinvStRSnhI=; b=0KFebVDNaoEhv5uje0x2gOnLT4EFjjQOfhNxCKvo7BG97c8Aki3tnD7av33cUHSnZ6 anUHfiyRvkdDgq9bzXXF7MfZ9Dek8Wodeq5513DiYexU7ttQdtH7sC2i+EzG91HTlPnK mpQvwkiJDUUpMVjI/S6V2ubVbEJVLYjiZCJNLpWrYU33VwdZn/p1eS64LeXJ1CwnMcV1 Q/Fbdg9wFL/qgBDVyFVQDcN7Rd6rhbCfOv7UxSwA6FyXv4Yi5JuORUn32SM9tHp1ryaY x4FuQ48kqMnn9VpQaiAOsLftbW03mVZPsgcOIUZknXUQjdP5Pcac/eBON7GBTVl8tgVe MehQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720116179; x=1720720979; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HdXG30U8cfPtvYie16gtI1J7qUuIo9VYfinvStRSnhI=; b=AyCa8gGaZ6YjxllVr8xusJyT3bYQ3gGsqZkdjCB3OMejkYHZwMQ50zlEBX0eN/hM11 UsBwTITAXxhFpYBZxK6G0BeuLOGK5/ykqJFxOHUDC3Ho53I2WCB6Z32rM7xpBnWvjthM 7JXhSLnXxBdHwE2wEEOGMUhQWwzyNEWMInnwhw2S26jTYp5NNV5UewJ3GsgcEFrzEUqB taXTca1Kv/FQs3CodtyCH0yMnkBUKBBRwsI3/k7omv11N1nV2Sn8qrrduo8/Q3VUuunQ 76skQSvuCTeSYWOZ2J64ilUXUwUWhbz5XAwe8ipDPKOxAfTURlX8Q+L0LqfROhNEk8Dk UMpg== X-Forwarded-Encrypted: i=1; AJvYcCV7C7rRBWkZA8CkaPF+fEg8C6OMKRtx5u5DcK7Uv5a6HVRcaDystZ9+w472RCg07fFGadfdK55CqitRiVY3Rswf81VPPeZ3/A== X-Gm-Message-State: AOJu0YyVFmcYqNKWDm7raTfK03r2iNbfwMtW7lyaDjOUEFy4L4dgHpkB 2qzXpbTyvcan9ceziEY51L8JRTSvybtIRgyteGsj3azcl81KViKHHoANJvILRU8= X-Google-Smtp-Source: AGHT+IEZSSWS73Oi4GuQvcyI4LwQuij23MW0x/dfVBCBayOdpRxSTmRO00CCmcjoyvMKrdoHOKJ/9w== X-Received: by 2002:a25:bcc9:0:b0:e03:c689:8d1c with SMTP id 3f1490d57ef6-e03c6899e92mr1934234276.61.1720116179338; Thu, 04 Jul 2024 11:02:59 -0700 (PDT) Received: from smtpclient.apple (c-98-252-216-111.hsd1.ga.comcast.net. [98.252.216.111]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e039c802626sm1015256276.9.2024.07.04.11.02.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jul 2024 11:02:58 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.8\)) Subject: Re: [PHP-DEV] [PHP-Dev] Versioned Packagers (Iteration IV) In-Reply-To: Date: Thu, 4 Jul 2024 14:02:57 -0400 Cc: Michael Morris , PHP internals Content-Transfer-Encoding: quoted-printable Message-ID: References: <09559430-4477-4516-8D78-6F4071E1AA6C@newclarity.net> <0182F3D6-F464-477F-9029-A2D0A8B50C71@koalephant.com> <1AFD7AAE-8BEA-460D-88A8-15BB3D30A775@koalephant.com> To: Chuck Adams X-Mailer: Apple Mail (2.3696.120.41.1.8) From: mike@newclarity.net (Mike Schinkel) Hi Chuck, > On Jul 4, 2024, at 11:05 AM, Chuck Adams wrote: >> On Jul 3, 2024, at 6:16=E2=80=AFPM, Michael Morris = wrote: >>=20 >> Hello all. Hitting reset again as the primary problem at hand has = become clear. Let's recap it. >>=20 >> Autoloading is great for loading packages, but it can't load = different versions of the same package at the same time. Why would you = want to do that? >>=20 >> When you don't have full control of the code.in=20 >>=20 >> For example, consider Drupal. It is running Twig at some version of = 3 at the moment. Suppose Twig 4 is introduced with significant backward = compatibility breaks (Not saying the authors would do such a thing) but = also wonderful features. >> =E2=80=A6[snip]... >> This is why I advocate a new keyword for this - import. Import=E2=80=99= s behavior is most similar to require_once, but it doesn't have to be = the same. Since it is a new entrypoint into the engine the way the = engine considers the code can be different - whether slightly different = or radically different is a debate for another time. I'm going to stick = with only those changes that make sense in the context of package links. >=20 >=20 > I=E2=80=99m seeing a lot of conflation of =E2=80=98module=E2=80=99 and = =E2=80=98package=E2=80=99 in these discussions, and to me they mean = different things: >=20 > * A module is a sort of =E2=80=9Cfirst class namespace=E2=80=9D that = can export symbols and import others. Think ES5 or python modules. If = you don=E2=80=99t want it 1-1 with files, think Perl modules. >=20 > * A package is an =E2=80=9Cinstallable=E2=80=9D unit that provides = modules, among other things. Packages have metadata, the most important = piece of which is a machine-readable version. Your definitions are language-specific. For example, in Go the = definitions for those terms are the opposite of how you defined them. The point being that PHP is free to choose how they are defined with = respect to PHP. =20 To which I will add "as long as the terms are used consistently." -Mike=