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 with dhall 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
    • ๐Ÿ’ฅ 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
    • ๐Ÿ› 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
    • ๐Ÿ”‹ 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
    • ๐Ÿ”‹ 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
    • ๐Ÿ”‹ 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
    • ๐Ÿ”‹ Feature: New --file option for dhall commands
      • In other words, instead of dhall <<< './some/file you can now use
        dhall --file some/file
      • See: #949
    • ๐Ÿ”‹ Feature: New --cache flag for dhall 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
    • ๐Ÿ”‹ Feature: Add :clear command to dhall repl
      • This deletes previous bindings from the history so that they can be
        garbage collected
      • See: #966
    • ๐Ÿ”‹ Feature: New chunkExprs Traversal added to Dhall.Core
    • ๐Ÿ”‹ Feature: New Dhall.Optics module
      • This re-exports some convenient @lens@ utilities used internally for
        ๐Ÿ“ฆ packages trying to avoid a @lens@ dependency
      • See: #986
    • ๐Ÿ‘ More GHC 8.8 support