Facility to flatten let blocks
Allow typechecking filled builtins
Add new useful facilities to Function
as_dhall for Proc
Cannot actually serialize this, but can be useful for passing functions
in to Dhall functions, etc.
Update to latest dhall-lang
Handle self-describe tag anywhere
Fix for substitute on LetBlock/LetIn
Improve the multiline algorithm
Require that the whitespace being stripped is a common prefix.
Allow tabs and blank lines in multiline strings
Hoist single-label enum into array
Split Union and Enum
Stop putting special case conditionals for Union#value.nil? everywhere
and just split the classes.
Caches implemented in this commit:
StandardFileCache - cache conforming to dhall-lang
RamCache - stores in a hash, meant for single-load caching
NoCache - when you want to be sure
Default max import depth of 50
So even without a timeout, there is a limit on bonkers cases.
Standard resolver defaults to INIFINTY since the standard does not
define a depth limit.
Sets timeouts in HTTP readers, checks for deadline exceeded before each
resolution step, and uses Timeout::timeout for pure-ruby computations.
Update text-or-binary heuristic
The `cbor` gem is a bit janky and it turns out catching NoMemoryError is
not safe, so use an encoding-based heuristic to detect binary vs utf8
Update to dhall-lang 7.0.0
Full "to basic ruby types" deserializing, set up as a drop-in for
Dhall::Text is obviously the Text builtin, not the Double one.
Allow as_dhall to be customised by encode_with
Dhall has a goal to replace YAML. Ruby's ecosystem already has deep
integration with YAML (specifically with the Psych implementation in
stdlib) -- so if an object customises its YAML encoding, but doesn't
know about Dhall, customise the Dhall encoding in a compatible way.