<div dir="ltr"><div dir="ltr"><div dir="ltr">Yes. See the Testing libc++ docs for instructions [1].</div><div dir="ltr">One setup you invoke lit manually passing `--param=std=c++03`.</div><div dir="ltr"><br></div><div>We also have a C++03 bot. The latest test results give an indication of what's not supported. [2]</div><div dir="ltr"><div><br></div><div>[1] <a href="http://libcxx.llvm.org/docs/TestingLibcxx.html">http://libcxx.llvm.org/docs/TestingLibcxx.html</a></div><div>[2] <a href="http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03/builds/2044/steps/test.libcxx/logs/stdio">http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03/builds/2044/steps/test.libcxx/logs/stdio</a></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 10, 2019 at 9:12 PM Olivier Giroux <<a href="mailto:OGiroux@nvidia.com">OGiroux@nvidia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_7064442491590499149WordSection1">
<p class="MsoNormal">Is there a special step to test with c++03? Because I could pass make check-cxx with lambdas in <atomic>.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Olivier<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12pt;color:black">From: </span></b><span style="font-size:12pt;color:black">Eric Fiselier <<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>><br>
<b>Date: </b>Sunday, February 10, 2019 at 2:11 PM<br>
<b>To: </b>Olivier Giroux <<a href="mailto:OGiroux@nvidia.com" target="_blank">OGiroux@nvidia.com</a>><br>
<b>Cc: </b>JF Bastien <<a href="mailto:jfbastien@apple.com" target="_blank">jfbastien@apple.com</a>>, "<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>" <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>><br>
<b>Subject: </b>Re: [libcxx-dev] What C++03 support should <atomic> have?<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">Libc++ is a C++11 STL implementation that tolerates C++03 compilers.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">If a feature can be reasonably implemented in C++03, then we provide it.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><atomic> is one example, <thread>, <unordered_map> and `std::shared_ptr` are others.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">All of these components should have tests that run in C++03 (Tests are disabled in C++03 using the comment // UNSUPPORTED: c++98, c++03).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Wed, Feb 6, 2019 at 11:39 PM Olivier Giroux via libcxx-dev <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Maybe another way to test these waters is to ask what is actually being _<i>tested_</i>?<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Olivier<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12pt;color:black">From:
</span></b><span style="font-size:12pt;color:black"><<a href="mailto:jfbastien@apple.com" target="_blank">jfbastien@apple.com</a>> on behalf of JF Bastien <<a href="mailto:jfbastien@apple.com" target="_blank">jfbastien@apple.com</a>><br>
<b>Date: </b>Wednesday, February 6, 2019 at 11:21 AM<br>
<b>To: </b>Olivier Giroux <<a href="mailto:OGiroux@nvidia.com" target="_blank">OGiroux@nvidia.com</a>><br>
<b>Cc: </b>"<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>" <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>><br>
<b>Subject: </b>Re: [libcxx-dev] What C++03 support should <atomic> have?</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<p class="MsoNormal">Doing atomics before 11 was pretty wild… So I understand that people using an old C++ want some nice atomics. At the same time… They really should update to C++11 or later.
<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">What does libc++ try to do with new library features on old languages? Seems easy enough so support most of say optional or variant (without CTAD) before C++17. Is this done consistently?
 And how far back, do we even try to support C++98? <u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">It seems like we can be nice where it’s easy, but at some point in time are we just supporting stuff nobody cares about?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-bottom:12pt"><u></u> <u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal">On Feb 5, 2019, at 9:33 PM, Olivier Giroux via libcxx-dev <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">Sorry, that quote is from my patch, but there’s identical code elsewhere in the file. I swear!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Olivier<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<div>
<p class="MsoNormal"><b><span style="font-size:12pt">From:<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></span></b><span style="font-size:12pt">libcxx-dev <<a href="mailto:libcxx-dev-bounces@lists.llvm.org" target="_blank">libcxx-dev-bounces@lists.llvm.org</a>>
 on behalf of Olivier Giroux via libcxx-dev <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>><br>
<b>Reply-To:<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></b>Olivier Giroux <<a href="mailto:OGiroux@nvidia.com" target="_blank">OGiroux@nvidia.com</a>><br>
<b>Date:<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></b>Tuesday, February 5, 2019 at 9:33 PM<br>
<b>To:<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></b>"<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>" <<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a>><br>
<b>Subject:<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></b>[libcxx-dev] What C++03 support should <atomic> have?</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal">There is a little bit of code in this file that suggests it once worked in C++03.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Like so:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:rgb(30,30,30)">
<span style="font-size:10pt;font-family:Consolas;color:rgb(197,134,192)">#ifndef</span><span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"><span style="font-size:10pt;font-family:Consolas;color:rgb(86,156,214)"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(220,220,170)">_LIBCPP_CXX03_LANG</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:rgb(30,30,30)">
<span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">   <span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(220,220,170)">__cxx_atomic_type</span><span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">()
 _NOEXCEPT =<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(197,134,192)">default</span><span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">;</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:rgb(30,30,30)">
<span style="font-size:10pt;font-family:Consolas;color:rgb(197,134,192)">#else</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:rgb(30,30,30)">
<span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">   <span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(220,220,170)">__cxx_atomic_type</span><span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">()
 _NOEXCEPT :<span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(220,220,170)">__a_value</span><span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)">() {}</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:rgb(30,30,30)">
<span style="font-size:10pt;font-family:Consolas;color:rgb(197,134,192)">#endif</span><span class="gmail-m_7064442491590499149gmail-m-2222480216075481894apple-converted-space"><span style="font-size:10pt;font-family:Consolas;color:rgb(212,212,212)"> </span></span><span style="font-size:10pt;font-family:Consolas;color:rgb(106,153,85)">//
 _LIBCPP_CXX03_LANG</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Is that an actual design goal? It looks like it’s broken right now.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Do we maintain this, or do we bump the assumed default to C++11?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks for your guidance,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Olivier<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
</div>
<div>
<div>
<p class="MsoNormal">This email message is for the sole use of the intended recipient(s) and may contain confidential information.  Any unauthorized review, use, disclosure or distribution is prohibited. 
 If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.<u></u><u></u></p>
</div>
</div>
<div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
</div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Helvetica">_______________________________________________<br>
libcxx-dev mailing list<br>
<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev</a></span><u></u><u></u></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
libcxx-dev mailing list<br>
<a href="mailto:libcxx-dev@lists.llvm.org" target="_blank">libcxx-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>

</blockquote></div>