Skip to content

Commit 220c95f

Browse files
committed
Added changelog
1 parent 4b9042d commit 220c95f

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

Changelog.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
- [libassert 1.1](#libassert-11)
2+
- [libassert 1.0 🎉](#libassert-10-)
3+
4+
## libassert 1.1
5+
6+
Changelog:
7+
+ Added `-DNO_ASSERT_RELEASE_EVAL` to make `ASSERT` behave more like traditional C assert
8+
+ Renamed library's namespace to `libassert::`
9+
+ Added customization point for `libassert::detail::stringify`
10+
+ Added support for assertions in constexpr functions
11+
+ Some internal refactoring, bug fixes, and typo corrections
12+
+ Better cmake, big thanks to @qdewaghe!
13+
14+
## libassert 1.0 🎉
15+
16+
Changelog:
17+
18+
+ Renamed: `CHECK` to `DEBUG_ASSERT` and `ASSERT` no longer provides an optimizer hint in release. For the hint use
19+
`ASSUME` - I gave the naming a lot of thought and decided on making naming state intent clearly
20+
+ Overhauled assertion handling to produce better codegen and only compute extra diagnostic expressions in the failure
21+
path
22+
+ Library options:
23+
+ No longer automatically decompose `&&` and `||` expressions because of short-circuiting (decided this behavior was
24+
too surprising), this can be re-enabled if desired with `-DASSERT_DECOMPOSE_BINARY_LOGICAL`
25+
+ It's no longer the default to `#define` the lowercase `assert` alias, this alias can be enabled with
26+
`-DASSERT_LOWERCASE`
27+
+ Removed `-DNCOLOR` in favor of `asserts::config::set_color_output` and `asserts::utils::strip_colors`. This allows
28+
easiest customization of the color printing behavior and making string replacements in this code path is not a
29+
performance concern
30+
+ Assertions are printed only in color by the default handler when the output destination is a tty
31+
+ Custom assert failure handlers
32+
+ Overhauled assertion printing to allow custom assertion failure handlers to print for desired widths
33+
+ Added interface for custom assertion handlers to get a filename, line number, function signature, and assertion
34+
message from the assertion printer
35+
+ Improved handling for extra diagnostics and optional assertion messages
36+
+ Ensuring clean compilation under strictest possible warning flags (everything short of -pedantic and /W4, including
37+
-Wshadow)
38+
+ Support for MSVC compilers
39+
+ Fixed windows dbghelp stack trace bugs 🎉
40+
+ Improved windows stack trace symbol resolution (skip the `this` parameter)
41+
+ The library now makes a few internal utilities public as they are immensely useful
42+
+ The library now exposes the internal stack trace generator, pretty type name generator, and stringification
43+
utilities as bonuses (also exposes internal utilities to get the terminal width and strip colors for use in a
44+
custom failure handler)
45+
+ Refactoring and cleanup
46+
+ Continued moving as much logic as possible out of the .hpp and into the .cpp. Notably, nothing related to syntax
47+
highlighting is in the .hpp anymore, a lot of stringification logic has been moved out, much of the printing logic
48+
has also been moved out)
49+
+ "Macro Hygiene"
50+
+ Namespace reorganization
51+
+ Improved handling of forwarding in the expression decomposer
52+
+ CMake configuration
53+
+ Improved documentation
54+
+ Improvements to trace printing
55+
+ Improved type name generation
56+
+ Added cleaning for type names from the compiler
57+
+ Example from MSVC:<br/>Before type cleaning: `class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>>,int,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>>>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>> const ,int>>>`<br/>After type cleaning: `std::map<std::string, int, std::less<std::string>>`
58+
+ Improved value printing and stringification:
59+
+ Pointers are printed with their data type, function pointers are now supported
60+
+ Better display of char values in conjunction with ints
61+
+ Added printing for container types
62+
+ Added printing for tuple-like types
63+
+ Added optional support for magic enum for better stringification of enum class values (enabled with
64+
`-DASSERT_USE_MAGIC_ENUM`)
65+
+ Added spaceship operator support
66+
+ Added Velociraptors
67+
68+
Internal Development:
69+
+ Improved build setup
70+
+ Lots of work to setup automated unit and integration testing for the library
71+
+ Automated static analysis

0 commit comments

Comments
 (0)