diff options
author | Samuel E. Giddins <segiddins@segiddins.me> | 2015-01-31 18:17:23 -0800 |
---|---|---|
committer | Samuel E. Giddins <segiddins@segiddins.me> | 2015-01-31 18:28:33 -0800 |
commit | 46b6c11ebd07b24075350ee88d6947134091639c (patch) | |
tree | a5ee7ebf23e100ca1c1f1bd94d4bfb19bfc53f91 /lib/bundler | |
parent | f654ac8d53fb31db747baab61c72dfa4390b8eb2 (diff) | |
download | bundler-46b6c11ebd07b24075350ee88d6947134091639c.tar.gz |
[Resolver] Update Molinillo to branch with swapping
Diffstat (limited to 'lib/bundler')
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/dependency_graph.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/dependency_graph.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/errors.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/errors.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/gem_metadata.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/gem_metadata.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/specification_provider.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/specification_provider.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/ui.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/ui.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolution.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolution.rb) | 16 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolver.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolver.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/state.rb (renamed from lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/state.rb) | 0 | ||||
-rw-r--r-- | lib/bundler/vendored_molinillo.rb | 2 |
10 files changed, 15 insertions, 3 deletions
diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo.rb index bf740e48..bf740e48 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/dependency_graph.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/dependency_graph.rb index 4ee5708a..4ee5708a 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/dependency_graph.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/dependency_graph.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/errors.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/errors.rb index b828d0c2..b828d0c2 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/errors.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/errors.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/gem_metadata.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/gem_metadata.rb index 880ea9b6..880ea9b6 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/gem_metadata.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/gem_metadata.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/specification_provider.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/specification_provider.rb index 79a85e77..79a85e77 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/specification_provider.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/specification_provider.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/ui.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/ui.rb index 097c0264..097c0264 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/modules/ui.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/modules/ui.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolution.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolution.rb index 13cb3799..376e4d4e 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolution.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolution.rb @@ -229,7 +229,7 @@ module Bundler::Molinillo # `requirement`. def find_state_for(requirement) return nil unless requirement - states.find { |i| requirement == i.requirement } + states.reverse_each.find { |i| requirement == i.requirement && i.is_a?(DependencyState) } end # @return [Boolean] whether or not the given state has any possibilities @@ -320,12 +320,24 @@ module Bundler::Molinillo new_requirements = requirements.dup push_state_for_requirements(new_requirements) else + return if attempt_to_swap_possibility create_conflict debug(depth) { "Unsatisfied by existing spec (#{existing_node.payload})" } unwind_for_conflict end end + # Attempts to swp the current {#possibility} with the already-activated + # spec with the given name + # @return [Boolean] Whether the possibility was swapped into {#activated} + def attempt_to_swap_possibility + swapped = activated.dup + swapped.vertex_named(name).payload = possibility + return unless swapped.vertex_named(name).requirements. + all? { |r| requirement_satisfied_by?(r, swapped, possibility) } + attempt_to_activate_new_spec + end + # Attempts to activate the current {#possibility} (given that it hasn't # already been activated) # @return [void] @@ -383,7 +395,7 @@ module Bundler::Molinillo # @param [Array] new_requirements # @return [void] def push_state_for_requirements(new_requirements) - new_requirements = sort_dependencies(new_requirements, activated, conflicts) + new_requirements = sort_dependencies(new_requirements.uniq, activated, conflicts) new_requirement = new_requirements.shift states.push DependencyState.new( new_requirement ? name_for(new_requirement) : '', diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolver.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolver.rb index 7cfe914d..7cfe914d 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/resolver.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/resolver.rb diff --git a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/state.rb b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/state.rb index 8e394f86..8e394f86 100644 --- a/lib/bundler/vendor/Molinillo-0.2.0/lib/molinillo/state.rb +++ b/lib/bundler/vendor/Molinillo-seg-bundler/lib/molinillo/state.rb diff --git a/lib/bundler/vendored_molinillo.rb b/lib/bundler/vendored_molinillo.rb index d05d3450..5e1a4256 100644 --- a/lib/bundler/vendored_molinillo.rb +++ b/lib/bundler/vendored_molinillo.rb @@ -1,4 +1,4 @@ -vendor = File.expand_path('../vendor/Molinillo-0.2.0/lib', __FILE__) +vendor = File.expand_path('../vendor/Molinillo-seg-bundler/lib', __FILE__) loaded = $:.include?(vendor) $:.unshift(vendor) unless loaded require 'molinillo' |