Releases: dhall-lang/dhall-haskell
Releases · dhall-lang/dhall-haskell
dhall-1.16.0
- BREAKING CHANGE: Consolidate
inputfamily of functions- These now take a record of options
- This also
_stackfield of theStatustype from[Import]to
NonEmpty Import
- Permit
$in quoted variable names- See: #510
dhall-1.15.1
- Fix infinite loop when formatting expressions containing
?- See: #491
dhall-1.15.0
- BREAKING CHANGE TO THE API: Support alternative imports using new
?operator- This adds a new constructor which affects exhaustive pattern matches
- See: #473
- BREAKING CHANGE TO THE API: Add
Integer/toDoublebuilt-in function- This adds a new constructor which affects exhaustive pattern matches
- See: #434
- BREAKING CHANGE TO THE API: Use strict
Textinstead of lazyText- See: #455
- BREAKING CHANGE TO THE API: Remove
Buildablein favor ofPretty- See: #459
- BREAKING CHANGE TO THE API: Removed the
Parentconstructor fromFilePrefix- Instead, use
Herewith a".."prefix. - See: #407
- Instead, use
- BUG FIX: Disallow duplicate fields in records
- See: #430
- BUG FIX: Fix stripping of leading whitespace in multi-line strings
- See: #469
- BUG FIX: Fix formatting field access of an import
- See: #471
- Add
dhall freezecommand- See: #486
- Add
dhall diffcommand- See: #442
- Add
dhall lintcommand- See: #484
- Change
dhall-repl/dhall-hash/dhall-formattodhallsubcommands - Add
with-httpcabal flag to disable support for remote imports- See: #482
- Added
inputFromandinputFromWith- These allow naming the file that the expression is coming from for better
error messages - See: #464
- These allow naming the file that the expression is coming from for better
- Performance improvements
- See: #420
- Tutorial recommends GitHub for Prelude instead of IPFS
- See: #479
- Pretty-print expressions in type errors
- See: #429
- Formatting improvements
- Diff improvements
dhall-1.14.0
- BREAKING CHANGE TO THE LANGUAGE: Switch grammar of
NaturalandIntegerNaturalnumber literals are now unsigned andIntegerliterals always
require a sign- This is a VERY disruptive change to most Dhall code in the wild but
was unanimously agreed upon here:
dhall-lang/dhall-lang#138 - See also: #381
- BREAKING CHANGE TO THE LANGUAGE: Drop support for importing directories
- Importing
dir/used to resolve todir/@, which is no longer supported - See: #384
- Importing
- BREAKING CHANGE TO THE LANGUAGE: Change to the grammar for imports
- File path components can no longer contain
#or?characters - URL imports must now contain at least one path component
- URL path components must match the grammar for file path components
- See: #390
- File path components can no longer contain
- BREAKING CHANGE TO THE API: Rename
Path{,Mode,Hashed,Type}to
Import{,Mode,Hashed,Type}- In practice this change is not breaking for the most common use cases
since this also provides aPathtype synonym for backwards compatibility - See: #376
- In practice this change is not breaking for the most common use cases
- BUG FIX: Fix α-equivalence bug when type-checking
mergemergeexpressions would sometimes reject valid code due to a
type-checking bug- See: #394
- Improve import caching
- Increase upper bound on
tasty- See: #382
- Fix lower bound on
insert-ordered-containers- See: #377
dhall-1.13.1
- Increase upper bound on
ansi-terminalandmegaparsec
dhall-1.13.0
- BUG FIX: Fix semantic integrity hashing support
- Both parsing and pretty-printing semantic hashes were broken since version
1.11.0 - See: #345
- Both parsing and pretty-printing semantic hashes were broken since version
- BUG FIX: Allow leading whitespace in interpolated expresssions
- See: #369
- BUG FIX: Fix
deriving (Interpret)for sum types- The types of alternatives were not correctly included in the corresponding
Dhall type - See: #348
- The types of alternatives were not correctly included in the corresponding
- BREAKING CHANGE TO LANGUAGE: Records cannot store both types and terms
- Records can also not store type-level functions (like
List)- Records might be allowed to store type-level functions again in the
future
- Records might be allowed to store type-level functions again in the
- This fixes a potential soundness bug
- The primarily practical consequence of this change is that if you are
hosting a "package" then you will need to split terms and types from your
package into different records for your users to import - This also implies removing the
./Monoidtype-level function from the
./Prelude/package.dhallrecord - See: #335
- Records can also not store type-level functions (like
- BREAKING CHANGE TO THE API: Replace
trifectawithmegaparsec- This change the API to use the
Parsertype frommegaparsec - This also slightly changes the type of
exprFromText - If you program using the type classes provided by the
parserslibrary
then this is not a breaking change as that interface is preserved - See: #268
- This change the API to use the
- BREAKING CHANGE TO THE API: New
⩓operator for merging record types- Example:
{ foo : Text } ⩓ { bar : Bool } = { foo : Text, bar : Bool } - This is breaking because it adds a new constructor to the
Exprtype - See: #342
- Example:
- BREAKING CHANGE TO THE API: New support for projecting a subset of fields
- Example:
{ x = 1, y = 2, z = 3 }.{ x, y } = { x = 1, y = 2 } - This is breaking because it adds a new constructor to the
Exprtype - See: #350
- Example:
- API+UX feature: New support for pretty-printing diffs of Dhall expressions
- Error messages also use this feature to simplify large type mismatches
- There is also a new
Dhall.Diffmodule - See: #336
- Add
version,resolve,type, andnormalizesub-commands to interpreter- See: #352
- Support GHC 7.10.3
- See: #340
:typecommand indhall-replnow only displays the type- Before it would also display the original expression
- See: #344
- Trim dependency tree
dhall-1.12.0
- Additional changes to support GHC 8.4
- See: #331
- BREAKING CHANGE TO API: Replace dependency on
text-formatwithformatting- This replace the
Data.Text.Buildable.Buildableinstances with
Formatting.Buildable.Buildableinstances, which is why this is a
breaking change text-formatis no longer maintained and blocking GHC 8.4 support- See: #330
- This replace the
dhall-1.11.1
- Support GHC 8.4
- See: #321
- Fix α-normalization bug
- Note that this is not a type-checking bug. This only affects users who
were directly using thealphaNormalizefunction from the Haskell API
becauseletexpressions were not correctly α-normalized - See: #319
- Note that this is not a type-checking bug. This only affects users who
- Slight tweak to syntax highlighting
- See: #324
- Increase upper bound on
ansi-terminalandexceptions
dhall-1.11.0
- BREAKING CHANGE TO THE API: Fix
{Natural,Optional,List}/buildsemantics to
match standard- This is a breaking change because the
OptionalLitandListLit
constructors changed their representations to efficiently support the
standard semantics ListLitnow stores aData.Sequence.Seqinstead of a
Data.Vector.VectorOptionalLitnow stores aMaybeinstead of aData.Vector.Vector- See: #300
- This is a breaking change because the
- BREAKING CHANGE TO THE COMMAND LINE:
dhallexecutable always formats output- Previously you had to opt into formatting using
--pretty - Now formatting is obligatory and the
--prettyflag is gone - See: #303
- Previously you had to opt into formatting using
- Feature: New
:savecommand fordhall-repl- Now you can save an expression to a file:
./yourFile = someExpression - See: #309
- Now you can save an expression to a file:
- Improvement: Add new simplifications to match standard
- Improvement: Fix equivalence check to match standard
- Practically this means that more corner cases of the language correctly
type-check than before
- Practically this means that more corner cases of the language correctly
- Improvement: New
--plainflag to disable syntax highlighting- See: #310
- Improvement: Prelude now provides an umbrella
package.dhallimport- This is primarily for convenience
- See: #298
- Improvement: Context is now normalized
- See: #302
- Replace
cryptohashdependency withcryptonite- See: 5d20129
- Increase upper bound on exceptions
- See: #306
- Fix type error in tutorial
- See: 5a9126b
dhall-1.10.0
- Feature: Records/unions can now have fields/alternatives that are types
- i.e.
{ foo = Text, bar = List }is legal now - See: #273
- i.e.
- Feature: New
dhall-replfor interactively evaluating Dhall expressions- See: #266
- Feature: Syntax highlighting
- See: #260
- Feature: BREAKING CHANGE TO THE API:
dhall-formatpreserves field order- This changes the syntax tree to use an
InsOrdHashMapinstead of aMap
- This changes the syntax tree to use an
- BREAKING CHANGE TO THE API: Use Haskell's
Scientifictype- This is fixes the interpreter to correct handle really large/small numbers
- This also allows marshaling into Haskell's
Scientifictype - See: #256
- BREAKING CHANGE TO THE API: Remove
system-filepath/system-fileiodependencies- Now the library uses
Prelude.FilePath - See: #248
- Now the library uses
- Feature: Labels can now begin with reserved names
- i.e.
List/mapis now a legal label - See: #255
- i.e.
- Fix: Rendered labels are now correctly escaped if they are numbers
- See: #252
- Add the instance
Interpret String.- See: #247
- Fix: Custom contexts passed to
typeWithare now checked- This prevents a custom context from triggering an infinite loop
- See: #259