[前][次][番号順一覧][スレッド一覧]

ruby-changes:70885

From: Nobuyoshi <ko1@a...>
Date: Sat, 15 Jan 2022 18:56:13 +0900 (JST)
Subject: [ruby-changes:70885] d853a7886e (master): Define the default JIT feature bit

https://git.ruby-lang.org/ruby.git/commit/?id=d853a7886e

From d853a7886ef63b7237ab2bce42eb99c26bc1eccb Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Wed, 12 Jan 2022 17:53:52 +0900
Subject: Define the default JIT feature bit

---
 ruby.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/ruby.c b/ruby.c
index 02d16c51994..04e4b1d9d3f 100644
--- a/ruby.c
+++ b/ruby.c
@@ -105,7 +105,7 @@ void rb_warning_category_update(unsigned int mask, unsigned int bits); https://github.com/ruby/ruby/blob/trunk/ruby.c#L105
     SEP \
     X(mjit) \
     SEP \
-    X(yjit)
+    X(yjit) \
     /* END OF FEATURES */
 #define EACH_DEBUG_FEATURES(X, SEP) \
     X(frozen_string_literal) \
@@ -116,6 +116,11 @@ void rb_warning_category_update(unsigned int mask, unsigned int bits); https://github.com/ruby/ruby/blob/trunk/ruby.c#L116
 enum feature_flag_bits {
     EACH_FEATURES(DEFINE_FEATURE, COMMA),
     feature_debug_flag_first,
+#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P
+    DEFINE_FEATURE(jit) = feature_mjit,
+#else
+    DEFINE_FEATURE(jit) = feature_yjit,
+#endif
     feature_debug_flag_begin = feature_debug_flag_first - 1,
     EACH_DEBUG_FEATURES(DEFINE_DEBUG_FEATURE, COMMA),
     feature_flag_count
@@ -976,20 +981,12 @@ feature_option(const char *str, int len, void *arg, const unsigned int enable) https://github.com/ruby/ruby/blob/trunk/ruby.c#L981
     if (NAME_MATCH_P(#bit, str, len)) {set |= mask = FEATURE_BIT(bit); FEATURE_FOUND;}
     EACH_FEATURES(SET_FEATURE, ;);
     if (NAME_MATCH_P("jit", str, len)) { // This allows you to cancel --jit
-#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P
-        set |= mask = FEATURE_BIT(mjit);
-#else
-        set |= mask = FEATURE_BIT(yjit);
-#endif
+        set |= mask = FEATURE_BIT(jit);
         goto found;
     }
     if (NAME_MATCH_P("all", str, len)) {
-        // YJIT and MJIT cannot be enabled at the same time. We enable only YJIT for --enable=all.
-#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P
-        mask &= ~(FEATURE_BIT(yjit));
-#else
-        mask &= ~(FEATURE_BIT(mjit));
-#endif
+        // YJIT and MJIT cannot be enabled at the same time. We enable only one for --enable=all.
+        mask &= ~(FEATURE_BIT(yjit) | FEATURE_BIT(mjit)) | FEATURE_BIT(jit);
         goto found;
     }
 #if AMBIGUOUS_FEATURE_NAMES
@@ -1543,10 +1540,8 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) https://github.com/ruby/ruby/blob/trunk/ruby.c#L1540
             else if (strcmp("jit", s) == 0) {
 #if !USE_MJIT
                 rb_warn("Ruby was built without JIT support");
-#elif defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P
-                FEATURE_SET(opt->features, FEATURE_BIT(mjit));
 #else
-                FEATURE_SET(opt->features, FEATURE_BIT(yjit));
+                FEATURE_SET(opt->features, FEATURE_BIT(jit));
 #endif
             }
             else if (is_option_with_optarg("mjit", '-', true, false, false)) {
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]