https://gavinhoward.com/2024/03/what-computers-cannot-do-the...
https://gavinhoward.com/2024/03/what-computers-cannot-do-the...
> It is a dynamic error for a function to call itself or another function value with the same declaration.
> This rule, combined with the invariant that all loops are iterations over finite sequences, implies that Starlark programs are not Turing-complete. However, an implementation may allow clients to disable this check, allowing unbounded recursion.
https://github.com/bazelbuild/starlark/blob/master/spec.md
I do kind of agree with you about this, though:
> At that point, just give your users a `while` loop for usability's sake.
I'm generally in favor of powerful, purpose-built configuration languages, including Turing-complete ones. And the goal of assuring users that their programs will terminate at all is definitely aligned with a fuzzier goal, less formalizable, that their programs will terminate in a 'reasonable' period of time, whatever that means.