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.