You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2017/03/06 21:44:03 UTC

[03/41] incubator-mynewt-newt git commit: MYNEWT-558 newt - depgraph dup nodes in split tgts

MYNEWT-558 newt - depgraph dup nodes in split tgts


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/a3ddaaab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/a3ddaaab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/a3ddaaab

Branch: refs/heads/mynewt_1_0_0
Commit: a3ddaaabbc25a1548c177604824c67eb58961206
Parents: 0369efc
Author: Christopher Collins <cc...@apache.org>
Authored: Mon Feb 6 17:34:12 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Mon Mar 6 13:29:06 2017 -0800

----------------------------------------------------------------------
 newt/builder/buildutil.go   |  4 ++--
 newt/builder/depgraph.go    | 48 ----------------------------------------
 newt/builder/targetbuild.go |  4 ++--
 newt/resolve/resolve.go     | 24 ++++++++------------
 4 files changed, 13 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/a3ddaaab/newt/builder/buildutil.go
----------------------------------------------------------------------
diff --git a/newt/builder/buildutil.go b/newt/builder/buildutil.go
index 15ab0c2..61e5b65 100644
--- a/newt/builder/buildutil.go
+++ b/newt/builder/buildutil.go
@@ -106,7 +106,7 @@ func logDepInfo(res *resolve.Resolution) {
 	}
 
 	// Log dependency graph.
-	dg, err := joinedDepGraph(res.Sets())
+	dg, err := depGraph(res.MasterSet)
 	if err != nil {
 		log.Debugf("Error while constructing dependency graph: %s\n",
 			err.Error())
@@ -115,7 +115,7 @@ func logDepInfo(res *resolve.Resolution) {
 	}
 
 	// Log reverse dependency graph.
-	rdg, err := joinedRevdepGraph(res.Sets())
+	rdg, err := revdepGraph(res.MasterSet)
 	if err != nil {
 		log.Debugf("Error while constructing reverse dependency graph: %s\n",
 			err.Error())

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/a3ddaaab/newt/builder/depgraph.go
----------------------------------------------------------------------
diff --git a/newt/builder/depgraph.go b/newt/builder/depgraph.go
index f38906c..6fc8a19 100644
--- a/newt/builder/depgraph.go
+++ b/newt/builder/depgraph.go
@@ -89,54 +89,6 @@ func revdepGraph(rs *resolve.ResolveSet) (DepGraph, error) {
 	return graphMapToDepGraph(revGm), nil
 }
 
-func mergeDepGraphs(graphs ...DepGraph) DepGraph {
-	gm := graphMap{}
-
-	for _, graph := range graphs {
-		for parent, children := range graph {
-			if gm[parent] == nil {
-				gm[parent] = map[*resolve.ResolveDep]struct{}{}
-			}
-
-			for _, child := range children {
-				graphMapAdd(gm, parent, child)
-			}
-		}
-	}
-
-	dg := graphMapToDepGraph(gm)
-
-	return dg
-}
-
-func joinedDepGraph(rss []*resolve.ResolveSet) (DepGraph, error) {
-	finalGraph := DepGraph{}
-
-	for _, rs := range rss {
-		graph, err := depGraph(rs)
-		if err != nil {
-			return nil, err
-		}
-		finalGraph = mergeDepGraphs(finalGraph, graph)
-	}
-
-	return finalGraph, nil
-}
-
-func joinedRevdepGraph(rss []*resolve.ResolveSet) (DepGraph, error) {
-	finalGraph := DepGraph{}
-
-	for _, rs := range rss {
-		graph, err := revdepGraph(rs)
-		if err != nil {
-			return nil, err
-		}
-		finalGraph = mergeDepGraphs(finalGraph, graph)
-	}
-
-	return finalGraph, nil
-}
-
 func depString(dep *resolve.ResolveDep) string {
 	s := fmt.Sprintf("%s", dep.Rpkg.Lpkg.FullName())
 	if dep.Api != "" {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/a3ddaaab/newt/builder/targetbuild.go
----------------------------------------------------------------------
diff --git a/newt/builder/targetbuild.go b/newt/builder/targetbuild.go
index 2bea6ef..64710db 100644
--- a/newt/builder/targetbuild.go
+++ b/newt/builder/targetbuild.go
@@ -669,7 +669,7 @@ func (t *TargetBuilder) CreateDepGraph() (DepGraph, error) {
 		return nil, err
 	}
 
-	return joinedDepGraph(t.res.Sets())
+	return depGraph(t.res.MasterSet)
 }
 
 func (t *TargetBuilder) CreateRevdepGraph() (DepGraph, error) {
@@ -677,5 +677,5 @@ func (t *TargetBuilder) CreateRevdepGraph() (DepGraph, error) {
 		return nil, err
 	}
 
-	return joinedRevdepGraph(t.res.Sets())
+	return revdepGraph(t.res.MasterSet)
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/a3ddaaab/newt/resolve/resolve.go
----------------------------------------------------------------------
diff --git a/newt/resolve/resolve.go b/newt/resolve/resolve.go
index c4a1d38..8a675c0 100644
--- a/newt/resolve/resolve.go
+++ b/newt/resolve/resolve.go
@@ -78,8 +78,12 @@ type Resolution struct {
 	UnsatisfiedApis map[string][]*ResolvePackage
 
 	LpkgRpkgMap map[*pkg.LocalPackage]*ResolvePackage
-	LoaderSet   *ResolveSet
-	AppSet      *ResolveSet
+
+	// Contains all dependencies; union of loader and app.
+	MasterSet *ResolveSet
+
+	LoaderSet *ResolveSet
+	AppSet    *ResolveSet
 }
 
 func newResolver(
@@ -112,25 +116,13 @@ func newResolution() *Resolution {
 		UnsatisfiedApis: map[string][]*ResolvePackage{},
 	}
 
+	r.MasterSet = &ResolveSet{Res: r}
 	r.LoaderSet = &ResolveSet{Res: r}
 	r.AppSet = &ResolveSet{Res: r}
 
 	return r
 }
 
-func (res *Resolution) Sets() []*ResolveSet {
-	rss := []*ResolveSet{}
-
-	if res.LoaderSet != nil {
-		rss = append(rss, res.LoaderSet)
-	}
-	if res.AppSet != nil {
-		rss = append(rss, res.AppSet)
-	}
-
-	return rss
-}
-
 func NewResolvePkg(lpkg *pkg.LocalPackage) *ResolvePackage {
 	return &ResolvePackage{
 		Lpkg:      lpkg,
@@ -542,6 +534,8 @@ func ResolveFull(
 
 	res.LpkgRpkgMap = r.pkgMap
 
+	res.MasterSet.Rpkgs = r.rpkgSlice()
+
 	// If there is no loader, then the set of all packages is just the app
 	// packages.  We already resolved the necessary dependency information when
 	// syscfg was calculated above.