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

@@ -150,7 +150,7 @@ func (obj *MGraph) Start(first bool) { // start or continue
unpause = false // doesn't need unpausing on first start
obj.wg.Add(1)
// must pass in value to avoid races...
// see: https://ttboj.wordpress.com/2015/07/27/golang-parallelism-issues-causing-too-many-open-files-error/
// see: https://purpleidea.com/blog/2015/07/27/golang-parallelism-issues-causing-too-many-open-files-error/
go func(vv pgraph.Vertex) {
defer obj.wg.Done()
// unset Worker() running flag just before exit