llvm-capstone/libcxx
Mark de Wever 872fe20ddd [libc++][print] Moves is_terminal to the dylib. (#80464)
Having the test in the header requires including unistd.h on POSIX
platforms. This header has other declarations which may conflict with
code that uses named declarations provided by this header. For example
code using "int pipe;" would conflict with the function pipe in this
header.

Moving the code to the dylib means std::print would not be available on
Apple backdeployment targets. On POSIX platforms there is no transcoding
required so a not Standard conforming implementation is still a useful
and the observable differences are minimal. This behaviour has been done
for print before https://github.com/llvm/llvm-project/pull/76293.

Note questions have been raised in LWG4044 "Confusing requirements for
std::print on POSIX platforms", whether or not the isatty check on POSIX
platforms is required. When this LWG issue is resolved the
backdeployment targets could become Standard compliant.

This patch is intended to be backported to the LLVM-18 branch.

Fixes: https://github.com/llvm/llvm-project/issues/79782
(cherry picked from commit 4fb7b3301bfbd439eb3d30d6a36c7cdb26941a0d)
2024-02-15 21:35:51 -08:00
..
benchmarks [libc++abi] Implement __cxa_init_primary_exception and use it to optimize std::make_exception_ptr (#65534) 2024-01-22 10:12:41 -05:00
cmake [libc++] Install modules. (#75741) 2024-01-21 12:16:22 +01:00
docs [🍒] Unconditionally lower std::string's alignment requirement from 16 to 8 (#68925) (#79480) 2024-02-06 17:01:38 -08:00
include [libc++][print] Moves is_terminal to the dylib. (#80464) 2024-02-15 21:35:51 -08:00
lib [libc++][print] Moves is_terminal to the dylib. (#80464) 2024-02-15 21:35:51 -08:00
modules [libc++][modules] Fix disabling Unicode (#81294) 2024-02-10 15:55:03 +00:00
src [libc++][print] Moves is_terminal to the dylib. (#80464) 2024-02-15 21:35:51 -08:00
test [🍒] Unconditionally lower std::string's alignment requirement from 16 to 8 (#68925) (#79480) 2024-02-06 17:01:38 -08:00
utils [libc++] Add missing conditionals for feature-test macros (#80168) 2024-02-05 11:49:51 -08:00
vendor/llvm [libc++][hardening] In production hardening modes, trap rather than abort (#78561) 2024-01-19 13:48:13 -08:00
.clang-format [libc++][memory] P2868R1: Removing deprecated typedef std::allocator::is_always_equal (#78562) 2024-01-20 06:07:19 +02:00
.clang-tidy [libc++] Clang-tidy enable modernize-use-nullptr. 2024-01-21 13:08:18 +01:00
.gitignore
appveyor-reqs-install.cmd
appveyor.yml Remove lit's --summary flag from buildbots. 2023-08-31 14:23:51 -04:00
CMakeLists.txt [libc++] Install modules. (#75741) 2024-01-21 12:16:22 +01:00
CREDITS.TXT [libcxx] Add mdspan/extents 2023-05-16 14:30:36 -07:00
LICENSE.TXT
TODO.TXT