Show whether MicroJIT is enabled in the version string

This commit is contained in:
Alan Wu 2020-10-05 06:56:33 -04:00
Родитель 12283c58da
Коммит 726bdd4d35
2 изменённых файлов: 29 добавлений и 6 удалений

4
ruby.c
Просмотреть файл

@ -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");
if (opt->features.set & FEATURE_BIT(ujit))
rb_ujit_init();
#if USE_MJIT
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() */
@ -1869,8 +1871,6 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
/* Using TMP_RUBY_PREFIX created by ruby_init_loadpath(). */
mjit_init(&opt->mjit);
#endif
if (opt->features.set & FEATURE_BIT(ujit))
rb_ujit_init();
Init_ruby_description();
Init_enc();

Просмотреть файл

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