[libcxx-commits] [PATCH] D151026: [libc++] Adds C++26 support.

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat May 20 07:28:35 PDT 2023


Mordante created this revision.
Herald added subscribers: arphaman, arichardson.
Herald added a project: All.
Mordante updated this revision to Diff 524019.
Mordante added a comment.
Mordante updated this revision to Diff 524022.
Mordante updated this revision to Diff 524025.
Mordante updated this revision to Diff 524032.
Mordante published this revision for review.
Mordante added reviewers: ldionne, philnik, var-const, jloser.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

CI fixes.


Mordante added a comment.

CI fixes and adds missing files.


Mordante added a comment.

CI fixes.


Mordante added a comment.

Disable clang-tidy. It uses clang-16 which doesn't know C++26.



================
Comment at: libcxx/utils/ci/buildkite-pipeline.yml:118
         CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
+        # TODO LLVM 17 enable
+        # ENABLE_CLANG_TIDY: "On"
----------------



================
Comment at: libcxx/utils/data/ignore_format.txt:253
 libcxx/include/__chrono/month_weekday.h
+libcxx/include/__chrono/statically_widen.h
 libcxx/include/__chrono/steady_clock.h
----------------
Not sure why this file changed, but this makes the CI happy.


================
Comment at: libcxx/utils/generate_feature_test_macro_components.py:1174
+      header_flag += 1
+    separator = indent_str + add_divider(col_widths, header_flag)
     result.append(separator.rstrip())
----------------
Since C++26 is the last line, it needs a to use '=' instead of '-'. This should be committed separately.


Clang has been updated to support C++26, this adds the same support for
libc++. At the moment C++23 and C++26 are identical. During the next
plenary in June the first C++26 papers will be voted on.

Note like Clang this patch uses C++26 is the internal part and C++2c in
the user visible part.

Depends on D150795 <https://reviews.llvm.org/D150795>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D151026

Files:
  libcxx/cmake/caches/Generic-cxx26.cmake
  libcxx/docs/FeatureTestMacroTable.rst
  libcxx/docs/Status/Cxx2c.rst
  libcxx/docs/Status/Cxx2cIssues.csv
  libcxx/docs/Status/Cxx2cPapers.csv
  libcxx/docs/index.rst
  libcxx/include/version
  libcxx/test/libcxx/transitive_includes.sh.cpp
  libcxx/test/libcxx/transitive_includes/cxx26.csv
  libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
  libcxx/test/tools/clang_tidy_checks/proper_version_checks.cpp
  libcxx/utils/ci/buildkite-pipeline-clang.yml
  libcxx/utils/ci/buildkite-pipeline.yml
  libcxx/utils/ci/run-buildbot
  libcxx/utils/data/ignore_format.txt
  libcxx/utils/generate_feature_test_macro_components.py
  libcxx/utils/generate_header_inclusion_tests.py
  libcxx/utils/libcxx/test/params.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151026.524032.patch
Type: text/x-patch
Size: 209159 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230520/02c5b817/attachment-0001.bin>


More information about the libcxx-commits mailing list