Move all the software license stuff to a central location.
This leaves an appropriatesummary on the website pages, committer's
guide and contributing pages, and augments license-guide with
information that was on those pages (though the license exceptions
moves to software-license).
It's mostly word motion with light edits.
Sponsored by: Netflix
Reviewed by: ziaee, adrian
Approved by: core (24 hour rule)
Differential Revision: https://reviews.freebsd.org/D57340
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.
[NFC][lldb] Split DomainSocket into a base + posix/windows impls (#205864)
Prepares for `AF_UNIX` domain-socket support on Windows by separating
the cross-platform socket logic from the one platform-specific
operation.
Every domain-socket operation is identical on POSIX and Windows (via
`<afunix.h>`), so it now lives in a single base class
`DomainSocket`. The one operation that is different is `CreatePair()`.
It lives in `DomainSocketPosix` / `DomainSocketWindows`. It's selected
for the host as `DomainSocketPlatform` through
`lldb/Host/DomainSocket.h`.
This is an NFC patch: POSIX behavior is unchanged, and while the shared
code now also compiles on Windows it stays unreachable there. A
follow-up commit enables it.
rdar://180736036
[lldb][Windows] Try falling back to TLS 1.2 before erroring out (#206108)
TLS 1.3 is only supported on Windows Server 2022 and beyond. Windows
Server 2019 only supports up to TLS 1.2.
This causes test failures on CI runners which run on Windows Server
2019.
This patch allows falling back to TLS 1.2 if 1.3 is not available.
[CostModel][X86] Add more realistic v8i64/v16i32 + v8f64/v16f32 add reduction costs (#206124)
Fixes failure to fold to v16i32 reduction on ax512 targets
We still need to determine better CostKind values - but that can wait until #194621 is complete
[flang][OpenMP] Properly resolve CRITICAL construct names (#205904)
Resolve the names of CRITICAL constructs even if they are reserved
names.
This also limits locator parsing to known reserved names.
Fixes https://github.com/llvm/llvm-project/issues/205855
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.
sys/systm.h: use __nodiscard consistently and correctly
__nodiscard is closer to (and sometimes expands to) [[nodiscard]] from
C23 and C++17 so prefer it to the homegrown __result_use_check and put
it in the right place so it is correct when expanded to [[nodiscard]].
Reviewed by: markj, emaste
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D57882
cdefs(9): encourage __nodiscard over __result_use_check
__nodiscard is closer to (and sometimes expands to) [[nodiscard]] from
C23 and C++17 so prefer it to the homegrown __result_use_check.
When __nodiscard does expand to [[nodiscard]] it must appear entierly
before the function declaration (or between the function name
and argument list) so relocate as appropriate. This differs from
__attribute__((__warn_unused_result__)) used by __result_use_check which
is more flexible.
Reviewed by: imp, markj, emaste
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D57881
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