diff --git a/CHANGELOG.md b/CHANGELOG.md index ce89ea18..68a45116 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,14 +8,17 @@ - (!) feat: formatting grammar improved and units formatting support added - (!) feat: `has_unit_symbol` support removed - (!) feat: ABI concerns resolved with introduction of u8 strings for symbols +- (!) feat: API-related Conan, CMake, and preprocessor options redesigned +- (!) feat: :boom: `core.h` removed - feat: implicit point origins support added - feat: unit default point origin support added - feat: `fma`, `isfinite`, `isinf`, and `isnan` math function added by [@NAThompson](https://github.com/NAThompson) +- feat: `fma` for quantity points added - feat: `quantity_point` support added for `quantity_cast` and `value_cast` - feat: `value_cast` added - feat: `interconvertible(QuantitySpec, QuantitySpec)` added - feat: `qp.quantity_from_zero()` added -- feat: `underlying_type` type trait added +- feat: `value_type` type trait added - feat: do not print space between a number and `percent` or `per_mille` - feat: `ppm` parts per million added by [@nebkat](https://github.com/nebkat) - feat: `atan2` 2-argument arctangent added by [@nebkat](https://github.com/nebkat) @@ -25,6 +28,10 @@ - feat: unit text output support added - feat: formatting error messages improved - feat: improve types readability by eliminating extraneous `()` in references, prefixes, and `kind_of` +- feat: dimension text output added +- feat: some light and radiation ISQ quantities added +- feat: New formatting specification implemented +- feat: allow configuring GSL library use - (!) refactor: `zero_Fahrenheit` renamed to `zeroth_degree_Fahrenheit` - (!) refactor: SI-related trigonometric functions moved to the `si` subnamespace - (!) refactor: `math.h` header file broke up to smaller pieces @@ -32,15 +39,28 @@ - (!) refactor: `ReferenceOf` does not take a dimension anymore - (!) refactor: 'o' replaced with '1' as a modifier for `unit_symbol_solidus::one_denominator` - (!) refactor: `get_kind()` now returns `kind_of` +- (!) refactor: FMT macros moved to `compat_macros.h` +- (!) refactor: `fixed_string` refactored to reflect the latest changes to [P3094R2](https://wg21.link/P3094R2) +- (!) refactor: `basic_symbol_text` renamed to `symbol_text` +- (!) refactor: `ratio` hidden as an implementation detail behind `mag_ratio` +- (!) refactor: `framework.h` introduced +- (!) refactor: type list tools made an implementation detail of the library +- (!) refactor: header files with the entire system definitions moved up in the directory tree - refactor: math functions constraints refactored - refactor: `si_quantities.h` added to improve compile-times - refactor: `validate_ascii_string` refactored to `is_basic_literal_character_set` +- refactor: `underlying_type` split to `wrapped_type` and `value_type` and used in code +- refactor: code refactored to comply with clang-tidy +- refactor: remove dependency on `` header and switch to use an iterator-based `copy` algorithm +- refactor: `terminate` replaced with `abort` and a header file added - fix: `QuantityLike` conversions required `Q::rep` instead of using one provided by `quantity_like_traits` - fix: `QuantitySpec[Unit]` replaced with `make_reference` in `value_cast` - fix: `ice_point` is now defined with the integral offset from `absolute_zero` - fix: performance regression in `sudo_cast` fixed - fix: explicit object parameter support fixed - fix: missing `version` header file added to `hacks.h` +- fix: `quantity_cast` to accept lvalue references (thanks [@burnpanck](https://github.com/burnpanck)) +- fix: `value_cast` with lvalue references to `quantity_point` (thanks [@burnpanck](https://github.com/burnpanck)) - docs: project blog and first posts added - docs: project documentation layout refactored - docs: "Interoperability with Other Libraries" chapter added @@ -55,16 +75,27 @@ - docs: mkdocs social plugin enabled - docs: project logo and custom color scheme added - docs: minimum compiler requirements updated +- docs: unit symbols admonition extended in the "Quick Start" chapter - docs: Cairo dependency described in the MkDocs section +- docs: "hello units" example updated with dimensions output +- docs: "Text Output" chapter updated with the recent formatting changes +- docs: formatting grammar language changed to EBNF +- docs: "Project structure" chapter expanded - (!) build: Conan and CMake options refactored -- (!) build: `MP_UNITS_AS_SYSTEM_HEADERS` support removed +- (!) build: `MP_UNITS_AS_SYSTEM_HEADERS` renamed to `MP_UNITS_BUILD_AS_SYSTEM_HEADERS` +- (!) build: `MP_UNITS_BUILD_LA` and `MP_UNITS_IWYU` CMake options now have `_DEV_` in the name - build: gsl-lite updated to 0.41.0 - build: catch2 updated to 3.5.1 - build: fmt updated to 10.2.1 - build: gitpod environment updated - build: `check_cxx_feature_supported` added +- build: IWYU path handling fixed +- build: IWYU enabled on GCC +- build: `CMAKE_EXPORT_COMPILE_COMMANDS` flag enabled for the developer's build - build(conan): `generate()` now set `cache_variables` - build(conan): `can_run` check added before running tests +- ci: Conan and CMake CI now use different cache names +- ci: gcc-14 added ### 2.1.1 May 16, 2024 { id="2.1.1" }