[LoongArch] Remove inaccurate LASX conversion pattern and use [X]VFFINT.S.L instead (#207107)
Original LASX signed/unsigned 64-bit integer & floating point will
suffer from double rounding issue, due to it implements such logic: `i64
-> double -> float` that will lead to precision loss. So delete it and
introduce the `[X]VFFINT.S.L` instruction, which could convert 4 or 8
signed 64-bit integer into float in one instrunction.
Also, create the `MergeBlocksConvert` helper function to reuse the logic
about merge two blocks into one, avoid unnecessary code size bloat.
[libc++] Split the multidimensional algorithms out of uninitialized_algorithms.h (#207447)
While these algorithms are conceptually related to other
`uninitialized_*` algorithms, they're likely only ever going to be used
by `shared_ptr`. `uninitialized_algorithms.h` itself is also getting
rather large, so it makes sense to split the multidimensional versions
into their own header.
Fixes #207417
[InlineCost] Never inline functions with incompatible target features (#205113)
If inlining is unsound due to incompatible target feature attributes, we
should not inline the call even if alwaysinline is set. This will likely
result in a crash during instruction selection.
We tried this previously in
https://github.com/llvm/llvm-project/commit/d6f994acb3d545b80161e24ab742c9c69d4bbf33,
but the change had to be reverted because the quality of our
areInlineCompatible() hooks was very bad at the time, which resulted in
inlining not happening in many cases where it was safe.
I think we're in a much better position now. Most notably, we now have a
default areInlineCompatible() implementation that actually does
something sensible (https://github.com/llvm/llvm-project/pull/117493),
inlining compatibility for target features is now specified in TableGen
(https://github.com/llvm/llvm-project/pull/205348). Various
target-specific issues have been fixed as well, e.g. ARM's overly strict
feature whitelist (https://github.com/llvm/llvm-project/pull/205763) and
X86's overly conservative ABI compatibility checks
(https://github.com/llvm/llvm-project/pull/205106).
logging: archive and rotate. fix two issues, $link being defined after use and $log_subject not taking subfolders into account (leading to overlaps and likely faulty cleanups)
[DA] Rewrite BanerjeeMIV test with safe APInt interval arithmetic
The old banerjeeMIVtest computed inequality bounds using SCEV
arithmetic on 64-bit integers. Intermediate operations like
$(A^{-} - B^{+}) \times Iterations$ could overflow i64 even when all individual
coefficients and loop bounds fit, producing unsound results.
Replace the symbolic bound machinery with a self-contained APInt
interval arithmetic implementation. Key design decisions:
- BanerjeeInterval holds [Lower, Upper] signed-inclusive bounds.
Operations use APInt arithmetic at WideBits, chosen to guarantee no
intermediate overflow:
$$
WideBits = max(8, 2 \times BaseBits + MaxLevels + 8)
$$
This is provably sufficient, each term product needs at most `2 \times BaseBits + 1`
bits, and summing across MaxLevels terms needs at most ceil($\log_2 (MaxLevels)$)
extra bits.
[15 lines not shown]
dnsmasq: simplify previous
Just checking that Unbound watcher doesn't have the same defect;
unify the behaviour by resetting at the beginning of the loop
instead of at the end.
py-project-metadata: update to 0.12.1.
0.12.1
Fixes:
Collect a config error instead of raising a raw TypeError when project.dynamic contains a non-string (unhashable) entry with all_errors=True.
0.12.0
Features:
Support PEP 808 (partially dynamic project metadata) (METADATA 2.6).
Add support for Python 3.15.
Warn (PEP 685) when an extra name in project.optional-dependencies is not a valid name. The extra is still emitted, only a ConfigurationWarning is produced.
Fixes:
Error on an unset dynamic version instead of silently writing Version: 0.0.0. If "version" is declared in project.dynamic but never assigned by the build backend, writing the metadata now raises a ConfigurationError (Field "project.version" missing), restoring the 0.8.x behavior that regressed in the 0.9 rewrite.
[20 lines not shown]
py-numpy: update to 2.5.1.
The NumPy 2.5.1 is a patch release that fixes bugs discovered after the 2.5.0
release. The most noticeable is the fix is to the numpy datetime cython API
which should allow downstream to support NumPy versions older than 2.5.
Preparation for Python 3.15 continues along with typing improvements.
[clangd] Null-check AutoTypeLoc in CollectExtraHighlightings::VisitDeclaratorDecl (#207323)
A Decl's getType() can have a getContainedAutoType() without
its TypeSourceInfo's type having one, because the two types
can differ in type sugar such as DecltypeType which
getContainedAutoType[Loc]() deliberately does not look through.
Fixes https://github.com/llvm/llvm-project/issues/207139
py-last: update to 7.1.0.
Changed
Replace HTTPX with HTTPX2 (#536) @hugovk
Remove legacy Python 2 code (#524) @hugovk
Fixed
Fix AuthenticatedUser.get_name returning empty string (#528) @tonybolivar
Fix Country and Tag equality raising AttributeError (#531) @tonybolivar
Fix User.get_recent_tracks docstring and limit type annotation (#521) @RodrigoAroeira
Fix cache miss on requests with username param (#532) @tonybolivar
Return empty result instead of IndexError on empty search (#530) @tonybolivar
[DA] Rewrite BanerjeeMIV test with safe APInt interval arithmetic
The old banerjeeMIVtest computed inequality bounds using SCEV
arithmetic on 64-bit integers. Intermediate operations like
$(A^{-} - B^{+}) \times Iterations$ could overflow i64 even when all individual
coefficients and loop bounds fit, producing unsound results.
Replace the symbolic bound machinery with a self-contained APInt
interval arithmetic implementation. Key design decisions:
- BanerjeeInterval holds [Lower, Upper] signed-inclusive bounds.
Operations use APInt arithmetic at WideBits, chosen to guarantee no
intermediate overflow:
$$
WideBits = max(8, 2 \times BaseBits + MaxLevels + 8)
$$
This is provably sufficient, each term product needs at most `2 \times BaseBits + 1`
bits, and summing across MaxLevels terms needs at most ceil($\log_2 (MaxLevels)$)
extra bits.
[15 lines not shown]
www/py-httpx2: import py-httpx2-2.5.0
HTTPX2 is a fully featured HTTP client library for Python. It
includes an integrated command line client, has support for both
HTTP/1.1 and HTTP/2, and provides both sync and async APIs.
www/py-httpcore2: import py-httpcore2-2.5.0
The HTTP Core package provides a minimal low-level HTTP client,
which does one thing only. Sending HTTP requests.
It does not provide any high level model abstractions over the API,
does not handle redirects, multipart uploads, building authentication
headers, transparent HTTP caching, URL parsing, session cookie
handling, content or charset decoding, handling JSON, environment
based configuration defaults, or any of that Jazz.
py-filelock: update to 3.29.5.
serialise read/write release rollback against a concurrent acquire by @dxbjavid in #563
🔒 fix(soft_rw): refresh held marker through the verified fd by @dxbjavid in #565
only unlink the writer marker on release if it is still ours by @dxbjavid in #566
don't follow symlinks in raise_on_not_writable_file by @dxbjavid in #567
don't complete a writer acquire on a peer's reclaimed marker by @dxbjavid in #571
use a private break name in break_lock_file by @dxbjavid in #576
Keep Unix lock files after release by @itscloud0 in #577
test: fix Windows type check broken by #577 by @gaborbernat in #580
roll back a read acquire's open transaction when its SELECT fails by @dxbjavid in #575
lifetime: reject negative, non-numeric, and bool values at the setter by @HrachShah in #573