dhall v1.25.0 Release Notes
Release Date: 2019-07-29 // over 4 years ago-
- ๐ Supports version 9.0.0 of the standard
- ๐ฅ BREAKING CHANGE: Remove support for old-style
List
-likeOptional
literals- List-like
Optional
Literals (i.e.[1] : Optional Natural
) are no
longer valid - See: #1002
- List-like
- ๐ฅ BREAKING CHANGE: Add support for semi-semantic caching
- This change significantly improves the performance of imports
- This change also automatically caches imports without an integrity check
- This changes several types in
Dhall.Import
to support this new
๐ feature - See: #1113
- ๐ฅ BREAKING CHANGE: Implement new Unicode braced escape sequence
- ๐ฅ BREAKING CHANGE: Make the type of extract richer:
Dhall.extract
can now return a detailed error instead of just aMaybe
- This is a breaking chnage because the type of
extract
changed - See: #1011
- ๐ฅ BREAKING CHANGE: Add support for importing expressions
as Location
- This is a breaking change because a new
Location
constructor was added
toImportMode
- See: #1019
- This is a breaking change because a new
- ๐ฅ BREAKING CHANGE: Switch
Var
to use anInt
- This is a performance improvement, but also a breaking change since the
Integer
in theVar
constructor was changed to anInt
- See: #1044
- This is a performance improvement, but also a breaking change since the
- ๐ฅ BREAKING CHANGE: Add new
toMap
keyword- This is a breaking change to the API because a new
ToMap
constructor
was added to theExpr
type - This is also a technically breaking change to the language because
toMap
is now a reserved keyword, although most code should be unaffected in
practice - See: #1041
- This is a breaking change to the API because a new
- ๐ฅ BREAKING CHANGE: Sort the fields of a record projection during normalization
- This is a technically breaking change to the language because any
expressions with an uninterpreted record projection will have a different
semantic integrity check. However, most could should be unaffected in
practice - See: #1111
- This is a technically breaking change to the language because any
- ๐ BUG FIX: Fix substitution into record projection by type
- An expression like this one was being incorrectly rejected:
let e = { a = 10, b = "Text" } let s = { a : Natural } in e.(s)
, which
๐ this change fixes - See: #1012
- An expression like this one was being incorrectly rejected:
- ๐ BUG FIX: Reject record projection when there is a field type mismatch
- Record projection by type was previously not checking the expected
๐ field types, which this change fixes - See: #1027
- Record projection by type was previously not checking the expected
- ๐ BUG FIX: Fix linting of unused let bindings
- Certain let bindings were not correctly detected as unused, which this
๐ change fixes - See: #1001
- Certain let bindings were not correctly detected as unused, which this
- ๐ BUG FIX: Fix
--file
option- The
--file
option from the previous release did not work, due to not
๐ computing relative paths correctly, which this change fixes - See: #1004
- The
- ๐ BUG FIX: Minor fix to
dhall diff
dhall diff
was incorrectly displaying spurious differences for
๐ identical lists that were function arguments, which this change fixes- See: #1006
- ๐ BUG FIX: Allow
Sort
as type annotation- This should have been implemented in the previous release as part of
๐ supporting version 8.0.0 of the standard, but was missed - See: #1024
- This should have been implemented in the previous release as part of
- ๐ BUG FIX:
Dhall.Map
: Reflect original key ordering inOrd
instanceDhall.Map
now considers key order when comparingMap
s, which it should
have done before, but didn't- See: #1050
- ๐ BUG FIX: Consistently format multi-line strings
- The formatter now formats naked multi-line strings the same as nested
multi-line strings - Specifically, naked multi-line strings can now be formatted on a single
(just like nested multi-line strings) - See: #1056
- The formatter now formats naked multi-line strings the same as nested
- ๐ BUG FIX: Make
isNormalized
consistent withnormalize
- See: #1115
- ๐ BUG FIX: Make
normalizeWithM
consistent withnormalize
- See: #1126
- ๐ BUG FIX: Fix import alternatives to recover from type errors
- See: #1152
- ๐ Feature: Semi-semantic caching
- The Haskell implementation now implicitly caches all local imports, not
just imports frozen by integrity checks, so that you don't have to freeze
them when doing local development - These cached imports are still correctly invalidated if they or any of
their dependencies change - This new implicit cache is stored underneath
~/.cache/dhall-haskell
by
0๏ธโฃ default - See: #1154
- The Haskell implementation now implicitly caches all local imports, not
- ๐ Feature: New
dhall text
subcommand- This new subcommand supersedes the old
dhall-to-text
executable
- This new subcommand supersedes the old
- ๐ Feature: Add
instance Lift (Expr s a)
- See: #1119
- ๐ Fixes and improvements to error messages:
- ๐ Fixes and improvements to tests:
- ๐ Performance improvements