Skip to content

Releases: travisbrown/dhallj

Dhall for Java 0.3.1

06 May 14:14
v0.3.1
fd956b9
Compare
Choose a tag to compare

This release fixes some issues with escape sequences in text literals (see #77 for the details). All modules except dhall-parser are identical to 0.3.0, and the changes in dhall-parser are binary-compatible with 0.3.0.

Dhall for Java 0.3.0

05 May 08:21
v0.3.0
22fb1c3
Compare
Choose a tag to compare

This release updates the supported Dhall language version from 15.0.0 to 16.0.0. All modules are guaranteed by MiMa to be binary compatible with their 0.2.0 versions.

Status

The status of this release is the same as for 0.2.0: we believe that it's 100% standard-compliant, and all of the Dhall acceptance tests are passing. There are several known issues:

This is still a very new project, and there are likely to be many bugs that we don't know about. Please use with care.

Bug fixes

This release includes a fix for the normalization of partially-saturated built-ins. Previously we followed dhall-haskell in reducing Natural/fold, List/fold, and Optional/fold when possible, even if they were not fully saturated. We now follow the language specification in only reducing fully-saturated built-ins.

This release also includes a fix (#57) by @amesgen for a bug (#56) in the escaping of quotation marks in the YAML exporter.

JavaScript support

Since 0.2.0 we've also introduced support for building JavaScript artifacts via Google's J2CL transpiler, providing a minimal JavaScript API for Dhall parsing, normalization, and type checking in 240K of (minimized) code. We aren't currently distributing these artifacts in any way, but we're hoping to change that in the near future. Please see #58 and #64 for details.

Dhall for Java 0.2.0

21 Apr 08:11
v0.2.0
94f1c6c
Compare
Choose a tag to compare

This is the first release of the second release series of the Dhall for Java project.

Like the 0.1.x releases, this release supports version 15.0.0 of the Dhall language and (where relevant) the Dhall Prelude, with one exception: we don't support quoted URL paths, which were deprecated in 15.0.0 and will be removed in 17.0.0.

Status

We believe that this release is 100% standard-compliant; all of the Dhall acceptance tests are now passing.

There are several known issues:

Please note that we follow the current 1.31.1 release of dhall-haskell in reducing partially saturated built-ins, although this is not the behavior indicated in the language specification. We'll publish a new release with the specified behavior as soon as there's a dhall-haskell release with the fix.

This is still a very new project, and there are likely to be many bugs that we don't know about. Please use with care.

Bug fixes

This release fixes several bugs in 0.1.x:

  • The parser now accepts expressions like []: List Natural: Type (see #36 for details).
  • Newlines are now escaped properly in YAML output (see #38 and the report by @amesgen in #27).
  • Local imports now support quoted paths (thanks to @TimWSpence in #35).
  • The dhall-imports module no longer depends on a specific http4s client (thanks to @amesgen in #30).
  • All Java modules are built with -target 1.7 (previously only dhall-core had been; see #15 and #28).

New features

This release introduces an extension to the language specification to support local imports from the JVM classpath (see this thread and @TimWSpence's work in #32 and #33 for details).

Compatibility

This release is not guaranteed to be binary-compatible with 0.1.x, although most modules have few or no breaking changes and should be mostly source-compatible. The dhall-imports module is the only exception: its API has changed significantly (see e.g. #32, #45, #49, and #50). This release is also not guaranteed to be binary-compatible with 0.3.x or other future release series, but after the dhall-imports reworking here we don't anticipate any major API changes.

Dhall for Java 0.1.1

15 Apr 10:48
v0.1.1
3104732
Compare
Choose a tag to compare

This is the second release of the Dhall for Java project. Please see the 0.1.0 release notes for more detailed information about the 0.1.x release series.

This release supports version 15.0.0 of the Dhall language and (where relevant) the Dhall Prelude, with one exception: we don't support quoted URL paths, which were deprecated in 15.0.0 and will be removed in 17.0.0.

Binary compatibility

All modules in this patch release are verified by MiMa to be binary-compatible with their 0.1.0 counterparts (note that this doesn't apply to dhall-cats, which is new in this release). We follow semantic versioning in not making any guarantees about binary compatibility between pre-1.0 minor versions, but we do guarantee backward binary compatibility between patch versions in each individual 0.x series.

Bug fixes

This release fixes two bugs that were introduced in 0.1.0:

  • The parser accepts # in double-quoted text literals (thanks to @amesgen for reporting this in #21).
  • The JSON exporter now correctly escapes \" (such as you'd get from Text/show).

Note that this second bug affected all JSON and YAML export (i.e. in dhall-core, dhall-circe, dhall-jawn, and dhall-yaml).

New features

This release also introduces one new feature and a new module:

  • Duplicate imports within a single import resolution run are now cached in dhall-imports (see #18 by @TimWSpence).
  • There's a new dhall-cats module (which currently only abstracts some generic stuff out of dhall-imports; see #25).

The support for duplicate import caching means we're also able to run a few more of the acceptance tests.

Dhall for Java 0.1.0

14 Apr 11:59
v0.1.0
5b62bc1
Compare
Choose a tag to compare

This is the first release of the Dhall for Java project.

Status

Please note that this release is not 100% standard-compliant, and has several known issues:

We're working on fixing these issues, but we believe that they're unlikely to affect normal usage, and we're publishing this release as a preview.

Modules

This release includes the following pure Java modules:

  • dhall-core is a Java library with no dependencies that provides β- and α-normalization, type-checking, printing, CBOR encoding and decoding, and (basic) JSON export.
  • dhall-parser is a Java library that depends only on dhall-core and that supports parsing strings and input streams as Dhall expressions.
  • dhall-yaml is a Java library that depends only on dhall-core and SnakeYAML and that supports exporting Dhall expressions to YAML.
  • dhall-imports-mini is a Java library that depends on dhall-core and dhall-parser and supports basic import resolution (no remote imports and no caching).
  • dhall-prelude is a Java library that depends only on dhall-core and provides a "pre-compiled" version of the Dhall Prelude.

There are also several Scala modules that are cross-published for Scala 2.12 and 2.13:

  • dhall-scala is a Scala wrapper for dhall-core, dhall-parser, and dhall-imports-mini.
  • dhall-scala-codec provides type classes for converting Dhall expressions to and from Scala types.
  • dhall-imports is a Scala library that depends on http4s and that provides a more complete implementation of import resolution than dhall-imports-mini.
  • dhall-testing provides ScalaCheck type class instances for dhall-core's Expr for use in property-based tests.
  • dhall-circe provides conversions between Dhall expressions and Circe's JSON representation.
  • dhall-jawn provides support for converting Dhall expressions to the JSON representation of any other Scala JSON library that has a Jawn facade.
  • dhall-javagen takes the dhall-core representation of a Dhall expression and generates Java code that will build the dhall-core representation of that expression (used to create dhall-prelude).

Please see the general project description for more information about these modules.