Skip to content

Commit 8bbf037

Browse files
authored
Merge pull request jruby#9228 from headius/jit_mode_version_string
Fix version output to reflect current runtime
2 parents 09e9ecb + f4a35b4 commit 8bbf037

5 files changed

Lines changed: 35 additions & 4 deletions

File tree

core/src/main/java/org/jruby/RubyGlobal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public static RubyHash createGlobalsAndENV(ThreadContext context, GlobalVariable
167167
Object.defineConstant(context, "RUBY_RELEASE_DATE", release);
168168
Object.defineConstant(context, "RUBY_PLATFORM", platform);
169169

170-
IRubyObject description = RubyString.newFString(runtime, OutputStrings.getVersionString());
170+
IRubyObject description = RubyString.newFString(runtime, OutputStrings.getVersionString(instanceConfig));
171171
Object.defineConstant(context, "RUBY_DESCRIPTION", description);
172172

173173
IRubyObject copyright = RubyString.newFString(runtime, OutputStrings.getCopyrightString());

core/src/main/java/org/jruby/embed/ScriptingContainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,7 @@ public void setJitMaxSize(int maxSize) {
10131013
* @return version information.
10141014
*/
10151015
public String getSupportedRubyVersion() {
1016-
return OutputStrings.getVersionString().trim();
1016+
return OutputStrings.getVersionString(getProvider().getRuntime().getInstanceConfig()).trim();
10171017
}
10181018

10191019
/**

core/src/main/java/org/jruby/main/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ private void doShowCopyright() {
511511

512512
private void doShowVersion() {
513513
if (config.isShowVersion()) {
514-
config.getOutput().println(OutputStrings.getVersionString());
514+
config.getOutput().println(OutputStrings.getVersionString(config));
515515
}
516516
}
517517

core/src/main/java/org/jruby/management/Config.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public Config(Ruby ruby) {
1616
}
1717

1818
public String getVersionString() {
19-
return OutputStrings.getVersionString();
19+
return OutputStrings.getVersionString(ruby.get().getInstanceConfig());
2020
}
2121

2222
public String getCopyrightString() {

core/src/main/java/org/jruby/util/cli/OutputStrings.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.jruby.util.cli;
22

33
import com.headius.options.Option;
4+
import org.jruby.RubyInstanceConfig;
45
import org.jruby.ext.rbconfig.RbConfigLibrary;
56
import org.jruby.platform.Platform;
67
import org.jruby.runtime.Constants;
@@ -139,6 +140,36 @@ public static String getPropertyHelp() {
139140
return sb.append(Option.formatOptions(Options.PROPERTIES)).toString();
140141
}
141142

143+
/**
144+
* Produce a version string based on the given configuration.
145+
*
146+
* @param config the configuraton
147+
* @return a version string representing the given configuraton
148+
*/
149+
public static String getVersionString(RubyInstanceConfig config) {
150+
return String.format(
151+
"jruby %s (%s) %s %s %s %s on %s%s%s [%s-%s]",
152+
Constants.VERSION,
153+
Constants.RUBY_VERSION,
154+
Constants.COMPILE_DATE,
155+
Constants.REVISION.substring(0, 10),
156+
SafePropertyAccessor.getProperty("java.vm.name", "Unknown JVM"),
157+
SafePropertyAccessor.getProperty("java.vm.version", "Unknown JVM version"),
158+
SafePropertyAccessor.getProperty("java.runtime.version", SafePropertyAccessor.getProperty("java.version", "Unknown version")),
159+
Options.COMPILE_INVOKEDYNAMIC.load() ? " +indy" : " -indy",
160+
config.getCompileMode().shouldJIT() ? " +jit" : " -jit",
161+
RbConfigLibrary.getArchitecture(),
162+
RbConfigLibrary.getOSName()
163+
);
164+
}
165+
166+
/**
167+
* Produce a version string containing only static values for JRuby and system properties.
168+
*
169+
* Use {@link #getVersionString(RubyInstanceConfig)} to reflect current runtime's parameters.
170+
*
171+
* @return a version string containing static information about the available JRuby version
172+
*/
142173
public static String getVersionString() {
143174
return String.format(
144175
"jruby %s (%s) %s %s %s %s on %s%s%s [%s-%s]",

0 commit comments

Comments
 (0)