Skip to content

Dhall for Java 0.10.0-M2

Pre-release
Pre-release
Compare
Choose a tag to compare
@travisbrown travisbrown released this 28 Jul 18:45
· 29 commits to main since this release
v0.10.0-M2
ed147f2

This release updates the Dhall language version from 20.2.0 to 21.0.0 and bumps the minor versions of several module-specific dependencies, including Jawn (from 1.1 to 1.2), SnakeYAML (1.28 to 1.29) and Cats Effect (3.1 to 3.2).

Most prominently this release introduces support for Dhall's new temporal literals:

scala> org.dhallj.parser.DhallParser.parse("2021-01-01T00:00:00+00:00")
val res0: org.dhallj.core.Expr.Parsed = {date = 2021-01-01, time = 00:00:00, timeZone = +00:00}

The implementation passes all acceptance tests for the new language features, but it is otherwise largely untested, and should be used with care in this milestone release. Future releases are likely to include additional support for the new temporal literals, including codecs for java.time types in dhall-scala.

This release includes many small fixes and improvements, including the following:

  • Improved toString implementation for Expr (e.g. fewer unnecessary parentheses; #272 and #273).
  • Support for specifying both cache locations and a relative path for import resolution (#286).
  • New check for Double bounds when parsing (previously we followed Java's Double.parseDouble in returning infinities; #294).
  • Bool -> 1 doesn't type-check now (#289).
  • No Sort in if branches (#290).
  • Type checking for optional annotation in let (#291).
  • Type checking for using value (#295).
  • Fix for a bug in isResolved (#285).
  • Fix for minor import resolution bugs hidden by some test setup mistakes (#287).
  • Changed behavior when cache creation fails (#296).
  • Back to Scala 2 by default in the sbt console (#288).
  • Some public API clean-up (e.g. #276).

Most of these issues were turned up when I realized we weren't actually running some of the failure acceptance tests. I don't think any of them are likely to affect users.

This release includes two known issues. One involves import resolution not consulting the cache in some situations (#298) and the other involves the parser being slightly too accepting (#299). Neither is likely to affect users.