<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in __availability</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>2fb8f67e - [libc++] Allow enabling assertions when back-deploying</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#2fb8f67e</link>
        <description>[libc++] Allow enabling assertions when back-deployingWhen back-deploying to older platforms, we can still provide assertions,but we might not be able to provide a great implementation for the verbosehandler. Instead, we can just call ::abort().Differential Revision: https://reviews.llvm.org/D131199(cherry picked from commit e36f9e13bca41223bd6af7e49bf020e58a676e9d)

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Thu, 04 Aug 2022 19:25:48 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>3a55353f - [libc++] Rename __libcpp_assertion_handler to __libcpp_verbose_abort</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#3a55353f</link>
        <description>[libc++] Rename __libcpp_assertion_handler to __libcpp_verbose_abortWith the goal of reusing that handler to do other things besideshandling assertions (such as terminating when an exception is thrownunder -fno-exceptions), the name `__libcpp_assertion_handler` doesn&apos;treally make sense anymore.Furthermore, I didn&apos;t want to use the name `__libcpp_abort_handler`,since that would give the impression that the handler is calledwhenever `std::abort()` is called, which is not the case at all.Differential Revision: https://reviews.llvm.org/D130562(cherry picked from commit 507125af3d0b953cb56bce2e5b8000249fe1ef53)

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Mon, 25 Jul 2022 17:43:47 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b968c345 - [libc++] Removes _LIBCPP_AVAILABILITY_TO_CHARS.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#b968c345</link>
        <description>[libc++] Removes _LIBCPP_AVAILABILITY_TO_CHARS.After moving the std::to_chars base 10 implementation from the dylib tothe header the integral overloads of std::to_chars are available on allplatforms.Remove the _LIBCPP_AVAILABILITY_TO_CHARS availability macro and updatethe tests.Depends on D125704Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D125745

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 31 May 2022 16:58:54 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>b0fd9497 - [libc++] Add a lightweight overridable assertion handler</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#b0fd9497</link>
        <description>[libc++] Add a lightweight overridable assertion handlerThis patch adds a lightweight assertion handler mechanism that can beoverriden at link-time in a fashion similar to `operator new`.This is a third take on https://llvm.org/D121123 (which allowed customizingthe assertion handler at compile-time), and https://llvm.org/D119969(which allowed customizing the assertion handler at runtime only).This approach is, I think, the best of all three explored approaches.Indeed, replacing the assertion handler in user code is ergonomic,yet we retain the ability to provide a custom assertion handler whendeploying to older platforms that don&apos;t have a default handler inthe dylib.As-is, this patch provides a pretty good amount of backwards compatibilitywith the previous debug mode:- Code that used to set _LIBCPP_DEBUG=0 in order to get basic assertions  in their code will still get basic assertions out of the box, but  those assertions will be using the new assertion handler support.- Code that was previously compiled with references to __libcpp_debug_function  and friends will work out-of-the-box, no changes required. This is  because we provide the same symbols in the dylib as we used to.- Code that used to set a custom __libcpp_debug_function will stop  compiling, because we don&apos;t provide that declaration anymore. Users  will have to migrate to the new way of setting a custom assertion  handler, which is extremely easy. I suspect that pool of users is  very limited, so breaking them at compile-time is probably acceptable.The main downside of this approach is that code being compiled withassertions enabled but deploying to an older platform where the assertionhandler didn&apos;t exist yet will fail to compile. However users can easilyfix the problem by providing a custom assertion handler and definingthe _LIBCPP_AVAILABILITY_CUSTOM_ASSERTION_HANDLER_PROVIDED macro tolet the library know about the custom handler. In a way, this isactually a feature because it avoids a load-time error that one wouldotherwise get when trying to run the code on the older target.Differential Revision: https://reviews.llvm.org/D121478

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Thu, 03 Mar 2022 22:37:03 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>215f5fd1 - [libc++][NFC] Change availability macro from macosx to macos</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#215f5fd1</link>
        <description>[libc++][NFC] Change availability macro from macosx to macosThe Clang documentation mentions that macosx is supported for backwardscompatibility, but it&apos;s deprecated.

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Wed, 23 Mar 2022 17:12:55 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>59fae7b2 - [libc++][NFC] Slight improvement to __availability documentation</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#59fae7b2</link>
        <description>[libc++][NFC] Slight improvement to __availability documentation

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 22 Mar 2022 20:48:30 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0bc451e7 - [libc++] Fix incorrect availability markup for bad_optional_access &amp; friends</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#0bc451e7</link>
        <description>[libc++] Fix incorrect availability markup for bad_optional_access &amp; friendsIn 7fb40e1569d, I changed the availability for bad_optional_access andfriends from macOS 10.14 to 10.13 after conducting an investigation onold dylibs. It turns out that macOS 10.13 did have bad_optional_access,however the dylib on iOS didn&apos;t match the dylib on macOS, so thoseexception classes were only introduced in iOS 12.Thanks to Aditya Kumar for noticing this.Differential Revision: https://reviews.llvm.org/D121735

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 15 Mar 2022 20:21:47 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>57c3c48e - [libc++][NFC] Remove redundant comment about availability of std::format</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#57c3c48e</link>
        <description>[libc++][NFC] Remove redundant comment about availability of std::format

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Mon, 14 Feb 2022 19:28:23 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>fa6b9e40 - [libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#fa6b9e40</link>
        <description>[libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.Now we&apos;ll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D118800

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Wed, 02 Feb 2022 01:16:40 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>abb5dd6e - Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu Printf</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#abb5dd6e</link>
        <description>Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu PrintfMicrosoft would like to contribute its implementation of floating-point to_chars to libc++. This uses the impossibly fast Ryu and Ryu Printf algorithms invented by Ulf Adams at Google. Upstream repos: https://github.com/microsoft/STL and https://github.com/ulfjack/ryu .Licensing notes: MSVC&apos;s STL is available under the Apache License v2.0 with LLVM Exception, intentionally chosen to match libc++. We&apos;ve used Ryu under the Boost Software License.This patch contains minor changes from Jorg Brown at Google, to adapt the code to libc++. He verified that it works in Google&apos;s Linux-based environment, but then I applied more changes on top of his, so any compiler errors are my fault. (I haven&apos;t tried to build and test libc++ yet.) Please tell me if we need to do anything else in order to follow https://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes .Notes:* libc++&apos;s integer charconv is unchanged (except for a small refactoring). MSVC&apos;s integer charconv hasn&apos;t been tuned for performance yet, so you&apos;re not missing anything.* Floating-point from_chars isn&apos;t part of this patch because Jorg found that MSVC&apos;s implementation (derived from our CRT&apos;s strtod) was slower than Abseil&apos;s. If you&apos;re unable to use Abseil or another implementation due to licensing or technical considerations, Microsoft would be delighted if you used MSVC&apos;s from_chars (and you can just take it, or ask us to provide a patch like this). Ulf is also working on a novel algorithm for from_chars.* This assumes that float is IEEE 32-bit, double is IEEE 64-bit, and long double is also IEEE 64-bit.* I have added MSVC&apos;s charconv tests (the whole thing: integer/floating from_chars/to_chars), but haven&apos;t adapted them to libcxx&apos;s harness at all. (These tests will be available in the microsoft/STL repo soon.)* Jorg added int128 codepaths. These were originally present in upstream Ryu, and I removed them from microsoft/STL purely for performance reasons (MSVC doesn&apos;t support int128; Clang on Windows does, but I found that x64 intrinsics were slightly faster).* The implementation is split into 3 headers. In MSVC&apos;s STL, charconv contains only Microsoft-written code. xcharconv_ryu.h contains code derived from Ryu (with significant modifications and additions). xcharconv_ryu_tables.h contains Ryu&apos;s large lookup tables (they were sufficiently large to make editing inconvenient, hence the separate file). The xmeow.h convention is MSVC&apos;s for internal headers; you may wish to rename them.* You should consider separately compiling the lookup tables (see https://github.com/microsoft/STL/issues/172 ) for compiler throughput and reduced object file size.* See https://github.com/StephanTLavavej/llvm-project/commits/charconv for fine-grained history. (If necessary, I can perform some rebase surgery to show you what Jorg changed relative to the microsoft/STL repo; currently that&apos;s all fused into the first commit.)Differential Revision: https://reviews.llvm.org/D70631

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 09 Feb 2021 16:52:41 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>ae53d02f - Revert &quot;Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu Printf&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#ae53d02f</link>
        <description>Revert &quot;Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu Printf&quot;This reverts commit a8025e06fc0f2fe1bbee9e1a6f15c336bfbdcb05 sinceit triggers PR52584 with debug info enabled.

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 07 Dec 2021 08:08:51 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>a8025e06 - Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu Printf</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#a8025e06</link>
        <description>Microsoft&apos;s floating-point to_chars powered by Ryu and Ryu PrintfMicrosoft would like to contribute its implementation of floating-point to_chars to libc++. This uses the impossibly fast Ryu and Ryu Printf algorithms invented by Ulf Adams at Google. Upstream repos: https://github.com/microsoft/STL and https://github.com/ulfjack/ryu .Licensing notes: MSVC&apos;s STL is available under the Apache License v2.0 with LLVM Exception, intentionally chosen to match libc++. We&apos;ve used Ryu under the Boost Software License.This patch contains minor changes from Jorg Brown at Google, to adapt the code to libc++. He verified that it works in Google&apos;s Linux-based environment, but then I applied more changes on top of his, so any compiler errors are my fault. (I haven&apos;t tried to build and test libc++ yet.) Please tell me if we need to do anything else in order to follow https://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes .Notes:* libc++&apos;s integer charconv is unchanged (except for a small refactoring). MSVC&apos;s integer charconv hasn&apos;t been tuned for performance yet, so you&apos;re not missing anything.* Floating-point from_chars isn&apos;t part of this patch because Jorg found that MSVC&apos;s implementation (derived from our CRT&apos;s strtod) was slower than Abseil&apos;s. If you&apos;re unable to use Abseil or another implementation due to licensing or technical considerations, Microsoft would be delighted if you used MSVC&apos;s from_chars (and you can just take it, or ask us to provide a patch like this). Ulf is also working on a novel algorithm for from_chars.* This assumes that float is IEEE 32-bit, double is IEEE 64-bit, and long double is also IEEE 64-bit.* I have added MSVC&apos;s charconv tests (the whole thing: integer/floating from_chars/to_chars), but haven&apos;t adapted them to libcxx&apos;s harness at all. (These tests will be available in the microsoft/STL repo soon.)* Jorg added int128 codepaths. These were originally present in upstream Ryu, and I removed them from microsoft/STL purely for performance reasons (MSVC doesn&apos;t support int128; Clang on Windows does, but I found that x64 intrinsics were slightly faster).* The implementation is split into 3 headers. In MSVC&apos;s STL, charconv contains only Microsoft-written code. xcharconv_ryu.h contains code derived from Ryu (with significant modifications and additions). xcharconv_ryu_tables.h contains Ryu&apos;s large lookup tables (they were sufficiently large to make editing inconvenient, hence the separate file). The xmeow.h convention is MSVC&apos;s for internal headers; you may wish to rename them.* You should consider separately compiling the lookup tables (see https://github.com/microsoft/STL/issues/172 ) for compiler throughput and reduced object file size.* See https://github.com/StephanTLavavej/llvm-project/commits/charconv for fine-grained history. (If necessary, I can perform some rebase surgery to show you what Jorg changed relative to the microsoft/STL repo; currently that&apos;s all fused into the first commit.)Differential Revision: https://reviews.llvm.org/D70631

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 09 Feb 2021 16:52:41 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>0922ce56 - [libc++][format] Add __format_arg_store.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#0922ce56</link>
        <description>[libc++][format] Add __format_arg_store.This implements the struct `__format_arg_store` and its dependencies:* the class basic_format_arg,* the class basic_format_args,* the class basic_format_context,* the function make_format_args,* the function wmake_format_args,* the function visit_format_arg,* several Standard required typedefs.The following parts will be implemented in a later patch:* the child class `basic_format_arg::handle`,* the function `basic_format_arg::basic_format_arg(const T* p)`.The following extension has been implemented:* the class basic_format_arg supports `__[u]int128_t` on platform where libc++ supports 128 bit integrals.Implements parts of:* P0645 Text FormattingCompletes:* LWG3371 visit_format_arg and make_format_args are not hidden friends* LWG3542 basic_format_arg mishandles basic_string_view with custom traitsNote https://mordante.github.io/blog/2021/06/05/format.html gives a bit more information about the goals and non-goals of this initial patch series.Reviewed By: #libc, ldionne, vitautDifferential Revision: https://reviews.llvm.org/D103357

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Sat, 05 Dec 2020 10:45:21 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>f84dbd2f - [libc++] Enable the synchronization library on Apple platforms</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#f84dbd2f</link>
        <description>[libc++] Enable the synchronization library on Apple platformsThe synchronization library was marked as disabled on Apple platformsup to now because we were not 100% sure that it was going to be ABIstable. However, it&apos;s been some time since we shipped it in upstreamlibc++ now and there&apos;s been no changes so far. This patch enables thesynchronization library on Apple platforms, and hence commits the ABIstability as far as that vendor is concerned.Differential Revision: https://reviews.llvm.org/D96790

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 16 Feb 2021 16:24:27 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>963495f0 - [libc++][format] Adds availability macros for std::format.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#963495f0</link>
        <description>[libc++][format] Adds availability macros for std::format.This prevents std::format to be available until there&apos;s an ABI stableversion. (This only impacts the Apple platform.)Depends on D102703Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D102705

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 18 May 2021 18:00:22 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>4cd6ca10 - [libc++] NFC: Normalize `#endif //` comment indentation</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#4cd6ca10</link>
        <description>[libc++] NFC: Normalize `#endif //` comment indentation

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 20 Apr 2021 16:03:32 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>76fc3575 - [libc++] Make feature-test macros consistent with availability macros</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#76fc3575</link>
        <description>[libc++] Make feature-test macros consistent with availability macrosBefore this patch, feature-test macros didn&apos;t take special availabilitymarkup into account, which means that feature-test macros can sometimesappear to &quot;lie&quot;. For example, if you compile in C++20 mode and targetmacOS 10.13, the __cpp_lib_filesystem feature-test macro will be providedeven though the &lt;filesystem&gt; declarations are marked as unavailable.This patch fixes that.rdar://68142369Differential Revision: https://reviews.llvm.org/D94983

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Tue, 19 Jan 2021 18:04:01 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2eadbc86 - [libc++] Rework the whole availability markup implementation</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__availability#2eadbc86</link>
        <description>[libc++] Rework the whole availability markup implementationCurrently, vendor-specific availability markup is enabled by default.This means that even when building against trunk libc++, the headerswill by default prevent you from using some features that were notreleased in the dylib on your target platform. This is a source offrustration since people building libc++ from sources are usually nottrying to use some vendor&apos;s released dylib.For that reason, I&apos;ve been thinking for a long time that availabilityannotations should be off by default, which is the primary change thatthis commit enables.In addition, it reworks the implementation to make it easier for newvendors to add availability annotations for their platform, and itrefreshes the documentation to reflect the current state of the codebase.Finally, a CMake configuration option is added to control whetheravailability annotations should be turned on for the flavor of libc++being created. The intent is for vendors like Apple to turn it on, andfor the upstream libc++ to leave it off (the default).Differential Revision: https://reviews.llvm.org/D90843

            List of files:
            /llvm-project-15.0.7/libcxx/include/__availability</description>
        <pubDate>Wed, 04 Nov 2020 20:01:25 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne@apple.com&gt;</dc:creator>
    </item>
</channel>
</rss>
