|
| 1 | +- [libassert 2.0.0-alpha](#libassert-200-alpha) |
1 | 2 | - [libassert 1.2.2](#libassert-122)
|
2 | 3 | - [libassert 1.2.1](#libassert-121)
|
3 | 4 | - [libassert 1.2](#libassert-12)
|
4 | 5 | - [libassert 1.1](#libassert-11)
|
5 | 6 | - [libassert 1.0 🎉](#libassert-10-)
|
6 | 7 |
|
| 8 | +## libassert 2.0.0-alpha |
| 9 | + |
| 10 | +This is the first pre-release for version 2. Version 2 is an overhaul of the library taking lessons learned. |
| 11 | + |
| 12 | +Major changes: |
| 13 | +- Replaced the previous `ASSERT`/`VERIFY` nomenclature with `DEBUG_ASSERT` and `ASSERT` |
| 14 | +- Updated assertion macros to no longer return a value by default |
| 15 | + - Debug-only assertions no longer have to evaluate the assertion expression, and removed `NO_ASSERT_RELEASE_EVAL` |
| 16 | +- Added `DEBUG_ASSERT_VAL`, `ASSERT_VAL`, and `ASSUME_VAL` variants that return values |
| 17 | +- Added `PANIC` and `UNREACHABLE` |
| 18 | +- Removed default throwing behavior for some assertion failures, all assertions now abort by default |
| 19 | +- Removed non-fatal assertions |
| 20 | +- Improved stringification generation to handle more types and better decide when there is useful information to print |
| 21 | +- Added stringification customization point instead of relying on `operator<<(std::ostream, const T&)` |
| 22 | +- Removed macro-based custom assertion failure handler system |
| 23 | +- Added `libassert::set_failure_handler` |
| 24 | +- Removed default safe signed-unsigned comparison behavior |
| 25 | +- Added `LIBASSERT_SAFE_COMPARISONS` to opt into safe signed-unsigned comparisons |
| 26 | +- Added color palette configuration |
| 27 | +- Added configuration for literal formatting |
| 28 | +- Reworked structures used to represent assertion information |
| 29 | + - Cleaned up `binary_diagnostics_descriptor` |
| 30 | + - Removed up `extra_diagnostics` struct trying to do too much |
| 31 | + - Renamed `assertion_printer` to `assertion_info` |
| 32 | + - Made more information available in the `assertion_info` struct |
| 33 | + - Removed lifetime funniness with the `assertion_info` struct |
| 34 | +- Type prettifying |
| 35 | + - `std::__cxx11::` is simplified to `std::` |
| 36 | + |
| 37 | +Core changes: |
| 38 | +- Cleaned up assertion macro expansion |
| 39 | +- Cleaned up handling of literal formatting |
| 40 | +- Cleaned up stringification generation |
| 41 | +- Cleaned up assertion processing logic |
| 42 | +- Removed the global lock used while processing assertions |
| 43 | +- Lots of internal refactoring, cleanup, and changes to improve maintainability |
| 44 | +- Overhauled CMake thanks to a contributor, fixing a lot of issues |
| 45 | +- Removed need for user to manually specify `ASSERT_STATIC` if using the project with cmake and a static build |
| 46 | +- Magic enum is now grabbed with FetchContent or externally from an existing install or package manager |
| 47 | +- Reworked `README.md` |
| 48 | +- Added `CONTRIBUTING.md` |
| 49 | +- Resolved inconsistent use of `ASSERT` vs `LIBASSERT` for the library's macro prefix |
| 50 | +- Fixed inconsistent use of `assert` vs `libassert` for referring to the library |
| 51 | +- Updated the library's cmake target name to `libassert::assert` |
| 52 | +- Updated the library's header to `<libasssert/assert.hpp>` |
| 53 | +- Updated internal error handling to use cpptrace exceptions |
| 54 | +- Added cmake integration testing on mingw to CI |
| 55 | +- General CI improvements |
| 56 | +- General testing improvements |
| 57 | + |
7 | 58 | ## libassert 1.2.2
|
8 | 59 |
|
9 | 60 | Small patch release that bumps the stack tracing back-end, part of getting vcpkg issues ironed out.
|
|
0 commit comments