Skip to content

Commit d52b560

Browse files
committed
Release CBMC 6.5.0
This release addresses both soundness (via #8562) and performance issues (via #8574, #8576) in our code contracts instrumentation, and includes a collection of bit-operator cleanup (such as #8524, #8531) and floating-point support improvements (TiesToAway rounding via #8515, native rounding to integer via #8538) that aid EBMC/HW-CBMC.
1 parent e033ba1 commit d52b560

File tree

3 files changed

+64
-2
lines changed

3 files changed

+64
-2
lines changed

CHANGELOG

+62
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
1+
# CBMC 6.5.0
2+
3+
This release addresses both soundness (via #8562) and performance issues (via
4+
#8574, #8576) in our code contracts instrumentation, and includes a collection
5+
of bit-operator cleanup (such as #8524, #8531) and floating-point support
6+
improvements (TiesToAway rounding via #8515, native rounding to integer via
7+
#8538) that aid EBMC/HW-CBMC.
8+
9+
## What's Changed
10+
* CONTRACTS: allow pointer predicates to fail in `assume` contexts by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8562
11+
* Add IEEE 754 TiesToAway rounding mode by @kroening in https://github.com/diffblue/cbmc/pull/8515
12+
* Handle quantifiers with statement expressions by @qinheping in https://github.com/diffblue/cbmc/pull/8605
13+
14+
## Bug Fixes
15+
* SMT2: support `onehot` and `onehot0` by @kroening in https://github.com/diffblue/cbmc/pull/8524
16+
* `cmdlinet`: add `value_opt` methods by @kroening in https://github.com/diffblue/cbmc/pull/8525
17+
* add mulit-ary constructor for xor_exprt, bitxor_exprt, bitand_exprt, … by @kroening in https://github.com/diffblue/cbmc/pull/8529
18+
* add nand_exprt, nor_exprt, xnor_exprt, bitnand_exprt, bitnor_exprt by @kroening in https://github.com/diffblue/cbmc/pull/8531
19+
* SMT2: relations on the range type by @kroening in https://github.com/diffblue/cbmc/pull/8523
20+
* SMT2: allow natural-typed shift distance by @kroening in https://github.com/diffblue/cbmc/pull/8519
21+
* SMT2: fix exception thrown when given unsupported expression by @kroening in https://github.com/diffblue/cbmc/pull/8518
22+
* Add floatbv_mod_exprt and floatbv_rem_exprt classes by @kroening in https://github.com/diffblue/cbmc/pull/8532
23+
* use `zero_extend_exprt` in SMT2 front-end by @kroening in https://github.com/diffblue/cbmc/pull/8493
24+
* SMT2: implement cond by @kroening in https://github.com/diffblue/cbmc/pull/8467
25+
* SMT2: bvnor, bvnand are binary only; add bvxnor by @kroening in https://github.com/diffblue/cbmc/pull/8508
26+
* SMT2: implement nand, nor, xnor by @kroening in https://github.com/diffblue/cbmc/pull/8530
27+
* Fix `onehot0` flattening by @kroening in https://github.com/diffblue/cbmc/pull/8536
28+
* implement `xnor` in prop_conv_solvert by @kroening in https://github.com/diffblue/cbmc/pull/8533
29+
* `ieee_floatt`: add preconditions by @kroening in https://github.com/diffblue/cbmc/pull/8540
30+
* Bugfix: flattening for non-binary `bitnor`, `bitnand`, `bitxnor` by @kroening in https://github.com/diffblue/cbmc/pull/8542
31+
* KNOWNBUG test for enum-range check inside LHS of an assignment by @kroening in https://github.com/diffblue/cbmc/pull/8543
32+
* fix enum-range check for LHSs by @kroening in https://github.com/diffblue/cbmc/pull/8544
33+
* protect `ieee_floatt::rounding_mode` by @kroening in https://github.com/diffblue/cbmc/pull/8551
34+
* SMT2 parser: add abbreviated versions of the rounding modes by @kroening in https://github.com/diffblue/cbmc/pull/8539
35+
* `ieee_floatt::one`(...) by @kroening in https://github.com/diffblue/cbmc/pull/8552
36+
* Compile Java regression test sources (1/n) by @peterschrammel in https://github.com/diffblue/cbmc/pull/8487
37+
* Compile Java regression test sources (2/n) by @peterschrammel in https://github.com/diffblue/cbmc/pull/8548
38+
* Compile Java regression test sources (3/n) by @peterschrammel in https://github.com/diffblue/cbmc/pull/8549
39+
* goto-analyzer: `--show-local-bitvector` by @kroening in https://github.com/diffblue/cbmc/pull/8546
40+
* CONTRACTS: ignore `__CPROVER_dead_object` assignments by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8554
41+
* Compile Java regression test sources (4/n) by @peterschrammel in https://github.com/diffblue/cbmc/pull/8553
42+
* util: Replace std::basic_string<unsigned> with std::basic_string<char32_t> by @xokdvium in https://github.com/diffblue/cbmc/pull/8559
43+
* Fix publish workflow by @tautschnig in https://github.com/diffblue/cbmc/pull/8564
44+
* CONTRACTS: force success for necessary pointer predicates by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8574
45+
* CONTRACTS: separation checks using nondet demonic variable by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8576
46+
* CONTRACTS: ensure at most one predicate per pointer by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8577
47+
* add @peterschrammel as code owner to /src/solvers/floatbv by @kroening in https://github.com/diffblue/cbmc/pull/8580
48+
* SMT2: range_type fixes by @kroening in https://github.com/diffblue/cbmc/pull/8537
49+
* Split `ieee_floatt` into `ieee_float_valuet` and `ieee_floatt` by @kroening in https://github.com/diffblue/cbmc/pull/8550
50+
* Update third-party miniz to 0c30a001bc3c70 by @tautschnig in https://github.com/diffblue/cbmc/pull/8563
51+
* implement boolbvt::get for enumeration types by @kroening in https://github.com/diffblue/cbmc/pull/8589
52+
* bump clang-format to clang-15 by @kroening in https://github.com/diffblue/cbmc/pull/8561
53+
* Remove `namespace_baset::follow(typet)` by @kroening in https://github.com/diffblue/cbmc/pull/8590
54+
* Introduce `floatbv_round_to_integral_exprt` by @kroening in https://github.com/diffblue/cbmc/pull/8538
55+
* line number for files with no newline by @kroening in https://github.com/diffblue/cbmc/pull/8558
56+
* Value-set based dereferencing: fix simplified handling of *(p + i) by @tautschnig in https://github.com/diffblue/cbmc/pull/8578
57+
* fixup #8538 -- correct rounding modes for `floor`, `trunc` by @kroening in https://github.com/diffblue/cbmc/pull/8597
58+
* simplify: rewrite `bitxnor` on booleans to equal by @kroening in https://github.com/diffblue/cbmc/pull/8594
59+
* CONTRACTS: is_fresh now tracks separation at the byte level instead of whole objects by @remi-delmas-3000 in https://github.com/diffblue/cbmc/pull/8603
60+
61+
**Full Changelog**: https://github.com/diffblue/cbmc/compare/cbmc-6.4.1...cbmc-6.5.0
62+
163
# CBMC 6.4.1
264

365
This patch release addresses a hard-coding of C semantics in the back-end for pointer subtraction (via #8497).

src/config.inc

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ endif
4747
OSX_IDENTITY="Developer ID Application: Daniel Kroening"
4848

4949
# Detailed version information
50-
CBMC_VERSION = 6.4.1
50+
CBMC_VERSION = 6.5.0
5151

5252
# Use the CUDD library for BDDs, can be installed using `make -C src cudd-download`
5353
# CUDD = ../../cudd-3.0.0

src/libcprover-rust/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "libcprover_rust"
3-
version = "6.4.1"
3+
version = "6.5.0"
44
edition = "2021"
55
description = "Rust API for CBMC and assorted CProver tools"
66
repository = "https://github.com/diffblue/cbmc"

0 commit comments

Comments
 (0)