Show whether MicroJIT is enabled in the version string

This commit is contained in:
Alan Wu 2020-10-05 06:56:33 -04:00
parent 12283c58da
commit 726bdd4d35
2 changed files with 29 additions and 6 deletions

4
ruby.c
View File

@ -1803,6 +1803,8 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
*/ */
rb_warning("-K is specified; it is for 1.8 compatibility and may cause odd behavior"); rb_warning("-K is specified; it is for 1.8 compatibility and may cause odd behavior");
if (opt->features.set & FEATURE_BIT(ujit))
rb_ujit_init();
#if USE_MJIT #if USE_MJIT
if (opt->features.set & FEATURE_BIT(jit)) { if (opt->features.set & FEATURE_BIT(jit)) {
opt->mjit.on = TRUE; /* set mjit.on for ruby_show_version() API and check to call mjit_init() */ opt->mjit.on = TRUE; /* set mjit.on for ruby_show_version() API and check to call mjit_init() */
@ -1869,8 +1871,6 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
/* Using TMP_RUBY_PREFIX created by ruby_init_loadpath(). */ /* Using TMP_RUBY_PREFIX created by ruby_init_loadpath(). */
mjit_init(&opt->mjit); mjit_init(&opt->mjit);
#endif #endif
if (opt->features.set & FEATURE_BIT(ujit))
rb_ujit_init();
Init_ruby_description(); Init_ruby_description();
Init_enc(); Init_enc();

View File

@ -13,6 +13,7 @@
#include "version.h" #include "version.h"
#include "vm_core.h" #include "vm_core.h"
#include "mjit.h" #include "mjit.h"
#include "ujit_compile.h"
#include <stdio.h> #include <stdio.h>
#ifndef EXIT_SUCCESS #ifndef EXIT_SUCCESS
@ -41,7 +42,9 @@ const char ruby_release_date[] = RUBY_RELEASE_DATE;
const char ruby_platform[] = RUBY_PLATFORM; const char ruby_platform[] = RUBY_PLATFORM;
const int ruby_patchlevel = RUBY_PATCHLEVEL; const int ruby_patchlevel = RUBY_PATCHLEVEL;
const char ruby_description[] = RUBY_DESCRIPTION_WITH(""); const char ruby_description[] = RUBY_DESCRIPTION_WITH("");
const char ruby_description_with_ujit[] = RUBY_DESCRIPTION_WITH(" +UJIT");
static const char ruby_description_with_jit[] = RUBY_DESCRIPTION_WITH(" +JIT"); static const char ruby_description_with_jit[] = RUBY_DESCRIPTION_WITH(" +JIT");
static const char ruby_description_with_both_jits[] = RUBY_DESCRIPTION_WITH(" +JIT +UJIT");
const char ruby_copyright[] = RUBY_COPYRIGHT; const char ruby_copyright[] = RUBY_COPYRIGHT;
const char ruby_engine[] = "ruby"; const char ruby_engine[] = "ruby";
@ -102,10 +105,20 @@ Init_ruby_description(void)
VALUE description; VALUE description;
if (MJIT_OPTS_ON) { if (MJIT_OPTS_ON) {
description = MKSTR(description_with_jit); if (rb_ujit_enabled_p()) {
description = MKSTR(description_with_both_jits);
}
else {
description = MKSTR(description_with_jit);
}
} }
else { else {
description = MKSTR(description); if (rb_ujit_enabled_p()) {
description = MKSTR(description_with_ujit);
}
else {
description = MKSTR(description);
}
} }
/* /*
@ -118,10 +131,20 @@ void
ruby_show_version(void) ruby_show_version(void)
{ {
if (MJIT_OPTS_ON) { if (MJIT_OPTS_ON) {
PRINT(description_with_jit); if (rb_ujit_enabled_p()) {
PRINT(description_with_both_jits);
}
else {
PRINT(description_with_jit);
}
} }
else { else {
PRINT(description); if (rb_ujit_enabled_p()) {
PRINT(description_with_ujit);
}
else {
PRINT(description);
}
} }
#ifdef RUBY_LAST_COMMIT_TITLE #ifdef RUBY_LAST_COMMIT_TITLE
fputs("last_commit=" RUBY_LAST_COMMIT_TITLE, stdout); fputs("last_commit=" RUBY_LAST_COMMIT_TITLE, stdout);