[ORC] Restrict JITLoaderPerf LLVM_ALWAYS_EXPORT to Linux (#238241)
PR #237756 added LLVM_ALWAYS_EXPORT to both the Linux and non-Linux stub
definitions in JITLoaderPerf.cpp, breaking static Windows MSVC builds
(https://lab.llvm.org/buildbot/#/builders/flang-x86_64-windows) with
C2375 because LLVM_ALWAYS_EXPORT expands to __declspec(dllexport) while
LLVM_ABI in JITLoaderPerf.h is empty.
Perf JIT support is Linux-only, so drop LLVM_ALWAYS_EXPORT from the
non-Linux stub definitions.
Assisted-by: Gemini
[C++20] [Modules] Don't judge the accetability of a function for whose definition is reduced (#238239)
Close https://github.com/llvm/llvm-project/issues/237418
The root cause of the issue is, when clang tries to judge if a
function's definition is acceptable or not, the body of the function is
removed in reduced BMI.
The solution here is to judge the acceptability of the function itself
instead.
uchcom: validate baud rate in uchcom_pre_param
Check the requested baud rate in uchcom_pre_param() instead of working
around it in uchcom_calc_baudrate(), where a rate of 0 caused a
divide-by-zero. The pre_param callback is the proper place for this check.
Reviewed by: aokblast
Differential Revision: https://reviews.freebsd.org/D61127
www/py-recaptcha: Deprecate
Python 2 code for the reCAPTCHA v1 API, which was shut down.
While here, fix portlint warnings.
Set the EXPIRATION_DATE to the beginning of next month. Since the API
has been shut down, I don't expect anyone to care though.
PR: 299951
Submit usage statistics once a day and gather space cheaply
## Problem
Usage statistics were submitted at a random time after every middleware start, so reboots, restarts and failovers could send them more than once a day.
Gathering also walked every dataset and zvol on every pool and read space properties for each one, when only counts, root dataset space, zvol `used` and the `used` of backed-up datasets were needed. The per-pool entries only had `capacity`, so used and free space couldn't be told apart, and `data_without_backup_size` summed `used` over every dataset, counting nested data once per level.
## Solution
- **Submit at most once every 24 hours.** The time of the last successful submission is kept in keyvalue, `usage.start` only submits once 24 hours have passed since then, and the next run is scheduled for 24 hours after it. When nothing is saved yet the clock starts from now, so nothing is sent for 24 hours after an upgrade or a first install. On HA, a run that falls due while the node isn't master waits another 24 hours. `usage.start` is started on `system.ready` rather than from setup, because plugin setup runs before pools are imported at boot and a run due then would gather without pools and record that as a successful submission.
- **Report used and available space for each pool.** `gather_pools` queries `zpool.query_impl` for the pools in `storage.volume` and reports `capacity`, `used` and `available` from the pool's `usable`, `used` and `available` properties. `capacity` therefore changes meaning, from root dataset used + available to pool `usable`, and none of these match `zfs list` because of slop space and special/dedup vdev accounting. dRAID vdev types are normalised to `draid`.
- **Measure data without backup against the space actually used.** `data_without_backup_size` is now the sum of root dataset `used` minus the backed-up size, clamped at 0 since a backed-up dataset and its child are both counted.
- **Gather without reading properties of every dataset.** Datasets and zvols are counted with a fast libzfs iteration in a private `zfs.resource.count_impl`, so the cost is one simple ioctl per dataset, one full lookup per zvol, one query per pool root and one query per backed-up dataset. Restricted runs, with usage collection off, get cheaper too. A backup source that can't be queried is logged and skipped rather than dropping all the backup stats.
- **Test the counts.** An api2 test checks that a dataset with a child and a zvol move the dataset and zvol counts and the zvol total size.
[AMDGPU] Set WMMA source-operand reuse bits in SIPreEmitPeephole
gfx1250 WMMA and SWMMAC instructions can set matrix_a_reuse /
matrix_b_reuse bits that keep the A or B source operand in a
high-temporality state in the VALU source-operand cache, so a later
instruction reusing the same registers hits in the cache instead of
re-reading the register file.
Add a late, post-RA peephole in the existing pre-emit peephole pass that,
for every WMMA or SWMMAC, sets the A or B reuse bit when the next WMMA or
SWMMAC in the basic block reads the same physical registers in the same
operand position. Other instructions between the two are allowed, as long
as none of them reads or writes those registers.
The cache is only a few entries deep, so at most one reuse bit is set per
instruction, and none is added if one is already set.
Stale sticky entries in the cache are cleared when a register is used in
an instruction without a reuse bit being set. Therefore, the final use of
the same source should not set the bit.
Report failover steps in vrrp_master progress
This commit adds changes to report the current failover step in the vrrp_master job's progress extra field so TrueNAS Connect can show users what a failover is doing. The existing progress descriptions are left untouched since the webUI and failover.status depend on them.
py-anyio: updated to 4.16.0
4.16.0
*New features*
- Added ``BlockingPortal.call_async()`` for asynchronously calling into an event loop
with optional abandonment on cancellation
- Added SOCK_SEQPACKET support to ``connect_unix()`` and ``create_unix_listener()``
*Other changes*
- Changed UDP sockets on the asyncio backend to make ``send()`` wait until the
datagram has been passed to the operating system
*Bug fixes*
- Fixed documentation implying that ``use_uvloop=True`` falls back to the standard
event loop when uvloop (winloop on Windows) is not installed, and showed how to
[100 lines not shown]
RuntimeLibcalls: Add signatures for half and bfloat conversion libcalls
Fix missing type signatures for compiler-rt FP conversion functions.
__gnu_h2f_ieee and __gnu_f2h_ieee are special cases which take and
return the integer representations instead.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
cargo-nextest: updated to 0.9.151
0.9.151
Fixed
With test groups and threads-required, a test waiting for a slot in its group is now started as soon as enough threads are free. Previously, if the threads were freed by a test outside that group, the waiting test could be delayed. If no other test in its group was still running, the run could end with the test not being run.
Fixed a panic when reusing builds (--archive-file or --binaries-metadata) for a custom target provided by rustc --print=cfg.
[SPARC] Support missing inline asm constraints (#235776)
Clang frontend accepts J, K, L, M, N, and O, but the backend did not
handle them. Inline assembly using them failed with "invalid operand for
inline asm constraint".
Assisted-by: Claude