From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1M9YRs-0002DZ-ET for garchives@archives.gentoo.org; Thu, 28 May 2009 05:46:40 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BD66DE044D; Thu, 28 May 2009 05:46:38 +0000 (UTC) Received: from smtp.tmcs.ch (113.245.131.213.static.inetbone.net [213.131.245.113]) by pigeon.gentoo.org (Postfix) with ESMTP id 4367FE044D for ; Thu, 28 May 2009 05:46:38 +0000 (UTC) Received: from [192.168.0.100] (121-158.3-85.cust.bluewin.ch [85.3.158.121]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.tmcs.ch (Postfix) with ESMTPSA id 1C50116448C3 for ; Thu, 28 May 2009 07:46:37 +0200 (CEST) Subject: Re: [gentoo-dev] Gentoo Council Reminder for May 28 From: Tiziano =?ISO-8859-1?Q?M=FCller?= To: gentoo-dev@lists.gentoo.org In-Reply-To: <1243460607.3480.3@NeddySeagoon> References: <1243460607.3480.3@NeddySeagoon> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-BoGnBjd4VapSpT/oj1m4" Organization: Gentoo Date: Thu, 28 May 2009 07:46:36 +0200 Message-Id: <1243489596.10450.24.camel@localhost> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 X-Mailer: Evolution 2.26.1.1 X-Archives-Salt: c4443c7a-694d-4a93-8760-f54eaaae5ef8 X-Archives-Hash: 76a5152b89261d40fe3637838b53ca97 --=-BoGnBjd4VapSpT/oj1m4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Am Mittwoch, den 27.05.2009, 22:43 +0100 schrieb Roy Bamford: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 >=20 > On 2009.05.27 21:06, Ciaran McCreesh wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > >=20 > > On Wed, 27 May 2009 20:55:33 +0100 > > Roy Bamford wrote: > > > That means the EAPI needs to be extracted before the ebuild is > > > sourced, which from the figures bandied about on the list may take > > > marginaly longer but its a price worth paying for a sound system > > > design. Gentoo should not repeat the VHS vs Betamax war. For those > > > who do not remember, VHS was the better marketed but inferior > > > technical solution that won the standards war for domestic Video > > > recorders.=20 > > >=20 > > > The aims of GLEP 55 are good but the proposed implementaion is bad=20 > > > practice, so GLEP 55 should be rejected in its present form. =20 > >=20 > > You have not made a single technical argument in your entire message. > > Please don't add yet more noise to the discussion. > >=20 > > - --=20 > > Ciaran McCreesh > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v2.0.9 (GNU/Linux) > >=20 > > iEYEARECAAYFAkodnVkACgkQ96zL6DUtXhGerACcC2khWKdGKCaMTi7zE/jYyUUw > > bU8AnA5Gg6bDz/JiDIwMB98R5t9dQNLg > > =3Dbfse > > -----END PGP SIGNATURE----- > >=20 > Ciaran, >=20 > You chose to ignore "Adding metadata to the filename is not required=20 > and is bad system design practice." >=20 > I assume you agree with that as you chose to snip it, not to refute it=20 > with a technical argument? >=20 >=20 >=20 > GLEP 55 is a poor piece of technical writing. The title > > Title: Use EAPI-suffixed ebuilds (.ebuild-EAPI) > > should be an area to be impvoved not a possible solution that has not=20 > even been discussed (in the document) yet. >=20 > The abstract tells readers more about a proposed solution. > > This GLEP proposes usage of EAPI-suffixed file extensions for ebuilds=20 > (for example, foo-1.2.3.ebuild-1). > > and readers still don't know the problem that it tries to address. =20 >=20 > The statement of the problem is not entirely correct either ... > The current way of specifying the EAPI in ebuilds is flawed.=20 > In order to get the EAPI the package manager needs to source the=20 > ebuild, > > Nope, in order to get the EAPI, the PM needs to parse the ebuild, it=20 > need not source it. Thats a statement of the current design. >=20 > > which itself needs the EAPI in the first place. > > Well, thats what current designs do, its a design than can be changed. >=20 > Otherwise it imposes a serious limitation, namely every ebuild,=20 > using any of the future EAPIs, will have to be source'able by old=20 > package managers > > That is true, unless the .ebuild extension is changed so we get a clean=20 > break with the past. It does not mean the EAPI needs to be a part of=20 > the file name. >=20 > The GLEP discusses this and and dismisses it for no sound technical=20 > reasons. >=20 > Until we get to the Abstract solution, the GLEP reads like a sales=20 > brouchre, which is what reminded me of VHS vs Betamax. > > A solution to this problem has to lift those limitations and the only=20 > way to do it is to make the EAPI of an ebuild available to the package=20 > managers in a way that doesn't require them to source the ebuild.=20 > Another important requirement is for the solution to be backward=20 > compatible, which has the pleasant side-effect of making the solution=20 > applicable in the Gentoo tree right away. A solution to this problem=20 > has to lift those limitations and the only=20 > way to do it is to make the EAPI of an ebuild available to the package=20 > managers in a way that doesn't require them to source the ebuild. > > Thats all true or highly desireable. >=20 > The=20 > > Hurts performance: yes > =20 > needs to be quantifed and included in the GLEP, so that readers can=20 > make an impartial objective assessment of the alternatives on offer and=20 > hopefully support the best technical solution. That need not be the=20 > fastest. I did some analysis on that. The result is that the the performance penalty of not having the EAPI not in the filename depends on various factors. But it is for sure that there is a performance penalty. And here is why (I'm only looking at the non-degenerated case with valid metadata, ignoring overlays which some consider a corner case (I don't understand that argument, but that's another thing)): When the package manager looks at a package, it first reads the package's ebuild directory and gets the mtimes. It does the same for the cache entries and validates the caches (there is more stuff in here, like checking eclasses and so on). Then the following happens based on the "solution" we choose: eapi-in-filename: the package manager starts from the highest version with a supported eapi (the others are inexistant with the used glob). For that ebuild it reads the cache entry and decides whether or not it can be used. If not, it proceeds to the next version, if yes, it's done. eapi-in-ebuild: the package manager reads all cache entries and sorts out those with an EAPI it doesn't support. The rest gets ordered and the same procedure as above applies. So, one of the main differences is: "reading one cache file" (if running unstable you can asssume you support the highest version, thus reading only one cache file) vs. "reading all cache files". I did some performance measurements based on that. I have 1507 installed packages with 5541 different versions/revisions. Reading from hot cache: 1507 files: ~50ms 5541 files: ~170ms Reading from cold cache: 1507 files: ~2.8s 5541 files: ~6s I made a lot of assumptions here (neglecting seek between ebuild-dir and metadata-dir, other processes using the drive, 80 ebuilds from overlays where the ebuild would have to be read, etc.). But estimating from the numbers above I'd say that a "emerge -uD world"/"paludis -i world" will be at least twice as slow, which I think is not acceptable. And I also don't understand your point of stating it's "bad design". I mean: when coding you should "not optimize prematurely", but with eapi-in-ebuild it is against the other principle of "not pessimize prematurely" (Sutter/Alexandrescu: C++ Coding Standards). --=20 Tiziano M=C3=BCller Gentoo Linux Developer, Council Member Areas of responsibility: Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor E-Mail : dev-zero@gentoo.org GnuPG FP : F327 283A E769 2E36 18D5 4DE2 1B05 6A63 AE9C 1E30 --=-BoGnBjd4VapSpT/oj1m4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Dies ist ein digital signierter Nachrichtenteil -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) iEYEABECAAYFAkoeJTwACgkQGwVqY66cHjAWOACeOQthZD6hYfsfJH415kfNQhx2 OvsAnA/Vqug6r/zrOgHroGBFA/hDVrm6 =d867 -----END PGP SIGNATURE----- --=-BoGnBjd4VapSpT/oj1m4--