~singpolyma/dhall-ruby

ref: d2b7142409a9b71fc264fa584ef06eabc4b8ada2 dhall-ruby/lib/dhall/binary.rb -rw-r--r-- 5.4 KiB
Allow self-describing CBOR
Fix env import decode
Fix rubocop except for parser metrics
Refactor List typecheck
Refactor Optional/None typecheck
Clean up style violations
Implement integrity checks
Remove multi-argument applications

They only exist in binary encoding, so let's keep them there.
Working typechecker
Binary encoding

Every AST node uses as_json to express the generic structure for
encoding itself.  Expression aliases as_cbor to as_json by default and
then uses as_cbor in to_cbor (aliased as to_binary).

This design is because we need to override the encoding of Double for
CBOR, but want to keep the normal Float value for as_json in case that
is used directly (to avoid surprising the user).
First pass at import resolution
Generic subexpression_map

Make every Expression a ValueSemantics and use the known list of
attributes to map generically over any AST node.

Introduces a conditional, but removes boilerplate from every single
class.
Update to latest binary format
Fix binary tests
Migrate to dhall-langv6.0.0
Bare minimum refactor to pass the metrics
All beta normalization except for functions
Next