[libc][complex] Add basic complex ops including carg/cabs for GPU (#207887)
This PR adds carg and cabs for AMD GPU and also add all other basic
complex ops for NV GPU.
Signed-off-by: jinge90 <ge.jin at intel.com>
Split boot environment service into its own typesafe plugin
## Context
The boot.environment service lived inside the boot plugin group (boot_/environments.py) as a legacy dict-based Service with a hand-written filterable query and dict-returning actions. It is CRUD-shaped but datastore-less (query/get_instance read live ZFS via zectl/zpool), keyed by a string BE name, with custom write actions rather than create/update/delete.
## Solution
Moved it to a new standalone plugin (plugins/boot_environment/) converted to the typesafe pattern: a lean GenericCRUDService[BootEnvironmentEntry, str] delegating to a BootEnvironmentServicePart whose query/get_instance are overridden to build BootEnvironmentEntry models directly (no datastore). activate/clone/destroy/keep are @api_method(check_annotations=True) actions and promote_current_datasets stays a private boot-time hook. The service registers under a new BootServicesContainer at self.boot, which coexists with the auto-discovered old-style boot service exactly like pool.
The action API models are decoupled from @single_argument_args into explicit inner-model + single-field wrappers so the method params can be typed while keeping the single-object wire shape (and wrapper field names) identical.
Every in-process consumer that touched a returned entry as a dict or called the namespace by string was updated to attribute access and typed call2/call_sync2: failover.py, failover_/reboot.py, and update_/install.py (the update pruner now passes QueryOptions and BootEnvironmentDestroy models). The remaining failover.call_remote calls stay string-based since they run over the wire. Added the new plugin to the mypy workflow.
[flang][TargetRewrite] Keep argument attributes consistent after ABI arg shift (#208124)
When target-rewrite expands an argument into several arguments
(for example splitting a complex value into two scalars),
the arguments after it shift to the right.
Argument attributes were only moved for a shift introduced
by result lowering, so an attribute on a later argument
(e.g. fir.host_assoc) could stay on its old index and end up
on an unrelated argument. Remap every saved argument
attribute to the new index of its argument.
This is a consistency fix and may not cause a miscompile today.
[flang][NFC] Remove unnecessary #include directives across flang (#207640)
Audit of every #include directive in flang/lib/ and
flang/include/flang/:
- Remove 423 #include directives (293 from lib/ translation units, 23
from lib-private headers, 107 from public headers) that are not needed:
no entity declared by the removed header is used - directly or in any
conditional-compilation branch (Windows, macOS, ARM/PowerPC,
REAL(16)/REAL(2) configuration macros) - in the including file, and for
headers no consumer in flang/lib, flang/tools, flang/unittests, or
flang-rt relies on the include as a re-export. Load-bearing includes
were examined and retained: textual .inc/.def expansions, tablegen
pass-header declaration/definition pairings, dialect headers carrying
generated-op interface dependencies, config-macro providers (e.g.
float128.h ahead of matmul-instances.inc guards), and ADL formatting
machinery (Evaluate/formatting.h).
- Add 5 missing direct #includes in lib translation units that used
[5 lines not shown]
[lldb] Push ExpressionEvaluation policy and remove identity check fallbacks (#195775)
Push `PolicyStack::Get().PushPublicStateRunningExpression()` at all
three expression evaluation entry points
(`LLVMUserExpression::DoExecute`, `FunctionCaller::ExecuteFunction`,
`IRInterpreter`). This policy sets `can_run_breakpoint_actions=false`,
preventing recursive breakpoint callback execution during expression
eval.
Push `PolicyStack::Get().PushPrivateState()` unconditionally for all
PSTs in `RunPrivateStateThread` (not just overrides), giving every PST
the private view while keeping frame providers and recognizers enabled
for normal stop processing. Override PSTs use
`PushPrivateStateRunningExpression()` which additionally disables
providers and recognizers.
With all PSTs and expression eval sites now covered by the policy,
remove all host thread identity check fallbacks:
- `CurrentThreadPosesAsPrivateStateThread()` in `Process::GetState()`
[21 lines not shown]
linux/futex: Don't load a timeout when try-locking a mutex
linux_sys_futex() does not copyin a timespec for the timeout if the
operation is LINUX_FUTEX_TRYLOCK_PI, presumably because it doesn't make
sense to specify a timeout for a try-lock operation. However, this
means that we pass a userspace timespec pointer to
linux_umtx_abs_timeout_init().
Modify linux_futex_lock_pi() to not initialize the timeout if we're
try-locking.
Reviewed by: kib, dchagin
Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
and Ke Xu from Tsinghua University using GLM-5.2 from Z.ai
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58061