|
11 | 11 |
|
12 | 12 | # 1. GitHub version of MemoWise and the local source of MemoWise share a namespace
|
13 | 13 | # 2. memery & alt_memery share the namespace Memery
|
14 |
| -# 3. memoist & memoist3 share the namespace Memoist, and also share a load path for their version.rb files. |
15 | 14 | # This means we must `require: false` in `benchmarks/Gemfile` all, or all but one, of each of these duplicates,
|
16 | 15 | # or we take care to only load them in discrete Ruby versions,
|
17 | 16 | # to avoid a namespace collision before re-namespacing duplicates
|
|
38 | 37 | activation_code: "include AltMemery",
|
39 | 38 | memoization_method: :memoize,
|
40 | 39 | },
|
41 |
| - ), |
42 |
| - GemBench::Jersey.new( |
43 |
| - gem_name: "memoist3", |
44 |
| - trades: { |
45 |
| - "Memoist" => "MemoistThree" |
46 |
| - }, |
47 |
| - metadata: { |
48 |
| - activation_code: "extend MemoistThree", |
49 |
| - memoization_method: :memoize, |
50 |
| - }, |
51 |
| - ), |
52 |
| - GemBench::Jersey.new( |
53 |
| - gem_name: "memoist", |
54 |
| - trades: { |
55 |
| - "Memoist" => "MemoistOne" |
56 |
| - }, |
57 |
| - metadata: { |
58 |
| - activation_code: "extend MemoistOne", |
59 |
| - memoization_method: :memoize, |
60 |
| - }, |
61 |
| - ), |
| 40 | + ) |
62 | 41 | ].each(&:doff_and_don) # Copies, re-namespaces, and requires each gem.
|
63 | 42 |
|
64 | 43 | # We've already installed the `memo_wise` version on the `main` branch from GitHub in the
|
|
67 | 46 | # this branch against it.
|
68 | 47 | require_relative "../lib/memo_wise"
|
69 | 48 |
|
70 |
| -# Some gems do not yet work in Ruby 3 so we only require them if they're loaded |
71 |
| -# in the Gemfile. Gems re-namespaced by GemBench::Jersey will have already been loaded by now. |
72 |
| -%w[memery memoized memoizer ddmemoize dry-core]. |
73 |
| - each { |gem| require gem if Gem.loaded_specs.key?(gem) } |
74 |
| - |
75 |
| -# Some Gems Have Modules Which Need To Be Required Manually: |
76 |
| -require "dry/core/memoizable" if Gem.loaded_specs.key?("dry-core") |
77 |
| - |
78 |
| -# The VERSION constant does not get loaded above for these gems. |
79 |
| -%w[memoized memoizer]. |
80 |
| - each { |gem| require "#{gem}/version" if Gem.loaded_specs.key?(gem) } |
| 49 | +# Load gems that haven't been already loaded by GemBench::Jersey. |
| 50 | +require "dry-core" |
| 51 | +require "dry/core/memoizable" |
| 52 | +require "memery" |
| 53 | +require "memoist" |
| 54 | +require "short_circu_it" |
81 | 55 |
|
82 | 56 | class BenchmarkSuiteWithoutGC
|
83 | 57 | def warming(*)
|
@@ -122,11 +96,10 @@ def benchmark_name
|
122 | 96 | end
|
123 | 97 | benchmarked_gems.push(
|
124 | 98 | BenchmarkGem.new(MemoWise, "prepend MemoWise", :memo_wise, LOCAL_BENCHMARK_NAME),
|
125 |
| - (BenchmarkGem.new(DDMemoize, "DDMemoize.activate(self)", :memoize, "ddmemoize") if defined?(DDMemoize)), |
126 |
| - (BenchmarkGem.new(Dry::Core, "include Dry::Core::Memoizable", :memoize, "dry-core") if defined?(Dry::Core)), |
127 |
| - (BenchmarkGem.new(Memery, "include Memery", :memoize, "memery") if defined?(Memery)), |
128 |
| - (BenchmarkGem.new(Memoized, "include Memoized", :memoize, "memoized") if defined?(Memoized)), |
129 |
| - (BenchmarkGem.new(Memoizer, "include Memoizer", :memoize, "memoizer") if defined?(Memoizer)) |
| 99 | + BenchmarkGem.new(Dry::Core, "include Dry::Core::Memoizable", :memoize, "dry-core"), |
| 100 | + BenchmarkGem.new(Memery, "include Memery", :memoize, "memery"), |
| 101 | + BenchmarkGem.new(Memoist, "extend Memoist", :memoize, "memoist3"), |
| 102 | + BenchmarkGem.new(ShortCircuIt, "include ShortCircuIt", :memoize, "short_circu_it") |
130 | 103 | )
|
131 | 104 | BENCHMARK_GEMS = benchmarked_gems.compact.shuffle
|
132 | 105 |
|
|
0 commit comments