aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-10 05:02:35 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-10 05:02:35 +0000
commit16d3438c8f38625bae945bd2169f54f76638b417 (patch)
tree365a09784776740613c505b5aec7c76f9b22f28a
parentf4571f3ac73ef18ebea460b34e49576fac2ad704 (diff)
downloadruby-16d3438c8f38625bae945bd2169f54f76638b417.tar.gz
version.c: separate Init_ruby_description
* version.c (Init_ruby_description): separate to initialize RUBY_DESCRIPTION constant according to mjit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--mjit.c9
-rw-r--r--ruby.c3
-rw-r--r--version.c24
3 files changed, 21 insertions, 15 deletions
diff --git a/mjit.c b/mjit.c
index 30de51794e..6652ff6186 100644
--- a/mjit.c
+++ b/mjit.c
@@ -1674,8 +1674,6 @@ system_tmpdir(void)
/* Minimum value for JIT cache size. */
#define MIN_CACHE_SIZE 10
-extern const char ruby_description_with_jit[];
-
/* Start MJIT worker. Return TRUE if worker is sucessfully started. */
static int
start_worker(void)
@@ -1702,8 +1700,6 @@ start_worker(void)
void
mjit_init(struct mjit_options *opts)
{
- VALUE rb_description;
-
mjit_opts = *opts;
mjit_enabled = TRUE;
mjit_call_p = TRUE;
@@ -1755,11 +1751,6 @@ mjit_init(struct mjit_options *opts)
rb_id_table_foreach(RCLASS_CONST_TBL(rb_cObject), valid_class_serials_add_i, NULL);
}
- /* Overwrites RUBY_DESCRIPTION constant */
- rb_const_remove(rb_cObject, rb_intern("RUBY_DESCRIPTION"));
- rb_description = rb_usascii_str_new_static(ruby_description_with_jit, strlen(ruby_description_with_jit));
- rb_define_global_const("RUBY_DESCRIPTION", rb_obj_freeze(rb_description));
-
/* Initialize worker thread */
start_worker();
}
diff --git a/ruby.c b/ruby.c
index d0f66dcd6d..a5464e1a0a 100644
--- a/ruby.c
+++ b/ruby.c
@@ -54,6 +54,8 @@
#include "mjit.h"
+void Init_ruby_description(void);
+
#ifndef HAVE_STDLIB_H
char *getenv();
#endif
@@ -1633,6 +1635,7 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
/* Using TMP_RUBY_PREFIX created by ruby_init_loadpath_safe(). */
mjit_init(&opt->mjit);
+ Init_ruby_description();
Init_enc();
lenc = rb_locale_encoding();
rb_enc_associate(rb_progname, lenc);
diff --git a/version.c b/version.c
index c5b70b13a7..fc7105f416 100644
--- a/version.c
+++ b/version.c
@@ -33,7 +33,7 @@ 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_jit[] = RUBY_DESCRIPTION_WITH(" +JIT");
+static const char ruby_description_with_jit[] = RUBY_DESCRIPTION_WITH(" +JIT");
const char ruby_copyright[] = RUBY_COPYRIGHT;
const char ruby_engine[] = "ruby";
@@ -67,11 +67,6 @@ Init_version(void)
*/
rb_define_global_const("RUBY_REVISION", MKINT(revision));
/*
- * The full ruby version string, like <tt>ruby -v</tt> prints'
- * This might be overwritten by mjit_init().
- */
- rb_define_global_const("RUBY_DESCRIPTION", MKSTR(description));
- /*
* The copyright string for ruby
*/
rb_define_global_const("RUBY_COPYRIGHT", MKSTR(copyright));
@@ -86,6 +81,23 @@ Init_version(void)
rb_define_global_const("RUBY_ENGINE_VERSION", (1 ? version : MKSTR(version)));
}
+void
+Init_ruby_description(void)
+{
+ VALUE description;
+
+ if (mjit_opts.on) {
+ description = MKSTR(description_with_jit);
+ }
+ else {
+ description = MKSTR(description);
+ }
+ /*
+ * The full ruby version string, like <tt>ruby -v</tt> prints
+ */
+ rb_define_global_const("RUBY_DESCRIPTION", description);
+}
+
/*! Prints the version information of the CRuby interpreter to stdout. */
void
ruby_show_version(void)