v0.4.0
Vigil v0.4.0
Vigil v0.4.0 brings explicit, formatted assertion macros, cleaner preprocessor architectures, compiler warning suppressions, and streamlined build configurations for cross-platform integration.
🚀 Features
- Assertion API Enhancement (
115c9dc)- Added explicit
VIGIL_ASSERT_MSGandVIGIL_VERIFY_MSGmacros supportingfmt-style runtime context. - Corrected C++17 variadic macro expansion when forwarding string views to
ReportAssertFailure. - Updated reference examples in
assert_example.cpp.
- Added explicit
- Repository Health & Community Guidelines
🐛 Bug Fixes
- Centralized Log-Level Gating (
bffcf1b)- Updated
VIGIL_LOG_NAMEDto evaluateIsLevelActiveinstead of raw level comparisons. - Suppressed
-Wtype-limitsandC4296warnings when checking log levels against compile-time thresholds.
- Updated
- Log Level Cast Alignment (
8663bab)- Explicitly cast
VIGIL_ACTIVE_LOG_LEVELtouint8_tinsideIsLevelActive.
- Explicitly cast
🚜 Refactoring & Architecture
- Preprocessor & Scoped Logger Cleanup (
fa5b263)- Moved
VIGIL_CURRENT_FUNCTIONtocompiler_attributes.h. - Relocated preprocessor concatenation (
VIGIL_CONCAT) topreprocessor_utils.h. - Replaced ad-hoc
VIGIL_FUNC_SIGusages with standard attribute helpers.
- Moved
- Symbol Visibility & Target Cleanups (
c87ccbe)- Confined
-fvisibilityflags directly to the corevigiltarget configuration. - Removed redundant global
POSITION_INDEPENDENT_CODEproperty specifications.
- Confined
🛠️ Build System & Maintenance
libbacktraceOutput Control: Silenced normal configure output for vendoredlibbacktracewhile preserving logging on failure (ebc049e).- Funding: Added
Full Changelog: v0.3.1...v0.4.0