[libc++] Report the runs created by dispatch-benchmarks (#216029)
Also, axe the jsonl output which was not used by anything in the
pipeline and simply created confusion.
Fixes #215924
[lldb][test][lldb-dap] Use program path in TestDAP_runInTerminal.py (#216009)
On Linux if you run `INVALIDPROGRAM` it will look in PATH for it.
lldb-dap runs the program using execvp which has special behaviour for
the case where an entry in path cannot be accessed.
https://linux.die.net/man/3/execvp
> If permission is denied for a file (the attempted execve(2)
> failed with the error EACCES), these functions will continue
> searching the rest of the search path. If no other file is
> found, however, they will return with errno set to EACCES.
We have a downstream bot where the PATH was:
PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
The buildbot user is not root, so /root/.cargo/bin was not readable, and
so one test failed on this machine:
```
[18 lines not shown]
[libc++] Make the dry-run message in dispatch-benchmarks debug-only (#216011)
Also include more information which might be relevant when debugging.
Fixes #215926
build: Use -f when copying sources
If one of the source files we copy is non-writeable, cp will create a
non-writeable copy. If the original is later modified, cp will fail to
overwrite the copy since it is not writeable. Using cp -f ensures the
copy always succeeds, as long as the object directory is writeable.
MFC after: 1 week
Sponsored by: Klara, Inc.
Sponsored by: NetApp, Inc.
[clang][LoongArch] Match GCC ABI handling of integer complex types (#215222)
GNU integer complex types such as `_Complex unsigned char` and `_Complex
unsigned short` were incorrectly recognized as eligible floating-point
ABI aggregates by `detectFARsEligibleStructHelper`. When used as a
member of a structure, this caused the real and imaginary parts to be
expanded into separate general-purpose argument registers.
Integer complex types are not floating-point complex types and should be
handled as ordinary aggregates. Restrict the complex-type expansion path
to elements with real floating-point types, allowing small integer
complex aggregates to be packed into a single general-purpose register,
consistent with GCC.
Fixes #214810
[LoongArch] Fix selection of BRCOND with constant conditions
LoongArch DAG instruction selection could fail to select `LoongArchISD::BRCOND`
when its condition was a constant integer. Add patterns to lower constant zero
and one conditions to `BEQZ` and `BNEZ`.
python312 py312-html-docs: updated to 3.12.14
3.12.14
macOS
gh-137586: Invoke osascript with absolute path in webbrowser and turtledemo.
Tests
gh-149776: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it’s not supported. Patch by Victor Stinner.
Security
gh-155558: Update bundled libexpat to version 2.8.3 for the fix to CVE 2026-72522.
gh-153030: Fixed quadratic complexity in incremental parsing of long unterminated constructs (such as tags or comments) in html.parser.HTMLParser, which could be exploited for a denial of service.
gh-152674: The xml.etree.ElementTree.Element methods findall(), iterfind() and find() avoid quadratic behavior when using XPath index predicates ([1], [last()], [last()-N]) on XML documents with many same-tag siblings.
gh-152216: Update bundled libexpat to version 2.8.2.
gh-151987: The tarfile.TarFile.extract() method now applies the given filter when it extracts a link target from the archive as a fallback.
gh-151981: In tarfile, seeking a stream now stops when end of the stream is reached.
gh-151544: Modules/Setup.local is no longer used as a landmark to discover whether Python is running in a source tree, as it could potentially affect actual installs. The pybuilddir.txt file is now the sole indicator of running in a source tree.
gh-151558: Fixed an vulnerability in the tarfile data and tar extraction filters where crafted archives could create a symlink pointing outside the destination directory. This was a bypass of CVE 2025-4330.
gh-150599: Fix a possible stack buffer overflow in bz2 when a bz2.BZ2Decompressor is reused after a decompression error. The decompressor now becomes unusable after libbz2 reports an error.
gh-150743: http.client now limits the number of chunked-response trailer lines it will read to 100, and the number of interim (1xx) responses it will skip to 100. A malicious or broken server could previously stream trailer lines or 100 Continue responses forever, hanging the client even when a socket timeout was in use. Reported by @YLChen-007 via GHSA-w4q2-g22w-6fr4.
[31 lines not shown]
python311 py311-html-docs: updated to 3.11.16
3.11.16
macOS
gh-137586: Invoke osascript with absolute path in webbrowser and turtledemo.
Tests
gh-149776: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it’s not supported. Patch by Victor Stinner.
Security
gh-155558: Update bundled libexpat to version 2.8.3 for the fix to CVE-2026-72522.
gh-153030: Fixed quadratic complexity in incremental parsing of long unterminated constructs (such as tags or comments) in html.parser.HTMLParser, which could be exploited for a denial of service.
gh-152674: The xml.etree.ElementTree.Element methods findall(), iterfind() and find() avoid quadratic behavior when using XPath index predicates ([1], [last()], [last()-N]) on XML documents with many same-tag siblings.
gh-152216: Update bundled libexpat to version 2.8.2.
gh-151987: The tarfile.TarFile.extract() method now applies the given filter when it extracts a link target from the archive as a fallback.
gh-151981: In tarfile, seeking a stream now stops when end of the stream is reached.
gh-151544: Modules/Setup.local is no longer used as a landmark to discover whether Python is running in a source tree, as it could potentially affect actual installs. The pybuilddir.txt file is now the sole indicator of running in a source tree.
gh-151558: Fixed an vulnerability in the tarfile data and tar extraction filters where crafted archives could create a symlink pointing outside the destination directory. This was a bypass of CVE-2025-4330.
gh-150599: Fix a possible stack buffer overflow in bz2 when a bz2.BZ2Decompressor is reused after a decompression error. The decompressor now becomes unusable after libbz2 reports an error.
gh-150743: http.client now limits the number of chunked-response trailer lines it will read to 100, and the number of interim (1xx) responses it will skip to 100. A malicious or broken server could previously stream trailer lines or 100 Continue responses forever, hanging the client even when a socket timeout was in use. Reported by @YLChen-007 via GHSA-w4q2-g22w-6fr4.
[28 lines not shown]
python310 py310-html-docs: updated to 3.10.21
3.10.21
macOS
gh-137586: Invoke osascript with absolute path in webbrowser and turtledemo.
Tests
gh-149776: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it’s not supported. Patch by Victor Stinner.
Security
gh-153030: Fixed quadratic complexity in incremental parsing of long unterminated constructs (such as tags or comments) in html.parser.HTMLParser, which could be exploited for a denial of service.
gh-152674: The xml.etree.ElementTree.Element methods findall(), iterfind() and find() avoid quadratic behavior when using XPath index predicates ([1], [last()], [last()-N]) on XML documents with many same-tag siblings.
gh-152216: Update bundled libexpat to version 2.8.2.
gh-151987: The tarfile.TarFile.extract() method now applies the given filter when it extracts a link target from the archive as a fallback.
gh-151981: In tarfile, seeking a stream now stops when end of the stream is reached.
gh-151558: Fixed an vulnerability in the tarfile data and tar extraction filters where crafted archives could create a symlink pointing outside the destination directory. This was a bypass of CVE-2025-4330.
gh-150599: Fix a possible stack buffer overflow in bz2 when a bz2.BZ2Decompressor is reused after a decompression error. The decompressor now becomes unusable after libbz2 reports an error.
gh-150743: http.client now limits the number of chunked-response trailer lines it will read to 100, and the number of interim (1xx) responses it will skip to 100. A malicious or broken server could previously stream trailer lines or 100 Continue responses forever, hanging the client even when a socket timeout was in use. Reported by @YLChen-007 via GHSA-w4q2-g22w-6fr4.
gh-149698: Update bundled libexpat to version 2.8.1 for the fix for CVE-2026-45186.
gh-87451: The ftplib module’s undocumented ftpcp function no longer trusts the IPv4 address value returned from the source server in response to the PASV command by default, completing the fix for CVE-2021-4189. As with ftplib.FTP, the former behavior can be re-enabled by setting the trust_server_pasv_ipv4_address attribute on the source ftplib.FTP instance to True. Thanks to Qi Deng at Aurascape AI for the report.
[23 lines not shown]
[SLP]Vectorize reductions with fptrunc/fpext round-trip links
Look through the cast round-trips between reduction links: drop the
elidable ones, re-emit the others in the ordered emission.
Fixes #31425
Reviewers: bababuck, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/215571
[libc++][NFC] Update implementation strategy of the `operator()(I&& first, S last)` for `std::ranges::distance` (#215994)
This patch updates the implementation strategy for `ranges::distance(I&&
first, S last)` to match the exact wording from the Standard.
This implementation is NFC because the return type and the branching
condition will be the same after the change, and the tests present in
`libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp`
are already covering the scenarios for such change.
References:
- https://cplusplus.github.io/LWG/issue3664
- https://cplusplus.github.io/LWG/issue4242
- https://wg21.link/range.iter.op.distance
Follows up: https://github.com/llvm/llvm-project/pull/211568
[SPIRV] Implement bare bones lowering for G_PREFETCH (#215505)
Map G_PREFETCH to OpenCL prefetch if SPV_KHR_untyped_pointers is not
enabled, otherwise drop.
Fixes https://github.com/llvm/llvm-project/issues/214265
NAS-142157 / 26.0.0-RC.1 / Fix drift-repair apps test calling a nonexistent method (#19498)
## Problem
`test_drift_repair_ix_apps` calls `docker.start_service`, which doesn't
exist on this branch — the method is registered as
`docker.state.start_service` on the private `DockerStateService`. The
test was brought over from master, where the docker plugin's typesafe
conversion collapsed that service into the public `docker` namespace. It
has failed with "Method does not exist" on every CI run since it landed,
so the drift-repair path it covers has never actually been exercised
here, and it leaves `/mnt/.ix-apps` at 0755 because it loosens the perms
before the call that would re-tighten them.
## Solution
Point the call at `docker.state.start_service`. Same function and same
default `mount_datasets=False` — master's `docker.start_service` just
delegates into it.
[Flang][OpenMP] PoC module support for allocate directives
This patch implements partial support for `allocate` on Fortran
module variables, based on adding global constructor functions for each
impacted variable.
Shared as a proof of concept, because I have a few concerns about it:
1. It appears that Clang ignores `allocate` directives on global
variables instead. Is that the expected behavior?
2. The existing implementation for `allocate` in Flang doesn't
actually impact where the memory used for a variable resides. It
allocates/deallocates extra memory for it using OpenMP internal
compiler calls but then that storage is never used. The original
alloca is still used. This addition suffers from the same issue:
global constructors allocate extra memory that is never used to
update in any way the associated global variable or its users.
3. No `omp.allocate_free` (should be `omp.allocate.free`) can be added
by this approach.
4. The representation of `omp.allocate_dir` (should be `omp.allocate`)
[10 lines not shown]