dhall v1.24.0 Release Notes
Release Date: 2019-06-07 // almost 5 years ago-
- ๐ Supports version 8.0.0 of the standard
- ๐ฅ BREAKING CHANGE: Allow tabs and blank lines in multi-line strings
- Blank lines are now ignored for the purpose of dedenting multiline strings
- Lines with leading tabs (or mixed tabs and spaces) are now dedented, too,
so long as they all share the same prefix - This is technically a breaking change, but unlikely to affect programs
in practice, especially if they were formatted withdhall format
. This
๐ change mainly affects programs that were not indented correctly. - See the changelog for standard version 8.0.0 for more details
- ๐ฅ BREAKING CHANGE: Simplify bare interpolations
- Expressions like
ฮป(x : Text) โ "${x}"
now simplify toฮป(x : Text) โ x
- This is a technically breaking change because it changes how these sorts
of expressions are serialized. This does not affect semantic integrity
checks and the new simplified expressions are extensionally equivalent to
their older counterpart expressions. - See the changelog for standard version 8.0.0 for more details
- Expressions like
- ๐ฅ BREAKING CHANGE: Encode integrity check as multihash
- Semantic integrity checks are now encoded using the multihash spec
- This is a technically breaking change that does not perturb the hash for
๐ user-facing semantic integrity checks. This only affects how expressions
with unresolved imports are serialized, but semantic integrity checks are
only computed for fully-resolved imports. - See the changelog for standard version 8.0.0 for more details
- ๐ BUG FIX: Fix type-checker to reject invalid record type annotations
- e.g.
{ x = 1 } : { x : Text }
was not properly rejected by the type
checker - See: #965
- e.g.
- ๐ BUG FIX: Custom header forwarding fixed
- Forwarding custom headers could previously fail in various ways, such as:
- Cyclic imports leading to endless network requests
- Resolving a non-existent import for the custom headers
- Resolving an existing but incorrect import for the custom headers
- This change fixes that by forwarding custom headers by value instead of
by reference - See: #967
- ๐ BUG FIX: Fix GHCJS support
Natural/fold
was broken in version 1.22, which this change fixes- Specifically, it would hang for
Natural
numbers greater than 1 - See: #985
- ๐ BUG FIX:
dhall diff
no longer double-prints key-value separators- See: #952
- ๐ Feature: Record projection by expression
- You can now project out a subset of record fields by the expected type
let t = { x : Natural } let p = { x = 1, y = 2 } in p.(t) = { x = 1 }
- See the changelog for standard version 8.0.0 for more details
- ๐ Feature: Inline headers
- You no longer need to specify custom headers in a separate import. You
can now specify them inline within the same file. - e.g.:
https://example.com/x using [{ header = "Foo", value = "Bar" }]
- See the changelog for standard version 8.0.0 for more details
- You no longer need to specify custom headers in a separate import. You
- ๐ Feature: Allow
Sort
as a type annotation- An expression such as
Kind โ Kind : Sort
will now type-check Sort
is still disallowed outside of a type annotation- See the changelog for standard version 8.0.0 for more details
- An expression such as
- ๐ Feature: Allow self-describe-cbor when decoding
- Dhall expressions serialized as CBOR can be tagged to describe themselves
as CBOR without affecting decoding - See the changelog for standard version 8.0.0 for more details
- Dhall expressions serialized as CBOR can be tagged to describe themselves
- ๐ Feature: New
--file
option fordhall
commands- In other words, instead of
dhall <<< './some/file
you can now use
dhall --file some/file
- See: #949
- In other words, instead of
- ๐ Feature: New
--cache
flag fordhall freeze
command- This automates the idiom used by the Prelude to optimistically cache
imports but gracefully degrade if the semantic integrity check fails - See: #980
- This automates the idiom used by the Prelude to optimistically cache
- ๐ Feature: Add
:clear
command todhall repl
- This deletes previous bindings from the history so that they can be
garbage collected - See: #966
- This deletes previous bindings from the history so that they can be
- ๐ Feature: New
chunkExprs
Traversal
added toDhall.Core
- See: #954
- ๐ Feature: New
Dhall.Optics
module - ๐ More GHC 8.8 support
- See: #961