From 73d2b8b4358f28a9f4d3d3eddbe67718fda7db99 Mon Sep 17 00:00:00 2001 From: Alejandro R Mosteo Date: Mon, 7 May 2018 00:14:04 +0200 Subject: [PATCH] Streamlined dependencies working, solver is greedy --- index/alire-index-xstrings.ads | 4 ++-- src/alire-containers.adb | 24 +++++++++++++++++++ src/alire-containers.ads | 10 ++++++++ src/alire-index.ads | 5 ++-- src/alire-releases.adb | 18 ++------------ .../alire-dependencies-vectors.ads | 0 src/{ => obsolete}/alire-platform.adb | 0 src/{ => obsolete}/alire-platform.ads | 0 .../alire-properties-dependencies.ads | 0 9 files changed, 41 insertions(+), 20 deletions(-) rename src/{ => obsolete}/alire-dependencies-vectors.ads (100%) rename src/{ => obsolete}/alire-platform.adb (100%) rename src/{ => obsolete}/alire-platform.ads (100%) rename src/{ => obsolete}/alire-properties-dependencies.ads (100%) diff --git a/index/alire-index-xstrings.ads b/index/alire-index-xstrings.ads index 979bab23..3061742f 100644 --- a/index/alire-index-xstrings.ads +++ b/index/alire-index-xstrings.ads @@ -26,8 +26,8 @@ package Alire.Index.XStrings is (V ("99"), Git (Repo, "40d3871dd644473aabac104666b4c83285b65ba6"), Dependencies => - GNATCOLL.Strings.Project /= GNATCOLL.Strings.V_20180425.Version and (GNATCOLL.Strings.V_20180425.Within_Major or - GNATCOLL.Slim.V_20180425.Within_Major)); + GNATCOLL.Slim.V_20180425.Within_Major) and + GNATCOLL.Slim.V_20180425.Within_Major); end Alire.Index.XStrings; diff --git a/src/alire-containers.adb b/src/alire-containers.adb index 98226989..d6ee436f 100644 --- a/src/alire-containers.adb +++ b/src/alire-containers.adb @@ -1,5 +1,29 @@ package body Alire.Containers is + ------------ + -- Insert -- + ------------ + + procedure Insert (Dst : in out Release_Map; Src : Release_Map) is + begin + for E of Src loop + Dst.Insert (E.Project, E); + end loop; + end Insert; + + --------------- + -- Inserting -- + --------------- + + function Inserting (Dst : Release_Map; Src : Release_Map) return Release_Map is + begin + return Result : Release_Map := Dst do + for E of Src loop + Result.Insert (E.Project, E); + end loop; + end return; + end Inserting; + --------------- -- Excluding -- --------------- diff --git a/src/alire-containers.ads b/src/alire-containers.ads index fd1299bd..7fcf0f35 100644 --- a/src/alire-containers.ads +++ b/src/alire-containers.ads @@ -1,8 +1,10 @@ +with Ada.Containers.Indefinite_Doubly_Linked_Lists; with Ada.Containers.Indefinite_Holders; with Ada.Containers.Indefinite_Ordered_Maps; with Ada.Containers.Indefinite_Ordered_Sets; with Alire.Conditional; +with Alire.Dependencies; with Alire.Milestones; with Alire.Releases; @@ -10,6 +12,10 @@ with Semantic_Versioning; package Alire.Containers with Preelaborate is + package Dependency_Lists Is new Ada.Containers.Indefinite_Doubly_Linked_Lists + (Dependencies.Dependency, + Dependencies."="); + package Milestone_Sets is new Ada.Containers.Indefinite_Ordered_Sets (Milestones.Milestone, Milestones."<", Milestones."="); @@ -43,6 +49,10 @@ package Alire.Containers with Preelaborate is function Including (Map : Release_Map; Release : Releases.Release) return Release_Map; -- Finds the current release (if existing) and replaces/adds the new Release + procedure Insert (Dst : in out Release_Map; Src : Release_Map); + + function Inserting (Dst : Release_Map; Src : Release_Map) return Release_Map; + function To_Dependencies (Map : Release_Map) return Conditional.Dependencies; diff --git a/src/alire-index.ads b/src/alire-index.ads index f37f684f..b2d8aa57 100644 --- a/src/alire-index.ads +++ b/src/alire-index.ads @@ -3,7 +3,8 @@ private with Alire_Early_Elaboration; pragma Unreferenced (Alire_Early_Elaborati with Alire.Actions; with Alire.Conditional; with Alire.Containers; -with Alire.Dependencies.Vectors; +with Alire.Dependencies; +-- with Alire.Dependencies.Vectors; with Alire.GPR; with Alire.Licensing; with Alire.Origins; @@ -235,7 +236,7 @@ package Alire.Index is ------------------ use all type Actions.Moments; - use all type Alire.Dependencies.Vectors.Vector; +-- use all type Alire.Dependencies.Vectors.Vector; use all type GPR.Value; use all type GPR.Value_Vector; use all type Licensing.Licenses; diff --git a/src/alire-releases.adb b/src/alire-releases.adb index a4232e72..1d6dce0a 100644 --- a/src/alire-releases.adb +++ b/src/alire-releases.adb @@ -1,4 +1,4 @@ -with Alire.Platform; +-- with Alire.Platform; with Alire.Platforms; with Alire.Projects; with Alire.Requisites.Booleans; @@ -357,21 +357,7 @@ package body Alire.Releases is ------------- function Version (R : Release) return Semantic_Versioning.Version is - begin - if R.Origin.Is_Native then - declare - Native_Version : constant String := Platform.Current.Package_Version (R.Origin); - begin - if Native_Version /= "" then - return New_Version (Image (R.Version) & "+" & Native_Version); - else - return R.Version; - end if; - end; - else - return R.Version; - end if; - end Version; + (R.Version); -------------- -- Whenever -- diff --git a/src/alire-dependencies-vectors.ads b/src/obsolete/alire-dependencies-vectors.ads similarity index 100% rename from src/alire-dependencies-vectors.ads rename to src/obsolete/alire-dependencies-vectors.ads diff --git a/src/alire-platform.adb b/src/obsolete/alire-platform.adb similarity index 100% rename from src/alire-platform.adb rename to src/obsolete/alire-platform.adb diff --git a/src/alire-platform.ads b/src/obsolete/alire-platform.ads similarity index 100% rename from src/alire-platform.ads rename to src/obsolete/alire-platform.ads diff --git a/src/alire-properties-dependencies.ads b/src/obsolete/alire-properties-dependencies.ads similarity index 100% rename from src/alire-properties-dependencies.ads rename to src/obsolete/alire-properties-dependencies.ads