concretizer: optimized loop on node platforms
We can speed-up the computation by avoiding a double loop in a cardinality constraint and enforcing the rule instead as an integrity constraint.
This commit is contained in:
		 Massimiliano Culpo
					Massimiliano Culpo
				
			
				
					committed by
					
						 Tamara Dahlgren
						Tamara Dahlgren
					
				
			
			
				
	
			
			
			 Tamara Dahlgren
						Tamara Dahlgren
					
				
			
						parent
						
							cb76c5a90d
						
					
				
				
					commit
					4bbc6eec51
				
			| @@ -362,7 +362,7 @@ variant_default_value(Package, Variant, Value) | |||||||
| % when assigned a value. | % when assigned a value. | ||||||
| auto_variant("dev_path"). | auto_variant("dev_path"). | ||||||
| auto_variant("patches"). | auto_variant("patches"). | ||||||
| variant(Package, "dev_path") | variant(Package, Variant) | ||||||
|   :- variant_set(Package, Variant, _), auto_variant(Variant). |   :- variant_set(Package, Variant, _), auto_variant(Variant). | ||||||
| variant_single_value(Package, "dev_path") | variant_single_value(Package, "dev_path") | ||||||
|   :- variant_set(Package, "dev_path", _). |   :- variant_set(Package, "dev_path", _). | ||||||
| @@ -381,9 +381,9 @@ variant_single_value(Package, "dev_path") | |||||||
| %----------------------------------------------------------------------------- | %----------------------------------------------------------------------------- | ||||||
| % Platform semantics | % Platform semantics | ||||||
| %----------------------------------------------------------------------------- | %----------------------------------------------------------------------------- | ||||||
|  |  | ||||||
| % one platform per node | % one platform per node | ||||||
| 1 { node_platform(Package, Platform) : node_platform(Packagee, Platform) } 1 | :- M = #count { Platform : node_platform(Package, Platform) }, M !=1, node(Package). | ||||||
|   :- node(Package). |  | ||||||
|  |  | ||||||
| % if no platform is set, fall back to the default | % if no platform is set, fall back to the default | ||||||
| node_platform(Package, Platform) | node_platform(Package, Platform) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user