[libc++] Take the mersenne twister ABI break unconditionally (#222700)
Technically this is ABI breaking, since we change the meaning of the
bytes inside the mersenne twister. However, this doesn't cause changes
in the size of any objects and is only an issue in very specific
circumstances. Specifically, the mersenne twister has to be passed on an
ABI boundary and be used on both sides of that ABI boundary. If it's
only used on one side, the values will continue to be correct, since
only a single algorithm is used. Even then, the only issue is that the
values aren't properly randomized, since both versions of the mersenne
twister implementation read the same type of data and produce the same
kind of output with it.
Fixes #209514
[cmake] Use the C++ linker when checking libxml2 (#221970)
When libxml2 is built statically with ICU support, its link interface
contains C++ libraries. `check_symbol_exists()` uses the C linker
driver, causing the libxml2 check to fail on unresolved C++ runtime
symbols and incorrectly report that `xmlReadMemory` is unavailable.
This issue was found in https://github.com/microsoft/vcpkg/pull/53727
[VPlan] Create VPSlotTracker's ModuleSlotTracker for the plan (NFC). (#223952)
Move the lazy creation of VPSlotTracker's ModuleSlotTracker into a new
getOrCreateMST helper, so it can be shared with other users in the
future (https://github.com/llvm/llvm-project/pull/203982).
Also get the function and module directly from the plan Create it for
the cached module and get the function to incorporate from the plan,
instead of using the module and function of the first unnamed
instruction printed.
PR: https://github.com/llvm/llvm-project/pull/223952
relayd: add more useful config checks
- The interval should not be 0, we're making a few divisions with it.
- tcp buffer size and header length of zero makes no sense.
- ip ttl and minttl is u_int8_t so we should restrict it to 255.
OK kirill@
Report which license features a system is using
This commit adds changes to expose a private `truenas.entitlements.usage` endpoint which reports, per gated feature, whether the system is entitled to it and whether it is actually configured to use it. The entire installed base is still on legacy licenses, so we need a way to tell which feature keys a system genuinely needs before we start issuing v2 licenses and strand someone. Probes deliberately avoid any method that consults the entitlement being measured, since those report nothing on exactly the unentitled systems we care about here.
(cherry picked from commit 933d8298b783581b2def4c3543c837cf54cde82d)
NAS-143189 / 27.0.0-BETA.1 / Report which license features a system is using (#19775)
This commit adds changes to expose a private
`truenas.entitlements.usage` endpoint which reports, per gated feature,
whether the system is entitled to it and whether it is actually
configured to use it. The entire installed base is still on legacy
licenses, so we need a way to tell which feature keys a system genuinely
needs before we start issuing v2 licenses and strand someone. Probes
deliberately avoid any method that consults the entitlement being
measured, since those report nothing on exactly the unentitled systems
we care about here.
[MLIR] Use false instead of nullptr for boolean args. (NFC) (#224009)
This fixes a build failure on macOS with -Werror:
error: implicit conversion of nullptr constant to 'bool'
[-Werror,-Wnull-conversion]
PR: https://github.com/llvm/llvm-project/pull/224009
[clang][OpenMP] Emit lastprivate final copies in no-loop kernels
Promotion rejected lastprivate because the no-loop branch leaves the
worksharing path before it privatizes or copies out, so the clause would
have been silently dropped.
Privatize the non-counter variables in the parallel region and copy them
out under the last iteration that applyWorkshareLoop publishes, forcing
the exit barrier the copy reads through. Loop counters stay at the
distribute level and reach EmitOMPSimdFinal.
[clang][OpenMP] Add no-loop SPMD kernel promotion
A target teams distribute parallel for that is guaranteed a thread for
every iteration does not need the loop around its body. Flang already
drops it and runs the region as a no-loop kernel.
Enable the same optimization for Clang through mirroring Flang's MLIR
promotion using OpenMPIRBuilder. The kernel is tagged SPMD_NO_LOOP, so
the runtime sizes the grid to the iteration space, and the body is
emitted without a loop around it. The canonical loop it consumes is
reconstructed in the no-loop branch rather than taken from an
OMPCanonicalLoop node, so the promotion does not require
-fopenmp-enable-irbuilder.
Restrict offload entry creation to module level finalize, preventing
asserts on missing offload entries from nested CodeGenFunction
finalizing before module completion.
[OpenMP] Honor barrier and last iteration flags in loop lowering
Emitting loop-free kernels for no-loop target regions in Clang requires
the shared OpenMP lowering to honor flags that reach it today and are
then discarded.
applyWorkshareLoop takes a NeedsBarrier flag, but the device path drops
it, so a worksharing loop without nowait emits no barrier at its exit.
The device path also never sets the canonical loop's last iteration
variable, which the linear clause finalization reads. Forward the flag
to applyWorkshareLoopTarget and compute the last iteration in the loop
body, mirroring how the host runtime reports it.
Auditing the surrounding lowering for the same class of problem turned
up one more. The barrier that follows privatization is emitted as part
of the firstprivate copy region, so a construct with lastprivate and no
firstprivate never gets one. Emit it independently of the copy region.
Flang skips it for taskloop, where the write-back already happens after
the reads.
[Flang] Diagnose nonvariable STAT= specifiers (#219696)
An image selector STAT= operand can be parsed as a variable but later
resolve to a nonpointer function reference. Passing this expression to
CoarrayRef::set_stat() violates its invariant and triggers a CHECK.
Verify that the analyzed STAT= expression is a variable before calling
set_stat(), and emit a semantic error when it is not.
Add a regression test to resolve94.f90 covering an implicitly typed
nonpointer function reference used as a STAT= specifier.
Fixes https://github.com/llvm/llvm-project/issues/208889
Co-authored-by: yixiao <yixiao at hygon.cn>
Add S3 protocol tests under tests/sharing_protocols/s3
A bucket's stored options are almost all unobservable through the API:
what object_ownership means, what a DENY grant does, whether a
manage_buckets key can create a bucket. Provision through the API,
observe over the protocol.
Assets split in two. The middleware half is assets/s3.py -- accounts,
access keys, buckets, grants, the service -- and imports no client
library, so it stays usable on a runner without one. The client half is
s3_client.py in the test directory rather than tests/protocols/, whose
__init__ imports every client it re-exports and would make an S3 case
need samba and pynfs to reach boto3.
The session stands up two principals and nine buckets, one per thing
that is only answerable per bucket, and skips rather than proving
something weaker where it could not make one.
Beside the bucket plane: the object surfaces. Metadata and the content
[9 lines not shown]