Skip to content

Releases: dhall-lang/dhall-haskell

dhall-1.15.1

22 Jul 14:50
abfbfdc
Compare
Choose a tag to compare
  • Fix infinite loop when formatting expressions containing ?

dhall-1.15.0

22 Jul 14:49
8a8a5c4
Compare
Choose a tag to compare
  • 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/toDouble built-in function
    • This adds a new constructor which affects exhaustive pattern matches
    • See: #434
  • BREAKING CHANGE TO THE API: Use strict Text instead of lazy Text
  • BREAKING CHANGE TO THE API: Remove Buildable in favor of Pretty
  • BREAKING CHANGE TO THE API: Removed the Parent constructor from FilePrefix
    • Instead, use Here with a ".." prefix.
    • See: #407
  • BUG FIX: Disallow duplicate fields in records
  • BUG FIX: Fix stripping of leading whitespace in multi-line strings
  • BUG FIX: Fix formatting field access of an import
  • Add dhall freeze command
  • Add dhall diff command
  • Add dhall lint command
  • Change dhall-repl/dhall-hash/dhall-format to dhall subcommands
    • i.e. dhall repl/dhall hash/dhall format
    • See: #435
    • See: #452
  • Add with-http cabal flag to disable support for remote imports
  • Added inputFrom and inputFromWith
    • These allow naming the file that the expression is coming from for better
      error messages
    • See: #464
  • Performance improvements
  • Tutorial recommends GitHub for Prelude instead of IPFS
  • Pretty-print expressions in type errors
  • Formatting improvements
  • Diff improvements

dhall-1.14.0

22 Jul 14:48
dddfb1a
Compare
Choose a tag to compare
  • BREAKING CHANGE TO THE LANGUAGE: Switch grammar of Natural and Integer
    • Natural number literals are now unsigned and Integer literals 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 to dir/@, which is no longer supported
    • See: #384
  • 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
  • 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 a Path type synonym for backwards compatibility
    • See: #376
  • BUG FIX: Fix α-equivalence bug when type-checking merge
    • merge expressions would sometimes reject valid code due to a
      type-checking bug
    • See: #394
  • Improve import caching
  • Increase upper bound on tasty
  • Fix lower bound on insert-ordered-containers

dhall-1.13.1

22 Jul 14:47
a38e1a5
Compare
Choose a tag to compare
  • Increase upper bound on ansi-terminal and megaparsec

dhall-1.13.0

22 Jul 14:46
3fb4d0e
Compare
Choose a tag to compare
  • BUG FIX: Fix semantic integrity hashing support
    • Both parsing and pretty-printing semantic hashes were broken since version
      1.11.0
    • See: #345
  • BUG FIX: Allow leading whitespace in interpolated expresssions
  • BUG FIX: Fix deriving (Interpret) for sum types
    • The types of alternatives were not correctly included in the corresponding
      Dhall type
    • See: #348
  • 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
    • 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 ./Monoid type-level function from the
      ./Prelude/package.dhall record
    • See: #335
  • BREAKING CHANGE TO THE API: Replace trifecta with megaparsec
    • This change the API to use the Parser type from megaparsec
    • This also slightly changes the type of exprFromText
    • If you program using the type classes provided by the parsers library
      then this is not a breaking change as that interface is preserved
    • See: #268
  • 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 Expr type
    • See: #342
  • 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 Expr type
    • See: #350
  • 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.Diff module
    • See: #336
  • Add version, resolve, type, and normalize sub-commands to interpreter
  • Support GHC 7.10.3
  • :type command in dhall-repl now only displays the type
    • Before it would also display the original expression
    • See: #344
  • Trim dependency tree

dhall-1.12.0

22 Jul 14:46
7d7b859
Compare
Choose a tag to compare
  • Additional changes to support GHC 8.4
  • BREAKING CHANGE TO API: Replace dependency on text-format with formatting
    • This replace the Data.Text.Buildable.Buildable instances with
      Formatting.Buildable.Buildable instances, which is why this is a
      breaking change
    • text-format is no longer maintained and blocking GHC 8.4 support
    • See: #330

dhall-1.11.1

22 Jul 14:44
4a085aa
Compare
Choose a tag to compare
  • Support GHC 8.4
  • Fix α-normalization bug
    • Note that this is not a type-checking bug. This only affects users who
      were directly using the alphaNormalize function from the Haskell API
      because let expressions were not correctly α-normalized
    • See: #319
  • Slight tweak to syntax highlighting
  • Increase upper bound on ansi-terminal and exceptions

dhall-1.11.0

22 Jul 14:43
ab436c7
Compare
Choose a tag to compare
  • BREAKING CHANGE TO THE API: Fix {Natural,Optional,List}/build semantics to
    match standard
    • This is a breaking change because the OptionalLit and ListLit
      constructors changed their representations to efficiently support the
      standard semantics
    • ListLit now stores a Data.Sequence.Seq instead of a
      Data.Vector.Vector
    • OptionalLit now stores a Maybe instead of a Data.Vector.Vector
    • See: #300
  • BREAKING CHANGE TO THE COMMAND LINE: dhall executable always formats output
    • Previously you had to opt into formatting using --pretty
    • Now formatting is obligatory and the --pretty flag is gone
    • See: #303
  • Feature: New :save command for dhall-repl
    • Now you can save an expression to a file: ./yourFile = someExpression
    • See: #309
  • 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
  • Improvement: New --plain flag to disable syntax highlighting
  • Improvement: Prelude now provides an umbrella package.dhall import
    • This is primarily for convenience
    • See: #298
  • Improvement: Context is now normalized
  • Replace cryptohash dependency with cryptonite
  • Increase upper bound on exceptions
  • Fix type error in tutorial

dhall-1.10.0

22 Jul 14:42
78b91b8
Compare
Choose a tag to compare
  • Feature: Records/unions can now have fields/alternatives that are types
    • i.e. { foo = Text, bar = List } is legal now
    • See: #273
  • Feature: New dhall-repl for interactively evaluating Dhall expressions
  • Feature: Syntax highlighting
  • Feature: BREAKING CHANGE TO THE API: dhall-format preserves field order
    • This changes the syntax tree to use an InsOrdHashMap instead of a Map
  • BREAKING CHANGE TO THE API: Use Haskell's Scientific type
    • This is fixes the interpreter to correct handle really large/small numbers
    • This also allows marshaling into Haskell's Scientific type
    • See: #256
  • BREAKING CHANGE TO THE API: Remove system-filepath/system-fileio dependencies
    • Now the library uses Prelude.FilePath
    • See: #248
  • Feature: Labels can now begin with reserved names
    • i.e. List/map is now a legal label
    • See: #255
  • Fix: Rendered labels are now correctly escaped if they are numbers
  • Add the instance Interpret String.
  • Fix: Custom contexts passed to typeWith are now checked
    • This prevents a custom context from triggering an infinite loop
    • See: #259

dhall-1.9.1

01 Feb 16:22
80c4397
Compare
Choose a tag to compare
  • dhall-format now emits single-quoted strings for multi-line strings
  • Improved error messages for list elements with the wrong type
  • Change lens dependency to lens-family-core