Do not start IO work until asked
Integrity check must happen after all resolves
Typecheck while resolving
Follow redirects + timeout helper
Multihash prefix on filename
This could be a literal, so may be frozen
implement as Location and use URI internally
Self-describe CBOR for Expression#to_binary
CBOR.encode(expression) and Expression#to_cbor remain untagged "standard
Dhall" but the default Expression#to_binary now always tags the output
with self-describe CBOR. This is supported by the standard for decoding
the output will still be compatible with all compliant implementations,
and it makes the binary format easier to identify in the wild.
Headers is probably a Dhall::List
But we map it to strings... just use `to_a` since we're not staing in
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.
Parse expression from ENV var import
Instead of the path-only support from before.
Standard reader requires UTF-8
To disable heuristics, force remote content to be UTF-8 text.
Add grab-bag of useful utils onto expressions
Anything we'll eventually run is a skip
Clean up style violations