FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 12-08-2011, 10:42 PM
Alec Warner
 
Default multiple inclusion protection with eclasses

On Thu, Dec 8, 2011 at 2:24 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> ferringb did some tests and found that doing multiple inclusion protection in
> eclasses gets us some nice speed ups. *it isn't nearly as nice as if we had a
> way of skipping the `source` altogether, but that that would require PMS/tree
> changes. *the change i'm proposing can be implemented $now and should work
> with all versions. *PMS extensions can thus be discussed in parallel.
>
> simply put, it's the same thing as doing standard #ifdef logic in headers to
> protect against multiple inclusion errors. *on to the example:
>
> --- autotools.eclass
> +++ autotools.eclass
> @@ -10,6 +10,9 @@
> *# This eclass is for safely handling autotooled software packages that need
> *# regenerate their build scripts. *All functions will abort in case of
>
> +if [[ ${___ECLASS_ONCE_AUTOTOOLS} != "recur -_+^+_- spank" ]] ; then
> +___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank"
> +

Not to rain on your parade; but is that the value you are sticking with?

-A

> *inherit eutils libtool
>
> *# @ECLASS-VARIABLE: WANT_AUTOCONF
> @@ -399,3 +402,5 @@
>
> * * * *echo $include_opts
> *}
> +
> +fi
>
> this assumes that the eclass in question isn't doing something weird. *for
> example, if you had an ebuild today that did:
> * * * *inherit eutils
> * * * *epatch() { die erp; }
> * * * *inherit eutils
>
> that local epatch() would get reset by the eutils inherit. *but i can't see
> any ebuild having a valid reason for doing things like this, so screw 'em.
>
> i plan on implementing this in the eclasses i generally look over. *i don't
> plan on doing it for all eclasses since i'm not familiar with them.
> -mike
 
Old 12-08-2011, 10:53 PM
Mike Frysinger
 
Default multiple inclusion protection with eclasses

On Thursday 08 December 2011 18:42:54 Alec Warner wrote:
> On Thu, Dec 8, 2011 at 2:24 PM, Mike Frysinger wrote:
> > +if [[ ${___ECLASS_ONCE_AUTOTOOLS} != "recur -_+^+_- spank" ]] ; then
> > +___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank"
>
> Not to rain on your parade; but is that the value you are sticking with?

i could insert "antarus" and "goat" if you like. point is simply to pick a
variable name and value that are highly unlikely for the user to accidentally
set. and if they did, well foo on them.
-mike
 
Old 12-09-2011, 03:40 AM
Michał Górny
 
Default multiple inclusion protection with eclasses

On Thu, 8 Dec 2011 17:24:09 -0500
Mike Frysinger <vapier@gentoo.org> wrote:

> simply put, it's the same thing as doing standard #ifdef logic in
> headers to protect against multiple inclusion errors. on to the
> example:
>
> +___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank"

If you want alike CPP, why don't you name it:
_AUTOTOOLS_ECLASS=1

Looks unlikely enough.

--
Best regards,
Michał Górny
 
Old 12-09-2011, 04:02 PM
Mike Frysinger
 
Default multiple inclusion protection with eclasses

On Thursday 08 December 2011 23:40:12 Michał Górny wrote:
> On Thu, 8 Dec 2011 17:24:09 -0500 Mike Frysinger wrote:
> > simply put, it's the same thing as doing standard #ifdef logic in
> > headers to protect against multiple inclusion errors. on to the
> > example:
> >
> > +___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank"
>
> If you want alike CPP, why don't you name it:
> _AUTOTOOLS_ECLASS=1

that's not my preferred CPP naming style
-mike
 
Old 12-09-2011, 05:01 PM
Alec Warner
 
Default multiple inclusion protection with eclasses

I'd prefer something from figlet myself.

-A

On Fri, Dec 9, 2011 at 9:02 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Thursday 08 December 2011 23:40:12 Michał Górny wrote:
>> On Thu, 8 Dec 2011 17:24:09 -0500 Mike Frysinger wrote:
>> > simply put, it's the same thing as doing standard #ifdef logic in
>> > headers to protect against multiple inclusion errors. *on to the
>> > example:
>> >
>> > +___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank"
>>
>> If you want alike CPP, why don't you name it:
>> * * * _AUTOTOOLS_ECLASS=1
>
> that's not my preferred CPP naming style
> -mike
 

Thread Tools




All times are GMT. The time now is 02:44 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org