Previously, this Windows MSI installer was lumped into the same artifact name
as the general Windows binary distribution (e.g.,
`cryptol-3.2.0.99-windows-2019-X64 (GHC 9.4.8)`). As of `v4` of GitHub Actions'
`upload-artifact`, however, it is an error to have two separate
`upload-artifact` steps share the same artifact name. As such, we have to
disambiguate the Windows installer artifact, which this patch accomplishes.
Doing so is completely unnecessary, as we never actually need to build any
Haskell code in these jobs (rather, we invoke pre-built executables instead).
Fixes#1668.
The `checkout` action's default behavior is to create a merge commit during CI
that merges the changes from the PR branch, but this will cause `cryptol
--version` to print the SHA of the merge commit rather than the most recent
HEAD commit, which is what users and developers actually care about. This
commit follows the advice from
96f53100ba (checkout-pull-request-head-commit-instead-of-merge-commit)
to change `checkout`'s behavior to use the HEAD commit instead.
There are two motivations for doing so:
* `sbv-10.0` and later no longer build against GHC 8.10 (see
https://github.com/LeventErkok/sbv/issues/655), but we want to use a new `sbv`
version to come to a resolution to #1548. As such, we need a newer GHC.
* `ghcup` now recommends GHC 9.2.8 for most usage, so it's time we switched
anyway.
This includes the following changes:
* The bindist URLs now include the OS architecture, I have tweaked the parts of
CI that downloads bindists accordingly.
* This snapshot includes `cvc5-1.0.5`, which has fixed a bug that was
responsible for #1548. As such, this fixes#1548.
The previous version (`snapshot-20220812`) was using CVC5 1.0.1, which is too
old to work properly with `what4`. I have bumped the version to
`snapshot-20221212`, which includes CVC5 1.0.2.
This patch:
* Makes the necessary changes on the `cryptol` and `cryptol-remote-api` side
needed add `cvc5`, `w4-cvc5`, and `sbv-cvc5` solvers. This requires SBV 9.1
or later to include the changes from LeventErkok/sbv#630, which re-exports
CVC5-related functionality from all of the places that Cryptol imports from.
* Adds a test case to ensure that basic CVC5 support works.
* Updates the CI and Dockerfile to ensure that CVC5 is included from the
`what4-solvers` bindists.
Fixes#1503.
This patch:
* Bumps the `mypy` lower bounds to avoid incurring a dependency on `typed-ast`,
which is being EOL'd soon. See python/typed_ast#179.
* Bumps the `argo` lower bounds to bring in the changes from
GaloisInc/argo#195, which makes corresponding changes on the `argo` side.
Fixes#1491.
PR #1403 accidentally removed our build coverage for an older Ubuntu LTS
configuration. This patch adds in back and ensures that we don't accidentally
run the tests on this configuration.
This is motivated by a couple of reasons:
* GHC 8.8 on Windows suffers from a bug that can cause building certain code
to loop forever or even segfault. As far as I can tell, this bug doesn't
affect GHC 8.10 or later, so dropping 8.8 is a fairly reliable way to avoid
this problem.
* GHC 8.8 is outside of the three most recent stable GHC releases, so it
doesn't make as much sense to keep maintaining support for it.
The GPG signing step requires access to repository secrets that (apparently)
aren't visible to forks. Let's just not sign build artifacts on forks to avoid
this issue.
This mirrors a corresponding change made to `saw-script`'s CI in
GaloisInc/saw-script@eedcba1126 and
GaloisInc/saw-script@ac082b0dd9.
GitHub Actions has deprecated its Ubuntu 18.04 runners, and they will be
removed by December 1, 2022. Moreover, GitHub Actions now offers Ubuntu 22.04
runners. It seems like a good time to upgrade our CI accordingly.
Somewhat annoyingly, the `haskell` Docker images that we use in our Dockerfiles
use such an old version of Debian that their version of `glibc` is incompatible
with any of the `what4-solvers` built for Ubuntu 20.04 or 22.04. As a result, I
switched them from the `haskell` Docker image to the `ubuntu` one. This
required some minor tweaks to how dependencies are installed, but nothing too
serious.