This can be somewhat mitigated by AOT compilation. Here's a link to some experiments from using SubstrateVM to create a self-contained executable from sjsonnet: https://github.com/databricks/sjsonnet/issues/2
In my experience the Go version is 10x faster than the original C++ implementation due to improvements. The only thing missing in the Go version is the formatter.
As someone who is new to configuration-based langages, how is Jsonnet different from Dhall? Do they fill the same niche? Does Jsonnet offer similar guarantee of termination of the config programs like DHall?
Termination is a red herring, the real problem you want to be worried about is configs that take more CPU / RAM than you have spare.
Restricting to primitive recursion does not help there.
See https://landing.google.com/sre/workbook/chapters/configurati...
8 comments
[ 3.2 ms ] story [ 24.4 ms ] threadIn my experience the Go version is 10x faster than the original C++ implementation due to improvements. The only thing missing in the Go version is the formatter.
In a way that might make it a bit easier to approach but harder to reason about your configs.