commit:     8478835a7fc4226bcbf6c79475e1ba6d41d42298
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 14 20:47:35 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jun 15 21:13:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8478835a

ruby-ng.eclass: use shopt directly, not via estack.eclass

ulm points out that estack.eclass is particularly inefficient (although
it'll get slightly better once https://github.com/gentoo/gentoo/pull/31437
is fixed).

Let's just manually roll it like llvm.eclass does.

Bug: https://bugs.gentoo.org/908465
Signed-off-by: Sam James <sam <AT> gentoo.org>

 eclass/ruby-ng.eclass | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
index 14f4414337d6..2f14c22ace37 100644
--- a/eclass/ruby-ng.eclass
+++ b/eclass/ruby-ng.eclass
@@ -75,7 +75,7 @@ if [[ -z ${_RUBY_NG_ECLASS} ]]; then
 _RUBY_NG_ECLASS=1
 
 [[ ${EAPI} == 6 ]] && inherit eqawarn toolchain-funcs
-inherit estack multilib ruby-utils
+inherit multilib ruby-utils
 
 # S is no longer automatically assigned when it doesn't exist.
 S="${WORKDIR}"
@@ -163,7 +163,8 @@ _RUBY_ATOMS_SAMELIB_RESULT=""
 _ruby_atoms_samelib() {
        _RUBY_ATOMS_SAMELIB_RESULT=""
 
-       eshopts_push -o noglob
+       local shopt_save=$(shopt -p -o noglob)
+       set -f
        local token
        local atoms=" RUBYTARGET? ("
        for token in $*; do
@@ -177,7 +178,7 @@ _ruby_atoms_samelib() {
                esac
        done
        atoms+=" ) "
-       eshopts_pop
+       ${shopt_save}
 
        _ruby_set_globals_invalidate_if_stale
        local _ruby_implementation

Reply via email to