Skip to content

Dhall for Java 0.8.0-M1

Pre-release
Pre-release
Compare
Choose a tag to compare
@travisbrown travisbrown released this 10 Dec 15:30
· 154 commits to main since this release
v0.8.0-M1
13b8c44

This release updates the Dhall language version from 19.0.0 to 20.0.0.

This release also fixes a bug in the behavior of Text/replace on single-quoted text literals containing tabs. For example, while e.g. compared these correctly in previous releases…

scala> import org.dhallj.syntax._
import org.dhallj.syntax._

scala> "assert: \"\\t\\n\" ≡ ''\n\t\n''".parseExpr.flatMap(_.typeCheck)
val res0: scala.util.Either[org.dhallj.core.DhallException,org.dhallj.core.Expr] = Right("\t\n"  "\u0009\n")

Text/replace did not:

scala> "assert: \"foo\\n\" ≡ Text/replace \"\\t\" \"foo\" ''\n\t\n''".parseExpr.flatMap(_.typeCheck)
val res1: scala.util.Either[org.dhallj.core.DhallException,org.dhallj.core.Expr] = Left(org.dhallj.core.typechecking.TypeCheckFailure: Not an equivalence)

This is now fixed:

scala> import org.dhallj.syntax._
import org.dhallj.syntax._

scala> "assert: \"\\t\\n\" ≡ ''\n\t\n''".parseExpr.flatMap(_.typeCheck)
val res0: scala.util.Either[org.dhallj.core.DhallException,org.dhallj.core.Expr] = Right("\t\n"  "\t\n")

scala> "assert: \"foo\\n\" ≡ Text/replace \"\\t\" \"foo\" ''\n\t\n''".parseExpr.flatMap(_.typeCheck)
val res1: scala.util.Either[org.dhallj.core.DhallException,org.dhallj.core.Expr] = Right("foo\n"  "foo\n")

This bug had been around for a while, but the acceptance tests didn't catch it until this recent dhall-lang change.

Since the last release we've also bumped several dependency versions (#170), migrated from Travis CI to GitHub Actions (#169), and fixed a typo in the published metadata (#171).

This release is verified by MiMa to be backward-binary-compatible with 0.7.0-M1.

There is one known issue in this release, which was also a known issue in 0.5.0-M1, 0.6.0-M1, and 0.7.0-M1 (see the 0.5.0-M1 release notes for details), but it only affects the dhall-imports Scala module, and should not affect most usage.