NAS-140141 / 26.0.0-BETA.2 / Fix broken WRITE_ATTRIBUTES test (by anodos325) (#18371)
This commit fixes a test that claude rewrote when converting functional
tests from tests/api2 to tests/unit (with local utils). It removed a
valid test case and replaced it with a subtly different and broken one.
Original PR: https://github.com/truenas/middleware/pull/18368
---------
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
[Flang][OpenMP] Reject substring and invalid use of array section in affinity (#184424)
Add semantic checks for OpenMP AFFINITY clauses to reject substring and
invalid use of array section
[MLIR][XeGPU] Add distribution pattern for xegpu load & store matrix from sg to wi (#183179)
This PR adds distribution pattern for xegpu.load_matrix &
xegpu.store_matrix ops for the new sg-to-wi pass
Fix broken WRITE_ATTRIBUTES test
This commit fixes a test that claude munged when converting
functional tests from tests/api2 to tests/unit (with local utils).
(cherry picked from commit f5f6c8d50f46af3c4e4979325f6158a1d75f56b3)
NAS-140141 / 27.0.0-BETA.1 / Fix broken WRITE_ATTRIBUTES test (#18368)
This commit fixes a test that claude rewrote when converting functional
tests from tests/api2 to tests/unit (with local utils). It removed a
valid test case and replaced it with a subtly different and broken one.
NAS-140139 / 26.0.0-BETA.2 / Fix nftables IPv4 INPUT chain flush missing ip family specifier (by creatorcary) (#18370)
`NftablesService.flush_chain_INPUT()` has used `nft flush chain filter
INPUT` (no address family) since it was introduced in #11690. When IPv6
flushing was added in #13333, the IPv4 command was left unchanged under
the assumption that omitting the family defaults to ip. The IPv6 line
was written correctly with the explicit ip6 specifier.
In practice, `nft flush chain filter INPUT` without an explicit address
family returns a non-zero exit code on the nftables version shipping
with TrueNAS 26.0.x (kernel 6.18.13-production+truenas), causing
`flush_chain_INPUT()` to always return False and `drop_all()` to log an
error on every HA failover event.
This error appears in every failover cycle:
```(ERROR) NftablesService.drop_all():97 - Failed flushing INPUT chain```
Original PR: https://github.com/truenas/middleware/pull/18367
Co-authored-by: Logan Cary <logan.cary at ixsystems.com>
NAS-140139 / 26.0.0-BETA.1 / Fix nftables IPv4 INPUT chain flush missing ip family specifier (by creatorcary) (#18369)
`NftablesService.flush_chain_INPUT()` has used `nft flush chain filter
INPUT` (no address family) since it was introduced in #11690. When IPv6
flushing was added in #13333, the IPv4 command was left unchanged under
the assumption that omitting the family defaults to ip. The IPv6 line
was written correctly with the explicit ip6 specifier.
In practice, `nft flush chain filter INPUT` without an explicit address
family returns a non-zero exit code on the nftables version shipping
with TrueNAS 26.0.x (kernel 6.18.13-production+truenas), causing
`flush_chain_INPUT()` to always return False and `drop_all()` to log an
error on every HA failover event.
This error appears in every failover cycle:
```(ERROR) NftablesService.drop_all():97 - Failed flushing INPUT chain```
Original PR: https://github.com/truenas/middleware/pull/18367
Co-authored-by: Logan Cary <logan.cary at ixsystems.com>
[clang][bytecode][HLSL][Matrix] Support `ConstantMatrixType` and more HLSL casts in the new constant interpreter for basic matrix constexpr evaluation in HLSL (#183424)
Fixes #182963
This PR is an extension of #178762 and is to be merged immediately after
it.
This PR adds support for `ConstantMatrixType` and the HLSL casts
`CK_HLSLArrayRValue`, `CK_HLSLMatrixTruncation`,
`CK_HLSLAggregateSplatCast`, and `CK_HLSLElementwiseCast` to the
bytecode constexpr evaluator.
The implementations of CK_HLSLAggregateSplatCast and
CK_HLSLElementwiseCast are incomplete, as they still need to support
struct and array types to enable use of the experimental new constant
interpreter on other existing HLSL constexpr tests. The completion of
the implementations of these casts will be tracked in a separate issue
(#183426) and implemented in a separate PR.
Assisted-by: claude-opus-4.6
[HLSL][Matrix] Add APValue and ConstExpr evaluator support for matrices (#178762)
Fixes #168935
This PR adds basic support for matrix APValues and a ConstExpr evaluator
for matrices.
- ConstExpr evaluation changes:
- Matrix initializer list
- Matrix HLSL elementwise cast
- Matrix HLSL aggregate splat
- Vector HLSL matrix truncation
- Int HLSL matrix truncation
- Float HLSL matrix truncation
- Matrix APValue:
- AST dumper and serialization
- Value flattening
Note that APValue matrices hold its elements in row-major order
irrespective of the `-fmatrix-memory-layout` flag.
[10 lines not shown]
NAS-140139 / 27.0.0-BETA.1 / Fix nftables IPv4 INPUT chain flush missing ip family specifier (#18367)
`NftablesService.flush_chain_INPUT()` has used `nft flush chain filter
INPUT` (no address family) since it was introduced in #11690. When IPv6
flushing was added in #13333, the IPv4 command was left unchanged under
the assumption that omitting the family defaults to ip. The IPv6 line
was written correctly with the explicit ip6 specifier.
In practice, `nft flush chain filter INPUT` without an explicit address
family returns a non-zero exit code on the nftables version shipping
with TrueNAS 26.0.x (kernel 6.18.13-production+truenas), causing
`flush_chain_INPUT()` to always return False and `drop_all()` to log an
error on every HA failover event.
This error appears in every failover cycle:
```(ERROR) NftablesService.drop_all():97 - Failed flushing INPUT chain```
[openmp][tests] Fix bug63197.c (#183508)
#183269 tried to fix the test, but the test can still randomly fail. The
OpenMP spec does not prevent the runtime to chose a smaller team size
than returned from omp_max_threads() for the second parallel region.
Using a larger value than `omp_max_threads()` in a `num_threads` clause
is valid OpenMP code. With a correct OpenMP implementation, the
team-size of the second parallel region must still be smaller or equal
the value returned from `omp_max_threads()`.
(cherry picked from commit d44e41794540d7fa85f857228a7616ec8592a7c4)
[openmp] Fix bug63197.c test with 3 cores (#183269)
This test assumes that the number of available threads is not 3,
otherwise `#pragma omp parallel` and `#pragma omp parallel
num_thread(3)` are naturally going to do the same thing.
Instead use `omp_get_max_threads() - 1` as the number of threads in the
initial `omp parallel num_thread(N)` and then check that the number of
threads does not match the value in the later `omp parallel`.
(cherry picked from commit 368b884869651b69b14b836b25206aa62b501496)
On 2026-03-09 British Columbia will go from daylight to standard
time, without a UT offset change. That is, its 2026-03-08 spring
forward will be its last foreseeable clock change, as it will move
to permanent -07 thereafter. (Thanks to Arthur David Olson.)
Update to 2026agtz from https://github.com/JodaOrg/global-tz
o Moldova has used EU transition times since 2022.
o Remove Europe/Chisinau from zonenow.tab, as it now agrees with
Europe/Athens for future timestamps.
[SelectionDAG] Fix cycle in ReplacedValues during type legalization (#184697)
During type legalization, `ReplaceValueWith` handles morphed nodes by
computing `OldValId` and `NewValId`, calling `ReplaceAllUsesOfValueWith`
(RAUW), then adding `ReplacedValues[OldValId] = NewValId`.
However, the RAUW call can trigger `CSE`, which fires NoteDeletion
callbacks that add new entries to `ReplacedValues`. If NoteDeletion adds
`ReplacedValues[A] = B`, and the subsequent assignment adds
`ReplacedValues[B] = A`, a cycle is created. RemapId then recurses
infinitely following the cycle during path compression, causing a stack
overflow crash.
On AArch64, i16 is not a legal type and requires promotion to i32. When
IR uses i16 values as `extractelement` indices that feed into other
`extractelement` operations, the interplay between result promotion and
operand promotion creates the specific CSE pattern that produces the
cycle.
[8 lines not shown]