MJIT enabled should be displayed in the version string
Whether or not MJIT is enabled will probably be an important part of diagnosing bugs. It's also useful for when benchmarking - we often run benchmarks with
-v, and other implementations that have JITs give information about whether their JIT is enabled and with what basic options in this string.
For example TruffleRuby (Graal being the JIT)
truffleruby 0.31, like ruby 2.3.5 <GraalVM 0.31 1.8.0_151-b12 with Graal> [darwin-x86_64]
jruby 126.96.36.199 (2.3.3) 2017-09-06 8e1c115 Java HotSpot(TM) 64-Bit Server VM 25.144-b01 on 1.8.0_144-b01 +jit [darwin-x86_64]
CRuby could display the version string something like this
ruby 2.6.0dev (2018-02-07 jit-version 62270) [x86_64-darwin17] +JIT
I've attached a patch, but I wasn't sure how to get the information into the version module, and I wasn't sure if
rb_version was part of the API so I didn't want to modify that, so it may be a bit of a messy solution I'm afraid.
#1 [ruby-core:85495] Updated by shevegen (Robert A. Heiler) 7 days ago
I somewhat agree with the general notion of the suggestion. I am not
entirely sure whether it should also be added to the ruby version
string, but I also have no problem with it either, so I am fine either
For benchmarks, it may be useful to automatically add the information
whether mjit is enabled or not, but to also provide means to disable
that extra information when a ruby user wants to do so. Your suggestion
to do so not by default but via -v is also fine (in this case it would
mean that, if we omit "-v" there, we'd not get the information that
mjit is used, in benchmarks; correct me if I am wrong please, I just
want to define some of the behaviour).
Considering that mjit will be an important addition in 2018, the more
information and documentation that exists with it, the better, in my
opinion - perhaps even have a subsection on the official docs that
refer specifically to mjit and what it is doing (does not have to be
long, just a little page for people to get a headstart about mjit,
when they never heard about it before; not everyone follows all
changes or watches every video on ruby conferences :) ).
#3 [ruby-core:85499] Updated by Eregon (Benoit Daloze) 7 days ago
I think this makes sense and makes it easier to distinguish for benchmarks/tests/bug reports/etc.
I think the +JIT should be part of RUBY_DESCRIPTION for consistency.
But that seems a bit tricky, could you take a look at it, k0kubun (Takashi Kokubun)?