Keg requires OpenStruct
Optimization: avoid repeated interpolation in regexp

Benchmark.bm do |b|
  b.report("before") do
    100_000.times { /(\.#{MacOS.cat}\.bottle\.(\d+\.)?tar\.gz)$/ }
  end
  b.report("after ") do
    100_000.times { /(\.#{MacOS.cat}\.bottle\.(\d+\.)?tar\.gz)$/o }
  end
end
            user     system      total        real
before 35.400000   0.140000  35.540000 ( 35.619674)
after   0.020000   0.000000   0.020000 (  0.016662)
Don't use Pathname#/ in performance-critical code

This method (well, really, #join) is *twice* as slow as simple
concatenation, and shouldn't really be used at all in non-Formula code.
Avoid slow operations in FormulaPin#initialize

A FormulaPin object is created every time Formula is instantiated, so
don't do filesystem operations or Pathname concatenation eagerly.
Performance fix for Pathname#chop_basename

This is an internal method, but is called a bunch of times in
performance-critical codepaths, and is ultra slow because the constant
is interpoplated into the Regexp each time the method is called.

Alas, this has been fixed in Ruby 1.9+.
Performance fix for Pathname#prepend_prefix

See 05a456c231dc6da7cb0f7c70cb21feaf9a0d803c; same story.
Style nit
Avoid repeated interpolation here too
jenkins 1.511

Closes #19206.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
mpfr 3.1.2

Closes #19162.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
mpfr 3.1.2 bottles.