github rems-project/sail 0.20.3-binary
0.20.3 (Binary release)

4 hours ago

Changes

This release includes some fixes for Sail to Lean/Rocq, fixing some internal rewrites to reduce memory usage.

For users of custom Sail plugins, the behaviour of SAIL_PLUGIN_DIR has changed slightly. It now takes a list of directories separated by :, allowing multiple directories to be used.

Sail model configuration files are in JSON with Javascript-style comments. This caused problems for consumers that couldn't handle these comments. There is now a small builtin utility to strip these comments.

sail --tool strip_json --compact file.json

There is now a builtin mechanism to provide subcommands with their own custom arguments using the --tool argument. The Sail formatter has been modified to use this mechanism so sail --fmt is equivalent to sail --tool format. This affects the order in which arguments must be passed to sail --fmt - all formatting arguments must be passed after --fmt.

where is now reserved as a keyword for potential future use. We did not find any uses of this in existing Sail models, but it is a breaking change.

Binary packages

This release includes binary packages of Sail 0.20.3 for Linux, for both x86_64 (Intel/AMD) platforms and AArch64 (Arm). They are built using a Rocky Linux container, so it should work on a wide variety of Linux distributions with more recent glibc versions. There is also a package for x86_64 Windows.

The tarballs can be verified using GitHub artifact attestations with the GitHub CLI client, which should produce output like:

$ gh attestation verify sail-Linux-x86_64.tar.gz --owner rems-project
Loaded digest sha256:26b59bcab2d66e9f220d317dfe45f8b09170ed70e59a824553d6f525134d1ff6 for file://sail-Linux-x86_64.tar.gz
Loaded 1 attestation from GitHub API

The following policy criteria will be enforced:
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Source Repository Owner URI must match:... https://github.com/rems-project
- Subject Alternative Name must match regex: (?i)^https://github.com/rems-project/
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com

✓ Verification succeeded!

The following 1 attestation matched the policy criteria

- Attestation #1
  - Build repo:..... rems-project/sail
  - Build workflow:. .github/workflows/release.yml@refs/heads/sail2
  - Signer repo:.... rems-project/sail
  - Signer workflow: .github/workflows/release.yml@refs/heads/sail2

To use the binary release, simply extract the correct tarball for your platform and add the included bin directory to your $PATH variable. By default it should know where to find the included Sail libraries and plugins relative to this directory. We include a pre-compiled version of z3, so no additional dependencies should be required. Note that the sail-0.20.1.tbz file on this release is a snapshot of the source tree, and does not contain any built binaries.

If you want to move the binaries you will need to set the $SAIL_DIR environment variable to the included share/sail folder, and the $SAIL_PLUGIN_DIR variable to the share/libsail/plugins folder.

Don't miss a new sail release

NewReleases is sending notifications on new releases.