From eeb9ac36a2f313b450ad9b0f482f71878e75afc5 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 5 Nov 2019 20:33:32 +0000 Subject: [PATCH] keg: cache runtime_dependencies. --- Library/Homebrew/dev-cmd/bottle.rb | 1 + Library/Homebrew/formula_installer.rb | 1 + Library/Homebrew/keg.rb | 5 ++++- Library/Homebrew/test/spec_helper.rb | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb index 368fe15e86..d94752fa91 100644 --- a/Library/Homebrew/dev-cmd/bottle.rb +++ b/Library/Homebrew/dev-cmd/bottle.rb @@ -263,6 +263,7 @@ module Homebrew changed_files = keg.replace_locations_with_placeholders unless args.skip_relocation? + Keg.clear_cache Tab.clear_cache tab = Tab.for_keg(keg) original_tab = tab.dup diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 019d04289f..9c0092b37c 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -649,6 +649,7 @@ class FormulaInstaller # Update tab with actual runtime dependencies tab = Tab.for_keg(keg) + Keg.clear_cache Tab.clear_cache f_runtime_deps = formula.runtime_dependencies(read_from_tab: false) tab.runtime_dependencies = Tab.runtime_deps_hash(f_runtime_deps) diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 83ccdb3272..6414640bf4 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -6,6 +6,8 @@ require "lock_file" require "ostruct" class Keg + extend Cachable + class AlreadyLinkedError < RuntimeError def initialize(keg) super <<~EOS @@ -519,7 +521,8 @@ class Keg end def runtime_dependencies - tab.runtime_dependencies + Keg.cache[:runtime_dependencies] ||= {} + Keg.cache[:runtime_dependencies][path] ||= tab.runtime_dependencies end def aliases diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 52ec17548e..74dd62adde 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -145,6 +145,7 @@ RSpec.configure do |config| begin Homebrew.raise_deprecation_exceptions = true + Keg.clear_cache Tap.clear_cache FormulaInstaller.clear_attempted @@ -177,6 +178,7 @@ RSpec.configure do |config| end Tab.clear_cache + Keg.clear_cache FileUtils.rm_rf [ TEST_DIRECTORIES.map(&:children),