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

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
This commit is contained in:
nobu 2018-08-10 05:02:35 +00:00
parent a40f12b77c
commit 6c70fede0c
3 changed files with 21 additions and 15 deletions

9
mjit.c
View file

@ -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();
}

3
ruby.c
View file

@ -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);

View file

@ -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";
@ -66,11 +66,6 @@ Init_version(void)
* The SVN revision for this ruby.
*/
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
*/
@ -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)