Skip to content

Release 2.10.0#830

Merged
shaobo-he merged 44 commits into
mainfrom
release-2.10.0
Jul 8, 2026
Merged

Release 2.10.0#830
shaobo-he merged 44 commits into
mainfrom
release-2.10.0

Conversation

@shaobo-he

@shaobo-he shaobo-he commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Release SMACK 2.10.0 from the current develop branch.

This release moves SMACK to the LLVM 14 toolchain and includes the accumulated fixes on develop since v2.9.0.

Highlights:

  • Upgrade the pinned toolchain to LLVM 14.0.0 and Rust nightly-2022-08-12.
  • Update sea-dsa to upstream dev14 and use the upstream submodule URL.
  • Add Ubuntu 24.04 support and refresh GitHub Actions/Docker configuration.
  • Fix LLVM 14 code generation issues, including MergeGEP handling and pointer-int rewriting preparation.
  • Handle constrained floating-point intrinsics conservatively.
  • Add support for the LLVM copysign intrinsic.
  • Fix vector bitwise and comparison translation.
  • Move floating-point rounding-mode initialization into the fenv model.
  • Make NormalizeLoops a loop pass.
  • Avoid redundant split aggregate memory checks.
  • Fix README CI badge endpoints and Rise4Fun examples.

Release mechanics:

  • Bumps user-visible SMACK version fields from 2.9.0 to 2.10.0.
  • Version bump files follow the previous release pattern: Doxyfile, share/smack/reach.py, and share/smack/top.py.
  • After this PR is merged to main, tag the main merge commit as v2.10.0.

shaobo-he and others added 30 commits March 8, 2022 16:32
Starting from LLVM 13, there isn't a `toString` method for APInt
that returns a std::string. Instead, it forces users to pass in
a small vector of chars to hold the results. So I change all the
old `toString` calls to a sequence of statements where a
`SmallString` is created ,passed to new `to*String` calls, and
finally gets converted to std::string using explicit conversions.
Bumped version number to 2.9.0
- bin/build.sh: install on 24.04 -- LLVM 14 comes from the Ubuntu universe
  repo (apt.llvm.org has no noble-14 feed, which also avoids the removed
  apt-key), and .NET 6 comes from ppa:dotnet/backports so Corral/Boogie
  keep running on the same .NET 6 runtime as 22.04.
- share/smack/top.py: build the --check choices from VProperty.__members__
  instead of iterating the Flag directly. Since Python 3.11 (24.04 ships
  3.12) Flag iteration omits the zero member (none) and composite members
  (memory-safety), which silently dropped them from the valid choices and
  made those tests report UNKNOWN.
- share/smack/svcomp/toSVCOMPformat.py: use a raw string for a regex to
  silence a Python 3.12 SyntaxWarning about an invalid escape sequence.
- Dockerfile, .github/workflows/smack-ci.yaml: bump base image/runners to
  ubuntu 24.04.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The comment added for the Python 3.12 Flag-iteration fix had an 80-char
line; reflow it under the 79-char E501 limit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add Ubuntu 24.04 (noble) support
@shaobo-he shaobo-he closed this Jul 8, 2026
@shaobo-he shaobo-he reopened this Jul 8, 2026
@shaobo-he shaobo-he merged commit 0a64471 into main Jul 8, 2026
87 checks passed
@shaobo-he shaobo-he deleted the release-2.10.0 branch July 8, 2026 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant