1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

When YJIT is not built, hide options and use MJIT for --jit

YJIT is now a build-time opt-in so on platforms that YJIT could support
it could still be unavailable due to user discretion. Use MJIT for --jit
and don't display YJIT related command line options in --help when YJIT
is not included in the build.
This commit is contained in:
Alan Wu 2022-06-23 18:12:25 -04:00
parent 1ccdb1a251
commit eb1a84a9c3

12
ruby.c
View file

@ -111,7 +111,7 @@ void rb_warning_category_update(unsigned int mask, unsigned int bits);
enum feature_flag_bits {
EACH_FEATURES(DEFINE_FEATURE, COMMA),
feature_debug_flag_first,
#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P
#if defined(MJIT_FORCE_ENABLE) || !YJIT_BUILD
DEFINE_FEATURE(jit) = feature_mjit,
#else
DEFINE_FEATURE(jit) = feature_yjit,
@ -247,7 +247,7 @@ usage(const char *name, int help, int highlight, int columns)
#define M(shortopt, longopt, desc) RUBY_OPT_MESSAGE(shortopt, longopt, desc)
#if YJIT_SUPPORTED_P
#if YJIT_BUILD
# define PLATFORM_JIT_OPTION "--yjit"
#else
# define PLATFORM_JIT_OPTION "--mjit"
@ -277,7 +277,7 @@ usage(const char *name, int help, int highlight, int columns)
#if USE_MJIT
M("--mjit", "", "enable C compiler-based JIT compiler (experimental)"),
#endif
#if YJIT_SUPPORTED_P
#if YJIT_BUILD
M("--yjit", "", "enable in-process JIT compiler (experimental)"),
#endif
M("-h", "", "show this message, --help for more info"),
@ -311,7 +311,7 @@ usage(const char *name, int help, int highlight, int columns)
#if USE_MJIT
M("mjit", "", "C compiler-based JIT compiler (default: disabled)"),
#endif
#if YJIT_SUPPORTED_P
#if YJIT_BUILD
M("yjit", "", "in-process JIT compiler (default: disabled)"),
#endif
};
@ -322,7 +322,7 @@ usage(const char *name, int help, int highlight, int columns)
#if USE_MJIT
extern const struct ruby_opt_message mjit_option_messages[];
#endif
#if YJIT_SUPPORTED_P
#if YJIT_BUILD
static const struct ruby_opt_message yjit_options[] = {
#if YJIT_STATS
M("--yjit-stats", "", "Enable collecting YJIT statistics"),
@ -364,7 +364,7 @@ usage(const char *name, int help, int highlight, int columns)
for (i = 0; mjit_option_messages[i].str; ++i)
SHOW(mjit_option_messages[i]);
#endif
#if YJIT_SUPPORTED_P
#if YJIT_BUILD
printf("%s""YJIT options (experimental):%s\n", sb, se);
for (i = 0; i < numberof(yjit_options); ++i)
SHOW(yjit_options[i]);