NAS-142542 / 27.0.0-BETA.1 / Make ZFS tier alerts normal alerts (#19540)
Creating oneshot alerts in the alert source is not how the rest of
TrueNAS alerts work. No other source does that, and it doesn't seem to
give us any benefit. I was able to simplify the code by rewriting
tiering alerts in a more idiomatic way.
I was also able to replace unit tests with integration tests with 99%
coverage.
While I am here, fix the bug that `zfs.tier.update` hardcoded
`ha_propagate=True` for reserve-pct changes, so on any licensed non-HA
box it failed with `EHOSTUNREACH`.
[M68k] Implement `CLR` instruction encoding and logic (#216636)
This adds instruction encoding for `CLR` and incorporates common uses of
the instruction into existing pseudo expansion functions.
- Storing 0 to memory will favor `clr` over storing an immediate.
- `buildClearRegister()` override is implemented, using `clr` to clear
byte/word, and `moveq` to clear long.
- `MOVI` pseudo will use `buildClearRegister()` if the immediate is
zero.
- `MOVZX` pseudo will, if possible, clear the destination first and then
move the source, rather than the other way around (which inefficiently
requires an `AND` mask).
- On 68000, an in-place i16/i32 zext is done via `swap -> clr.w -> swap`
which is more efficient than `and.l #$ffff`.
- Left-shifting an i32 by 16 bits lowers to `swap -> clr.w`.
There are so many tests in the diff because `MOVZX` and moving a zero
immediate are really common operations, so it's just a lot of single
instructions getting replaced by their more efficient counterparts.
[flang][OpenMP] Remove OmpVerifyModifiers
Verification of clause modifiers is now done in a single place.
The OmpVerifyModifiers function was left in place, but was reduced
to always return "true".
Remove the definition and all calls to it.
The large amount of apparent changes is mostly due to unindenting
and reformatting previously indented code.
[flang][OpenMP] Move modifier verification out of header file
Since modifiers now have enum ids, verifying syntactical properties
of them no longer has to be type-based. Move the modifier verification
code out of a header file with some changes to use the numeric ids.
Some form of a connection between AST nodes for modifiers and the enum
ids is still required, now it's a static member of the modifier AST node.
[flang][OpenMP] Implement verification of modifier sets
Modifier sets and modifier groups are the modifier analogues of clause
sets and clause groups. In the OpenMP specification, modifier groups
have properties that are independent of the clause on which a member of
the group is specified, whereas modifier sets are local to clauses.
The implementation of modifier groups is identical to that of groups,
the only exception is that modifier sets don't have names that are
usable in diagnostic messages.
openssl: updated to 3.6.4
OpenSSL 3.6.4 is a security patch release. The most severe CVE fixed
in this release is Moderate.
This release incorporates the following bug fixes and mitigations:
Fixed QUIC server being able to trigger double free when processing
INITIAL packet.
(CVE-2026-18798)
Fixed heap buffer overflow in CMS key unwrapping.
(CVE-2026-63072)
Fixed invalid pointer dereference in CMP server via crafted protectionAlg.
(CVE-2026-63076)
Fixed unbounded memory growth in QUIC server incoming channel queue.
(CVE-2026-14456)
[27 lines not shown]
[IR] Remove unnecessary setDebugLoc calls. NFCI. (#218663)
If we are already calling copyMetadata to copy metadata including MD_dbg
from an old instruction to a newly created one then there is no need to
call setDebugLoc to copy the debug metadata again.
devel/cl-cffi: Update to 0.24.1.
Build the documentation from the texinfo sources in the distfile
instead of fetching pre-generated HTML, text and PDF files from a
separate site, where the copies published for this release were all
zero bytes. The PDF build pulls in TeX, so it sits behind its own PDF
option that is off by default.
Install cffi-toolchain, which cffi-grovel now depends on, plus the new
src/c2ffi and toolchain modules and grovel/common.h, which grovel
includes in the C files it generates.
devel/cl-alexandria: Split the PDF documentation into its own option.
Building the PDF needs texi2pdf and pulls in TeX, which is a lot of
machinery for a small utility library, so it now lives behind a PDF
option that is off by default. The HTML and info files only need
makeinfo and are still built with DOCS.
Also install alexandria.info: DOCS_INFO pointed at doc/alexandria, but
nothing ever installed the file, so the port registered an info entry
it did not ship.
devel/cl-alexandria: Limit portscout to the 1.x series.
Upstream has only ever tagged v1.1 through v1.4, and the archive
listing at gitlab.common-lisp.net now sits behind an anti-bot
challenge, so portscout was reporting a spurious 3.0 whose suggested
download was really alexandria-v1.4-<commit>.tar.bz2.
[AArch64] Generate fmls for fneg+fmul (#215338)
AArch64 has no vector FNMUL, so -(x * y) needs an FNEG after the FMUL.
FMLS with a -0.0 accumulator computes it in one instruction, and the
MOVI materializing -0.0 has no input dependency, so the FNEG leaves the
dependency chain.
The consumed FNEG/FMUL has to be single-use, otherwise it stays live and
the MOVI is added rather than substituted. Plain fmul only: the two
forms agree only when negation commutes with rounding, which fails for
the directed rounding modes constrained FP can run under.
Only f32 and f16 are covered; f64 -0.0 is not a MOVI immediate.
croc: Update to 11.3.2
Highlights
Automatically advertises and negotiates experimental-derp-attach-group-v1 in normal supported builds.
Two v11.3.2 peers use eight striped streams over four raw-direct paths with no flags.
Mixed-version peers remain compatible through one-stream legacy Attach.
Raw setup retains one-stream manager fallback, with croc relay fallback in automatic mode.
11.3.1
Highlights
Pins derphole to github.com/schollz/derphole v0.18.2-croc.1 while preserving its upstream module identity.
Adds modular AttachGroup bundle and lifecycle support for the qualified eight-stream/four-path topology.
Keeps automatic AttachGroup advertisement disabled in this release; peers continue using compatible legacy DERP Attach until activation is qualified separately.
Reduces CI cost by avoiding duplicate branch-push validation and reserving full cross-platform builds for main and manual runs.
What’s Changed
DERP transport: connection bundles, client-local providers, clean group-close handling, and safe striped-sender teardown.
Benchmarks: consolidated 8/4 qualification data and benchmark-only build tagging.
[2 lines not shown]
[flang][PFT] Mark ASSIGN'd labels as assigned GO TO targets
An assigned GO TO with an explicit label list only marked the listed
labels as branch targets. Lowering is more permissive: genFIR for
AssignedGotoStmt in flang/lib/Lower/Bridge.cpp builds the switch from the
labels ASSIGN'd to the variable and ignores the list.
A construct holding an ASSIGN'd label that the list omits therefore
looked wrappable, was placed in an scf.execute_region, and the branch
then crossed a region boundary:
error: 'fir.select' op branching to block of a different region
Mark both sets so the wrappability analysis sees every escape.
[ConstFold] Avoid overflows in folding fixed ALM (#218646)
Avoid overflows in folding fixed-vector get.active.lane.mask using
APInts and APInt::uadd_ov.