• [gentoo-dev] [PATCH 05/11] ruby-ng.eclass: optimize: avoid subshells fo

    From Sam James@21:1/5 to All on Thu Jun 15 18:00:01 2023
    We go from 2.5s -> 1.9s to source dev-ruby/*.

    Bug: https://bugs.gentoo.org/908465
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/ruby-ng.eclass | 36 ++++++++++++++++++++++++++++--------
    1 file changed, 28 insertions(+), 8 deletions(-)

    diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
    index cf66fcec2f05d..6c5666ddeabb0 100644
    --- a/eclass/ruby-ng.eclass
    +++ b/eclass/ruby-ng.eclass
    @@ -325,9 +325,20 @@ ruby_get_use_implementations() {
    ruby_get_use_targets() {
    debug-print-function ${FUNCNAME} "${@}"

    - _ruby_get_all_impls
    + _ruby_get_use_targets
    + echo "${_RUBY_GET_USE_TARGETS}"
    +}
    +
    +# @FUNCTION: _ruby_get_use_targets
    +# @INTERNAL
    +# @DESCRIPTION:
    +# Gets an array of ruby use targets that the ebuild sets +_RUBY_GET_USE_TARGETS=""
    +_ruby_get_use_targets() {
    + debug-print-function ${FUNCNAME} "${@}"
    +
    local impls="${_RUBY_GET_ALL_IMPLS[@]}"
    - echo "${impls//ruby/ruby_targets_ruby}"
    + _RUBY_GET_USE_TARGETS="${impls//ruby/ruby_targets_ruby}"
    }

    # @FUNCTION: ruby_implementations_depend
    @@ -346,27 +357,36 @@ ruby_get_use_targets() {
    # ...
    # DEPEND="ruby? ( $(ruby_implementations_