All Versions
Latest Version
Avg Release Cycle
32 days
Latest Release
1321 days ago

Changelog History
Page 3

  • v1.20.1 Changes

    January 06, 2019
    • ๐Ÿ› BUG FIX: Fix binary encoding to use correct standard version
      • This fixes computed hashes to correctly match standard version 5.0.0
      • This is not marked as a breaking change since it is a bug fix. The
        ๐Ÿš€ 1.20.0 release will be blacklisted on Hackage and users should upgrade
        from 1.19.* directly to 1.20.1
      • See: #771
  • v1.20.0 Changes

    December 29, 2018
    • ๐Ÿ‘Œ Supports version 5.0.0 of the language standard
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE: Implement standardized support for multi-line
      • This updates the multi-line support to match the standard
      • This is a breaking change because empty lines within the multi-line
        literal now require leading whitespace whereas previously they did not
      • This is also a breaking change because now a newline is required after
        the opening '' quotes whereas previously it was not required
      • If you use dhall format then your multi-line literals already have the
        necessary leading whitespace
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE: constructors x = x
      • Now the constructors keyword behaves like an identity function, since
        constructors can already be accessed as fields off the original union
      • This is a breaking change since any record of terms that contains a
        constructors field will now be a forbidden mixed record of types and
      • This is also a breaking change if you annotated the type of what used to
        be a constructors record.
      • dhall lint will now remove the obsolete constructors keyword for you
      • See: #693
      • See: #701
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE API: Restore Parent constructor for Local type
      • This more closely matches the standard and also enables dhall format to
        produce a leading ../ for imports instead of ./../
      • See: #718
    • ๐Ÿ› BUG FIX: Fix type-checking bug for unions
      • The first fix was that the inferred type was wrong for unions where
        alternatives were types or kinds
      • The second fix was that unions that mixed terms/types/kinds were not
        properly rejected
      • See: #763
    • ๐Ÿ› BUG FIX: Change how dhall repl handles prior definitions
      • This changes the REPL to handle previous bindings as if they were
        defined using a large let expression instead of adding them to the
      • This fixes some type-checking false negatives
      • See: #729
    • ๐Ÿ”‹ Feature: Autocomplete for dhall repl
      • You can now auto-complete record fields, union constructors, and
        identifiers that are in scope
      • See: #727
    • ๐Ÿ”‹ Feature: GHCJS support
      • dhall can now be built using GHCJS, although some features are still
        ๐Ÿ‘ not supported for GHCJS, such as:
      • Semantic integrity checks
      • Custom HTTP headers
      • Also, HTTP imports only work for URLs that support CORS
      • See: #739
    • ๐Ÿ”‹ Feature: Add support for records of records of types
      • You can now nest records of types
      • See: #700
    • ๐Ÿ”‹ Feature: Add :quit command for dhall repl
    • ๐Ÿ”‹ Feature: Add --json flag for dhall {encode,decode}
      • You can now produce/consume CBOR expressions via JSON instead of binary
      • See: #717
    • ๐Ÿ”‹ Feature: Add decoding logic for as Text
      • You can now preserve the as Text qualifier on imports when serializing
      • See: #712
    • Prenormalize substituted expressions
      • This is a performance improvement that reduces the time and memory
        consumption when normalizing expressions
      • See: #765
  • v1.19.1 Changes

    November 27, 2018


    • ๐Ÿ› BUG FIX: Fix serious dhall lint bug
      • dhall lint would sometimes remove let expressions that were still
        in use
      • See: #703
    • ๐Ÿ› BUG FIX: Fix import caching efficiency bug
      • Some imports were being wastefully fetched multiple times
      • See: #702
    • ๐Ÿ”‹ Feature: Generate dot graph to visualize import graph
      • Use the dhall resolve --dot command
      • See: #698
      • See: #713
    • ๐Ÿ‘Œ Improve HTTP error messages
  • v1.19.0 Changes

    November 22, 2018


    • ๐Ÿ‘Œ Supports version 4.0.0 of the language standard
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE AND API: Prevent Hurkens' paradox
      • This fixes a type-checking soundness bug which permitted infinite loops
      • This is a breaking change because infinite loops are no longer possible
      • This is also a breaking change because a record of types is now treated as
        a kind instead of a type
      • See: #680
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE AND API: Doubles are now double-precision
      floating point numbers
      • This restricts the range of Doubles to IEEE 754 double-precision
        floating point
      • This also implies that you can no longer convert Scientific values to
        Dhall expressions (i.e. no Inject instance for Scientific)
      • See: #667
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE API: Preserve field order for record projection
      • The API uses a new Dhall.Set.Set type instead of Data.Set.Set
      • See: #670
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE API: Add support for multi-let expressions
      • This changes the Let constructor to now support storing multiple
        bindings per let expression
      • See: #675
    • Access constructors as if they were fields of the union type
      • In other words: < Left : Bool | Right : Natural >.Left
      • See: #657
    • ๐Ÿ‘Œ Support GHC 8.6
    • โž• Add support for quoted path components
      • i.e. /"foo"/bar/"baz qux" or"bar?baz"?qux
      • See: #690
    • ๐Ÿ›  Fix parsing of //\\ operator
    • Preserve Unicode characters when formatting code
    • ๐Ÿ‘ Allow identifier names to begin with Some
    • โž• Add subExpressions Traversal
    • โž• Add normalizeWithM for monadic normalization
    • 0๏ธโƒฃ Custom normalizers now take precedence over default normalization logic
      • This allows one to override the implementation of built-in operators
      • See: #684


    • ๐Ÿ— Build against dhall-1.19.0
  • v1.18.0 Changes

    October 16, 2018
    • ๐Ÿ‘Œ Supports version 3.0.0 of the language standard:
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE AND API: New Some/None constructors for
      Optional values
      • Example: [Some 1, None Natural]
      • This is a breaking change to the language because Some and None are
        now reserved keywords
      • This is a breaking change to the API because Some and None are new
        constructors for the Expr type
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE LANGUAGE AND API: Support for kind polymorphism
      • This adds a new Sort constant above Kind in the hierarchy
      • i.e. Type : Kind : Sort
      • This is a breaking change to the language because Sort is now a
        reserved keyword
      • This is a breaking change to the API because Sort is a new
        constructor for the Expr type
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE API: New Dhall.Map module
      • This replaces InsOrdHashMap in the API
      • The primary motivation is to improve performance and to remove the
        dependency on insert-ordered-containers
    • ๐Ÿ’ฅ BREAKING CHANGE TO THE API: Use standard version instead of protocol version
      • The binary protocol is now versioned alongside the standard
      • The ProtocolVersion type is renamed to StandardVersion and the
      • --protocol-version option is renamed to --standard-version
      • See: #634
    • ๐Ÿ› BUG FIX: Fix import chaining for custom header imports
    • ๐Ÿ› BUG FIX: Fix import chaining for imports protected by semantic integrity
    • ๐Ÿ› BUG FIX: Record literals and types produced by โˆง/โซฝ/โฉ“ are now sorted
      • This ensures that ฮฒ-normalization is idempotent
      • See: #572
    • ๐Ÿ› BUG FIX: dhall freeze now correctly handles the starting file being
      located outside the current working directory
    • ๐Ÿ› BUG FIX: Fix parsing of IPv4-mapped IPv6 addresses
    • ๐Ÿ”‹ FEATURE: New --ascii flag for ASCII output
    • ๐Ÿ”‹ FEATURE: New dhall encode and dhall decode subcommands
      • These allow you to transform Dhall source code to and from its binary
      • See: #588
    • ๐ŸŽ LARGE parsing performance improvements
    • ๐ŸŽ Type-checking performance improvements:
    • ๐ŸŽ Normalization performance improvements:
    • dhall freeze now caches the imports as it freezes them
    • dhall freeze now refreezes imports with invalid semantic integrity checks
    • dhall freeze now adds a trailing newline
    • ๐Ÿ— Build against megaparsec-7.0.*
    • ๐Ÿ‘Œ Support GHC 8.6
    • ๐Ÿ‘Œ Support GHC all the way back to 7.10.3
    • ๐Ÿ‘Œ Improvements to error messages: