lang: Initial implementation of the mgmt language

This is an initial implementation of the mgmt language. It is a
declarative (immutable) functional, reactive, domain specific
programming language. It is intended to be a language that is:

* safe
* powerful
* easy to reason about

With these properties, we hope this language, and the mgmt engine will
allow you to model the real-time systems that you'd like to automate.

This also includes a number of other associated changes. Sorry for the
large size of this patch.
This commit is contained in:
James Shubin
2018-01-20 08:09:29 -05:00
parent 1c8c0b2915
commit b19583e7d3
237 changed files with 25256 additions and 743 deletions

View File

@@ -639,6 +639,19 @@ func TestGraphCmp1(t *testing.T) {
}
}
// FIXME: i think we should allow equivalent elements in the graph to compare...
// FIXME: currently this fails :(
//func TestGraphCmp2(t *testing.T) {
// g1 := &Graph{}
// g2 := &Graph{}
// g1.AddVertex(NV("v1"), NV("v1"))
// g2.AddVertex(NV("v1"), NV("v1"))
//
// if err := g1.GraphCmp(g2, strVertexCmpFn, strEdgeCmpFn); err != nil {
// t.Errorf("should have no error during GraphCmp, but got: %v", err)
// }
//}
func TestSort0(t *testing.T) {
vs := []Vertex{}
s := Sort(vs)