Releases: dhall-lang/dhall-haskell
Releases · dhall-lang/dhall-haskell
v1.42.2
- Supports standard version 23.1.0
- Fix macOS build [#2561] / [#2586]
dhall to-directory-tree: Fix support for emptyMapsDhall.TH: Improve recompilation checkingDhall.THutilities now useaddDependentFileinternally so that GHC will recompile if any Dhall dependencies change
- Performance improvements
- Optimize
Natural/fold: [#2585] / [#2596] - Improve
Dhall.Map.traverseWithKeyperformance- The fold will now short-circuit if it reaches a fixed point
- #2611
- Optimize
- Fixes and improvements to test suite
- Fixes and improvements to haddocks
- Fixes and improvements to code formatting
v1.42.1
- Add several new entrypoints to
Dhallmodule [#2534] / [#2544] - Build against latest versions of:
ansi-terminaloptparse-applicativeoptparse-genericlenstemplate-haskell[#2532] / [#2542]unix-compat
1.42.0
- Supports standard version 23.0.0
- BREAKING CHANGE TO THE API AND LANGUAGE: Language support for
Bytesliterals- This is a breaking change to the API due to adding new
BytesandBytesLiteralconstructors to theExprtype - This is a breaking change to the language now that
Bytesis a reserved identifier
- This is a breaking change to the API due to adding new
- BREAKING CHANGE TO THE API AND LANGUAGE: New
{Date,Time,TimeZone}/showbuiltins- This is a breaking change to the API due to adding new
{Date,Time,TimeZone}Showconstructors to theExprtype - This is a breaking change to the language now that
{Date,Time,TimeZone}/showare not reserved identifiers
- This is a breaking change to the API due to adding new
- BREAKING CHANGE TO THE API AND LANGUAGE: Language support for
- BREAKING CHANGE:
dhall lintno longer sortsletbindings- This had to be removed because the old behavior was not always correct
- The old behavior would sometimes change the behavior of a Dhall program or break the program
- Out of an abundance of caution we're disabling the feature until it can be properly fixed (which is't trivial)
- BUG FIX: Fix pretty-printing of
Timeliterals- The pretty-printer was stripping leading zeros from the fractional component
of seconds
- The pretty-printer was stripping leading zeros from the fractional component
- BUG FIX: Fix custom normalizers to work for things other than functions
- Before this change you could extend the language with custom functions, but
not custom values (e.g.foo = 1)
- Before this change you could extend the language with custom functions, but
- BUG FIX: Don't URL encode path components
- The pretty-printer was URL-encoding path components, which is not correct (according to the standard)
- URL path components are supposed to be already URL-encoded by the user and left undisturbed by the interpreter (which is now what it correctly does)
- New
dhall packagecommand: #2478, #2508- This command makes it easier to turn a directory full of Dhall expressions
into a dhall package (e.g.package.dhall)
- This command makes it easier to turn a directory full of Dhall expressions
- Improved
dhall to-directory-treesubcommand- The
dhall to-directory-treesubcommand now optionally supports specifying
metadata for generated paths - For a worked example, see: https://github.com/dhall-lang/dhall-haskell/blob/main/dhall/examples/to-directory-tree.dhall
- The
dhall freeze --cache --allis now idempotent: #2486, #2500- Before this change a second run would fail due to attempting to resolve
themissingimport it would generate
- Before this change a second run would fail due to attempting to resolve
- New Template Haskell options for adding strictness annotations to generated Haskell types
- Template Haskell can now generate higher-kinded Haskell types from higher-kinded Dhall types
- New
Dhall.Freezeutilities for working with custom evaluators - Add
Datainstances forImportand various other types - Add
Eqinstances forInvalidDecoderandExtractError
1.41.2
- BUG FIX: Fix
:hashREPL command to α-normalize input - Add
{From,To}Dhallinstances forDayOfWeek - Add
{From,To}Dhallinstances forShortText - Performance improvements
- Fixes and improvements to haddocks
- Fixes and improvements to test suite
- Build against newer dependencies
1.41.1
1.41.0
- Support standard version 22.0.0
- BUG FIX: Fix pretty-printing of time zones
- Timezones with a negative offset were previously being rendered with two
leading minus signs instead of one
- Timezones with a negative offset were previously being rendered with two
- BUG FIX:
dhall freeze --cacheto work with standard version 21.0.0dhall freezewill now usemissing sha256:…for the first import so that
the latter import will be tried if the import is not in cache- The old behavior is incompatible with standard version 21.0.0 because the
new behavior of the?operator doesn't fall back on hash mismatches
- BUG FIX: Allow
withexpression to update a field namedSome- This fixes a discrepancy between the Haskell implementation and the standard
where the Haskell implementation would not permit
{ Some = 0 } with Some = 1
- This fixes a discrepancy between the Haskell implementation and the standard
- Fix
dhall {format,lint,freeze}to preserve leading shebangs - Add
FromDhallinstances forInt{8,16,32,64}
1.40.2
- Supports standard version 21.1.0
- BUG FIX:
dhall replno longer ignores type annotations on:letcommands- Before this fix,
:let x : T = 3would ignore the: Ttype annotation
- Before this fix,
- BUG FIX: Don't accept a bar after an empty union
- Before this fix, the interpreter would accept something like
<>|, which
is not valid according to the standard grammar
- Before this fix, the interpreter would accept something like
- New
FromDhall/ToDhallinstances forDay/TimeOfDay/TimeZone#2294 #2300- These types correspond to the recent temporal literals added to the
language
- These types correspond to the recent temporal literals added to the
- New
subExpressionsWithTraversal - Add Template Haskell support for modifying field names in generated Haskell
types- This adds a new
makeHaskellTypesWithutility with takes a
GenerateOptionsfunction argument for customizing the code-generation
logic - This comes in handy when Dhall fields have names are reserved keywords in
Haskell code. You can now transform the Haskell field names to avoid
collisions
- This adds a new
- Support GHC 9.2
- Fixes and improvements to documentation
- Fixes and improvements to error messages
1.40.1
- BUG FIX: Fix equivalence check for
Date/Time/TimeZone- This fixes a serious bug in the recently introduced support for temporal
literals where they would fail to type-check when given a correct type
annotation or when they were checked against an existing type - For example,
00:00:00 : Timewas failing to type-check
- This fixes a serious bug in the recently introduced support for temporal
1.40.0
- Almost supports version 20.2.0 of the standard
- The main thing that is missing is support for the
headers.dhallfile - BREAKING CHANGE TO THE LANGUAGE: Add support for
Date/Time/TimeZone- This is a breaking change because
Date,Time, andTimeZoneare
now reserved identifiers
- This is a breaking change because
- Improved fallback behavior for
?
- The main thing that is missing is support for the
- BREAKING CHANGE TO THE LANGUAGE: Require whitespace before
with- The parser now requires whitespace before the
withkeyword, which brings
the Haskell implementation into closer compliance with the standard - In practice this is a technically breaking change which will not affect
most programs
- The parser now requires whitespace before the
- New
FromDhallinstances forPredicate,Equivalence, andOp dhall lintwill now sortletbindings with importsdhall lintnow reordersletbindings to move imports to the top so
long as doing so does not change the behavior of the program
- Fixes and improvements to code formatting
- Fixes and improvements to error messages
1.39.0
- Supports version 20.2.0 of the standard
- BREAKING CHANGE TO THE API:
dhall {format,freeze,lint}now accept multiple
files- The
--inplaceflag is no longer necessary and you can now specify
multiple files to update in place on the command line, like
dhall format foo.dhall bar.dhall - The
--inplaceflag is still accepted, but does nothing, and will emit a
warning - This is a breaking change to the API for formatting/freezing/linting files
because now you can specify multiple inputs instead of one input
- The
- BREAKING CHANGE: Pre-6.0.0 hashes are no longer supported
- The interpreter no longer provides backwards compatibility for integrity
checks computed before standard version 6.0.0 - This is a breaking change to the API of the
Dhall.Binarymodule, where
certain utilities are no longer parameterized on aStandardVersion - This is also a breaking change to any Dhall code that depended on these
really old integrity checks
- The interpreter no longer provides backwards compatibility for integrity
- BUG FIX: Formatting
≡now correctly preserves the original character set - BUG FIX: Don't panic on
Text/replace "" - Quasiquotation support for Dhall
- You can now convert a Dhall expression to the corresponding syntax tree
using a quasiquoter like this:[dhall| \x -> x + 2 ]
- You can now convert a Dhall expression to the corresponding syntax tree
- New
Dhall.Marshal.{Encode,Decode}modules- These modules split up the
Dhallmodule into two smaller modules for
encoding and decoding logic, respectively - The
Dhallmodule still re-exports the same functionality as before, so
this is not a breaking change
- These modules split up the
- Support GHC 9.0.1
- Fixes and improvements to code formatting