|
| 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 | + |
1 | 63 | # CBMC 6.4.1
|
2 | 64 |
|
3 | 65 | This patch release addresses a hard-coding of C semantics in the back-end for pointer subtraction (via #8497).
|
|
0 commit comments