diff --git a/basic_benchmark.rb b/basic_benchmark.rb
index 65f5520fb..0d4da3bde 100755
--- a/basic_benchmark.rb
+++ b/basic_benchmark.rb
@@ -46,6 +46,8 @@
MJIT_PER_OS_OPTS = SETARCH_OPTS
TRUFFLE_PER_OS_OPTS = {}
+BASELINE_RUBY_BUILD = "ruby-3.3.1"
+
# These are "config roots" because they define a configuration
# in a non-platform-specific way. They're really several *variables*
# that partially define a configuration.
@@ -96,8 +98,13 @@
opts: MJIT_ENABLED_OPTS + [ "--mjit-verbose=1" ],
per_os_prefix: MJIT_PER_OS_OPTS,
},
+ "prev_ruby_no_jit" => {
+ build: BASELINE_RUBY_BUILD,
+ opts: NO_JIT_OPTS,
+ per_os_prefix: CRUBY_PER_OS_OPTS,
+ },
"prev_ruby_yjit" => {
- build: "ruby-3.3.1",
+ build: BASELINE_RUBY_BUILD,
opts: YJIT_ENABLED_OPTS,
per_os_prefix: YJIT_PER_OS_OPTS,
},
@@ -143,7 +150,7 @@
min_bench_itrs: DEFAULT_MIN_BENCH_ITRS,
min_bench_time: DEFAULT_MIN_BENCH_TIME,
}
-DEFAULT_CONFIGS = %w(yjit_stats prod_ruby_with_yjit prod_ruby_no_jit prev_ruby_yjit)
+DEFAULT_CONFIGS = %w(yjit_stats prod_ruby_with_yjit prod_ruby_no_jit prev_ruby_yjit prev_ruby_no_jit)
configs_to_test = DEFAULT_CONFIGS.map { |config| "#{YJITMetrics::PLATFORM}_#{config}"}
bench_data = nil
when_error = :report
diff --git a/lib/yjit-metrics/bench-results.rb b/lib/yjit-metrics/bench-results.rb
index 1a3d9ee2f..3c1a2abe5 100644
--- a/lib/yjit-metrics/bench-results.rb
+++ b/lib/yjit-metrics/bench-results.rb
@@ -194,6 +194,7 @@ def platforms
"prod_ruby_with_mjit" => "MJIT",
"ruby_30_with_mjit" => "MJIT-3.0",
"prod_ruby_no_jit" => "CRuby
- Tested Ruby version for YJIT and No-JIT: <%= @ruby_metadata_by_config[@with_yjit_config]["RUBY_DESCRIPTION"] %>
+ Tested Ruby version for development CRuby and YJIT: <%= @ruby_metadata_by_config[@with_yjit_config]["RUBY_DESCRIPTION"] %>
<% if @with_prev_yjit_config %>
- Tested Ruby version for Ruby 3.3 YJIT: <%= @ruby_metadata_by_config[@with_prev_yjit_config]["RUBY_DESCRIPTION"] %>
+ Tested Ruby version for stable CRuby and YJIT: <%= @ruby_metadata_by_config[@with_prev_yjit_config]["RUBY_DESCRIPTION"] %>
<% end %>
<% if @with_mjit_latest_config %>
Tested Ruby version for Ruby latest MJIT: <%= @ruby_metadata_by_config[@with_mjit_latest_config]["RUBY_DESCRIPTION"] %>
diff --git a/lib/yjit-metrics/report_types/bloggable_speed_report.rb b/lib/yjit-metrics/report_types/bloggable_speed_report.rb
index 18ca8a32b..9bceaa2a1 100644
--- a/lib/yjit-metrics/report_types/bloggable_speed_report.rb
+++ b/lib/yjit-metrics/report_types/bloggable_speed_report.rb
@@ -44,6 +44,7 @@ def look_up_data_by_ruby(only_platforms: YJITMetrics::PLATFORMS, in_runs: false)
raise "No data files for platform(s) #{only_platforms.inspect} in #{@config_names}!" if config_names.empty?
@with_yjit_config = exactly_one_config_with_name(config_names, "prod_ruby_with_yjit", "with-YJIT")
+ @prev_no_jit_config = exactly_one_config_with_name(config_names, "prev_ruby_no_jit", "prev-CRuby", none_okay: true)
@with_prev_yjit_config = exactly_one_config_with_name(config_names, "prev_ruby_yjit", "prev-YJIT", none_okay: true)
@with_mjit30_config = exactly_one_config_with_name(config_names, "ruby_30_with_mjit", "with-MJIT3.0", none_okay: true)
@with_mjit_latest_config = exactly_one_config_with_name(config_names, "prod_ruby_with_mjit", "with-MJIT", none_okay: true)
@@ -52,6 +53,7 @@ def look_up_data_by_ruby(only_platforms: YJITMetrics::PLATFORMS, in_runs: false)
# Order matters here - we push No-JIT, then MJIT(s), then YJIT and finally TruffleRuby when present
@configs_with_human_names = [
+ ["CRuby