diff options
Diffstat (limited to 'thirdparty/ryml/ext/c4core/changelog')
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.0.md | 3 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.1.md | 5 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.10.md | 106 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.11.md | 59 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.2.md | 4 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.3.md | 1 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.4.md | 6 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.5.md | 2 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.6.md | 2 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.7.md | 5 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.8.md | 45 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/0.1.9.md | 31 | ||||
| -rw-r--r-- | thirdparty/ryml/ext/c4core/changelog/current.md | 0 |
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 |