py-invoke: updated to 3.0.3
3.0.3 2026-04-07
[Support]: Reverted the @task return value type hint change; it actually just makes things worse. Taking this one back to the drawing table for later.
3.0.2 2026-04-06
[Bug]: Define a custom __repr__ for Promise so it can be displayed in interactive sessions or other debug contexts, without running afoul of AttributeError. Thanks to Leonid Shvechikov for the original bug report.
[Support]: Make the return value type hint for @task more specific; as-is it would trigger typecheck errors when handing regular, decorated task functions as inputs to add_task and similar methods.
3.0.1 2026-04-06
[Support]: Minor tweaks to documentation and type hints/inheritance (mostly around Promise).
py-project-api: updated to 1.10.1
1.10.1
chore(tox): migrate tox.ini to tox.toml
Migrate type checking from mypy to ty
Move from extras to dependency-groups
Align dependency versions across projects
Add permissions to workflows
Move SECURITY.md to .github/SECURITY.md
Switch FUNDING.yml to github: gaborbernat
Standardize .github files to .yaml suffix
ci(workflows): add zizmor security auditing
chore: improve pyproject-api maintenance path
[lldb-dap] Mark source deemphasize if path doesn't exist (#194702)
LLDB-DAP has a problem with sanitizers in GCC. When we stop in
sanitizer's code, lldb-dap sends stack frames with path (sanitizer's
build dir path) that doesn't exist on machine. It leads to problems in
VS Code UI (see issue below).
Fixes #184789
[X86] lowerShuffleAsBitMask - use getConstVector to create bitmask (#200889)
Avoids wasteful SDValue creation if the shuffle matching fails, handles
any i64 legalisation, avoid issues with later folds not recognising fp
'allones' masks and makes it easier to add UNDEF element handling in the
future.
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
[Clang][AMDGPU] Restore the non-RDC compilation pipeline
The new offload driver uses the LTO compilation pipeline even for non-RDC
compilation. This PR restores the conventional non-RDC flow, where the backend
generates executable code directly, which is then bundled into the HIP fat
binary.
We can revert this change in the future if we decide to deprecate the
distinction between non-RDC and RDC compilation and unify the compilation flow.
[openacc] Attach Parallelism Levels to Auto Loops (#200884)
Auto loops are analyzed by the compiler in later compilation stages to
determine whether they can be parallelized. These loops may carry
parallelism levels (this does not guarantee that they are parallelizable,
compiler should still analyze them). However, if the loop is parallelized,
the parallelism levels specified in the source should be respected. This
change attaches the parallelism level to auto loops, which enables their
propagation through next compilation steps.
[OFFLOAD][L0] Add support for dynamic l0 fallbacks (#200517)
The PR adds support to define fallbacks for DLWRAP routines that are not
found when loading the library.
It implements a fallback for
zeCommandListAppendLaunchKernelWithArguments introduced in #194333 which
might not be available in older drivers.
[MLIR][GPU] Support synchronous gpu.alloc and gpu.dealloc in gpu-to-llvm (#191661)
The gpu-to-llvm conversion patterns for gpu.alloc and gpu.dealloc
previously required async tokens for non-host shared operations. This
prevented lowering synchronous device memory allocation and deallocation
to runtime calls.
Changes:
- gpu.alloc: drop the isAsyncWithOneDependency guard for non-shared
allocs. Cap the number of async dependencies at one to preserve the
prior single-dependency invariant. Cast the runtime-returned pointer to
the memref's address space when they differ, so the descriptor's pointer
slots type-check for memref<..., N>.
- gpu.dealloc: drop the async requirement entirely. Use a null stream
when no async dependencies are present. Use eraseOp instead of replaceOp
for sync deallocs (which have no results). Cap the number of async
dependencies at one.
- Add a unit test for the synchronous alloc/dealloc lowering and a test
that more than one async dependency leaves the op unconverted.
[5 lines not shown]
[analyzer] Normalize sub-array indices in RegionStore initializer res… (#200044)
…olution
After #198346, alpha.unix.cstring.UninitializedRead reports a false
positive when a pointer into a fully-initialized const multidimensional
array is advanced past an inner dimension boundary and used as a source
argument to memcpy. The root cause is in
`convertOffsetsFromSvalToUnsigneds` in RegionStore, which returned
UndefinedVal for any element index exceeding its sub-array extent,
conflating pointer arithmetic legality with memory initializedness.
This patch separates the two concerns. The RegionStore now normalizes
indices that overflow an inner dimension by carrying into the outer
dimension via divmod, the same way `arr[0][5]` in `int arr[4][3]`
denotes the same memory as `arr[1][2]`. UndefinedVal is returned only
when the computed flat offset exceeds the total array allocation.
Whether cross-subobject pointer arithmetic constitutes undefined
behavior per C/C++ standards is a separate concern for individual
[3 lines not shown]
[clang-tidy] Fix cert-err33-c inheriting CheckedReturnTypes from bugp… (#200169)
…rone-unused-return-value
The cert-err33-c alias did not override CheckedReturnTypes, causing it
to inherit the default from bugprone-unused-return-value. This made it
flag any function returning std::error_code, std::expected, etc. That is
outside the scope of CERT ERR33-C (a fixed list of C standard library
functions).
Set CheckedReturnTypes to empty so the alias only checks its intended
function list.
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
UIDs/GIDs: remove duplicated entries
Fix duplicated autopulse and ldap entries introduced while
adding the bunkerweb user and group.
Reported by: osa
Sponsored by: Netzkommune GmbH
[OFFLOAD][L0] Refactor AsyncQueues (#200650)
This PR introduces a major refactor on how L0 queues are used in the
plugin as the current design is too tied to OpenMP behavior. There are
two major changes:
* We no longer have a per-thread queue cache as this resulted in a
single logical queue backed up by multiple L0 queues. We now have a per
device cache which should have a similar level of reuse performance.
* The AsyncQueueTy type has been largely extended to hide the logic of
the different queues types (which are now subclasses of AsyncQueueTy).
This has greatly simplified the L0Device implementation.
As part of this refactor a number of other changes happened:
* Copy command lists were removed in favor of the
ZE_COMMAND_QUEUE_FLAG_COPY_OFFLOAD_HINT driver hint.
* Support for inorder queues was added (can be selected using
LIBOMPTARGET_LEVEL_ZERO_COMMAND_MODE=inorder).
[7 lines not shown]
[X86] lowerShuffleAsBitBlend - use getConstVector to create selection mask (#200877)
Avoids wasteful SDValue creation if the shuffle matching fails, handles
any i64 legalisation and makes it easier to add UNDEF element handling
in the future.
Refine metadirective construct context handling and improve comments
Drop construct={simd} context matching because metadirectives
encountered in SIMD regions are rejected by semantics today:
```
subroutine test_construct_simd(n)
integer :: i, n
!$omp simd
do i = 1, n
!$omp metadirective &
!$omp & when(construct={simd}: nothing) &
!$omp & default(taskyield)
end do
!$omp end simd
end subroutine
```
Keep construct={for} matching because it only observes an already-lowered
[6 lines not shown]