No, they're equating _Turing completeness_ with _might not terminate_. CEL, Expr, Rego, and other languages like them are intended to guarantee to complete. You can't do that cleanly with a Turing complete language.
No, they're equating _Turing completeness_ with _might not terminate_. CEL, Expr, Rego, and other languages like them are intended to guarantee to complete. You can't do that cleanly with a Turing complete language.
Right but "guaranteed to terminate" is not a useful property. You could write a program that terminates... after a billion years.
You can estimate cost of CEL program using static analysis before running it. "estimate" only because size of runtime data is generally unknown (but obv you could limit that).
"You can" - in theory, or does this actually exist?
https://pkg.go.dev/github.com/google/cel-go/cel#Env.Estimate...
With certain macros disabled like .map the runtime is O(code length)!