[X86] Avoid invalid ret for EH_RETURN with SHSTK (#219322)
## Summary
Fixes #215298
When lowering `llvm.eh.return` on x86, LLVM rewrites the normal stack
return
address and then emits `ret`. This is incompatible with CET shadow
stacks:
the shadow stack still contains the original return address, so `ret`
raises
a control-protection fault.
This affects code using `__builtin_eh_return` with: -mshstk
-fcf-protection=full
## What changed
[61 lines not shown]
NAS-141885 / 26.0.0-RC.1 / Depend on websockify explicitly for SPICE display (by Qubad786) (#19663)
## Problem
VMs with a SPICE display device shell out to the `websockify` binary at
runtime (truenas_pylibvirt's display device runs `websockify --web
/usr/share/spice-html5/ ...` to proxy the console to the web UI). We
never declared that dependency though — websockify only got installed as
a transitive `Recommends:` of `spice-html5`. Once truenas_build disabled
`install_recommends` by default, the `truenas` package started
installing with `--no-install-recommends`, so websockify silently
stopped being pulled in and SPICE consoles broke.
## Solution
Add `websockify` to middlewared's `Depends`. It's a genuine hard runtime
dependency of the SPICE path, so declaring it explicitly makes it come
in regardless of the build's recommends setting and keeps us correct
even if spice-html5's packaging changes.
Original PR: https://github.com/truenas/middleware/pull/19365
Co-authored-by: Qubad786 <mrehanlm93 at gmail.com>
NAS-141885 / 26.0.0 / Depend on websockify explicitly for SPICE display (by Qubad786) (#19662)
## Problem
VMs with a SPICE display device shell out to the `websockify` binary at
runtime (truenas_pylibvirt's display device runs `websockify --web
/usr/share/spice-html5/ ...` to proxy the console to the web UI). We
never declared that dependency though — websockify only got installed as
a transitive `Recommends:` of `spice-html5`. Once truenas_build disabled
`install_recommends` by default, the `truenas` package started
installing with `--no-install-recommends`, so websockify silently
stopped being pulled in and SPICE consoles broke.
## Solution
Add `websockify` to middlewared's `Depends`. It's a genuine hard runtime
dependency of the SPICE path, so declaring it explicitly makes it come
in regardless of the build's recommends setting and keeps us correct
even if spice-html5's packaging changes.
Original PR: https://github.com/truenas/middleware/pull/19365
Co-authored-by: Qubad786 <mrehanlm93 at gmail.com>
[ValueTracking] Clarify KnownBits recurrence code (#222266)
While reviewing a related PR, I found the R/L variable naming here very
confusing. Use Start and Step instead, matching the parameter names of
matchSimpleRecurrence().
Also clarify why the context adjustment for the step is necessary, and
add a test that would miscompile if it isn't performed.
[Clang] Skip invalid fields when synthesizing defaulted comparisons (#221570)
Fixes #194605
`CheckFieldDecl` already rejects `int [[clang::address_space(1)]] i;`
and marks the field invalid, but `DefaultedComparisonVisitor` still
visited it when synthesizing the defaulted `operator==`.
`BuildFieldReferenceExpr` then tripped the
`!MemberQuals.hasAddressSpace()` assertion. Both
`__is_trivially_equality_comparable(S)` and a plain `a == b` reach that
path.
`visitSubobjects` now skips invalid fields, the same way
`SpecialMemberVisitor` and the copy-assignment synthesis already do.
That covers the analyzer and the synthesizer together, and the assertion
stays in place since it still holds for valid code.
[llvm-c][lto] Add lto_runtime_lib_symbols_list_for_triple (#221217)
The TableGen-generated `setTargetRuntimeLibcallSets` that is reached via
`getRuntimeLibcallSymbols` has no unconditional block — every branch is
arch-gated and returns, so an unknown triple sets nothing available, and
the list of symbols comes back empty.
This patch adds a second entry point to the C LTO API that takes a
triple and passes it along.
Bump `LTO_API_VERSION`.
[mlir][ABI] Add the nofreeobj param attr to the LLVM dialect (#222137)
Since #218404 clang marks every indirect argument nofreeobj rather than
nofree. LLVM allows it on returns too.
Assisted-by: Cursor / claude-opus-5
[libc++] Opt `std::*set` out of map key extraction optimization (#220452)
PR #154512 (relanded by #155565) removed `__can_extract_map_key`, which
had a blanket opt-out for `std::*set`s. The new logic does not have that
opt-out, leading to `std::set`s being incorrectly constructed.
The new regression tests demonstrate this, but essentially the idea is:
1. Have `std::set<T> foo;`
2. Call `foo.emplace(some_t,
arg_that_influences_comparisons_or_hashes);`
3. The emplace will internally search using `some_t` as the key, *not*
`T(some_t, arg_that_influences_comparisons_or_hashes);`
This opts out `std::*set` from this optimization to match previous
behavior.
Tests and fix were produced by an LLM. I reviewed them and they seem
reasonable to me, though I don't have a strong background in libc++
testing conventions.
[4 lines not shown]
[MLIR][CMake] Remove aggregate generated-header ordering
Remove the broad mlir-headers prerequisites now that direct links and
HEADER_LIBS relationships provide generated-header ordering.
Keep own generators and intentional source-generation dependencies explicit.
Document migration options for downstream projects that relied on aggregate
ordering.
Assisted-by: Codex
Assisted-by: Claude Code
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
[MLIR][CMake] Add HEADER_LIBS and document CMake infrastructure
Add HEADER_LIBS as a flat list of literal library targets for generated headers
included without a link relationship. Resolve aliases and forward references,
accept imported libraries as already generated, follow nested HEADER_LIBS and
link interfaces, and reject missing, executable, utility, or generator-
expression entries with configure-time diagnostics. Represent header-only
edges in the common internal INTERFACE graph, including cyclic relationships.
Record links added by mlir_target_link_libraries for the same deferred ordering.
Add explicit, commented HEADER_LIBS edges for every audited header-only include
that is not covered by mlir-generic-headers, and keep this facility a rare
layering escape hatch.
Document dialects, interfaces, passes, PDLL, generated documentation, library
visibility, C API aggregation, tools, exports, standalone consumers, and the
generated-file model. Add a CMake fixture covering cycles, aliases, conditions,
LINK_ONLY, imported and ignored items, post-hoc links, and invalid providers.
Build each consumer independently from a clean state to verify transitive
[5 lines not shown]
[CMake] Propagate generated-header prerequisites through link dependencies
The goal is to simplify and make more robust the handling of generated-header
(TableGen) dependencies. Today these dependencies are managed manually, which
is fragile: missing edges often surface only in parallel builds, and sometimes
in incremental builds.
Record each llvm_add_library DEPENDS list independently from the cumulative
LLVM_COMMON_DEPENDS value, and mark public TableGen targets as generated-header
prerequisites. A deferred traversal follows every direct non-INTERFACE link and
transitive link interface, resolves aliases, and conservatively extracts target
candidates from generator expressions.
Represent generated-header prerequisites with internal INTERFACE libraries.
Let CMake propagate their utility dependencies through the header graph, and
reuse each provider's interface to handle cycles without computing closures.
Disabled generator-expression arms may generate extra headers, but cannot
introduce a provider library or object cycle.
[10 lines not shown]
[AMDGPU] Drop the redundant operand register-class verifier check
The generic MachineVerifier already rejects a register operand whose
class does not fit the instruction's operand class, for both virtual
(hasSuperClassEq / getMatchingSuperRegClass) and physical (contains)
registers, using the HwMode-resolved operand class. On subtargets that
require aligned VGPRs that class is the even-aligned one, so the generic
check catches a misaligned tuple on its own.
Remove SIInstrInfo::verifyInstruction's own alignment and physical
register-class checks and the now-unused getUnalignedEquivalentRC helper.
Misaligned tuples now report the generic "Illegal virtual/physical
register for instruction" instead of "Subtarget requires even aligned
vector registers"; a bad physical class reports the same instead of
"Operand has incorrect register class".
[MLIR] Fix and classify generated-header dependencies
List the TableGen targets owned by each affected library, and add the missing
LLVM generated-header, SPIR-V source-generation, OpenACC/OpenMP generated-input,
and CIR operation/type prerequisites found by clean dependency audits. Correct
two stale copy-paste dependencies and the duplicate CIR link entry.
The Transforms pass declarations and dialect inliner interface are independent
of any dialect. Classify both under mlir-generic-headers, and associate the
inliner interface with MLIRTransformUtils, which publishes InliningUtils.h.
This gives every MLIR library the required ordering without repeated
header-only edges.
Assisted-by: Codex
Assisted-by: Claude Code
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
py-logbook: updated to 1.10.1
Version 1.10.1
Added
- Binary wheels for Python 3.15.
Version 1.10.0
Added
- Python 3.15 support.
Binary wheels are not published yet and will follow once cibuildwheel ships
support for the 3.15 release candidates.
Changed
- Logging performance has improved significantly: resolving the active
handlers, flags, and processors is several times faster than in 1.9.x, and
[20 lines not shown]
games/openbve: update OpenBVE to version 1.14.0.3
Put back the <HintPath> tag for System.ValueTuple
which is missing in this release to fix the build.
Reported by: portscout
py-dash: updated to 8.1.0
v8.1.0 (2026-08-29)
- Support iterables in ``take_while`` and ``drop_while``. Thanks ``Sai Asish Y``!
- Guard all dunder-path access on objects. Thanks gaoflow_!
- Fix flattening nested iterables. Thanks gaoflow_!
- Fix ``StopIteration`` leak in ``iterintersperse`` on empty iterable. Thanks gaoflow_!
- Fix ``in_range`` to support reversed ranges where ``start`` is greater than ``end`` by swapping the bounds, matching lodash's documented ``_.inRange`` behavior (e.g. ``in_range(-3, -2, -6)`` now returns ``True``). Thanks gaoflow_!
- Fix ``floor``, ``ceil``, and ``round_`` passing index as precision when used as iteratees. Thanks gaoflow_!
- Fix ``debounce`` to delay execution until after ``wait`` milliseconds of quiet instead of invoking immediately on the first call. Thanks SeaStarDeng_!
- Fix ``to_list`` returning a ``dict_values`` view instead of a list for dicts. Thanks HarperZ9_!
- Fix ``chunk`` to return empty list when size is less than 1. Thanks santhreal_!
- Fix mishandling of out-of-range indexes in ``pull_at``. Thanks santhreal_!
- Fix ``mean``, ``mean_by``, and ``median`` to return ``NaN`` on empty collections. Thanks santhreal_!
- Fix ``last_index_of`` missing a match at index 0. Thanks uttam12331_!
- Fix empty key handling in deep paths. Thanks CodingFeng101_!
[libc++] Backport resolution of LWG2187 to C++11 (#222006)
libc++ has LWG2187 implemented in
2d6e2834a8abcce862ef17c44f62e4de41662748 but only since C++14 mode.
Usually, resolution of an LWG issue should be treated as a Defect Report
and applied to old modes. In the case of LWG2187, the resolution should
be applied to C++11.