Skip to content

dhall-1.25.0

Compare
Choose a tag to compare
@Gabriella439 Gabriella439 released this 29 Jul 05:13
d45f3ec
  • Supports version 9.0.0 of the standard
  • BREAKING CHANGE: Remove support for old-style List-like Optional literals
    • List-like Optional Literals (i.e. [ 1 ] : Optional Natural) are no
      longer valid
    • See: #1002
  • BREAKING CHANGE: Add support for semi-semantic caching
    • This change significantly improves the performance of imports
    • This change also automatically caches imports without an integrity check
    • This changes several types in Dhall.Import to support this new
      feature
    • See: #1113
  • BREAKING CHANGE: Implement new Unicode braced escape sequence
    • Escape sequences encoding surrogate pairs are no longer valid
    • Instead, characters previously encoded as surrogate pairs can instead be
      encoded as a braced sequence
    • For example: "\uD834\uDD1E" must now be written as "\u{1D11E}"
    • See: #987
    • See: #1104
  • BREAKING CHANGE: Make the type of extract richer:
    • Dhall.extract can now return a detailed error instead of just a Maybe
    • This is a breaking chnage because the type of extract changed
    • See: #1011
  • BREAKING CHANGE: Add support for importing expressions as Location
    • This is a breaking change because a new Location constructor was added
      to ImportMode
    • See: #1019
  • BREAKING CHANGE: Switch Var to use an Int
    • This is a performance improvement, but also a breaking change since the
      Integer in the Var constructor was changed to an Int
    • See: #1044
  • BREAKING CHANGE: Add new toMap keyword
    • This is a breaking change to the API because a new ToMap constructor
      was added to the Expr type
    • This is also a technically breaking change to the language because toMap
      is now a reserved keyword, although most code should be unaffected in
      practice
    • See: #1041
  • BREAKING CHANGE: Sort the fields of a record projection during normalization
    • This is a technically breaking change to the language because any
      expressions with an uninterpreted record projection will have a different
      semantic integrity check. However, most could should be unaffected in
      practice
    • See: #1111
  • BUG FIX: Fix substitution into record projection by type
    • An expression like this one was being incorrectly rejected:
      let e = { a = 10, b = "Text" } let s = { a : Natural } in e.(s), which
      this change fixes
    • See: #1012
  • BUG FIX: Reject record projection when there is a field type mismatch
    • Record projection by type was previously not checking the expected
      field types, which this change fixes
    • See: #1027
  • BUG FIX: Fix linting of unused let bindings
    • Certain let bindings were not correctly detected as unused, which this
      change fixes
    • See: #1001
  • BUG FIX: Fix --file option
    • The --file option from the previous release did not work, due to not
      computing relative paths correctly, which this change fixes
    • See: #1004
  • BUG FIX: Minor fix to dhall diff
    • dhall diff was incorrectly displaying spurious differences for
      identical lists that were function arguments, which this change fixes
    • See: #1006
  • BUG FIX: Allow Sort as type annotation
    • This should have been implemented in the previous release as part of
      supporting version 8.0.0 of the standard, but was missed
    • See: #1024
  • BUG FIX: Dhall.Map: Reflect original key ordering in Ord instance
    • Dhall.Map now considers key order when comparing Maps, which it should
      have done before, but didn't
    • See: #1050
  • BUG FIX: Consistently format multi-line strings
    • The formatter now formats naked multi-line strings the same as nested
      multi-line strings
    • Specifically, naked multi-line strings can now be formatted on a single
      (just like nested multi-line strings)
    • See: #1056
  • BUG FIX: Make isNormalized consistent with normalize
  • BUG FIX: Make normalizeWithM consistent with normalize
  • BUG FIX: Fix import alternatives to recover from type errors
  • Feature: Semi-semantic caching
    • The Haskell implementation now implicitly caches all local imports, not
      just imports frozen by integrity checks, so that you don't have to freeze
      them when doing local development
    • These cached imports are still correctly invalidated if they or any of
      their dependencies change
    • This new implicit cache is stored underneath ~/.cache/dhall-haskell by
      default
    • See: #1154
  • Feature: New dhall text subcommand
    • This new subcommand supersedes the old dhall-to-text executable
  • Feature: Add instance Lift (Expr s a)
  • Fixes and improvements to error messages:
  • Fixes and improvements to tests:
  • Performance improvements