lang: funcs: Add better logging to the function engine

This commit is contained in:
James Shubin
2019-05-22 14:02:19 -04:00
parent 9b4f50cde9
commit e2289dc2a0

View File

@@ -165,8 +165,9 @@ func (obj *Engine) Init() error {
obj.state[vertex] = &State{Expr: expr} // store some state!
e := obj.state[vertex].Init()
err = errwrap.Append(err, e) // list of errors
e1 := obj.state[vertex].Init()
e2 := errwrap.Wrapf(e1, "error loading func `%s`", vertex)
err = errwrap.Append(err, e2) // list of errors
}
if err != nil { // usually due to `not found` errors
return errwrap.Wrapf(err, "could not load requested funcs")
@@ -217,6 +218,10 @@ func (obj *Engine) Validate() error {
node := obj.state[vertex]
if exp := len(node.handle.Info().Sig.Ord); exp != count {
e := fmt.Errorf("expected %d inputs to `%s`, got %d", exp, node, count)
if obj.Debug {
obj.Logf("expected %d inputs to `%s`, got %d", exp, node, count)
obj.Logf("expected: %+v for `%s`", node.handle.Info().Sig.Ord, node)
}
err = errwrap.Append(err, e)
}
}
@@ -520,6 +525,10 @@ func (obj *Engine) Run() error {
node.mutex.RUnlock()
if !nodeLoaded {
loaded = false // we were wrong
// TODO: add better "not loaded" reporting
if obj.Debug {
obj.Logf("not yet loaded: %s", node)
}
break
}
}