ref: ef67435f5e2b0937c1da262d59c6a10394203743 dhall-ruby/lib/dhall/ast.rb -rw-r--r-- 28.5 KiB
Fix for #join on empty list
Do not commute generally

The operator is commutative, but that doesn't mean x == False should
become False == x upon normalization.
Switch IntegrityCheck encoding to multihash
Split IntegrityCheck and NoIntegrityCheck
Split IntegrityCheck and NoIntegrityCheck
Refactor builtins

The fill/unfill code is much simpler now
IntegrityCheck stores raw hash internally
Disambiguate hoisted union tags properly

An array may contain two nomnatively-equivalent types who are
structurally different -- so they need different (but related) union
tags since they will not share a type.
Enum should not have itself in the alts
More useful to_s for AST nodes
Facility to flatten let blocks
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
Split Union and Enum

Stop putting special case conditionals for Union#value.nil? everywhere
and just split the classes.
Customizable cache

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
Timeout mechanism

Sets timeouts in HTTP readers, checks for deadline exceeded before each
resolution step, and uses Timeout::timeout for pure-ruby computations.
Fix Typo

Dhall::Text is obviously the Text builtin, not the Double one.
Do not load if already loaded

In case the resolver has some values already