compiler-rt libunwind libcxx libcxxabi: updated to 12.0.1
What’s New in Libc++ 12.0.0?
New Features
Random device support has been made optional. It’s enabled by default and can be disabled by building libc++ with -DLIBCXX_ENABLE_RANDOM_DEVICE=OFF. Disabling random device support can be useful when building the library for platforms that don’t have a source of randomness, such as some embedded platforms. When this is not supported, most of <random> will still be available, but std::random_device will not.
Localization support has been made optional. It’s enabled by default and can be disabled by building libc++ with -DLIBCXX_ENABLE_LOCALIZATION=OFF. Disabling localization can be useful when porting to platforms that don’t support the C locale API (e.g. embedded). When localization is not supported, several parts of the library will be disabled: <iostream>, <regex>, <locale> will be completely unusable, and other parts may be only partly available.
If libc++ is compiled with a C++20 capable compiler it will be compiled in C++20 mode. Else libc++ will be compiled in C++17 mode.
Several unqualified lookups in libc++ have been changed to qualified lookups. This makes libc++ more ADL-proof.
The libc++ implementation status pages have been overhauled. Like other parts documentation they now use restructured text instead of html. Starting with libc++12 the status pages are part of libc++’s documentation.
More C++20 features have been implemented. libc++ C++20 Status has the full overview of libc++’s C++20 implementation status.
Work has started to implement new C++2b features. libc++ C++2b Status has the full overview of libc++’s C++2b implementation status.
API Changes
By default, libc++ will _not_ include the definition for new and delete, since those are provided in libc++abi. Vendors wishing to provide new and delete in libc++ can build the library with -DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=ON to get back the old behavior. This was done to avoid providing new and delete in both libc++ and libc++abi, which is technically an ODR violation. Also note that we couldn’t decide to put the operators in libc++ only, because they are needed from libc++abi (which would create a circular dependency).
During the C++20 standardization process some new low-level bit functions have been renamed. Libc++ has renamed these functions to match the C++20 Standard. - ispow2 has been renamed to has_single_bit - ceil2 has been renamed to bit_ceil - floor2 has been renamed to bit_floor - log2p1 has been renamed to bit_width
In C++20 mode, std::filesystem::path::u8string() and generic_u8string() now return std::u8string according to P0428, while they return std::string in C++17. This can cause source incompatibility, which is discussed and acknowledged in P1423, but that paper doesn’t suggest any remediation for this incompatibility.
2021-07-12 20:46:07 +02:00
|
|
|
$NetBSD: distinfo,v 1.11 2021/07/12 18:46:07 adam Exp $
|
2018-08-09 16:16:08 +02:00
|
|
|
|
compiler-rt libunwind libcxx libcxxabi: updated to 12.0.1
What’s New in Libc++ 12.0.0?
New Features
Random device support has been made optional. It’s enabled by default and can be disabled by building libc++ with -DLIBCXX_ENABLE_RANDOM_DEVICE=OFF. Disabling random device support can be useful when building the library for platforms that don’t have a source of randomness, such as some embedded platforms. When this is not supported, most of <random> will still be available, but std::random_device will not.
Localization support has been made optional. It’s enabled by default and can be disabled by building libc++ with -DLIBCXX_ENABLE_LOCALIZATION=OFF. Disabling localization can be useful when porting to platforms that don’t support the C locale API (e.g. embedded). When localization is not supported, several parts of the library will be disabled: <iostream>, <regex>, <locale> will be completely unusable, and other parts may be only partly available.
If libc++ is compiled with a C++20 capable compiler it will be compiled in C++20 mode. Else libc++ will be compiled in C++17 mode.
Several unqualified lookups in libc++ have been changed to qualified lookups. This makes libc++ more ADL-proof.
The libc++ implementation status pages have been overhauled. Like other parts documentation they now use restructured text instead of html. Starting with libc++12 the status pages are part of libc++’s documentation.
More C++20 features have been implemented. libc++ C++20 Status has the full overview of libc++’s C++20 implementation status.
Work has started to implement new C++2b features. libc++ C++2b Status has the full overview of libc++’s C++2b implementation status.
API Changes
By default, libc++ will _not_ include the definition for new and delete, since those are provided in libc++abi. Vendors wishing to provide new and delete in libc++ can build the library with -DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=ON to get back the old behavior. This was done to avoid providing new and delete in both libc++ and libc++abi, which is technically an ODR violation. Also note that we couldn’t decide to put the operators in libc++ only, because they are needed from libc++abi (which would create a circular dependency).
During the C++20 standardization process some new low-level bit functions have been renamed. Libc++ has renamed these functions to match the C++20 Standard. - ispow2 has been renamed to has_single_bit - ceil2 has been renamed to bit_ceil - floor2 has been renamed to bit_floor - log2p1 has been renamed to bit_width
In C++20 mode, std::filesystem::path::u8string() and generic_u8string() now return std::u8string according to P0428, while they return std::string in C++17. This can cause source incompatibility, which is discussed and acknowledged in P1423, but that paper doesn’t suggest any remediation for this incompatibility.
2021-07-12 20:46:07 +02:00
|
|
|
SHA1 (libcxx-12.0.1.src.tar.xz) = 84b27abcb3de60d1fd41826cf80e90ca974139c2
|
|
|
|
RMD160 (libcxx-12.0.1.src.tar.xz) = ad12f967c54a55e9f403c5c134f74e6689defeb7
|
|
|
|
SHA512 (libcxx-12.0.1.src.tar.xz) = c9f9a546d6a312ff6e7c85a044ce801fe7bfca1c349767b3f3c5ea16656b8906a8078f25de38138c9844c4b2646238fd17d890438cd10391cd9e4a430f9064a0
|
|
|
|
Size (libcxx-12.0.1.src.tar.xz) = 1882840 bytes
|
|
|
|
SHA1 (libcxxabi-12.0.1.src.tar.xz) = ed140d4df79e334b17a1e7d6adfed9ca2e11449b
|
|
|
|
RMD160 (libcxxabi-12.0.1.src.tar.xz) = 981c416f6d12b911d684e31631d2f6b9a03ae7c5
|
|
|
|
SHA512 (libcxxabi-12.0.1.src.tar.xz) = c7b236e9afe8d6bba297e1eca12ca0e03fbd1b028b9627154186d27eb2e035cd33eddb72511a38d0827de347a487e180c32c1798759c4283b9fbbf338a015bb9
|
|
|
|
Size (libcxxabi-12.0.1.src.tar.xz) = 552980 bytes
|
|
|
|
SHA1 (llvm-12.0.1.src.tar.xz) = 619fe668e0972d11d0fa2db670a57a42d02fb8ca
|
|
|
|
RMD160 (llvm-12.0.1.src.tar.xz) = 678910782ceac9bcd7234fca9d6e358ffbe7a660
|
|
|
|
SHA512 (llvm-12.0.1.src.tar.xz) = ff674afb4c8eea699a4756f1bb463f15098a7fa354c733de83c024f8f0cf238cd5f19ae3ec446831c7109235e293e2bf31d8562567ede163c8ec53af7306ba0f
|
|
|
|
Size (llvm-12.0.1.src.tar.xz) = 42898504 bytes
|
2019-10-19 15:59:06 +02:00
|
|
|
SHA1 (patch-src_filesystem_directory__iterator.cpp) = 90ebbb80e4ec161405397d6d7c5d1d19a7284325
|