aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/ryml/ext/c4core/changelog
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/ryml/ext/c4core/changelog')
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.0.md3
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.1.md5
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.10.md106
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.11.md59
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.2.md4
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.3.md1
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.4.md6
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.5.md2
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.6.md2
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.7.md5
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.8.md45
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/0.1.9.md31
-rw-r--r--thirdparty/ryml/ext/c4core/changelog/current.md0
13 files changed, 0 insertions, 269 deletions
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.0.md b/thirdparty/ryml/ext/c4core/changelog/0.1.0.md
deleted file mode 100644
index 7e9e8a67b..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.0.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# 0.1.0
-
-First release.
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.1.md b/thirdparty/ryml/ext/c4core/changelog/0.1.1.md
deleted file mode 100644
index 934c65f30..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.1.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# 0.1.1
-
-- Fix parsing of hexadecimal floats ([2d5c3f0](https://github.com/biojppm/c4core/commits/2d5c3f0))
-- Fix `csubstr::reverse_sub()` ([902c5b9](https://github.com/biojppm/c4core/commits/902c5b9))
-- Fix [#35](https://github.com/biojppm/c4core/issues/35): add SO_VERSION
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.10.md b/thirdparty/ryml/ext/c4core/changelog/0.1.10.md
deleted file mode 100644
index ce95aaee1..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.10.md
+++ /dev/null
@@ -1,106 +0,0 @@
-### Changes
-
-Improved the performance of `c4/charconv.hpp` functions ([PR#77](https://github.com/biojppm/c4core/pull/77)):
- - Added `digits_dec/hex/oct/bin()`.
- - Optimized `write_dec/hex/oct/bin()`:
- - these functions now return immediately without entering the loop if the output buffer is smaller than respectively `digits_dec/hex/oct/bin()`. This enables both:
- - writing every character in its final position without having to revert the string at the end
- - the need to check the buffer size on appending every character.
- - `write_dec()` now writes two digits at once, thus halving the number of integer divisions.
- - Added `write_dec/hex/oct/bin_unchecked()`, which receive precomputed `digits_dec/hex/oct/bin()`, thus speeding up the radix `itoa()/utoa()` overloads.
- - Added `xtoa()` radix+digits overloads:
- - `size_t xtoa(substr s, T v, T radix)`
- - `size_t xtoa(substr s, T v, T radix, size_t num_digits)`
- - `read_dec/hex/oct/bin()`: these functions no longer allow an empty input buffer.
- - Use intrinsic functions `__builtin_clz()` (gcc) / `_BitScanReverse()` (msvc) in `c4::msb()` and `__builtin_ctz()` (gcc) / `_BitScanForward()` (msvc) in `c4::lsb()` when they are available. `msb()` is used by `digits_hex()/digits_bin()`.
- - Refactored the charconv tests to improve consistency and thoroughness.
- - Improved the charconv benchmarks to ensure full consistency across benchmarks.
- - Special thanks and kudos to @fargies for being attentive and pinpointing several issues throughout the PR!
- - Finding the best approach involved [writing a R&D benchmark for the several algorithm components](https://github.com/biojppm/c4core/tree/master/bm/bm_xtoa.cpp). This benchmark is disabled by default, and can be enabled with the flag `C4CORE_BM_XTOA_RND`.
- - With the changes from this PR, the [charconv benchmark](https://github.com/biojppm/c4core/tree/master/bm_charconv.cpp) results show that on Linux/g++11.2, with integral types:
- - `c4::to_chars()` can be expected to be roughly...
- - ~40% to 2x faster than `std::to_chars()`
- - ~10x-30x faster than `sprintf()`
- - ~50x-100x faster than a naive `stringstream::operator<<()` followed by `stringstream::str()`
- - `c4::from_chars()` can be expected to be roughly...
- - ~10%-30% faster than `std::from_chars()`
- - ~10x faster than `scanf()`
- - ~30x-50x faster than a naive `stringstream::str()` followed by `stringstream::operator>>()`
- - Here are the results from the run:
- | Write throughput | | Read throughput | |
- |:-------------------------|--------:|:-------------------------|---------:|
- | **write `uint8_t`** | **MB/s**| **read `uint8_t`** | **MB/s**|
- | `c4::to_chars<u8>` | 526.86 | `c4::from_chars<u8>` | 163.06 |
- | `std::to_chars<u8>` | 379.03 | `std::from_chars<u8>` | 154.85 |
- | `std::sprintf<u8>` | 20.49 | `std::scanf<u8>` | 15.75 |
- | `std::stringstream<u8>` | 3.82 | `std::stringstream<u8>` | 3.83 |
- | **write `int8_t`** | **MB/s**| **read `int8_t`** | **MB/s**|
- | `c4::to_chars<i8>` | 599.98 | `c4::from_chars<i8>` | 184.20 |
- | `std::to_chars<i8>` | 246.32 | `std::from_chars<i8>` | 156.40 |
- | `std::sprintf<i8>` | 19.15 | `std::scanf<i8>` | 16.44 |
- | `std::stringstream<i8>` | 3.83 | `std::stringstream<i8>` | 3.89 |
- | **write `uint16_t`** | **MB/s**| **read `uint16_t`** | **MB/s**|
- | `c4::to_chars<u16>` | 486.40 | `c4::from_chars<u16>` | 349.48 |
- | `std::to_chars<u16>` | 454.24 | `std::from_chars<u16>` | 319.13 |
- | `std::sprintf<u16>` | 38.74 | `std::scanf<u16>` | 28.12 |
- | `std::stringstream<u16>` | 7.08 | `std::stringstream<u16>`| 6.73 |
- | **write `int16_t`** | **MB/s**| **read `int16_t`** | **MB/s**|
- | `c4::to_chars<i16>` | 507.44 | `c4::from_chars<i16>` | 282.95 |
- | `std::to_chars<i16>` | 297.49 | `std::from_chars<i16>` | 186.18 |
- | `std::sprintf<i16>` | 39.03 | `std::scanf<i16>` | 28.45 |
- | `std::stringstream<i16>` | 6.98 | `std::stringstream<i16>`| 6.49 |
- | **write `uint32_t`** | **MB/s**| **read `uint32_t`** | **MB/s**|
- | `c4::to_chars<u32>` | 730.12 | `c4::from_chars<u32>` | 463.95 |
- | `std::to_chars<u32>` | 514.76 | `std::from_chars<u32>` | 329.42 |
- | `std::sprintf<u32>` | 71.19 | `std::scanf<u32>` | 44.97 |
- | `std::stringstream<u32>` | 14.05 | `std::stringstream<u32>`| 12.57 |
- | **write `int32_t`** | **MB/s**| **read `int32_t`** | **MB/s**|
- | `c4::to_chars<i32>` | 618.76 | `c4::from_chars<i32>` | 345.53 |
- | `std::to_chars<i32>` | 394.72 | `std::from_chars<i32>` | 224.46 |
- | `std::sprintf<i32>` | 71.14 | `std::scanf<i32>` | 43.49 |
- | `std::stringstream<i32>` | 13.91 | `std::stringstream<i32>`| 12.03 |
- | **write `uint64_t`** | **MB/s**| **read `uint64_t`** | **MB/s**|
- | `c4::to_chars<u64>` | 1118.87 | `c4::from_chars<u64>` | 928.49 |
- | `std::to_chars<u64>` | 886.58 | `std::from_chars<u64>` | 759.03 |
- | `std::sprintf<u64>` | 140.96 | `std::scanf<u64>` | 91.60 |
- | `std::stringstream<u64>` | 28.01 | `std::stringstream<u64>`| 25.00 |
- | **write `int64_t`** | **MB/s**| **read `int64_t`** | **MB/s**|
- | `c4::to_chars<i64>` | 1198.78 | `c4::from_chars<i64>` | 713.76 |
- | `std::to_chars<i64>` | 882.17 | `std::from_chars<i64>` | 646.18 |
- | `std::sprintf<i64>` | 138.79 | `std::scanf<i64>` | 90.07 |
- | `std::stringstream<i64>` | 27.62 | `std::stringstream<i64>`| 25.12 |
-
-If you feel suspicious about these bold claims, you can browse through [c4core's CI benchmark results](https://github.com/biojppm/c4core/actions/workflows/benchmarks.yml) which will hopefully give these more substance.
-
-
-### New features
-
-- Added `bool c4::overflows<T>(csubstr s)` for detecting whether a string overflows a given integral type. See [PR#78](https://github.com/biojppm/c4core/pull/78).
- - Also, added `c4::fmt::overflow_checked()` (and the corresponding `from_chars()` overload) to enable a check for overflow before parsing from string:
- ```c++
- c4::from_chars(str, &val); // no overflow check
- c4::from_chars(str, c4::fmt::overflow_checked(val)); // enable overflow check
- // as an example, the implementation looks like:
- template<class T>
- bool c4::from_chars(c4::csubstr str, c4::fmt::overflow_checked<T> oc)
- {
- if(overflows<T>(str))
- return false;
- return c4::from_chars(str, oc.val);
- }
- ```
-
-### Fixes
-
-- Fix missing endianess macro on windows arm/arm64 compilations [PR #76](https://github.com/biojppm/c4core/pull/76)
-- Add missing `#define` for the include guard of the amalgamated header (see [rapidyaml#246](https://github.com/biojppm/rapidyaml/issues/246)).
-- Fix CPU detection with ARMEL [PR #86](https://github.com/biojppm/c4core/pull/86).
-- Fix GCC version detection [PR #87](https://github.com/biojppm/c4core/pull/87).
-- Fix [cmake#8](https://github.com/biojppm/cmake/issues/8): `SOVERSION` missing from shared libraries.
-- Update fastfloat to 3.5.1.
-
-### Thanks
-
-- @fargies
-- @daichifukui
-- @janisozaur
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.11.md b/thirdparty/ryml/ext/c4core/changelog/0.1.11.md
deleted file mode 100644
index 7c5ce8600..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.11.md
+++ /dev/null
@@ -1,59 +0,0 @@
-
-### Breaking changes
-
-- `csubstr::operator==(std::nullptr_t)` now strictly checks if the pointer is null and no longer looks at the length ([rapidyaml#264](https://github.com/biojppm/rapidyaml/pull/264)):
- ```diff
- -bool csubstr::operator== (std::nullptr_t) const noexcept { return str == nullptr || len == 0; }
- -bool csubstr::operator!= (std::nullptr_t) const noexcept { return str != nullptr || len == 0; }
- +bool csubstr::operator== (std::nullptr_t) const noexcept { return str == nullptr; }
- +bool csubstr::operator!= (std::nullptr_t) const noexcept { return str != nullptr; }
- ```
-- `to_substr(std::string &s)` and `to_csubstr(std::string const& s)` now point at the first element when the string is empty ([rapidyaml#264](https://github.com/biojppm/rapidyaml/pull/264#issuecomment-1264421024)):
- ```diff
- - return c4::substr(!s.empty() ? &s[0] : nullptr, s.size());
- + return c4::substr(&s[0], s.size());
- ```
- This is OK because an empty `std::string` is guaranteed to have storage, so calling `s[0]` is safe.
-
-
-### New features
-
-- `charconv.hpp`: added `xtoa()` floating-point overloads accepting precision and format ([PR#88](https://github.com/biojppm/c4core/pull/88)):
- ```c++
- size_t xtoa(substr s, float v, int precision, RealFormat_e formatting=FTOA_FLEX) noexcept;
- size_t xtoa(substr s, double v, int precision, RealFormat_e formatting=FTOA_FLEX) noexcept;
- ```
-- `memory_util.hpp`: added `ipow()` overloads for computing powers with integral exponents ([PR#88](https://github.com/biojppm/c4core/pull/88)).
-- Add `C4_NO_DEBUG_BREAK` preprocessor check to disable calls to `c4::debug_break()` (see [rapidyaml#326](https://github.com/biojppm/rapidyaml/issues/326))
- - The cmake project conditionally enables this macro if the cmake option `C4CORE_NO_DEBUG_BREAK` is set to `ON`.
-
-
-### Fixes
-
-- `substr`, `to_chars()`, charconv: ensure `memcpy()` is not called when the length is zero. Doing this is UB and enabled the optimizer to wreak havoc in the branches of calling code. See comments at [rapidyaml#264](https://github.com/biojppm/rapidyaml/pull/264#issuecomment-1262133637) for an example and fix. See [Raymond Chen's blog](https://devblogs.microsoft.com/oldnewthing/20140627-00/?p=633) for an explanation.
-- `atof()` and `atod()` ([PR#88](https://github.com/biojppm/c4core/pull/88)):
- - Always use the fastest implementation available: `std::from_chars()` if available (C++17 or higher standard, with later compilers), `fast_float::from_chars()` otherwise. On Visual Studio, `fast_float::from_chars()` is preferred over `std::from_chars()`.
- - If `std::from_chars()` is not available and `C4CORE_NO_FAST_FLOAT` is defined, then the fallback is based on `sscanf()`.
- - Ensure hexadecimal floats are accepted. The current fast_float implementation does not accept hexadecimal floats, so an hexfloat scanner was added.
-- Likewise for `ftoa()` and `dtoa()`. Prefer the fastest implementation available: `std::to_chars()`->`snprintf()`.
- - Change the `FTOA_*` enum values and type to save a function call when converting format. From now on, only the symbols of this enum can be relied on; the values or type will change depending on the selected implementation (`std::to_chars()` or `snprintf()`) ([PR#91](https://github.com/biojppm/c4core/pull/91)).
-- Fix [#84](https://github.com/biojppm/c4core/issues/84): `csubstr::compare(char)`: refactor to avoid false-positive warning from VS2022.
-- `csubstr` methods: add `noexcept` and annotations `C4_PURE` and `C4_ALWAYS_INLINE`
-- `csubstr`: add `C4_RESTRICT` to incoming string on `csubstr::compare()`
-- `csubstr::first_real_span()` ([PR#89](https://github.com/biojppm/c4core/pull/89)):
- - Refactor to fix number matching rules. Now fully valid for floating point numbers in decimal (eg `0.123/1.23e+01`), hexadecimal (eg `0x123.abc/0x1.23abcp+01`), binary (eg `0b101.10/0b1.0110p+01`) and octal format (eg `0o701.10/0o7.0110p+01`) , with or without exponent or power, in lower or upper case.
- - Also, make the number parsing stateful to fix cases where repeated characters occur, (like e.g. `0.1.0` or `1.23e+e10`) which are no longer reported as numbers (see [biojppm/rapidyaml#291](https://github.com/biojppm/rapidyaml/issues/291)).
-- `csubstr::first_int_span()`, `csubstr::first_uint_span()`: fix edge cases like e.g. `0xzz` which were wrongly reported as numbers.
-- Add fully qualified ARM detection macros:
- - `__ARM_ARCH_7EM__` ([PR#90](https://github.com/biojppm/c4core/pull/90)).
- - `__ARM_ARCH_6KZ__` ([PR#93](https://github.com/biojppm/c4core/pull/93)).
- - `__ARM_ARCH_8A__` ([#94](https://github.com/biojppm/c4core/issues/94)).
-- Improve linux and unix platform detection: detect both `__linux` and `__linux__` ([PR#92](https://github.com/biojppm/c4core/pull/92)).
-
-
-### Thanks
-
-- @mlondono74
-- @musicinmybrain
-- @pkubaj
-- @Gei0r
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.2.md b/thirdparty/ryml/ext/c4core/changelog/0.1.2.md
deleted file mode 100644
index d9c2e9c6c..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.2.md
+++ /dev/null
@@ -1,4 +0,0 @@
-- Fix error macros (ie `C4_ERROR()`, `C4_CHECK()`, `C4_ASSERT()`, etc) such that they are a single statement
-- `is_debugger_attached()`: add MacOSX version
-- Add support for Visual Studio 2022
-- Ensure `C4_LITTLE_ENDIAN` is always defined, even with mixed endianness
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.3.md b/thirdparty/ryml/ext/c4core/changelog/0.1.3.md
deleted file mode 100644
index f98b88f75..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.3.md
+++ /dev/null
@@ -1 +0,0 @@
-- Update fast_float to [3.2.1](https://github.com/fastfloat/fast_float/releases/tag/v3.2.0)
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.4.md b/thirdparty/ryml/ext/c4core/changelog/0.1.4.md
deleted file mode 100644
index b8e88203e..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.4.md
+++ /dev/null
@@ -1,6 +0,0 @@
-- [PR #38](https://github.com/biojppm/c4core/pull/38): add s390x architecture feature macros.
-- Fix compiler warnings after update of fast_float to [3.2.1](https://github.com/fastfloat/fast_float/releases/tag/v3.2.0).
-
-### Thanks
-
-@musicinmybrain
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.5.md b/thirdparty/ryml/ext/c4core/changelog/0.1.5.md
deleted file mode 100644
index e4884472e..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.5.md
+++ /dev/null
@@ -1,2 +0,0 @@
-- Add support for aarch64, s390x, ppc64le CPU architectures
-- Update debugbreak header (added support for the above architectures)
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.6.md b/thirdparty/ryml/ext/c4core/changelog/0.1.6.md
deleted file mode 100644
index 296de1398..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.6.md
+++ /dev/null
@@ -1,2 +0,0 @@
-- Fix wrong version names in version 0.1.5 (was saying 0.1.4, should be 0.1.5)
-
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.7.md b/thirdparty/ryml/ext/c4core/changelog/0.1.7.md
deleted file mode 100644
index 2b053a069..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.7.md
+++ /dev/null
@@ -1,5 +0,0 @@
-- Fix build with C4CORE_NO_FAST_FLOAT ([#42](https://github.com/biojppm/c4core/pull/42)).
-- Fix clang warning in AIX/xlclang ([#44](https://github.com/biojppm/c4core/pull/44)).
-
-### Thanks
---- @mbs-c
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.8.md b/thirdparty/ryml/ext/c4core/changelog/0.1.8.md
deleted file mode 100644
index db77aaf97..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.8.md
+++ /dev/null
@@ -1,45 +0,0 @@
-
-### New features
-
-- Add amalgamation into a single header file ([PR #48](https://github.com/biojppm/c4core/pull/48)):
- - The amalgamated header will be available together with the deliverables from each release.
- - To generate the amalgamated header:
- ```
- $ python tools/amalgamate.py c4core_all.hpp
- ```
- - To use the amalgamated header:
- - Include at will in any header of your project.
- - In one - and only one - of your project source files, `#define C4CORE_SINGLE_HDR_DEFINE_NOW` and then `#include <c4core_all.hpp>`. This will enable the function and class definitions in the header file. For example, here's a sample program:
- ```c++
- #include <iostream>
- #define C4CORE_SINGLE_HDR_DEFINE_NOW // do this before the include
- #include <c4core_all.hpp>
- int main()
- {
- for(c4::csubstr s : c4::csubstr("a/b/c/d").split('/'))
- std::cout << s << "\n";
- }
- ```
-- Add `csubstr::is_unsigned_integer()` and `csubstr::is_real()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
-- CMake: add alias target c4core::c4core, guaranteeing that the same code can be used with `add_subdirectory()` and `find_package()`. (see [rapidyaml #173](https://github.com/biojppm/rapidyaml/issues/173))
-- Add support for compilation with emscripten (WebAssembly+javascript) ([PR #52](https://github.com/biojppm/c4core/pull/52)).
-
-
-### Fixes
-
-- Fix edge cases with empty strings in `span::first()`, `span::last()` and `span::range()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
-- Accept octal numbers in `substr::first_real_span()` and `substr::is_real()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
-- `substr`: fix coverage misses in number query methods ([PR #49](https://github.com/biojppm/c4core/pull/49)).
-- Use single-header version of fast_float ([PR #49](https://github.com/biojppm/c4core/pull/47)).
-- Suppress warnings triggered from fast_float in clang (`-Wfortify-source`) ([PR #49](https://github.com/biojppm/c4core/pull/47)).
-- Add missing `inline` in [src/c4/ext/rng/rng.hpp](src/c4/ext/rng/rng.hpp) ([PR #49](https://github.com/biojppm/c4core/pull/47)).
-- Fix compilation of [src/c4/ext/rng/inplace_function.h](src/c4/ext/inplace_function.h) in C++11 ([PR #49](https://github.com/biojppm/c4core/pull/47)).
-- Change order of headers, notably in `windows_push.hpp` ([PR #47](https://github.com/biojppm/c4core/pull/47)).
-- In `c4/charconv.hpp`: do not use C4_ASSERT in `to_c_fmt()`, which is `constexpr`.
-- Fix [#53](https://github.com/biojppm/c4core/issues/53): cmake install targets were missing call to `export()` ([PR #55](https://github.com/biojppm/c4core/pull/55)).
-- Fix linking of subprojects with libc++: flags should be forwarded through `CMAKE_***_FLAGS` instead of being set explicitly per-target ([PR #54](https://github.com/biojppm/c4core/pull/54)).
-
-
-### Thanks
-
-- @cschreib
diff --git a/thirdparty/ryml/ext/c4core/changelog/0.1.9.md b/thirdparty/ryml/ext/c4core/changelog/0.1.9.md
deleted file mode 100644
index 1ac5aa842..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/0.1.9.md
+++ /dev/null
@@ -1,31 +0,0 @@
-### Breaking changes
-
-- fix [#63](https://github.com/biojppm/c4core/issues/63): remove `c4/time.hpp` and `c4/time.cpp` which prevented compilation in bare-metal mode ([PR #64](https://github.com/biojppm/c4core/issues/64)).
-
-### New features
-
-- Added decoding of UTF codepoints: `c4::decode_code_point()` ([PR #65](https://github.com/biojppm/c4core/issues/65)).
-- Experimental feature: add formatted-dumping facilities: using semantics like `c4::cat()`, `c4::catsep()` and `c4::format()`, where the subject is not a string buffer but a dump callback accepting strings. This still requires a string buffer for serialization of non-string types, but the buffer's required size is now limited to the max serialized size of non-string arguments, in contrast to the requirement in `c4::cat()` et al which is the total serialized size of every argument. This enables very efficient and generic printf-like semantics with reuse of a single small buffer, and allows direct-printing to terminal or file ([PR #67](https://github.com/biojppm/c4core/issues/67)). This feature is still experimental and a minor amount of changes to the API is possible.
-- Added macro `C4_IF_CONSTEXPR` resolving to `if constexpr (...)` if the c++ standard is at least c++17.
-- `csubstr`: add `count(csubstr)` overload.
-- Add support for RISC-V architectures ([PR #69](https://github.com/biojppm/c4core/issues/69)).
-- Add support for bare-metal compilation ([PR #64](https://github.com/biojppm/c4core/issues/64)).
-- gcc >= 4.8 support using polyfills for missing templates and features ([PR #74](https://github.com/biojppm/c4core/pull/74) and [PR #68](https://github.com/biojppm/c4core/pull/68)).
-
-### Fixes
-
-- `csubstr::operator==(std::nullptr_t)` now returns true if either `.str==nullptr` or `.len==0`.
-- Fix: `bool operator==(const char (&s)[N], csubstr)` and `operator==(const char (&s)[N], substr)`. The template declaration for these functions had an extra `const` which prevented these functions to participate in overload resolution, which in some cases resulted in calls resolving to `operator==(std::string const&, csubstr)` if that header was visible ([PR #64](https://github.com/biojppm/c4core/issues/64)).
-- Fix `csubstr::last_not_of()`: optional positional parameter was ignored [PR #62](https://github.com/biojppm/c4core/pull/62).
-- `atof()`, `atod()`, `atox()`, `substr::is_real()`, `substr::first_real_span()`: accept `infinity`, `inf` and `nan` as valid reals [PR #60](https://github.com/biojppm/c4core/pull/60).
-- Add missing export symbols [PR #56](https://github.com/biojppm/c4core/pull/56), [PR #57](https://github.com/biojppm/c4core/pull/57).
-- `c4/substr_fwd.hpp`: fix compilation failure in Xcode 12 and earlier, where the forward declaration for `std::allocator` is inside the `inline namespace __1`, unlike later versions [PR #61](https://github.com/biojppm/c4core/pull/61), reported in [rapidyaml#185](https://github.com/biojppm/rapidyaml/issues/185).
-- `c4/error.hpp`: fix compilation failure in debug mode in Xcode 12 and earlier: `__clang_major__` does not mean the same as in the common clang, and as a result the warning `-Wgnu-inline-cpp-without-extern` does not exist there.
-
-
-### Thanks
-
-- @danngreen
-- @Xeonacid
-- @aviktorov
-- @fargies
diff --git a/thirdparty/ryml/ext/c4core/changelog/current.md b/thirdparty/ryml/ext/c4core/changelog/current.md
deleted file mode 100644
index e69de29bb..000000000
--- a/thirdparty/ryml/ext/c4core/changelog/current.md
+++ /dev/null