All Versions
25
Latest Version
Avg Release Cycle
32 days
Latest Release
785 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v1.37.0 Changes
December 07, 2020- 🚀 Supports version 20.0.0 of the standard
- 💥 BREAKING CHANGE TO THE API: Improve error message for duplicate projection label
- This also makes the implementation more standards-compliant, by treating
📜 a duplicate label as a type error instead of a parse error - This is a breaking change since the
Project
constructor now stores a
[Text]
instead ofSet Text
- This also makes the implementation more standards-compliant, by treating
- Add
--cache
flag todhall hash
- This flag adds the hashed expression to the cache when enabled
- 🗄 Deprecate
Inject
/Interpret
- You should instead use
ToDhall
/FromDhall
, respectively
- You should instead use
- 🛠 Fixes and improvements to the haddocks:
- 🛠 Fixes and improvements to error messages:
- 🛠 Fixes and improvements to the parser:
- 🛠 Fixes and improvements to the pretty printer:
-
v1.36.0 Changes
October 21, 2020- 🚀 Supports version 19.0.0 of the standard
- BREAKING CHANGE TO THE API: Add
Text/replace
built-in - Implement
with
without syntactic sugar
- BREAKING CHANGE TO THE API: Add
- 👕
dhall lint
will now add a.dhall
extension to all Prelude imports- The old extension-free Prelude imports are deprecated
- Fix command-line completions for files
- 👍 Improve Template Haskell support for record constructors
- 🛠 Fixes and improvements to code formatting
- 🚀 Supports version 19.0.0 of the standard
-
v1.35.0 Changes
September 11, 2020- 🚀 Supports version 18.0.0 of the standard
- Implement more efficient
with
desugaring - Chained
with
expressions will now be much more efficient
- Implement more efficient
- BREAKING CHANGE TO THE API: Preserve whitespace for
Lam
constructor- This change extends the
Lam
constructor to preserve whitespace around
the variable binding - The motivation for this change is to enable
dhall-docs
to support
jumping to definitions - You can replace your existing
Lam
constructors with
Dhall.Core.makeFunctionBinding
- This change extends the
- BREAKING CHANGE TO THE API: Preserve whitespace for
Field
constructors- This change extends the
Field
constructor to preserve whitespace around
the selected field - The motivation for this change is to enable
dhall-docs
to support
jumping to definitions - You can use
Dhall.Core.makeFieldSelection
and
Dhall.Core.fieldSelectionLabel
to convert between the detailed and the
simple representation of the selected field.
- This change extends the
- Add
FromDhall
instances for{Int,Word}{,8,16,32,64}
- Add
--output
option fordhall text
subcommand - Add
Dhall.Crypto.toString
- 🔧 Make the HTTP
Manager
configurable- Several import-related functions now provide an alternative variants that
👍 allows the user to supply a customManager
- You can use this to tweak HTTP request timeouts or use a different TLS
manager (e.g. one fromhttp-client-openssl
)
- Several import-related functions now provide an alternative variants that
- 🛠 Fixes and improvements to code formatting
The formatter now preserves comments for record fields (both record types
and record literals) - 🚀 Supports version 18.0.0 of the standard
-
v1.34.0 Changes
August 03, 2020- 🚀 Supports version 17.1.0 of the standard
- 💥 BREAKING CHANGE to the API: Support prefix comments on record key-value pairs
- The Dhall AST (i.e.
Expr
) now preserves some comments for record types
and record literals - The impact of this change is that you will need to add
Dhall.Syntax.makeRecordField
orDhall.Syntax.recordFieldValue
in a few
places wherever your Haskell assembles or disassembles record expressions - The motivation of this change is two-fold:
- To eventually enable
dhall-docs
support for rendering record
📚 comments as documentation - To eventually enable support for preserving record-related comments
when formatting Dhall code
- The Dhall AST (i.e.
- 🐛 BUG FIX: Fix
with
expressions to permit functions on their left-hand side- This was a case of the Haskell implementation not being compliant with the
standard grammar
- This was a case of the Haskell implementation not being compliant with the
- 👍 Drop support for GHC 8.2
- Add a new
dhall rewrite-with-schemas
command- You can now simplify a Dhall expression using a schema record (e.g. a
📦./schemas.dhall
record that a package might provide) - This simplification replaces large anonymous records with an
equivalent use of a record completion when possible
- You can now simplify a Dhall expression using a schema record (e.g. a
- 👕 Add
--transitive
flag todhall {format,lint,freeze}
- This flag lets you format/lint/freeze a file and all of its transitive
dependencies that are reachable via relative file imports
- This flag lets you format/lint/freeze a file and all of its transitive
- 🚚 Move
man/dhall.1
todata-files
- This ensures that Cabal will install
dhall
'sman
pages in the
correct directory
- This ensures that Cabal will install
- 🐎 Performance improvements
- Standards compliance
- 🛠 Fixes and improvements to haddocks
-
v1.33.1 Changes
June 23, 2020- 👍 Multi-line REPL / support
repline-0.4.0.0
dhall repl
supports a new:paste
command that lets you input a command
by pasting one or more lines
- 👍 Multi-line REPL / support
-
v1.33.0 Changes
June 18, 2020- 🚀 Supports version 17.0.0 of the standard
- BREAKING CHANGE: URLs no longer support quoted path components
- BREAKING CHANGE:
Optional/{fold,build}
are no longer built-ins - Record fields now permit empty labels
- 💥 BREAKING CHANGE: Fail instead of hanging when deriving
FromDhall
for recursive types- This is a breaking change as now the
expected
type returns an
Expector (Expr Src Void)
(essentially anEither
) instead of
Expr Src Void
- If you really don't want to handle the new error-related wrapper, you can
get the old behavior using a partial pattern match (which will be partial,
still an improvement over the previous behavior, which was hanging)
- This is a breaking change as now the
- Fix invalid cache entries
- The interpreter will now correct cached expressions that are incorrect
and warn you when this happens - Specifically, if there is a hash mismatch from the cached expression the
interpreter will resolve the import again and fix the cache if the
resolved import matches the expected hash
- The interpreter will now correct cached expressions that are incorrect
- Make
encodeExpression
polymorphicencodeExpression
now has a more general type, which means that you
can use it to serialise expressions without imports (i.e.
ones of typeExpr Void Void
)
- Add
--quiet
option fordhall decode
- Add
--noted
flag fordhall haskell-syntax-tree
- 🐎 Performance improvements:
- 👌 Improvements to error messages
- 🛠 Fixes to haddocks
- 🚀 Supports version 17.0.0 of the standard
-
v1.32.0 Changes
May 08, 2020- 🚀 Supports version 16.0.0 of the standard
- BREAKING CHANGE: Change the precedence of
with
and===
- The precedence change to
with
means that some old expressions that
were valid now require explicit parentheses - BREAKING CHANGE: Use RFC7049bis encoding for
Double
s - This is a breaking change because the hashes of expressions with small
Double
literals will change now - Add support for unions mixing terms and types
- For example,
< A : Bool | B : Type >
is legal now - You can now write
someRecord with a.b.c = x
to update a nested
fields
- BREAKING CHANGE: Change the precedence of
- 🗄 DEPRECATION: Deprecate
Dhall.Parser.exprA
Dhall.Parser
module will eventually drop support for parsing custom
import types- This is necessary in order to fix several parsing bugs and improve
📜 parsing error messages
- 🐛 BUG FIX: GHC Generics instance for
:+:
now usesunion
- This fixes a few subtle bugs in how Dhall unions are marshalled into
Haskell types, and also improves the error messages
- This fixes a few subtle bugs in how Dhall unions are marshalled into
- Formatting improvements
- Convert union alternatives to directory tree
dhall to-directory-tree
now supports unions which are automatically
unwrapped
- 👍 Fix
dhall freeze --cache
to better handle protected importsdhall freeze --cache
will now also update imports that already have
integrity checks
- Don't normalized partially saturated
{List,Natural}/fold
- The behavior now matches the standard. Previously, the Haskell
implementation was not standards-compliant because it would normalize
these partially saturated built-ins
- The behavior now matches the standard. Previously, the Haskell
- 🚀 Supports version 16.0.0 of the standard
-
v1.31.1 Changes
April 01, 2020- 🐛 BUG FIX: Allow whitespace after record pun entry
- The record pun feature introduced in the previous release did not
📜 correctly parse record puns with trailing whitespace, which this change
🛠 fixes.
- The record pun feature introduced in the previous release did not
- 0️⃣ Expose
{default,}InputNormalizer
- The previous version introduced a breaking change to the
autoWith
type
that required access to the implementation ofInputNormalizer
, which was
🛠 not exported. This change fixes that.
- The previous version introduced a breaking change to the
- 🏗 Build against latest dependencies
- Prefer to format using record puns when possible
dhall format
will now reformat code to use record puns when applicable
- 🛠 Fixes and improvements to error messages:
- 🐛 BUG FIX: Allow whitespace after record pun entry
-
v1.31.0 Changes
March 29, 2020- 🚀 Supports version 15.0.0 of the standard
- Implement
with
keyword - You can now write
someRecord with a.b.c = x
to update a nested
fields - Add support for record puns
- You can now write
{ x, y }
as a shorthand for{ x = x, y = y }
- Implement
- 💥 BREAKING CHANGE TO THE API: Auto-derive
Generic
/FromDhall
/ToDhall
with Template Haskell- Now the
Dhall.TH.makeHaskell*
utilities will include these derived
instances in the generated declarations - This is a breaking change since users were likely already generating these
instances separately, which will now conflict with the included instances
- Now the
- 💥 BREAKING CHANGE TO THE API:
From/ToDhall
no longer takesInterpretOptions
argument- The types of the
autoWith
andinjectWith
methods have changed to
take anInputNormalizer
instead of anInterpretOptions
- Note that
InputNormalizer
is a subset ofInterpretOptions
- This is a breaking change to how derived
FromDhall
/ToDhall
instances
📦 are customized to more closely match how other Haskell packages customize
derived instances (e.g.aeson
withFromJSON
/ToJSON
) - Previously you would customize the behavior globally by passing in
a top-levelInterpretOptions
record toautoWith
- Now you can customize the behavior locally on a per-instance basis
- This change enables the following change ...
- The types of the
- Add
Dhall.Deriving
module forderiving-via
helpers- Now you can take advantage of the
-XDerivingVia
language extension to
customize derivedFromDhall
/ToDhall
instances, like this: deriving (FromDhall, ToDhall) via Codec (SetSingletonConstructors Bare) Name
- Now you can take advantage of the
- 💥 BREAKING CHANGE TO THE LANGUAGE: Match standard with respect to
using toMap
https://example.com using toMap customHeaders
is now a parse error
and needs to be explicitly parenthesized as
https://example.com using (toMap customHeaders)
- The language standard had always required the parentheses, but the Haskell
implementation was not correctly matching the standard
- Fix formatting of indented comments containing empty lines
dhall format
was previously not idempotent when formatting indented
comments with empty lines- Specifically, the formatter kept indenting things further with each
🛠 format, which this change fixes
- 🖨 Fix pretty-printer to preserve original numeric literals
- Now
dhall format
will preserve numeric literals exactly how you wrote
them - For example,
0xFF
will no longer be reformatted as255
- Now
- 👍 Add
dhall to-directory-tree
support forMap
sMap
s are now converted to directories (just like records)
- Add manpage
- ... mainly for the benefit of people packaging Dhall for various
distributions
- ... mainly for the benefit of people packaging Dhall for various
- Group commands in CLI
- The command-line
--help
output now groups commands into useful
sections
- The command-line
- 📜 Fix numeric parsing for GHCJS
- The GHCJS backend for Dhall was failing to parse numbers, which this
🔄 change fixes
- The GHCJS backend for Dhall was failing to parse numbers, which this
- 🛠 Fixes and improvements to error messages:
- 🛠 Fixes and improvements to the haddocks:
- 🚀 Supports version 15.0.0 of the standard
-
v1.30.0 Changes
February 15, 2020- 🚀 Supports version 14.0.0 of the standard
- 💥 BREAKING CHANGE TO THE API: Add
--check
flag todhall {lint,freeze}
- You can now use the
--check
flag to verify that a file has already been
👕 linted or frozen - This is a breaking change to the types used by the
Dhall.Format
module
- You can now use the
- 💥 BREAKING CHANGE TO THE LANGUAGE: Disallow
Natural
literals with leading zeros- Now a literal like
042
is no longer valid - See the changelog for standard version 14.0.0 for more details
- Now a literal like
- 🐛 BUG FIX: Fix parsing of
Double
literal trailing whitespace- Certain expressions using
Double
literals would fail to parse, which this
🔄 change fixes
- Certain expressions using
- 🐛 BUG FIX: Use
DeriveLift
instead of GHC Generics to deriveLift
- This fixes a build failure on GHC 8.10
- 👍 Drop support for GHC 7.10.3
- GHC 8.0.2 is now the earliest supported version
- 👍 Add support for dotted field syntax
{ x.y.z = 1 }
now legal syntax for nested fields- See the changelog for standard version 14.0.0 for more details
- 👍 Add support for duplicate record fields
- This combines with the previous feature to let you write
{ x.y = 1, x.z = True }
, which is equivalent to
{ x = { y = 1, z = True } }
- See the changelog for standard version 14.0.0 for more details
- This combines with the previous feature to let you write
- 👕 Add
dhall lint
support for deprecatingOptional/{fold,build}
- The
Optional/{fold,build}
built-ins are deprecated and can be implemented
in terms of other language features Optional/fold
can be implemented in terms ofmerge
(which now works on
Optional
values)Optional/build
could always be implemented usingSome
/None
dhall lint
now transforms the deprecated built-ins to use their
🆓 equivalent built-in-free versions
- The
- 👍 Support Template Haskell for multiple datatypes
- This extends the Template Haskell support added in the previous release to
work for datatypes that refer to one another
- This extends the Template Haskell support added in the previous release to
- 👍 Add support for custom substitutions
- You can now add custom substitutions, which are like
let
bindings that
propagate to transitive imports
- You can now add custom substitutions, which are like
- 🛠 Small formatting fixes