QA support in Gentoo has been a fluid, amorphous goal over the project’s history.
Throughout the years, developers have invented their own scripts and extensions to work
around the limitations of official tooling. More recently, the relaxed standards have been
tightened up a fair amount, but it should be possible to achieve more results with further
improvement.
Bash is slow. Supporting a nested inheritance structure on top of bash makes it
even slower. Without metadata caches, processing ebuilds would be
extraordinarily more painful than it already is. Imagine the extra time it
would take to source all relevant ebuilds while resolving dependencies. Clearly
the importance of using a cache when dealing with a large corpus of highly
nested bash code cannot be understated.
One of Gentoo’s major weaknesses is the lack of a shared implementation that
natively supports bindings to other languages for core, specification-level
features such as dependency format parsing. Due to this deficiency, over the
years the same algorithms have been implemented in Python, C, Bash, Go, and
more at varying levels of quality and completeness.
In the previous post on extending bash, using builtins was mentioned as a way
to improve extensibility. Rather than writing native functions or spawning
external tools, pkgcraft implements all its bash command support using builtins
enabling it to achieve much lower overhead for EAPI related functionality.