* [gentoo-dev] EBUILD_FORMAT support
@ 2005-07-07 0:20 Sven Wegener
2005-07-07 0:41 ` Mike Frysinger
0 siblings, 1 reply; 27+ messages in thread
From: Sven Wegener @ 2005-07-07 0:20 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 919 bytes --]
Hi all!
We would like to introduce a new ebuild variable named EBUILD_FORMAT,
that tags the ebuild with a specific ebuild API version it provides or
uses. ebuilds will get an automatic dependency on a version of portage
that is required for the used API to work correctly. The mapping between
API and portage versions will be distributed with our portage tree.
There are some major ebuild API changes being discussed. These changes
need backward compatibility and the information from EBUILD_FORMAT can
be used to provide backward compatiblity in an easy way. It can be used
for the src_configure[1] support and it might as well be used to get
backward compatibility for the RDEPEND=DEPEND[2] changes.
Cheers,
Sven
[1] http://thread.gmane.org/gmane.linux.gentoo.devel/29510
[2] http://thread.gmane.org/gmane.linux.gentoo.devel/29509
--
Sven Wegener
Gentoo Developer
http://www.gentoo.org/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 0:20 [gentoo-dev] EBUILD_FORMAT support Sven Wegener
@ 2005-07-07 0:41 ` Mike Frysinger
2005-07-07 0:49 ` Sven Wegener
0 siblings, 1 reply; 27+ messages in thread
From: Mike Frysinger @ 2005-07-07 0:41 UTC (permalink / raw
To: gentoo-dev
On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
> We would like to introduce a new ebuild variable named EBUILD_FORMAT,
seems like the name is much longer than it needs to be ... what's wrong with
say 'EVER' ?
-mike
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 0:41 ` Mike Frysinger
@ 2005-07-07 0:49 ` Sven Wegener
2005-07-07 1:01 ` Nathan L. Adams
0 siblings, 1 reply; 27+ messages in thread
From: Sven Wegener @ 2005-07-07 0:49 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 481 bytes --]
On Wed, Jul 06, 2005 at 08:41:43PM -0400, Mike Frysinger wrote:
> On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
> > We would like to introduce a new ebuild variable named EBUILD_FORMAT,
>
> seems like the name is much longer than it needs to be ... what's wrong with
> say 'EVER' ?
It's fine too. EBUILD_FORMAT was just the name that fell in
#gentoo-portage once we discussed about it.
Sven
--
Sven Wegener
Gentoo Developer
http://www.gentoo.org/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 0:49 ` Sven Wegener
@ 2005-07-07 1:01 ` Nathan L. Adams
2005-07-07 1:09 ` Sven Wegener
2005-07-07 4:36 ` Kito
0 siblings, 2 replies; 27+ messages in thread
From: Nathan L. Adams @ 2005-07-07 1:01 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Sven Wegener wrote:
> On Wed, Jul 06, 2005 at 08:41:43PM -0400, Mike Frysinger wrote:
>
>>On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
>>
>>>We would like to introduce a new ebuild variable named EBUILD_FORMAT,
>>
>>seems like the name is much longer than it needs to be ... what's wrong with
>>say 'EVER' ?
>
>
> It's fine too. EBUILD_FORMAT was just the name that fell in
> #gentoo-portage once we discussed about it.
>
> Sven
>
EVER looks like the english word 'ever'; what does it stand for? EBUILD
VERSION? If so, how about EVERSION? Since when was variable name length
a problem? Go with whatever best describes the variable and is easy to
figure out.
Nathan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCzH772QTTR4CNEQARAlimAJ0Yh80KpXqc0yZv6Gli+KqpWaKBxQCfU6pR
2WqrKs4MfY+RCgpoFxZKD8Q=
=5nzV
-----END PGP SIGNATURE-----
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 1:01 ` Nathan L. Adams
@ 2005-07-07 1:09 ` Sven Wegener
2005-07-07 1:22 ` Olivier Crête
2005-07-07 1:28 ` Joshua Baergen
2005-07-07 4:36 ` Kito
1 sibling, 2 replies; 27+ messages in thread
From: Sven Wegener @ 2005-07-07 1:09 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 697 bytes --]
On Wed, Jul 06, 2005 at 09:01:47PM -0400, Nathan L. Adams wrote:
> EVER looks like the english word 'ever'; what does it stand for? EBUILD
> VERSION? If so, how about EVERSION? Since when was variable name length
> a problem? Go with whatever best describes the variable and is easy to
> figure out.
Yes, ebuild version. For me all that starts with E (in combination with
Gentoo) is separated in my mind between E and the remaining part. Like:
- ebuild == e-build
- emerge == e-merge
And EVER automatically was E-VER for me, never had the idea to read it
as ever. Does that count as being addicted to Gentoo?
Sven
--
Sven Wegener
Gentoo Developer
http://www.gentoo.org/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 1:09 ` Sven Wegener
@ 2005-07-07 1:22 ` Olivier Crête
2005-07-07 1:28 ` Joshua Baergen
1 sibling, 0 replies; 27+ messages in thread
From: Olivier Crête @ 2005-07-07 1:22 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 265 bytes --]
On Thu, 2005-07-07 at 03:09 +0200, Sven Wegener wrote:
> And EVER automatically was E-VER for me, never had the idea to read it
> as ever. Does that count as being addicted to Gentoo?
Yes it does
--
Olivier Crête
tester@gentoo.org
x86 Security Liaison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 1:09 ` Sven Wegener
2005-07-07 1:22 ` Olivier Crête
@ 2005-07-07 1:28 ` Joshua Baergen
1 sibling, 0 replies; 27+ messages in thread
From: Joshua Baergen @ 2005-07-07 1:28 UTC (permalink / raw
To: gentoo-dev
Sven Wegener wrote:
>And EVER automatically was E-VER for me, never had the idea to read it
>as ever. Does that count as being addicted to Gentoo?
>
>Sven
>
>
>
Under the influence at the very least...
--
Joshua Baergen
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 1:01 ` Nathan L. Adams
2005-07-07 1:09 ` Sven Wegener
@ 2005-07-07 4:36 ` Kito
2005-07-07 4:47 ` Mike Frysinger
1 sibling, 1 reply; 27+ messages in thread
From: Kito @ 2005-07-07 4:36 UTC (permalink / raw
To: gentoo-dev
On Jul 6, 2005, at 8:01 PM, Nathan L. Adams wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Sven Wegener wrote:
>
>> On Wed, Jul 06, 2005 at 08:41:43PM -0400, Mike Frysinger wrote:
>>
>>
>>> On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
>>>
>>>
>>>> We would like to introduce a new ebuild variable named
>>>> EBUILD_FORMAT,
>>>>
>>>
>>> seems like the name is much longer than it needs to be ... what's
>>> wrong with
>>> say 'EVER' ?
>>>
>>
>>
>> It's fine too. EBUILD_FORMAT was just the name that fell in
>> #gentoo-portage once we discussed about it.
>>
>> Sven
>>
>>
>
> EVER looks like the english word 'ever'; what does it stand for?
> EBUILD
> VERSION? If so, how about EVERSION? Since when was variable name
> length
> a problem? Go with whatever best describes the variable and is easy to
> figure out.
Why not follow that logic through and use something like EBUILD_API ?
the term VERSION implies release version which of course may not be
tied to API changes...
Kito
>
> Nathan
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
>
> iD8DBQFCzH772QTTR4CNEQARAlimAJ0Yh80KpXqc0yZv6Gli+KqpWaKBxQCfU6pR
> 2WqrKs4MfY+RCgpoFxZKD8Q=
> =5nzV
> -----END PGP SIGNATURE-----
> --
> gentoo-dev@gentoo.org mailing list
>
>
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 4:36 ` Kito
@ 2005-07-07 4:47 ` Mike Frysinger
2005-07-07 12:19 ` Ned Ludd
0 siblings, 1 reply; 27+ messages in thread
From: Mike Frysinger @ 2005-07-07 4:47 UTC (permalink / raw
To: gentoo-dev
On Thursday 07 July 2005 12:36 am, Kito wrote:
> On Jul 6, 2005, at 8:01 PM, Nathan L. Adams wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Sven Wegener wrote:
> >> On Wed, Jul 06, 2005 at 08:41:43PM -0400, Mike Frysinger wrote:
> >>> On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
> >>>> We would like to introduce a new ebuild variable named
> >>>> EBUILD_FORMAT,
> >>>
> >>> seems like the name is much longer than it needs to be ... what's
> >>> wrong with
> >>> say 'EVER' ?
> >>
> >> It's fine too. EBUILD_FORMAT was just the name that fell in
> >> #gentoo-portage once we discussed about it.
> >>
> >> Sven
> >
> > EVER looks like the english word 'ever'; what does it stand for?
> > EBUILD
> > VERSION? If so, how about EVERSION? Since when was variable name
> > length
> > a problem? Go with whatever best describes the variable and is easy to
> > figure out.
>
> Why not follow that logic through and use something like EBUILD_API ?
> the term VERSION implies release version which of course may not be
> tied to API changes...
hmm that sounds even better ... EAPI ?
-mike
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 4:47 ` Mike Frysinger
@ 2005-07-07 12:19 ` Ned Ludd
2005-07-07 12:31 ` Diego 'Flameeyes' Pettenò
` (2 more replies)
0 siblings, 3 replies; 27+ messages in thread
From: Ned Ludd @ 2005-07-07 12:19 UTC (permalink / raw
To: gentoo-dev
On Thu, 2005-07-07 at 00:47 -0400, Mike Frysinger wrote:
> On Thursday 07 July 2005 12:36 am, Kito wrote:
> > On Jul 6, 2005, at 8:01 PM, Nathan L. Adams wrote:
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > >
> > > Sven Wegener wrote:
> > >> On Wed, Jul 06, 2005 at 08:41:43PM -0400, Mike Frysinger wrote:
> > >>> On Wednesday 06 July 2005 08:20 pm, Sven Wegener wrote:
> > >>>> We would like to introduce a new ebuild variable named
> > >>>> EBUILD_FORMAT,
> > >>>
> > >>> seems like the name is much longer than it needs to be ... what's
> > >>> wrong with
> > >>> say 'EVER' ?
> > >>
> > >> It's fine too. EBUILD_FORMAT was just the name that fell in
> > >> #gentoo-portage once we discussed about it.
> > >>
> > >> Sven
> > >
> > > EVER looks like the english word 'ever'; what does it stand for?
> > > EBUILD
> > > VERSION? If so, how about EVERSION? Since when was variable name
> > > length
> > > a problem? Go with whatever best describes the variable and is easy to
> > > figure out.
> >
> > Why not follow that logic through and use something like EBUILD_API ?
> > the term VERSION implies release version which of course may not be
> > tied to API changes...
>
> hmm that sounds even better ... EAPI ?
I would be in favor of EAPI= or an even shorter variable name.
strlen(EBUILD_FORMAT) * 19546 = 249K
strlen(EAPI) * 19546 = 77K
strlen(EV) * 19546 = 39K
Where 19546 is the number if ebuilds in the tree as.
--
Ned Ludd <solar@gentoo.org>
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 12:19 ` Ned Ludd
@ 2005-07-07 12:31 ` Diego 'Flameeyes' Pettenò
2005-07-07 14:37 ` twofourtysix
2005-07-07 17:52 ` Donnie Berkholz
2 siblings, 0 replies; 27+ messages in thread
From: Diego 'Flameeyes' Pettenò @ 2005-07-07 12:31 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 413 bytes --]
On Thursday 07 July 2005 14:19, Ned Ludd wrote:
> I would be in favor of EAPI= or an even shorter variable name.
EAPI is probably the best name, EV makes it possible to confuse it with
PV-like variables, referring to the versions of the package, not portage
itself.
--
Diego "Flameeyes" Pettenò
Gentoo Developer - http://dev.gentoo.org/~flameeyes/
(Gentoo/FreeBSD, Video, Gentoo/AMD64, Sound, PAM)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 12:19 ` Ned Ludd
2005-07-07 12:31 ` Diego 'Flameeyes' Pettenò
@ 2005-07-07 14:37 ` twofourtysix
2005-07-07 17:20 ` Alec Warner
2005-07-07 17:52 ` Donnie Berkholz
2 siblings, 1 reply; 27+ messages in thread
From: twofourtysix @ 2005-07-07 14:37 UTC (permalink / raw
To: gentoo-dev
On 07/07/05, Ned Ludd <solar@gentoo.org> wrote:
> I would be in favor of EAPI= or an even shorter variable name.
>
> strlen(EBUILD_FORMAT) * 19546 = 249K
> strlen(EAPI) * 19546 = 77K
> strlen(EV) * 19546 = 39K
>
> Where 19546 is the number if ebuilds in the tree as.
If you're that interested in saving space on variable names, why not
make an eclass called, say, a.eclass, that aliases all the existing
'long' names (DESCRIPTION, SRC_URI, RDEPEND, DEPEND, IUSE, src_unpack,
...) onto 'x', 'y', 'z' and so on? Yes, another eclass would make the
tree slightly bigger, but you'd save that many times over once you
changed a few hundred ebuilds to use it.
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 14:37 ` twofourtysix
@ 2005-07-07 17:20 ` Alec Warner
0 siblings, 0 replies; 27+ messages in thread
From: Alec Warner @ 2005-07-07 17:20 UTC (permalink / raw
To: gentoo-dev
twofourtysix wrote:
>On 07/07/05, Ned Ludd <solar@gentoo.org> wrote:
>
>
>>I would be in favor of EAPI= or an even shorter variable name.
>>
>>strlen(EBUILD_FORMAT) * 19546 = 249K
>>strlen(EAPI) * 19546 = 77K
>>strlen(EV) * 19546 = 39K
>>
>>Where 19546 is the number if ebuilds in the tree as.
>>
>>
>
>
>
<sarcasm>
>If you're that interested in saving space on variable names, why not
>make an eclass called, say, a.eclass, that aliases all the existing
>'long' names (DESCRIPTION, SRC_URI, RDEPEND, DEPEND, IUSE, src_unpack,
>...) onto 'x', 'y', 'z' and so on? Yes, another eclass would make the
>tree slightly bigger, but you'd save that many times over once you
>changed a few hundred ebuilds to use it.
>
>
>
</sarcasm>
<file:///H:/Satish/Desktop/>
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 12:19 ` Ned Ludd
2005-07-07 12:31 ` Diego 'Flameeyes' Pettenò
2005-07-07 14:37 ` twofourtysix
@ 2005-07-07 17:52 ` Donnie Berkholz
2005-07-07 18:28 ` Maurice van der Pot
2005-07-07 20:42 ` Robin H. Johnson
2 siblings, 2 replies; 27+ messages in thread
From: Donnie Berkholz @ 2005-07-07 17:52 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 499 bytes --]
On Thu, 2005-07-07 at 08:19 -0400, Ned Ludd wrote:
> I would be in favor of EAPI= or an even shorter variable name.
>
> strlen(EBUILD_FORMAT) * 19546 = 249K
> strlen(EAPI) * 19546 = 77K
> strlen(EV) * 19546 = 39K
>
> Where 19546 is the number if ebuilds in the tree as.
So, the size of the tree is 500216K. This makes the percent increase in
size for the options above 0.0005%, 0.0002% and 0.0001% respectively. In
any case, nearly irrelevant to its present size.
Thanks,
Donnie
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 17:52 ` Donnie Berkholz
@ 2005-07-07 18:28 ` Maurice van der Pot
2005-07-08 3:31 ` Donnie Berkholz
2005-07-07 20:42 ` Robin H. Johnson
1 sibling, 1 reply; 27+ messages in thread
From: Maurice van der Pot @ 2005-07-07 18:28 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 380 bytes --]
On Thu, Jul 07, 2005 at 10:52:06AM -0700, Donnie Berkholz intended to write:
> size for the options above 0.05%, 0.02% and 0.01% respectively. In
> any case, nearly irrelevant to its present size.
--
Maurice van der Pot
Gentoo Linux Developer griffon26@gentoo.org http://www.gentoo.org
Creator of BiteMe! griffon26@kfk4ever.com http://www.kfk4ever.com
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 17:52 ` Donnie Berkholz
2005-07-07 18:28 ` Maurice van der Pot
@ 2005-07-07 20:42 ` Robin H. Johnson
2005-08-23 13:20 ` Paul de Vrieze
1 sibling, 1 reply; 27+ messages in thread
From: Robin H. Johnson @ 2005-07-07 20:42 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1327 bytes --]
On Thu, Jul 07, 2005 at 10:52:06AM -0700, Donnie Berkholz wrote:
> > strlen(EBUILD_FORMAT) * 19546 = 249K
> > strlen(EAPI) * 19546 = 77K
> > strlen(EV) * 19546 = 39K
> >
> > Where 19546 is the number if ebuilds in the tree as.
> So, the size of the tree is 500216K. This makes the percent increase in
> size for the options above 0.0005%, 0.0002% and 0.0001% respectively. In
> any case, nearly irrelevant to its present size.
Probably should count some more formatting too.
strlen(EBUILD_FORMAT="") = 16, 16 * 19546 = 306K
strlen(EAPI="") = 7, 7 * 19546 = 134K
strlen(EV="") = 5, 5 * 19546 = 96K
Don't just count the 4K blocks. Count the actual data instead (du -b).
The tree contains 95912503 bytes of data, including metadata.
Excluding metadata it is 85301916 bytes.
It's still less than 0.4% increase in the worst case.
I like the 'EAPI' variant, as it's clearly seperate from 'EV', without
being too long.
To combat some of the increase, EAPI only needs to go into new ebuilds
that use the functionality. Old ebuilds should default to the current
syntax.
--
Robin Hugh Johnson
E-Mail : robbat2@orbis-terrarum.net
Home Page : http://www.orbis-terrarum.net/?l=people.robbat2
ICQ# : 30269588 or 41961639
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
[-- Attachment #2: Type: application/pgp-signature, Size: 241 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 18:28 ` Maurice van der Pot
@ 2005-07-08 3:31 ` Donnie Berkholz
0 siblings, 0 replies; 27+ messages in thread
From: Donnie Berkholz @ 2005-07-08 3:31 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 353 bytes --]
On Thu, 2005-07-07 at 20:28 +0200, Maurice van der Pot wrote:
> On Thu, Jul 07, 2005 at 10:52:06AM -0700, Donnie Berkholz intended to write:
> > size for the options above 0.05%, 0.02% and 0.01% respectively. In
> > any case, nearly irrelevant to its present size.
Mixed up my decimal points and percent signs again, eh? I guess I only
get one.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-07-07 20:42 ` Robin H. Johnson
@ 2005-08-23 13:20 ` Paul de Vrieze
2005-08-23 16:00 ` Brian Harring
0 siblings, 1 reply; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-23 13:20 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1757 bytes --]
On Thursday 07 July 2005 22:42, Robin H. Johnson wrote:
> On Thu, Jul 07, 2005 at 10:52:06AM -0700, Donnie Berkholz wrote:
> > > strlen(EBUILD_FORMAT) * 19546 = 249K
> > > strlen(EAPI) * 19546 = 77K
> > > strlen(EV) * 19546 = 39K
> > >
> > > Where 19546 is the number if ebuilds in the tree as.
> >
> > So, the size of the tree is 500216K. This makes the percent increase
> > in size for the options above 0.0005%, 0.0002% and 0.0001%
> > respectively. In any case, nearly irrelevant to its present size.
>
> Probably should count some more formatting too.
> strlen(EBUILD_FORMAT="") = 16, 16 * 19546 = 306K
> strlen(EAPI="") = 7, 7 * 19546 = 134K
> strlen(EV="") = 5, 5 * 19546 = 96K
>
> Don't just count the 4K blocks. Count the actual data instead (du -b).
> The tree contains 95912503 bytes of data, including metadata.
> Excluding metadata it is 85301916 bytes.
>
> It's still less than 0.4% increase in the worst case.
>
> I like the 'EAPI' variant, as it's clearly seperate from 'EV', without
> being too long.
>
> To combat some of the increase, EAPI only needs to go into new ebuilds
> that use the functionality. Old ebuilds should default to the current
> syntax.
To allow for this to work with current portage versions, perhaps it would
be an option to introduce a new extension for .ebuild scripts that use
it's functionality. That would allow all non-EAPI aware portage versions
to automatically ignore ebuilds that use this.
Paul
ps. I would also suggest requiring that EAPI can be retrieved by a simple
line by line parsing without using bash. (This allows for changing the
parsing system)
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-23 13:20 ` Paul de Vrieze
@ 2005-08-23 16:00 ` Brian Harring
2005-08-25 10:34 ` Paul de Vrieze
0 siblings, 1 reply; 27+ messages in thread
From: Brian Harring @ 2005-08-23 16:00 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1257 bytes --]
On Tue, Aug 23, 2005 at 03:20:16PM +0200, Paul de Vrieze wrote:
> To allow for this to work with current portage versions, perhaps it would
> be an option to introduce a new extension for .ebuild scripts that use
> it's functionality. That would allow all non-EAPI aware portage versions
> to automatically ignore ebuilds that use this.
not much for .ebuild? in the tree, personally.
Why? Cause portage *should not* ignore those ebuilds. If the user
wants to merge something that is a later ebuild api then they have, at
least portage chucks an exception that the UI can wrap into "upgrade
portage".
With what you're proposing, we instead get bugs about portage missing
packages.
> ps. I would also suggest requiring that EAPI can be retrieved by a simple
> line by line parsing without using bash. (This allows for changing the
> parsing system)
No, that's yanks EAPI setting away from eclasses.
Only time this would be required is if we move away from bash; if that
occurs, then I'd think a new extension would be required.
As is, shifting the 'template' loaded for an ebuild can be done in
ebd's init_environ easy enough, so no reason to add the extra
restrictions/changes.
My 2 cents, at least ;)
~harring
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-23 16:00 ` Brian Harring
@ 2005-08-25 10:34 ` Paul de Vrieze
2005-08-26 7:35 ` Brian Harring
0 siblings, 1 reply; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-25 10:34 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 3586 bytes --]
On Tuesday 23 August 2005 18:00, Brian Harring wrote:
> On Tue, Aug 23, 2005 at 03:20:16PM +0200, Paul de Vrieze wrote:
> > To allow for this to work with current portage versions, perhaps it
> > would be an option to introduce a new extension for .ebuild scripts
> > that use it's functionality. That would allow all non-EAPI aware
> > portage versions to automatically ignore ebuilds that use this.
>
> not much for .ebuild? in the tree, personally.
> Why? Cause portage *should not* ignore those ebuilds. If the user
> wants to merge something that is a later ebuild api then they have, at
> least portage chucks an exception that the UI can wrap into "upgrade
> portage".
>
> With what you're proposing, we instead get bugs about portage missing
> packages.
What I mean is compatibility with current portage versions. Current
versions do not understand EAPI. There would be a good chance that they
could choke on packages with all kinds of new features, even in the sync
phase. A different extension would ensure that those portage versions
would still work (crippled) on a new tree. Of course such an extension
change should only be done once. Once the API versions are available this
is not an issue.
>
> > ps. I would also suggest requiring that EAPI can be retrieved by a
> > simple line by line parsing without using bash. (This allows for
> > changing the parsing system)
>
> No, that's yanks EAPI setting away from eclasses.
If the eclasses follow similar rules that would be easilly parseable.
(taking inherit ...) into account is easy as long as the inherit line is
on one line of it's own. (unconditionally) These rules that would
allready be followed out of style reasons would make various kinds of
parsers able to parse them.
> Only time this would be required is if we move away from bash; if that
> occurs, then I'd think a new extension would be required.
It would allow to for example restrict the ebuild format such that initial
parsing is not done by bash (but the files are still parseable by bash).
If we perform changes I think it should be done right in the first place.
> As is, shifting the 'template' loaded for an ebuild can be done in
> ebd's init_environ easy enough, so no reason to add the extra
> restrictions/changes.
One of the issues of ebuilds is the cache/metadata stuff. Parsing an
ebuild for basic information takes a lot of time. This can be done lots
faster with a less featured parser (I've written one some day) that
accepts 98% of all current ebuilds, just doesn't like dynamic features in
the toplevel. Such a parser could be a python plugin and as such easy to
use from python. However to ensure compatibility with a faster parser the
EAPI variable should be there in a way that is a little more strict than
the other variables. And such a restriction is in practice not a
restriction.
The restriction I propose would be:
- If EAPI is defined in the ebuild it should be unconditional, on it's own
line in the toplevel of the ebuild before any functions are defined.
(preferably the first element after the comments and whitespace)
- If EAPI is not defined in the ebuild, but in an eclass, the inherit
chain should be unconditional and direct. Further more in the eclass the
above rules should be followed.
Please note that many of the conditions are allready true for current
ebuilds, just portage can "handle" more.
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-25 10:34 ` Paul de Vrieze
@ 2005-08-26 7:35 ` Brian Harring
2005-08-26 11:19 ` [gentoo-portage-dev] " Paul de Vrieze
0 siblings, 1 reply; 27+ messages in thread
From: Brian Harring @ 2005-08-26 7:35 UTC (permalink / raw
To: gentoo-dev; +Cc: gentoo-portage-dev
[-- Attachment #1: Type: text/plain, Size: 10039 bytes --]
Pardon the delay, been putting this one off since it's going to be a
fun one to address, and will be a bit long :)
On Thu, Aug 25, 2005 at 12:34:00PM +0200, Paul de Vrieze wrote:
> What I mean is compatibility with current portage versions. Current
> versions do not understand EAPI. There would be a good chance that they
> could choke on packages with all kinds of new features, even in the sync
> phase. A different extension would ensure that those portage versions
> would still work (crippled) on a new tree. Of course such an extension
> change should only be done once. Once the API versions are available this
> is not an issue.
General portage stance towards EAPI is unset EAPI == 0 (current stable
ebuild format); if EAPI > then portage internal EAPI, unable to merge,
which should be able to be detected during buildplan.
Current portage doesn't know about EAPI; boned in that respect I'll
admit, but it's the case for all new features rolled out- three options
for dealing with this
1) Usual method, deploy support, N months later use support.
2) tweak stable so it's aware and can complain. Still requires
people to upgrade, just makes it so that they're not forced into
upgrading to 3.x; this is mainly a benefit for those who may don't
care to try the first few releases of 3.x when it hits (akin to
people dodging the first release or two of a gcc release).
Worth noting that one rather visibile aspect of EAPI=1 is that
(assuming the council votes on it, and yay's it) glep33 *will* result
in current eclasses being effectively abandoned w/in the N months
after an EAPI capable portage is released.
Sound kind of bad, but people will have to upgrade for the
capabilities. If EAPI was pegged into portage/ebuilds already
it wouldn't be an issue, issues could be detected prior.
Unfortunately it's not, and introduction of it (and use of it) is
going to involve a few road bumps.
Plus side, once it's in, portage *will* know if the ebuild is
incompatible with the pythonic/bash ebuild code, and portage/the UI
can act accordingly.
Meanwhile, the changes that are being pushed into EAPI are addition of
configure phase (broken out from compile), elib addition, and eclass2
support (same beast, different rules due to env save/restoration).
The potential for horkage on sync'ing isn't there due to the fact
that's purely python side; ebuild*sh doesn't play into it.
Re: regen, issue isn't really there either; if you try and merge an
eapi=0 on a non eapi aware portage, it works, same as it did before.
If you try to merge an eapi=1 ebuild you hit either an issue with
inherit, or a bail immediately in src_compile, due to the fact eapi=1
ebuilds will seperate configure out from compile (eapi=0 portage won't
know to call it; no configure == failed compile).
That said, there also quite likely is a change coming down the pipe to
the tree's cache; the change will shift the rsync'd metadata cache
over to a key/val based cache.
Why oh why, yet another cache change? Simple. The change moves away
from list based format to key:value pairs; in short it's a change that
once made, means keys can be added to the cache from that point on
without causing cache complaints on sync'ing. Last cache breakage, I
swear :P
EAPI addition being the next key tagged in; stable (not surprising)
needs to be released with a version capable of reading both old and
new format; once that's done, time for the usual "yo, upgrade people,
something's coming down the line". Same version that supports
old and new cache format can also include rudimentary eapi awareness.
At least that's what I'm thinking. It's roughly inline with the
previous forced cache breakages, just in this case slipping in some
extra support in the process.
Notices obviously would go out prior to moving on this also, along
with a good chunk of waiting.
> > > ps. I would also suggest requiring that EAPI can be retrieved by a
> > > simple line by line parsing without using bash. (This allows for
> > > changing the parsing system)
> >
> > No, that yanks EAPI setting away from eclasses.
>
> If the eclasses follow similar rules that would be easilly parseable.
> (taking inherit ...) into account is easy as long as the inherit line is
> on one line of it's own. (unconditionally) These rules that would
> allready be followed out of style reasons would make various kinds of
> parsers able to parse them.
while it's insane, people *can* use indirection (eg inherit $var) for
inherit's as long as it's deterministic, always the same inherit call
for that ebuild's data. Don't see a good reason to ixnay that, which
means we'd have to parse the whole enchilada, eclasses and the ebuild.
Effectively, raiding a single var out wouldn't fly; eclasses could
override an ebuild's eapi setting for example, just like any other
metadata key (imo).
A *true* format change, moving away from bash for example or moving to
an executing design of ebuilds would require an extension change; such
a change must imo anyways, since it's not a change of the ebuild env's
template/hooks; either it's a fundamentally different model for
ebuilds- either via no longer being bash based, or moving away from our
declarative design of ebuilds.
> > Only time this would be required is if we move away from bash; if that
> > occurs, then I'd think a new extension would be required.
<inserting a comment> contradicting myself via above, above is correct </comment>
>
> It would allow to for example restrict the ebuild format such that initial
> parsing is not done by bash (but the files are still parseable by bash).
> If we perform changes I think it should be done right in the first place.
Elaborate please
> > As is, shifting the 'template' loaded for an ebuild can be done in
> > ebd's init_environ easy enough, so no reason to add the extra
> > restrictions/changes.
>
> One of the issues of ebuilds is the cache/metadata stuff. Parsing an
> ebuild for basic information takes a lot of time. This can be done lots
> faster with a less featured parser (I've written one some day) that
> accepts 98% of all current ebuilds, just doesn't like dynamic features in
> the toplevel. Such a parser could be a python plugin and as such easy to
> use from python. However to ensure compatibility with a faster parser the
> EAPI variable should be there in a way that is a little more strict than
> the other variables. And such a restriction is in practice not a
> restriction.
Any parser that doesn't support full bash syntax isn't acceptable from
where I sit; re: slow down, 2.1 is around 33% faster sourcing the
whole tree (some cases 60% faster, some 5%, etc). The speed up's are
also what allow template's to be swapped, the eapi concept.
I'd note limiting the bash capabilities is a restriction that
transcends anything EAPI should supply; changes to what's possible in
the language (a subset of bash syntax as you're suggesting) are a
seperate format from where I draw the line in the sand.
Mainly, limiting the syntax has the undesired affect of deviating from
what users/devs know already; mistakes *will* occur. QA tools can be
written, but people are fallable; both in writing a QA tool, and
abiding by the syntax subset allowed.
> The restriction I propose would be:
> - If EAPI is defined in the ebuild it should be unconditional, on it's own
> line in the toplevel of the ebuild before any functions are defined.
> (preferably the first element after the comments and whitespace)
>
> - If EAPI is not defined in the ebuild, but in an eclass, the inherit
> chain should be unconditional and direct. Further more in the eclass the
> above rules should be followed.
>
> Please note that many of the conditions are allready true for current
> ebuilds, just portage can "handle" more.
inherit chain must be unconditional anyways. re: eapi placement, I
would view that as somewhat arbitrary; the question is what gain it
would give.
I'd wonder about the parsing speed of your parser; the difference
between parsing ebuilds and running from cache metadata is several
orders of magnitude differant- the current cache backend flat_list
and portage design properly corrected ought to widen the gap too.
General cache lookup is slow due to-
A) bad call patterns, allowed by the api; N calls to get different
bits of metadata from a cpv, resulting in potentially N to disk set
of ops.
B) default cache requires opening/closing a file per cpv lookup; syscall's
are killer here.
C) every metadata lookup incurs 2 stats, ebuild and cache file.
Getting to the point; cache is 100x to 400x faster then sourcing for
<=2.0.51. Haven't tested it under 2.1, should be different due to
cache and regen fixups/rewrites.
Back to the point, essentially, EAPI matters in two places;
1) metadata transfer from the ebuild env into python side during
depends phase; has to know what to transfer key wise.
2) actual ebuild build phase executions; if it isn't the depends phase,
eapi being required so that the parser can swap drop in the appropriate
ebuild env template.
The restrictions suggested for EAPI would only make sense if eyeing
#1, an alternative parser; no reason to drop the cache unless the
parser is capable of hitting the same runtime performance the cache
can hit (frankly, it's not possible from where I'm sitting although
the gap can be narrowed).
So... the EAPI limitations, not much for due to the conclusion above.
Interested in the parser however, since ebd is effectively a pipe
hack so that pythonic portage can control ebuild.sh. I (and others)
have been after a bashlib for a while, just no one has crunched down
and done it (easier said then done I suspect).
My 2 cents at least.
~harring
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 7:35 ` Brian Harring
@ 2005-08-26 11:19 ` Paul de Vrieze
2005-08-26 12:50 ` Paul de Vrieze
0 siblings, 1 reply; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-26 11:19 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 8414 bytes --]
On Friday 26 August 2005 09:35, Brian Harring wrote:
> Any parser that doesn't support full bash syntax isn't acceptable from
> where I sit; re: slow down, 2.1 is around 33% faster sourcing the
> whole tree (some cases 60% faster, some 5%, etc). The speed up's are
> also what allow template's to be swapped, the eapi concept.
For the toplevel of the ebuilds there are many things that are not
allowed. Basically things must be deterministic for the cache to work. I
have built an extension that would parse 98% of current ebuilds properly,
and much (more than 10 times) faster than the bash/ecache way. It is in
the shape of a python module written in C. It just ignores the functions,
so anything is allowed in there. As such the parser understands enough of
bash to support it. Even variable substitution and inherit are supported.
What's not supported is various kinds of uncommon substitution tricks
that should probably not happen in the toplevel either.
Using EAPI would also allow to see something as capabilities. Say have
portage support version 2-relaxed and version 2-strict. 2-relaxed has all
the bash freedom and is parsed using bash. 2-strict would allow parsing
by a faster parser module, but would limit the bash freedom. I don't say
we have to do this, but if ebuild and eclass EAPI declarations follow a
few very simple rules that are normally obeyed, it would be possible to
support this thing in the future.
One of the problems I see with the current ebuild format is that it is
impossible to do incompatible changes at all. This means that many
features that might be desired can not be implemented. EAPI can relieve
that. To make it easier there should be an easy way to get the EAPI of a
package.
>
> I'd note limiting the bash capabilities is a restriction that
> transcends anything EAPI should supply; changes to what's possible in
> the language (a subset of bash syntax as you're suggesting) are a
> seperate format from where I draw the line in the sand.
What I suggest is making a policy that would make this possible in the
future. Note that I do not wish to restrict any bash functionality in the
various functions in the ebuild.
> Mainly, limiting the syntax has the undesired affect of deviating from
> what users/devs know already; mistakes *will* occur. QA tools can be
> written, but people are fallable; both in writing a QA tool, and
> abiding by the syntax subset allowed.
The QA tools would just be running the parser. If the parser chokes (which
it doesn't easilly) then the ebuild does not conform to the correct
syntax. It's even possible to just compare the variables returned. If
they don't match, the format is wrong for the C parser.
>
> > The restriction I propose would be:
> > - If EAPI is defined in the ebuild it should be unconditional, on
> > it's own line in the toplevel of the ebuild before any functions are
> > defined. (preferably the first element after the comments and
> > whitespace)
> >
> > - If EAPI is not defined in the ebuild, but in an eclass, the inherit
> > chain should be unconditional and direct. Further more in the
> > eclass the above rules should be followed.
> >
> > Please note that many of the conditions are allready true for current
> > ebuilds, just portage can "handle" more.
>
> inherit chain must be unconditional anyways. re: eapi placement, I
> would view that as somewhat arbitrary; the question is what gain it
> would give.
The gain of putting it at the top would be that there are less chances for
parsers to have choked on incompatible syntax. If EAPI is in the top, at
some point incompatible syntax might be allowed, and older parsers could
still retrieve the EAPI. Of course any syntax that works on 'egrep
"^[ \t]*EAPI[ \t]*="' should be no problem.
>
> I'd wonder about the parsing speed of your parser; the difference
> between parsing ebuilds and running from cache metadata is several
> orders of magnitude differant- the current cache backend flat_list
> and portage design properly corrected ought to widen the gap too.
> General cache lookup is slow due to-
> A) bad call patterns, allowed by the api; N calls to get different
> bits of metadata from a cpv, resulting in potentially N to disk set
> of ops.
> B) default cache requires opening/closing a file per cpv lookup;
> syscall's are killer here.
> C) every metadata lookup incurs 2 stats, ebuild and cache file.
This parser was part of a stranded rewrite attempt. One of the features
was that it regarded packages and package instances (specific files) as
objects whose attributes would be lazilly evaluated. That means that it
would parse if not available, lookup otherwise. The speed of "emerge -s"
is stunning on the program as it uses a directory search which is orders
of magnitudes faster than python doing the same thing.
> Getting to the point; cache is 100x to 400x faster then sourcing for
> <=2.0.51. Haven't tested it under 2.1, should be different due to
> cache and regen fixups/rewrites.
Don't forget the fact that bash must be execed for normal parses, and that
python has extremely slow string handling when not using one of the
standard parsing modules (that work in C). To put my money where my mouth
is, I've tarred up my code and put it on my dev space:
http://dev.gentoo.org/~pauldv/portage_native-0.1.tar.bz2
Just run make in the extracted dir. The binary created is xbuildparse,
this is a standalone parser that takes the ebuild as argument. It will
look for eclasses in /usr/portage/eclass.
The python module can be built with "make xbuildparse.so", and includes a
little bit of help reachable through the normal python way.
>
> Back to the point, essentially, EAPI matters in two places;
> 1) metadata transfer from the ebuild env into python side during
> depends phase; has to know what to transfer key wise.
> 2) actual ebuild build phase executions; if it isn't the depends phase,
> eapi being required so that the parser can swap drop in the
> appropriate ebuild env template.
I think it also matters in actually allowing future incompatible versions
of ebuild formats. I don't mean to say good bye to the current format,
but when redesigning the format, we should now design it for
extensionability.
> The restrictions suggested for EAPI would only make sense if eyeing
> #1, an alternative parser; no reason to drop the cache unless the
> parser is capable of hitting the same runtime performance the cache
> can hit (frankly, it's not possible from where I'm sitting although
> the gap can be narrowed).
You're probably right, but the time needed to parse an ebuild can be
reduced that much that parsing will not be the issue anymore, but
building the right tree is:
time ./xbuildparse /usr/portage/sys-libs/db/db-4.2.52_p2.ebuild
&>/dev/null
real 0m0.054s
user 0m0.048s
sys 0m0.002s
Please note that the parser is incomplete, does have some small bugs
(don't try it on flag-o-matic as it someway goes into an endless loop),
and could probably do some things smarter.
> So... the EAPI limitations, not much for due to the conclusion above.
>
> Interested in the parser however, since ebd is effectively a pipe
> hack so that pythonic portage can control ebuild.sh. I (and others)
> have been after a bashlib for a while, just no one has crunched down
> and done it (easier said then done I suspect).
See it above. It does not fully understand every bash statement around.
And important is that it currently does not understand the "if"
statement. This is easy to add though, just wasn't added out of "policy".
But being that even my own ebuilds (like db) use it, it should probably
be added.
I do believe that the parser could be made usefull for most ebuilds. This
would however still mean a small restriction in allowed syntax. The
parser module has basically one function which is "parse" it parses an
ebuild, the eclasses, and returns a list of variables. Not all variables
are substituted though, I have a python function that does this. If
people are interested I can take a look at sanitizing my whole tree and
providing it.
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 11:19 ` [gentoo-portage-dev] " Paul de Vrieze
@ 2005-08-26 12:50 ` Paul de Vrieze
2005-08-26 14:58 ` Ciaran McCreesh
0 siblings, 1 reply; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-26 12:50 UTC (permalink / raw
To: gentoo-dev; +Cc: gentoo-portage-dev
[-- Attachment #1: Type: text/plain, Size: 871 bytes --]
> Don't forget the fact that bash must be execed for normal parses, and
> that python has extremely slow string handling when not using one of
> the standard parsing modules (that work in C). To put my money where my
> mouth is, I've tarred up my code and put it on my dev space:
> http://dev.gentoo.org/~pauldv/portage_native-0.1.tar.bz2
I've fixed up a particular issue with it (getting into an endless loop)
and made a very simple webpage for it:
http://dev.gentoo.org/~pauldv/
ps. People please be aware that this is still alpha in the sense of not
being complete. For better working it should probably support if
statements properly, and at least do variable substitution. It would mean
that the parser would have to retain a state etc.
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 12:50 ` Paul de Vrieze
@ 2005-08-26 14:58 ` Ciaran McCreesh
2005-08-26 15:08 ` Paul de Vrieze
2005-08-26 15:11 ` Paul de Vrieze
0 siblings, 2 replies; 27+ messages in thread
From: Ciaran McCreesh @ 2005-08-26 14:58 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 747 bytes --]
On Fri, 26 Aug 2005 14:50:52 +0200 Paul de Vrieze <pauldv@gentoo.org>
wrote:
| ps. People please be aware that this is still alpha in the sense of
| not being complete. For better working it should probably support if
| statements properly, and at least do variable substitution. It would
| mean that the parser would have to retain a state etc.
Isn't this pretty much a waste of time if it can't handle all the code
in versionator? We're trying to move people away from ugly unreliable
manual substitutions towards readable, maintainable code using the
eclass...
--
Ciaran McCreesh : Gentoo Developer (Vim, Shell tools, Fluxbox, Cron)
Mail : ciaranm at gentoo.org
Web : http://dev.gentoo.org/~ciaranm
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 14:58 ` Ciaran McCreesh
@ 2005-08-26 15:08 ` Paul de Vrieze
2005-08-26 15:11 ` Paul de Vrieze
1 sibling, 0 replies; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-26 15:08 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1050 bytes --]
On Friday 26 August 2005 16:58, Ciaran McCreesh wrote:
> On Fri, 26 Aug 2005 14:50:52 +0200 Paul de Vrieze <pauldv@gentoo.org>
>
> wrote:
> | ps. People please be aware that this is still alpha in the sense of
> | not being complete. For better working it should probably support if
> | statements properly, and at least do variable substitution. It would
> | mean that the parser would have to retain a state etc.
>
> Isn't this pretty much a waste of time if it can't handle all the code
> in versionator? We're trying to move people away from ugly unreliable
> manual substitutions towards readable, maintainable code using the
> eclass...
Hey, it said "alpha". I've just been working on having it parse even more
eclasses. It now handles multilib.eclass, and I'll be working on making
eutils parse fully. I need to revamp the variable substitution
recognition a bit. I'll make sure that it handles versionator too.
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 14:58 ` Ciaran McCreesh
2005-08-26 15:08 ` Paul de Vrieze
@ 2005-08-26 15:11 ` Paul de Vrieze
2005-08-26 15:20 ` Paul de Vrieze
1 sibling, 1 reply; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-26 15:11 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1017 bytes --]
On Friday 26 August 2005 16:58, Ciaran McCreesh wrote:
> On Fri, 26 Aug 2005 14:50:52 +0200 Paul de Vrieze <pauldv@gentoo.org>
>
> wrote:
> | ps. People please be aware that this is still alpha in the sense of
> | not being complete. For better working it should probably support if
> | statements properly, and at least do variable substitution. It would
> | mean that the parser would have to retain a state etc.
>
> Isn't this pretty much a waste of time if it can't handle all the code
> in versionator? We're trying to move people away from ugly unreliable
> manual substitutions towards readable, maintainable code using the
> eclass...
With lack of variable substitution support I mean that it just forwards
the variable substitutions to the calling application (output). It should
probably also be made more aware of the variables that are allways
extended like USE and DEPEND.
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [gentoo-portage-dev] Re: [gentoo-dev] EBUILD_FORMAT support
2005-08-26 15:11 ` Paul de Vrieze
@ 2005-08-26 15:20 ` Paul de Vrieze
0 siblings, 0 replies; 27+ messages in thread
From: Paul de Vrieze @ 2005-08-26 15:20 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1817 bytes --]
On Friday 26 August 2005 17:11, Paul de Vrieze wrote:
> On Friday 26 August 2005 16:58, Ciaran McCreesh wrote:
> > On Fri, 26 Aug 2005 14:50:52 +0200 Paul de Vrieze <pauldv@gentoo.org>
> >
> > wrote:
> > | ps. People please be aware that this is still alpha in the sense of
> > | not being complete. For better working it should probably support
> > | if statements properly, and at least do variable substitution. It
> > | would mean that the parser would have to retain a state etc.
> >
> > Isn't this pretty much a waste of time if it can't handle all the
> > code in versionator? We're trying to move people away from ugly
> > unreliable manual substitutions towards readable, maintainable code
> > using the eclass...
>
> With lack of variable substitution support I mean that it just forwards
> the variable substitutions to the calling application (output). It
> should probably also be made more aware of the variables that are
> allways extended like USE and DEPEND.
I just checked the versionator eclass though, and indeed it wouldn't
support it. Versionator uses functions inside the variables. The parser
does not parse functions at all beyond being able to determine their end.
Perhaps it would be best to handle versionator specially and internalize
the functions. While it is possible to interpret the bash functions this
would mean full bash function duplication, make the parser more complex
and diminish the speed of the parser.
I could even do this function mimicking in such a way that nonsupported
functions automatically get signaled as requiring compatibility mode
(parser is uncertain about it's results, and the old parser should be
used).
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2005-08-26 15:28 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-07 0:20 [gentoo-dev] EBUILD_FORMAT support Sven Wegener
2005-07-07 0:41 ` Mike Frysinger
2005-07-07 0:49 ` Sven Wegener
2005-07-07 1:01 ` Nathan L. Adams
2005-07-07 1:09 ` Sven Wegener
2005-07-07 1:22 ` Olivier Crête
2005-07-07 1:28 ` Joshua Baergen
2005-07-07 4:36 ` Kito
2005-07-07 4:47 ` Mike Frysinger
2005-07-07 12:19 ` Ned Ludd
2005-07-07 12:31 ` Diego 'Flameeyes' Pettenò
2005-07-07 14:37 ` twofourtysix
2005-07-07 17:20 ` Alec Warner
2005-07-07 17:52 ` Donnie Berkholz
2005-07-07 18:28 ` Maurice van der Pot
2005-07-08 3:31 ` Donnie Berkholz
2005-07-07 20:42 ` Robin H. Johnson
2005-08-23 13:20 ` Paul de Vrieze
2005-08-23 16:00 ` Brian Harring
2005-08-25 10:34 ` Paul de Vrieze
2005-08-26 7:35 ` Brian Harring
2005-08-26 11:19 ` [gentoo-portage-dev] " Paul de Vrieze
2005-08-26 12:50 ` Paul de Vrieze
2005-08-26 14:58 ` Ciaran McCreesh
2005-08-26 15:08 ` Paul de Vrieze
2005-08-26 15:11 ` Paul de Vrieze
2005-08-26 15:20 ` Paul de Vrieze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox