[offload][acc] Add the initial version of libacctarget (#231174)
Adds the initial version of the OpenACC runtime library libacctarget.
This
version currently only makes sure everything links correctly and there
are no
undefined symbols and that the initialization of the PluginManager works
correctly. The implementation will follow in incremental patches.
[clangd] fixed signature help for c++23 static () operator (#234918)
Signature help can fail to display signatures for C++23 static
`operator()` overloads,
with inconsistent behavior for templated operators.
Pass `FirstArgumentIsBase=true` when building overload candidates for
call signature help so the object argument is handled correctly for
static call operators.
Add regression coverage for static and templated static call operators
with one and two parameters, checking both the displayed signatures
and the active parameter.
Fixes #196153.
[mlir] Fix detection of default sub-element handlers (#238027)
`has_default_sub_element_handler_t` was defined as
`decltype(T::DefaultHandlerTag)`. `DefaultHandlerTag` is a type alias,
not a value, and it is a member of `AttrTypeSubElementHandler<T>`, not
of the parameter type `T`. The expression was therefore never
well-formed, and `has_sub_attr_or_type_v` evaluated to true for every
non-empty pack.
Every parametric attribute and type thus instantiated the full
sub-element walk/replace machinery, even when none of its parameters can
contain an attribute or type.
Query the handler instead. Keys without attribute or type parameters now
skip walking and return the original instance on replacement. In a
synthetic benchmark of 100 types with `unsigned` and `ArrayRef<int64_t>`
parameters, this lowers the peak compiler memory per type by 14-21% and
object size per type by 11-16% (GCC 13 and Clang 20, -O0/-O2 with -g).
[flang] Cache in flang-licm which locations a loop may modify (#237562)
Hoisting a load asks the alias analysis whether the loop may modify each
location the load reads, and the answer depends only on the loop and the
location. The loads of a loop read the same few locations over and over,
so flang-licm asked the same question many times: on a large OpenACC
region 97% of the queries of a run repeated an earlier one, and with
alias analysis implementations that are expensive to query the pass took
minutes.
Cache the answers of a run, keyed by the loop and the location, in a
small LoopModifiesLocationCache that the pass owns. It is valid for the
whole run because the pass only hoists operations that have no effects
or only read: it never moves a write, so a location that is not modified
in a loop does not become modified in it. Only whether the location may
be modified is used, as before.
-debug-only=flang-licm-cache prints, for each run, how many queries were
answered from the cache and how many asked the alias analysis.
Inline the legacy details property list and drop the remaining comprehensions
## Problem
`pool.dataset.details` kept its property list as a module-level constant that only one call used, and `webui.dataset.details` still built its gating, sections and entry fields through conditional comprehensions.
## Solution
The property list is back inline in the query call, in the same order, so the legacy output is unchanged. The gating, section and entry field building in `webui.dataset.details` use plain loops.
audio/atunes: deprecate for expiration
does not work with jdk11+
last upstream version is from 2014
To keep this in the ports tree, I think it needs a fork with an update to a recent JDK.
Approved by: no maintainer
[analyzer] Standardize diagnostics that had contained double space after sentence end (#228777)
Until now, there was no consensus between using single spaces or double
spaces after sentence endings in the emitted diagnostics by the Clang
Static Analyzer (CSA). This led to inconsistently formatted diagnostics
by the CSA.
Currently there are the following cases where the CSA is not consistent
with the Clang compiler:
- 1: Using double spaces after sentence endings
- 2: Using full sentences in diagnostics
- 3: Using a capital letter at the start of the diagnostic
This PR resolves (1) by removing the double spaces after sentence
endings and partially resolves (2) because for the affected lines it
also removes the full sentence diagnostics.
To uplift downstream tests someone needs to just remove the double
spaces in the test suite emitted by the given checkers and convert the
[5 lines not shown]
Keep other writers off S3 bucket datasets
## Problem
truenas_s3 relies on middleware to keep every other writer off a BUCKET bucket's dataset: a foreign write is served under stale ETags and version IDs, mints no version, skips audit and defeats object lock. The guard only matched a writer's own path at or inside a bucket, and only when the writer was saved. A writable share or task on an ancestor reached the bucket through its child mount, a cloud sync MOVE or an rsync push with `--remove-source-files` deleted from it, bucket create and recover never looked at existing writers, a dataset rename left the bucket row on the old name, and datasets could be created, cloned or renamed into a bucket. Several single-path writers skipped the check entirely (iSCSI and NVMe-oF file backends, VM and container devices, `filesystem.mkdir`/`put`, VM disk conversion, manual update uploads and a cloud backup cache path), a recursive permissions change could rewrite the bucket's private state below its root, and webshare ignored its `readonly` flag.
## Solution
- **Above a bucket.** An enabled share or task whose writes cross into child mounts, a home directory and the anonymous FTP root are refused above a BUCKET bucket's dataset, judged by the resolved path. NFS exports stop at child mounts and read-only shares only read, so both stay allowed. A disabled entry is checked when it is enabled, and rsync and cloud sync re-check before each run and write nothing when refused.
- **Writers.** A cloud sync MOVE push and an rsync push that removes its sources count as writers, and webshare honours `readonly`.
- **Reverse checks.** Each share/task attachment delegate lists its enabled writers from the same `local_path_info` the save-time check uses. Bucket create and recover, a new managed root and a rename that carries a bucket are refused where one of them, a home directory or the anonymous FTP root would reach it. The error names no writer because the S3 service relays it to its clients, so the writers are logged instead.
- **Nesting and rename.** New `validate_create`/`validate_rename` delegate hooks let S3 refuse `zfs.resource.create`, snapshot clones and renames that put a dataset inside a bucket's dataset or onto a name a bucket row still holds, and a `no_unmount` rename that moves a bucket. Bucket rows follow a dataset rename and the S3 service restarts onto the new mount, and a bucket's dataset must be mounted at `/mnt/<name>`.
- **Single-path writers.** iSCSI and NVMe-oF file backends, VM RAW and CDROM devices, container filesystem devices, `filesystem.mkdir`/`put`/`file_receive`, `vm.device.convert` and `update.file` destinations and the cloud backup cache path are refused at or inside a bucket, and a recursive permissions change inside a bucket outside `s3data` is refused.
- **Async call keyword arguments.** `Middleware._call` dropped keyword arguments when the target method was a coroutine, so `call2` never delivered them to an async method; it now forwards them as the executor path and `call_sync2` already do.
- **Alert.** A daily alert names each bucket and the writers that reach it, for configurations from before these checks; the SMB path alert leaves that case to it.
The export test now expects a writable share on a DATASET export above a BUCKET child to be refused and a read-only one to pass. The export is created NFSv4 because SMB refuses a share whose child mount has another ACL type.
18520 bhyve fbuf cannot support vga=on with low memory over the VGA window
Reviewed by: Gordon Ross <Gordon.W.Ross at gmail.com>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Dan McDonald <danmcd at oxide.computer>
18479 pcie fabric setup never enables 10-bit or 14-bit tag requesters
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Reviewed by: Dan Cross <cross at oxidecomputer.com>
Approved by: Dan McDonald <danmcd at oxide.computer>
[mlir][vector] Drop Linalg dependency from transfer full/partial split (#237985)
The `LinalgCopy` strategy of the vector transfer full/partial split was
the only reason MLIRVectorTransforms depended on the Linalg dialect: its
read slow path filled the temporary buffer with `linalg.fill`. The
copies were already `memref.copy` since
https://reviews.llvm.org/D118028.
The temporary buffer is a statically shaped alloca holding exactly one
vector, so fill it with a `vector.broadcast` of the padding value stored
through `vector.type_cast`. This is the same buffer access the
`VectorTransfer` strategy already uses.
As the strategy no longer creates any Linalg ops, rename it from
`LinalgCopy` to `MemRefCopy`
[mlir][ODS] Allow a space-only separator for bit enums
Bit enums required a separator containing '|' or ',', so a flag set
could not use the bare keyword syntax of LLVM IR, e.g. `nuw nsw`.
Dialects that want it, such as ClangIR's overflow flags, had to hand-write
a parser and printer for an EnumProp.
Allow `separator = " "` on new-style BitEnums. The generated FieldParser
then reads case keywords until the next token is not one, symbolize
splits on spaces, and the op-format `enum` directive parses the same
way. Like the existing check for a separator literal, the format
verifier rejects a case literal right after such an enum. The separator
must now be '|', ',', or a space ' ', where '|' and ',' may still be
surrounded by spaces, so strings such as "||" are rejected. Legacy
BitEnumAttr keeps requiring '|' or ','.
Assisted-by: Claude Code (Claude Opus 5.5).
[mlir][NFC] Name external model files and functions after their interface
Throughout MLIR, a header declaring `register<Interface>ExternalModels` is
named `<Interface>Impl.h`, and a dedicated library is named
`MLIR<Dialect><Interface>Impl`. Rename files and registration functions to follow this convention for consistency
devel/charva: deprecate for expiration
does not build with jdk11+
latest upstream is from 2006
no users in the ports tree
PR: 300472
Approved by: Alex Dupre <ale@> (maintainer)
Use plain loops and tuple constants in dataset details
## Problem
The task matchers in `webui.dataset.details` counted through nested generator expressions wrapped in `Counter` and `dict`, which were hard to read, and the property lists for both details endpoints were mutable module-level lists.
## Solution
The matchers count with plain loops, and both property lists are tuples passed to the query as lists, in the same order as before.
[LoongArch] Load scalars into vector lane 0 with FLD/VLDREPL
Inserting a loaded integer into lane 0 of an undefined vector, which is
also how sub-128-bit vector loads are legalized, was lowered to a scalar
load plus [X]VINSGR2VR. VINSGR2VR merges into its destination, so it
carries a false dependency on the previous value of that register, and
it needs a GPR-to-vector move.
Use FLD.{S/D} for 32/64-bit elements and [X]VLDREPL.{B/H} for 8/16-bit
elements instead. They write the whole register in one instruction.
When the register allocator reuses one vector register for several such
loads, the false dependency serializes otherwise independent chains. In
the GSM autocorrelation loop (9 x i64 multiply-accumulate over i16 taps)
on LA664:
VF2: 0.953s -> 0.724s
VF4: 1.446s -> 0.856s
FDT, clk_fixed: add gated-fixed-clock support and deferred initialization
- Add CLK_TYPE_GATED_FIXED with GPIO-based gate control.
- Support optional vdd-supply regulator.
- Delay clknode registration until parent clock and other dependencies
are present (via new_pass).
While I'm in, switch license header to the new SPDX format.
MFC after: 2 weeks
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D58103
py-pyobjc*: updated to 13.0
13.0
Main features
Framework bindings updated for macOS 27 SDK
Add support for the following frameworks (all new in macOS 27):
LinkSecurity
StateReporting
objc.formal_protocol can now be used as an additional base class
to indicate that a class implements a protocol.
The following two definitions are equivalent:
[29 lines not shown]
[LTO] Prevent crashes if a diagnostic is emitted while compiling with `--lto-partitions`
Claude found this bug for me while working on the earlier path.
I checked it and I think this fix makes sense. Without the fix in Config.h, the test crashes with `bad_function_call`.
There were other ways to fix it but I think this makes the most sense as it fixes all users.
I only check the full LTO path as all thinLTO paths set a diagnostic handler, and I don't think adding a unit test just to check
the thinLTO path without a diag handler was worth it.
Assisted-By: Claude Sonnet 5.5