|
| 1 | +1.26.0 |
| 2 | + |
| 3 | +* [Supports version 10.0.0 of the standard](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) |
| 4 | +* BREAKING CHANGE TO THE LANGUAGE: [Remove old union literal syntax](https://github.com/dhall-lang/dhall-haskell/pull/1176) |
| 5 | + * Union literals of the form `< x = e | ... >` are no longer valid |
| 6 | + * For more details, see: [Migration: Deprecation of old union literal syntax](https://github.com/dhall-lang/dhall-lang/wiki/Migration%3A-Deprecation-of-old-union-literal-syntax) |
| 7 | + * Also see the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 8 | +* BREAKING CHANGE TO THE API: [Change `X` to be a type synonym for `Data.Void`](https://github.com/dhall-lang/dhall-haskell/pull/1172) |
| 9 | + * This is a breaking change if you were previously pattern matching on the |
| 10 | + `X` constructor. You can replace that with the use of `Data.Void.absurd` |
| 11 | +* BREAKING CHANGE TO THE API: [Treat multi-`let`s as syntactic sugar](https://github.com/dhall-lang/dhall-haskell/pull/1242) |
| 12 | + * This is a breaking change because the `Let` constructor now only stores |
| 13 | + one `Binding` instead of a `NonEmpty` list of `Binding`s |
| 14 | +* PERFORMANCE REGRESSION & TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: [Dependent types](https://github.com/dhall-lang/dhall-haskell/pull/1164) |
| 15 | + * You can now write functions from terms to types |
| 16 | + * There is also now language support for tests of the form |
| 17 | + `assert : x === y` |
| 18 | + * This deteriorates the performance of large multi-`let` expressions |
| 19 | + (See: [#1306](https://github.com/dhall-lang/dhall-haskell/issues/1306)) |
| 20 | + * Splitting large multi-`let` expressions into smaller files may mitigate |
| 21 | + the problem as a work-around for now |
| 22 | + * Follow [#1129](https://github.com/dhall-lang/dhall-haskell/issues/1129) |
| 23 | + for work to fix this performance regression |
| 24 | + * This is also a technically breaking change because `assert` is now a |
| 25 | + reserved keyword |
| 26 | + * See the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 27 | +* TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: [Add `Natural/subtract` built-in](https://github.com/dhall-lang/dhall-haskell/pull/1133) |
| 28 | + * The language now supports machine subtraction, which can be used to |
| 29 | + support several other high-performance operations (like `Natural` |
| 30 | + comparisons) |
| 31 | + * This is a technically breaking change if you used `Natural/subtract` as an |
| 32 | + identifier in your code |
| 33 | + * See the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 34 | +* TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: [More simplifications for field selection](https://github.com/dhall-lang/dhall-haskell/pull/1174) |
| 35 | + * Now the interpreter will more intelligently simplify certain field |
| 36 | + projections |
| 37 | + * For example: `λ(x : { a : Bool, b : Bool }) → (x ⫽ { c = 0 }).{ a, c }.c` |
| 38 | + will now simplify to `λ(x : { a : Bool, b : Bool }) → 0 ` |
| 39 | + * This is a technically breaking change because you will need to update |
| 40 | + integrity checks that protect code simplified in this way |
| 41 | + * See the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 42 | +* TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: [Simplify `⫽` when its arguments are equivalent](https://github.com/dhall-lang/dhall-haskell/pull/1196) |
| 43 | + * This is a technically breaking change for the same reason: this will |
| 44 | + perturb semantic integrity checks for affected code |
| 45 | + * See the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 46 | +* NEW FEATURE: [Restore support for records containing both types and terms](https://github.com/dhall-lang/dhall-haskell/pull/1173) |
| 47 | + * In other words `{ foo = 1, bar = Bool }` is now valid again |
| 48 | + * This means that you now can export a single package containing both types |
| 49 | + and terms |
| 50 | + * See the [changelog for standard version 10.0.0](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0) for more details |
| 51 | +* [`dhall format` now preserves `let` comments](https://github.com/dhall-lang/dhall-haskell/pull/1273) |
| 52 | + * `dhall` format will now preserve comments in the following locations of |
| 53 | + a `let` binding: |
| 54 | + * `let {- HERE -} x {- HERE -} : {- HERE -} Bool = {- HERE -} True in x` |
| 55 | + * This support handles both single-line and multi-line comments and also |
| 56 | + takes care of correctly indenting/dedenting them |
| 57 | + * Note that comments before the `let` keyword are still not preserved |
| 58 | + (unless it is the beginning of the file) |
| 59 | +* [Add API support for marshalling recursive types](https://github.com/dhall-lang/dhall-haskell/pull/1195) |
| 60 | + * You can now marshal recursive types from Dhall into Haskell using the |
| 61 | + newly-added utilities |
| 62 | + * See also: [#1298](https://github.com/dhall-lang/dhall-haskell/pull/1298) |
| 63 | +* [New `:help` command for `dhall repl`](https://github.com/dhall-lang/dhall-haskell/pull/1237) |
| 64 | +* [New `--no-cache` flag](https://github.com/dhall-lang/dhall-haskell/pull/1290) |
| 65 | + * You can now disable use of the cache with this flag |
| 66 | + * This comes in handy if you want to disable α-normalization for imports |
| 67 | + protected by a semantic integrity check |
| 68 | +* Bug fixes |
| 69 | + * [Fix `isNormalized` for field selections](https://github.com/dhall-lang/dhall-haskell/pull/1210) |
| 70 | + * [Simplify `Natural/subtract` when its arguments are equivalent](https://github.com/dhall-lang/dhall-haskell/pull/1220) |
| 71 | + * [Fix `NaN` to be judgmentally equivalent to itself](https://github.com/dhall-lang/dhall-haskell/pull/1231) |
| 72 | + * [Fix `Inject` instance for lists](https://github.com/dhall-lang/dhall-haskell/pull/1261) |
| 73 | + * [Fix typechecking of `toMap`](https://github.com/dhall-lang/dhall-haskell/pull/1279) |
| 74 | +* Performance optimizations |
| 75 | + * [Optimize a few `Set` instances](https://github.com/dhall-lang/dhall-haskell/pull/1184) |
| 76 | + * [Remove some redundant sorting during normalization](https://github.com/dhall-lang/dhall-haskell/pull/1228) |
| 77 | +* Improvements to error messages |
| 78 | + * [Improve error reporting for failed remote imports](https://github.com/dhall-lang/dhall-haskell/pull/1188) |
| 79 | + * [Improve HTTP errors](https://github.com/dhall-lang/dhall-haskell/pull/1253) |
| 80 | +* Improvements to formatting |
| 81 | + * [Indent function arguments when formatting](https://github.com/dhall-lang/dhall-haskell/pull/1167) |
| 82 | + * [Prefer unquoted URLs](https://github.com/dhall-lang/dhall-haskell/pull/1235) |
| 83 | + * [Strip leading whitespace](https://github.com/dhall-lang/dhall-haskell/pull/1270) |
| 84 | +* Improvements to diffs |
| 85 | + * [Fix diffs for lists](https://github.com/dhall-lang/dhall-haskell/pull/1213) |
| 86 | + * [Improve diff for non-empty lists](https://github.com/dhall-lang/dhall-haskell/pull/1244) |
| 87 | + * [Small fixes to `dhall diff`](https://github.com/dhall-lang/dhall-haskell/pull/1263) |
| 88 | +* Improvements to documentation |
| 89 | + * [Fix documentation for `UnionInputType`](https://github.com/dhall-lang/dhall-haskell/pull/1230) |
| 90 | + * [Document support for caching protected imports](https://github.com/dhall-lang/dhall-haskell/pull/1247) |
| 91 | +* Improvements to command-line interface |
| 92 | + * [Improve description of `dhall lint`](https://github.com/dhall-lang/dhall-haskell/pull/1264) |
| 93 | + * [Change `dhall type` to resolve imports](https://github.com/dhall-lang/dhall-haskell/pull/1281) |
| 94 | + |
1 | 95 | 1.25.0 |
2 | 96 |
|
3 | 97 | * Supports version 9.0.0 of the standard |
|
0 commit comments