Convert SNMP plugin to the typesafe pattern
## Context
Migrate the `snmp` plugin to the typesafe pattern: a lean `SystemServiceService[SNMPEntry]` delegating to an `SNMPServicePart`, with Pydantic API models, `check_annotations=True`, and `config`/`do_update` returning typed models instead of dicts.
## Solution
- Split the single `snmp.py` into a `snmp/` package: a lean `__init__.py` (service class + port delegate) and `config.py` (the service part holding the SQLAlchemy model, the model-based `do_update`, the v3 user lifecycle, and the defaults helper). `get_snmp_users` stays a `@private` method because the integration tests invoke it over the wire; the unused `_is_snmp_running` was dropped.
- Decouple the legacy `@single_argument_args` model into `SNMPEntry` / `SNMPUpdate` / `SNMPUpdateArgs` / `SNMPUpdateResult` in `api/v27_0_0`. The `v3_password` / `v3_privpassphrase` secrets are read via `get_secret_value()` and persisted with the `expose_secrets` dump context.
- `snmp.config` now returns a model in-process, so the `snmpd.conf.mako` renderer is switched from dict subscripting to attribute access.
- Register the service in `main.py`'s `ServiceContainer`, add the plugin to `mypy.yml`, and fully type-annotate the `utils_snmp_user` helpers so the now-checked plugin passes mypy.
NAS-141457 / 26.0.0-RC.1 / V-series V2xx + rear-bay enclosure support (#19168)
Adds V2xx (V260/V280) enclosure management and reworks V-series rear-bay
support to use the bifurcated PEX89032 NTG chip's SES path. Two commits,
each independently functional / bisectable:
V2xx front bays are served by a single Broadcom PEX89088 PCIe switch
chip partitioned into two SES VirtualSES enclosures (replacing V1xx's
dual 9600-12i4e SAS HBAs). The two partitions advertise the SAME encid,
so the V1xx encid-comparison disambiguation fails — `ses_enclosures2`
falls back to inspecting Array Device Slot element descriptor labels
(`slot01..slot12` = NVME0; `slot13..slot24` = NVME8). `slot_mappings`
gets a V2xx branch keyed by `enc.product` (`4IXGA-SWp/s`).
`enclosure_class` recognizes the V2xx model and exempts `4IXGA-SW` from
the V-series ECStream filter. `sysfs_disks` gains an NVMe-namespace
fallback for slots whose `device/block/` is missing.
SES partition
Adds enclosure2.query support for V-series rear bays (V140, V160, V260,
[44 lines not shown]
[libc++] Move compiler-specific configuration into <__configuration/compiler.h> (#205590)
These macros are essentially there to query compiler features, so they
should be moved into `<__configuration/compiler.h>`.
[clang][deps] Avoid `CompilerInvocation` copies (#205632)
When constructing the dependency graph for compilation caching, the
dependency scanner needs to do some extra operations on the compiler
invocations. Historically, these have not utilized the copy-on-write
variant well. This patch takes care to minimize `CompilerInvocation`
copies, which improves incremental scans with populated up-to-date
scanning module cache by 16-18%. Together with
https://github.com/llvm/llvm-project/pull/203350 which operates in the
same space, wall-times are improved by 1.54x and instruction counts by
1.66x.
[clang][analyzer] Detect use-after-move for 3-arg std::move (#196602)
This implementation detects a use-after-move for the 3-arguments
std::move on containers. This PR fixes #137157.
Since my current implementation uses `IteratorModeling` which is in
alpha stage I mark this PR as draft.
When both the `IteratorModeling` and `MoveChecker` are enabled my
implementation works to detect the use-after-move for the 3 argument
std::move case.
```cpp
std::move(l1.begin(), l1.end(), std::back_inserter(l2));
std::cout << "l1: " << *l1.cbegin() << '\n'; // <--- should have a use-after-move
```
```text
move_iterator.cpp:14:28: warning: Method called on moved-from object 'l1' of
[14 lines not shown]
[lldb] send 0x0 size packet if LLDB_LAUNCH_FLAG_USE_PIPES is set (#206107)
`LLDB_LAUNCH_FLAG_USE_PIPES=1` is used in tests to run lldb without the
ConPTY on Windows. This reduces the flakyness of tests.
This patch ensures that we read the value of
`LLDB_LAUNCH_FLAG_USE_PIPES` when setting up gdbremote tests, to make
sure they don't use the ConPTY.
This fixes `tools/lldb-server/TestGdbRemote_qThreadStopInfo.py` on
https://ci-external.swift.org/job/lldb-windows/job/main/.
[mlir][linalg] Guard pack tensor semantics (#206011)
Added a guard so the structured pack transform reports a normal tiling
failure when the target has already been bufferized, instead of reaching
a tensor-only path and asserting.
Fixes #205744
[libc++] Move _LIBCPP_FOPEN_CLOEXEC_MODE to <fstream> (#205537)
The macro is only required inside `<fstream>`, so we can move it there
instead of having it as a general configuration macro.
[MLIR][XeGPU][VectorToXeGPU] Minor fix for proper handling of 0D memrefs (#195877)
It fixes the following case:
```
vector.transfer_read %arg0[], %0 : memref<f16>, vector<f16>
```
[libc++][NFC] Simplify the implementation of aligned_union (#185449)
Instead of manually calculating the size and alignment of a union, we
can just generate an actual union and take the size and alignment of
that.
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
[flang] Attach a placeholder `acc.var_name` to allocations in recipes. (#205939)
`ACCRecipeMaterialization` can replace the placeholder with the actual
variable name when materializing the recipe.
Assisted-by: Claude Code
[libc] introduce shared compiler-rt builtins (#200094)
Introduce shared compiler-rt builtins to libc and addtf3 builtin
Split from #197950
Part of #197824
[mlir][XeGPU][Transform] Add XeGPU contiguity analysis. (#201684)
Add an AxisInfo-based (borrows the idea from Triton Axis Info analysis)
dataflow analysis that computes, for each
`xegpu.load` / `xegpu.store` gather/scatter, how many elements are
contiguous
along the innermost offsets dimension, and stamps that count as a
`contiguity` **operation attribute** (`OptionalAttr<I64Attr>`) on the
op.
`contiguity` is a target-independent property of the offsets, not a
request tied to any optimization — a consumer is free to use or ignore
it. The
analysis performs no rewrite. Turning the property into a concrete
`lane_layout` / `lane_data` split (which needs the subgroup size) and
the
actual memory-message rewrite are consumer concerns, handled by later
layout-propagation steps (subsequent PRs) or, for testing, by the apply
helper
[4 lines not shown]
[mlir][gpu] Fix mgpuLaunchKernel sharedMemBytes type in LevelZero runtime (#206119)
The GPU launch lowering in SelectObjectAttr.cpp declares and calls
`mgpuLaunchKernel` with the dynamic shared memory size argument typed as
`i32`, but the Level Zero runtime wrapper declared the corresponding
parameter as `size_t` (8 bytes on 64-bit targets). Since these are
positional C-ABI arguments, the 4-byte vs 8-byte mismatch shifts the
layout of every following argument (stream, params, extra, paramsCount),
corrupting the call and crashing at launch.
Change the parameter to int32_t to match the codegen, consistent with
the CUDA and ROCm runtime wrappers which already use int32_t smem.
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
[mlir][SCF]: promote one-iteration loops with equal ub and step values (#205826)
Adds a fast-path to `constantTripCount` to return 1 on and enables
promotion of single-iteration loops of the form:
```
scf.for %j = %c0 to %val step %val ... { ... }
```
Signed-off-by: Ege Beysel <beyselege at gmail.com>
[AMDGPU] Align to LDS granularity in occupancy calculation (#205637)
Account for LDS allocation granularity by rounding per-workgroup LDS up
to the block size in getOccupancyWithWorkGroupSizes, fixing
overestimated occupancy.
[NFC][clang-tidy] Extend doc-comment of BranchCloneCheck (#206116)
Commit 8ac2b77a11c9db9879557ce1c26e38628e1ef45f extended the check
bugprone-branch-clone with a new feature but forgot to mention this in
the doc-comment at the beginning of BranchCloneCheck.h.
Although I don't think that this comment is read too often, let's still
update it to provide accurate information.
Convert route and staticroute services to the typesafe pattern
## Context
Moves `RouteService` and `StaticRouteService` (and their sync/validation helpers) out of `network_/` into a new `network_routes` plugin built on the typesafe pattern: `StaticRouteService` becomes a `GenericCRUDService` with a `CRUDServicePart`, and `RouteService` becomes a lean port-pattern `Service` delegating to plain module functions. The namespaces (`route`/`routes`, `staticroute`) and the on-the-wire shape are unchanged.
## Solution
- **`network_routes/crud.py`** holds the `StaticRoute` SQLAlchemy model and `StaticRouteServicePart` (validation/normalization of destination+gateway, async `do_*`, and kernel-route teardown on delete via `to_thread`).
- **`network_routes/route.py`** holds the plain `get_system_routes` / `gateway_is_reachable` functions; `RouteService.system_routes` stays a public `@filterable_api_method` returning `RouteSystemRoutesItem` models, filtering the raw dict rows first so filter semantics match the old path.
- **`route_sync.py` / `static_routes_sync.py`** move across unchanged except the static-route sync now reads typed entries (`call_sync2(s.staticroute.query)` + attribute access).
- Since `query`/`get_instance` now return Pydantic models, every same-process caller is switched to `call2`/`call_sync2` and dict access to attribute access: `network.py`, `network_/general.py`, `network_/global_config.py`, and the network pseudo-services. `failover.call_remote('route.sync')` stays a string call.
- Registered both services in `main.py`, added `StaticRouteCreate`/`StaticRouteUpdate` to the API `__all__`, and added the plugin to the mypy workflow.