On Thu, Mar 20, 2008 at 06:51:13AM +0000, Steve Long wrote:
> Rémi Cardona wrote:
> 
> > Steve Long a écrit :
> >> First and foremost to give an environment wherein people can write their
> >> installation scripts using the language they are most comfortable with.
> > 
> > If bash is not "easy" or straightforward enough for what you are trying
> > to achieve, then I'd say the package is broken (ie, hand-made configure
> > script, odd makefiles and whatnot). Better fix the package rather than
> > rewriting ebuilds, make the world a better place.
> >
> Heh, I'm fine with BASH believe it or not ;p nor do I have that much
> interest in the other scripting languages. I really just think it would
> make porting stuff to Gentoo a lot simpler for people who don't know Cbut
> do know their language of choice.
>  
> >> Secondly efficiency; in the case of a pbuild it could be run from within
> >> the PM; for something like a jbuild it would use the native tools and
> >> existing libraries like ANT. For hbuild it would tie into Cabal. While
> >> these may be used already, we go from PM -> BASH -> LangX. I'm just
> >> saying give the _option_ to leave out the BASH bit when you have mature
> >> tools in langX.
> > 
> > Care to back that up with any sort of figure or number? Is bash really
> > the bottleneck? For 90% of the tree's ebuilds, I would _gcc_ is the
> > bottleneck. Then I'd bet a big lump on libtool. Not portage, not bash.
> > 
> > But then again, I don't have any numbers to back that up either...
> >
> I don't have figures, but my understanding is that one of the major factors
> in pkgcore's speed (which *is* impressive, even if the UI isn't quite there
> yet) is that it doesn't reload bash for every phase. (The whole
> ebuild "daemon" or ebd thing.)

From a speed standpoint, EBD is only relevant if we're talking about 
metadata regeneration-
http://gentooexperimental.org/~ferringb/blog/archives/2005-03.html#e2005-03-05T16_59_39.txt

Generally speaking, if you're sourcing to get metadata (regardless of 
the underlying format), you're already screwed- cache exists for a 
reason and is massively faster to rely on.  Pkgcore's speed comes 
about from careful design + a massive amount of JIT, EBD is faster 
then the alternatives but that's *only* relevant for metadata 
regeneration.

Finally, bear in mind we're talking about build phase here- even if 
the pkg is just a straight unpack/copy, the bottleneck there isn't 
going to be the bash bits for setting up the env, it's going to be the 
unpack, copy, multiple QA checks that do repeated find's across ${D}, 
multiple file invocations for same file, etc.  Seriously- profile a 
merge sometime, even on non-compilations the large time slices are 
never bash.
~brian

Attachment: pgpXWz5ckvRsg.pgp
Description: PGP signature

Reply via email to