• [gentoo-dev] [PATCH 1/3] texlive-module.eclass: Speed up SRC_URI calcul

    From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Fri Jun 2 18:10:01 2023
    For texlive-latexextra-2021, SRC_URI calculation ran for 37 seconds
    here. Reduced it to 0.025 seconds (i.e. more than a factor 1000) by
    using bash arrays and parameter expansion instead of nested loops.

    Reported-by: Tim Harder <radhermit@gentoo.org>
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>
    ---
    eclass/texlive-module.eclass | 39 +++++++++++++++++++++---------------
    1 file changed, 23 insertions(+), 16 deletions(-)

    diff --git a/eclass/texlive-module.eclass b/eclass/texlive-module.eclass
    index fea4003c37a8..99a90d91654f 100644
    --- a/eclass/texlive-module.eclass
    +++ b/eclass/texlive-module.eclass
    @@ -99,32 +99,39 @@ TEXLIVE_DEVS=${TEXLIVE_DEVS:- zlogene dilfridge sam }
    BDEPEND="${COMMON_DEPEND}
    app-arch/xz-utils"

    -for i in ${TEXLIVE_MODULE_CONTENTS}; do
    - for tldev in ${TEXLIVE_DEVS}; do
    - SRC_URI="${SRC_URI} https://dev.gentoo.org/~${tldev}/distfiles/texlive/tl-${i}-${PV}.${PKGEXT}"
    - done +tl_uri_prefix="https://dev.gentoo.org/~@dev@/distfiles/texlive/tl-" +tl_uri_suffix="-${PV}.${PKGEXT}"
    +
    +tl_uri=( ${TEXLIVE_MODULE_CONTENTS} )
    +tl_uri=( "${tl_uri[@]/%/${tl_uri_suffix}}" )
    +for tldev in ${TEXLIVE_DEVS}; do
    + SRC_URI+=" ${tl_uri[@]/#/${tl_uri_prefix/@dev@/${tldev}}}"
    done

    # Forge doc SRC_URI
    -[[ -n ${TEXLIVE_MODULE_DOC_CONTENTS} ]] && SRC_URI="${SRC_URI} doc?