Note: Due to technical difficulties, the Archives are currently not up to date.
GMANE provides an alternative service for most mailing lists. c.f. bug 424647
List Archive: gentoo-dev
On Thu, 08 Mar 2012 16:35:14 -0500
Michael Orlitzky <michael@...> wrote:
> On 03/08/2012 01:48 PM, Ciaran McCreesh wrote:
> >
> >> If they're code, they're code, and we need to execute them somehow.
> >
> > The notion of "execute them somehow" that's used doesn't fit in with
> > the #! interpreter model. You aren't executing ebuilds via an
> > interpreter. You're performing an action that involves using the
> > data and code in an ebuild multiple times and in multiple different
> > ways, and that may also involve doing the same to an installed
> > package that is being replaced.
> >
>
> I do understand that; but the fact that the data are computed in an
> ugly turing-complete language complicates things.
>
> Did someone already propose replacing EAPI=foo with a function call
> akin to inherit?
>
> eapi 4
> inherit whatever
> ...
>
> the call to eapi() would then set $EAPI accordingly. If the ebuild is
> being executed directly, it could exit $EAPI; otherwise, it would
> continue normally. That would give us an interface to the variable,
> and we wouldn't need to know the EAPI ahead of time to do it as long
> as it's the first function called in the ebuild.
>
> This is of course isomorphic to requiring a specific EAPI=4 format,
> but does allow you to do stupid things like x=`seq 4 4`; eapi $x; if
> you want.
What advantage does it give us? We still can't change ebuild syntax in
global scope because bash will barf.
--
Best regards,
Michał Górny
|
|