[C++20] [Modules] Support to generate reduced BMI only (#181081)
Introduced --precompile-reduced-bmi. This allows users to generate
Reduced BMI only.
Previously, users can only generate the reduced BMI as a by product of
other process (e.g, generating an object file or a full BMI). This is
not ideal.
[mlir][AMDGPU] Update gather_to_lds with explicit-async support
This commit takes advantage of the new `load.async.to.lds` intrinsic
in order to add an `async` mode to `gather_to_lds`. In this mode,
completion of the load needs to be managed with `asyncmark` and
`wait.asyncmark` intrinsics instead of being implicitly derived by
alias analysis.
This commit adds the flag, a lowering for it, and updates tests.
Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
Merge branch 'pr-1180-release-3.4' into release-3.4
Fixes #1242
Issue #1180
* pr-1180-release-3.4:
jail: Exit with an error if pkg-update(8) fails
jail.sh: uneeded (typo)
jail: Use the right arch for a pkgbase jail
[mlir][ROCDL] Add async variants of pre-gfx12 LDS load intrinsics
These are MLIR wrappers around #180466.
-----
Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
[mlir][ROCDL] Wrap asyncmark and wait.asyncmark intrinsics (#181054)
(see op-level and LLVM documentation for details so I'm not repeating
myself, but these are the general operations for compiler-operated
asynchronous operation tracking, which frees programmers from having to
deal with all the different counters, allows certain optimization, and
doesn't require precise alias analysis)
-----
Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
jail: Exit with an error if pkg-update(8) fails
Exit with an error if pkg update fails, for example when the jail is
empty (with only pkg repo configured).
(cherry picked from commit 364c1d2081ff4bd9405c9c277c58da2c60b949fa)
jail.sh: uneeded (typo)
Spelling: uneeded should be unneeded.
(cherry picked from commit ab499733b6d0eb6dd4df46b8a414cb20f8ee4a22)
Conflicts:
src/share/poudriere/jail.sh
jail: Use the right arch for a pkgbase jail
This is currently a problem for anything not amd64 when building pkgbase
jails. Strip the `ARCH` and use only what corresponds to `TARGET_ARCH`.
(cherry picked from commit ec991af0c789bf98737f6c2206e62646b2de6f25)
Conflicts:
src/share/poudriere/jail.sh
NAS-139570 / 26.0.0-BETA.1 / Add scram auth (#17831)
This commit adds support for SCRAM authentication for API keys and
significantly refactors several aspects of authentication and session
management.
The SCRAM libraries are provided by the following GIT repository:
https://github.com/truenas/truenas_scram
The repo documents protocol details that are beyond scope of a commit
message.
**API Keys**
This change is mostly backwards-compatible with legacy API key
authentication (mechanism `API_KEY_PLAIN`), with the exception that
API keys using the PKDF2-SHA256 algorithm are now automatically
revoked on migration and no longer supported. The algorithm used
for API keys was changed for TrueNAS 25.04 and keys were migrated
at runtime during the 25.04 and 25.10 releases as they were used
[53 lines not shown]
NAS-139746 / 26.0.0-BETA.1 / fix route and static route to use new logic (#18189)
This uses the new logic introduced in
https://github.com/truenas/truenas_pynetif/pull/43. This allows us to
remove pyroute2 dependency which is where a vast majority of our memory
leaks were occurring. For posterity sake, the leak was not in pyroute2
but we had a cyclical GC issue that was exposed with how we designed our
legacy network logic and pyroute2's design. CI
[here](http://jenkins.eng.ixsystems.net:8080/job/tests/job/api_tests/7624)
NAS-139739 / 26.0.0-BETA.1 / Expand use of atomic_write() helper (#18180)
This commit expands use of atomic_write() to places where there is risk
that a partial file write can impact stability or predictable server
behavior.
[CIR][LoweringPrepare] Emit guard variables for static local initialization
This implements the lowering of static local variables with the Itanium C++ ABI
guard variable pattern in LoweringPrepare.
When a GlobalOp has the static_local attribute and a ctor region, this pass:
1. Creates a guard variable global (mangled name from AST)
2. Inserts the guard check pattern at each GetGlobalOp use site:
- Load guard byte with acquire ordering
- If zero, call __cxa_guard_acquire
- If acquire returns non-zero, inline the ctor region code
- Call __cxa_guard_release
3. Clears the static_local attribute and ctor region from the GlobalOp
[mlir][ROCDL] Wrap asyncmark and wait.asyncmark intrinsics
(see op-level and LLVM documentation for details so I'm not repeating
myself, but these are the general operations for compiler-operated
asynchronous operation tracking, which frees programmers from having
to deal with all the different counters, allows certain optimization,
and doesn't require precise alias analysis)
-----
Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>