From owner-svn-src-vendor@freebsd.org Wed Jul 19 07:02:51 2017
Return-Path:
Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
[IPv6:2001:1900:2254:206a::19:1])
by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9798EDAAC85;
Wed, 19 Jul 2017 07:02:51 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
[IPv6:2610:1c1:1:6068::e6a:0])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client did not present a certificate)
by mx1.freebsd.org (Postfix) with ESMTPS id 478BE6E436;
Wed, 19 Jul 2017 07:02:51 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6J72o1d091031;
Wed, 19 Jul 2017 07:02:50 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6J72nmu091019;
Wed, 19 Jul 2017 07:02:49 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201707190702.v6J72nmu091019@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
using -f
From: Dimitry Andric
Date: Wed, 19 Jul 2017 07:02:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
svn-src-vendor@freebsd.org
Subject: svn commit: r321190 - in vendor/libc++/dist: docs/DesignDocs include
lib test/support www
X-SVN-Group: vendor
X-SVN-Commit-Author: dim
X-SVN-Commit-Paths: in vendor/libc++/dist: docs/DesignDocs include lib
test/support www
X-SVN-Commit-Revision: 321190
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-vendor@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for the vendor work area tree
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Wed, 19 Jul 2017 07:02:51 -0000
Author: dim
Date: Wed Jul 19 07:02:49 2017
New Revision: 321190
URL: https://svnweb.freebsd.org/changeset/base/321190
Log:
Vendor import of libc++ trunk r308421:
https://llvm.org/svn/llvm-project/libcxx/trunk@308421
Added:
vendor/libc++/dist/www/cxx2a_status.html (contents, props changed)
Modified:
vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst
vendor/libc++/dist/include/__config
vendor/libc++/dist/include/algorithm
vendor/libc++/dist/include/string
vendor/libc++/dist/include/vector
vendor/libc++/dist/lib/CMakeLists.txt
vendor/libc++/dist/test/support/test_macros.h
vendor/libc++/dist/www/cxx1z_status.html
vendor/libc++/dist/www/index.html
vendor/libc++/dist/www/upcoming_meeting.html
Modified: vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst
==============================================================================
--- vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst Wed Jul 19 07:02:49 2017 (r321190)
@@ -90,20 +90,21 @@ Visibility Macros
The macro has an empty definition with GCC.
**Windows Behavior**: `extern template` and `dllexport` are fundamentally
- incompatible *on a template class* on Windows; the former suppresses
+ incompatible *on a class template* on Windows; the former suppresses
instantiation, while the latter forces it. Specifying both on the same
- declaration makes the template class be instantiated, which is not desirable
+ declaration makes the class template be instantiated, which is not desirable
inside headers. This macro therefore expands to `dllimport` outside of libc++
but nothing inside of it (rather than expanding to `dllexport`); instead, the
explicit instantiations themselves are marked as exported. Note that this
- applies *only* to extern template *classes*. Extern template *functions* obey
+ applies *only* to extern *class* templates. Extern *function* templates obey
regular import/export semantics, and applying `dllexport` directly to the
- extern template declaration is the correct thing to do for them.
+ extern template declaration (i.e. using `_LIBCPP_FUNC_VIS`) is the correct
+ thing to do for them.
**_LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS**
Mark the member functions, typeinfo, and vtable of an explicit instantiation
of a class template as being exported by the libc++ library. This attribute
- must be specified on all template class explicit instantiations.
+ must be specified on all class template explicit instantiations.
It is only necessary to mark the explicit instantiation itself (as opposed to
the extern template declaration) as exported on Windows, as discussed above.
Modified: vendor/libc++/dist/include/__config
==============================================================================
--- vendor/libc++/dist/include/__config Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/include/__config Wed Jul 19 07:02:49 2017 (r321190)
@@ -229,8 +229,9 @@
# define _LIBCPP_SHORT_WCHAR 1
// Both MinGW and native MSVC provide a "MSVC"-like enviroment
# define _LIBCPP_MSVCRT_LIKE
-// If mingw not explicitly detected, assume using MS C runtime only.
-# ifndef __MINGW32__
+// If mingw not explicitly detected, assume using MS C runtime only if
+// a MS compatibility version is specified.
+# if defined(_MSC_VER) && !defined(__MINGW32__)
# define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
# endif
# if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__))
@@ -625,7 +626,6 @@ namespace std {
#define _LIBCPP_HIDDEN
#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
#define _LIBCPP_TEMPLATE_VIS
-#define _LIBCPP_FUNC_VIS_ONLY
#define _LIBCPP_ENUM_VIS
#if defined(_LIBCPP_COMPILER_MSVC)
@@ -684,10 +684,6 @@ namespace std {
# endif
#endif
-#ifndef _LIBCPP_FUNC_VIS_ONLY
-# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS
-#endif
-
#ifndef _LIBCPP_EXTERN_VIS
# define _LIBCPP_EXTERN_VIS
#endif
@@ -925,8 +921,10 @@ template struct __static_assert_check {};
# define _LIBCPP_STD_VER 11
# elif __cplusplus <= 201402L
# define _LIBCPP_STD_VER 14
+# elif __cplusplus <= 201703L
+# define _LIBCPP_STD_VER 17
# else
-# define _LIBCPP_STD_VER 16 // current year, or date of c++17 ratification
+# define _LIBCPP_STD_VER 18 // current year, or date of c++2a ratification
# endif
#endif // _LIBCPP_STD_VER
Modified: vendor/libc++/dist/include/algorithm
==============================================================================
--- vendor/libc++/dist/include/algorithm Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/include/algorithm Wed Jul 19 07:02:49 2017 (r321190)
@@ -4234,10 +4234,6 @@ sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __la
_VSTD::sort<_Tp*, _Comp_ref>(__first.base(), __last.base(), __comp);
}
-#ifdef _LIBCPP_MSVC
-#pragma warning( push )
-#pragma warning( disable: 4231)
-#endif // _LIBCPP_MSVC
_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, char*>(char*, char*, __less&))
_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, wchar_t*>(wchar_t*, wchar_t*, __less&))
_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, signed char*>(signed char*, signed char*, __less&))
@@ -4271,9 +4267,6 @@ _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insert
_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, long double*>(long double*, long double*, __less&))
_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS unsigned __sort5<__less&, long double*>(long double*, long double*, long double*, long double*, long double*, __less&))
-#ifdef _LIBCPP_MSVC
-#pragma warning( pop )
-#endif // _LIBCPP_MSVC
// lower_bound
Modified: vendor/libc++/dist/include/string
==============================================================================
--- vendor/libc++/dist/include/string Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/include/string Wed Jul 19 07:02:49 2017 (r321190)
@@ -578,14 +578,7 @@ __basic_string_common<__b>::__throw_out_of_range() con
_VSTD::__throw_out_of_range("basic_string");
}
-#ifdef _LIBCPP_MSVC
-#pragma warning( push )
-#pragma warning( disable: 4231 )
-#endif // _LIBCPP_MSVC
_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __basic_string_common)
-#ifdef _LIBCPP_MSVC
-#pragma warning( pop )
-#endif // _LIBCPP_MSVC
#ifdef _LIBCPP_NO_EXCEPTIONS
template
@@ -4006,7 +3999,7 @@ basic_string<_CharT, _Traits, _Allocator>::__subscript
_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_string)
_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_string)
-_LIBCPP_EXTERN_TEMPLATE(string operator+, allocator >(char const*, string const&))
+_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+, allocator >(char const*, string const&))
#if _LIBCPP_STD_VER > 11
// Literal suffixes for basic_string [basic.string.literals]
Modified: vendor/libc++/dist/include/vector
==============================================================================
--- vendor/libc++/dist/include/vector Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/include/vector Wed Jul 19 07:02:49 2017 (r321190)
@@ -310,14 +310,7 @@ __vector_base_common<__b>::__throw_out_of_range() cons
_VSTD::__throw_out_of_range("vector");
}
-#ifdef _LIBCPP_MSVC
-#pragma warning( push )
-#pragma warning( disable: 4231 )
-#endif // _LIBCPP_MSVC
_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __vector_base_common)
-#ifdef _LIBCPP_MSVC
-#pragma warning( pop )
-#endif // _LIBCPP_MSVC
template
class __vector_base
Modified: vendor/libc++/dist/lib/CMakeLists.txt
==============================================================================
--- vendor/libc++/dist/lib/CMakeLists.txt Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/lib/CMakeLists.txt Wed Jul 19 07:02:49 2017 (r321190)
@@ -258,7 +258,7 @@ if (LIBCXX_ENABLE_STATIC)
set(MERGE_ARCHIVES_SEARCH_PATHS "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}")
endif()
if ((TARGET ${LIBCXX_CXX_ABI_LIBRARY}) OR
- (${LIBCXX_CXX_ABI_LIBRARY} STREQUAL "cxxabi(_static|_shared)?" AND HAVE_LIBCXXABI))
+ (${LIBCXX_CXX_ABI_LIBRARY} MATCHES "cxxabi(_static|_shared)?" AND HAVE_LIBCXXABI))
set(MERGE_ARCHIVES_ABI_TARGET "$")
else()
set(MERGE_ARCHIVES_ABI_TARGET
Modified: vendor/libc++/dist/test/support/test_macros.h
==============================================================================
--- vendor/libc++/dist/test/support/test_macros.h Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/test/support/test_macros.h Wed Jul 19 07:02:49 2017 (r321190)
@@ -81,8 +81,11 @@
# define TEST_STD_VER 11
#elif __cplusplus <= 201402L
# define TEST_STD_VER 14
+#elif __cplusplus <= 201703L
+# define TEST_STD_VER 17
#else
-# define TEST_STD_VER 16 // current year; greater than current standard
+# define TEST_STD_VER 99 // greater than current standard
+// This is deliberately different than _LIBCPP_STD_VER to discourage matching them up.
#endif
#endif
Modified: vendor/libc++/dist/www/cxx1z_status.html
==============================================================================
--- vendor/libc++/dist/www/cxx1z_status.html Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/www/cxx1z_status.html Wed Jul 19 07:02:49 2017 (r321190)
@@ -161,6 +161,9 @@
P0607R0 LWG Inline Variables for the Standard Library Kona
P0618R0 LWG Deprecating <codecvt> Kona
P0623R0 LWG Final C++17 Parallel Algorithms Fixes Kona
+
+ P0682R1 LWG Repairing elementary string conversions Toronto
+ P0739R0 LWG Some improvements to class template argument deduction integration into the standard library Toronto
@@ -483,6 +486,11 @@
2911 An is_aggregate type trait is needed Kona Complete
2921 packaged_task and type-erased allocators Kona
2934 optional<const T> doesn't compare with T Kona Complete
+
+ 2901 Variants cannot properly support allocators Toronto Complete
+ 2955 to_chars / from_chars depend on std::string Toronto Resolved by P0682R1
+ 2956 filesystem::canonical() still defined in terms of absolute(p, base) Toronto Complete
+
Added: vendor/libc++/dist/www/cxx2a_status.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ vendor/libc++/dist/www/cxx2a_status.html Wed Jul 19 07:02:49 2017 (r321190)
@@ -0,0 +1,90 @@
+
+
+
+
+
+ libc++ C++2a Status
+
+
+
+
+
+
+
+
+
+
libc++ C++2a Status
+
+
+
In July 2017, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++2a" (probably to be C++20).
+
This page shows the status of libc++; the status of clang's support of the language features is here .
+
+
The groups that have contributed papers:
+
+ LWG - Library working group
+ CWG - Core Language Working group
+ SG1 - Study group #1 (Concurrency working group)
+
+
+
+
Paper Status
+
+ Paper # Group Paper Name Meeting Status First released version
+
+ P0463R1 LWG Endian just Endian Toronto
+ P0674R1 LWG Extending make_shared to Support Arrays Toronto
+
+
+
+
+
[ Note: "Nothing to do" means that no library changes were needed to implement this change -- end note]
+
+
Library Working group Issues Status
+
+
+ Issue # Issue Name Meeting Status
+
+ 2070 allocate_shared should use allocator_traits<A>::construct Toronto Resolved by P0674R1
+ 2444 Inconsistent complexity for std::sort_heap Toronto
+ 2593 Moved-from state of Allocators Toronto
+ 2597 std::log misspecified for complex numbersToronto
+ 2783 stack::emplace() and queue::emplace() should return decltype(auto) Toronto
+ 2932 Constraints on parallel algorithm implementations are underspecified Toronto
+ 2937 Is equivalent("existing_thing", "not_existing_thing") an error Toronto Complete
+ 2940 result_of specification also needs a little cleanupToronto
+ 2942 LWG 2873's resolution missed weak_ptr::owner_before Toronto
+ 2954 Specialization of the convenience variable templates should be prohibited Toronto
+ 2961 Bad postcondition for set_default_resource Toronto
+ 2966 Incomplete resolution of US 74 Toronto Nothing to do
+ 2974 Diagnose out of bounds tuple_element/variant_alternative Toronto Complete
+
+
+
+
+
Last Updated: 16-Jul-2017
+
+
+
Modified: vendor/libc++/dist/www/index.html
==============================================================================
--- vendor/libc++/dist/www/index.html Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/www/index.html Wed Jul 19 07:02:49 2017 (r321190)
@@ -138,6 +138,8 @@
C++14 can be found here .
A list of features and changes for the next C++ standard, known here as
"C++1z" (probably to be C++17) can be found here .
+ A list of features and changes for the C++ standard beyond C++17, known here as
+ "C++2a" (probably to be C++20) can be found here .
Implementation of the post-c++14 Technical Specifications is in progress. A list of features and
the current status of these features can be found here .
Modified: vendor/libc++/dist/www/upcoming_meeting.html
==============================================================================
--- vendor/libc++/dist/www/upcoming_meeting.html Wed Jul 19 07:02:46 2017 (r321189)
+++ vendor/libc++/dist/www/upcoming_meeting.html Wed Jul 19 07:02:49 2017 (r321190)
@@ -73,7 +73,11 @@
2974 Diagnose out of bounds tuple_element/variant_alternative Toronto
Priority 1 Bugs
- 2665 remove_filename() post condition is incorrect Kona We do this already
+ 2665 remove_filename() post condition is incorrect Toronto We do this already
+
+ Immediate Issues in Toronto
+ 2901 Variants cannot properly support allocators Toronto We do this already
+ 2956 filesystem::canonical() still defined in terms of absolute(p, base) Toronto