[NVPTX] Pad non-power-of-2 vectors in structs properly. (#201246)
A non-power-of-2 vector inside of a struct is padded up to its alloc
size.
But when the NVPTX asm printer emits bytes for such a struct, it
currently skips this tail padding, thus emitting an incorrect struct.
[mlir][acc] Specialize compute region target during ACCComputeLowering (#201386)
During ACCComputeLowering, when an acc compute region (such as
acc.parallel) is split into in acc.kernel_environment and
acc.compute_region, all wait and async operands are transferred over.
This includes the multiple lists that are used to manage device_type
specific aspects eg:
`acc parallel async device_type(nvidia) async(2)`
This ends up as
`acc.parallel async([#acc.device_type<none>], %c2_i32 : i32
[#acc.device_type<nvidia>])`
And similarly, acc.kernel_environment inherited both async aspects.
However, during ACCComputeLowering, the pass knows its device_type
target. Thus it can directly create a single async (because only
async(2) applies when device_type is nvidia): `acc.kernel_environment
async(%c2_i32 : i32)`
This MR simplifies the operation to not hold all of the multiple lists
[2 lines not shown]
[RISCV] Remove unnecessary explicit template parameter on has_single_bit (#201421)
I think this code was extracted into a function and the Amount was not a
uint32_t when it was in the original location.
[NVPTX] Handle symbol-relative integer initializers in aggregates (#201220)
A symbol-relative integer applies an offset outside the ptrtoint, e.g.
@g = addrspace(1) global i8 0
@s = addrspace(1) global { i64, i64 }
{ i64 add (i64 ptrtoint (ptr addrspace(1) @g to i64), i64 4),
i64 7 }
I'm not sure this is an important feature, but it's explicitly
implemented and works for scalars; the bug is that it hits
llvm_unreachable if you use it inside an aggregate.
While we're here, we also add support for Sub in addition to Add.
[lldb] Use the right MinGW name for the Python DLLs (#201325)
In MinGW mode, the Python DLLs have different names than they have in
MSVC mode; they are named `libpython<major>.<minor>.dll` (a "lib" prefix
and a dot between major and minor) and `libpython3.dll`.
This avoids a warning on startup after
142ad481b6254104a51da7d636ad9e3f30518a32 and total failures to start up
after 3eb13f8db39ed42827122489c830c414cb6660e3.
[clang-format][Objective-C] Fix assertion crash on stray '-'/'+' in @interfa… (#199104)
Before calling `parseObjCMethod()`, it now checks whether the next token
is a `(` or an identifier; if not, it simply skips ahead, thereby
preventing the assertion failure and subsequent crash.
Fixes #199075
diff: Correct fd 0 case on pipe
After git commit c8d40bf8ecc60cc15e3904410db62065ea681fdc, if fd 0 was
not open, it is left with CLOEXEC set and therefore fails. This is an
unlikely situation, but fixing it reduces the size of the code (by using
posix_spawn_file_actions_adddup2's special case if the two file
descriptor numbers are the same).
At the same time, check the error code from
posix_spawn_file_actions_adddup2.
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D56910
install.1: Convert link flags to a table
The five link flags get lost in prose.
Reviewed by: ziaee
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57418
devel/py-b2: Update to 4.7.0
Changes since 4.6.0:
- Reject unsafe remote filenames in the Download command.
- Drop support for Python 3.9 and PyPy 3.9.
Reported by: github
[Docs] Project governance documentation (#197108)
This page largely covers the same information as proposal LP-0004 and
also includes information on current area team and project council
composition.
devel/py-b2sdk: Update to 2.12.0
Update dependencies.
Changes since 2.10.4:
- Handle null case when encoding / decoding content_sha1 in
BaseFileVersion.
- Fix SqliteAccountInfo to explicitly close temporary sqlite
connections used during setup.
- Declare official support for Python 3.14.
- Introduce a reusable validator to ensure remote B2 file names
are safe to use as local paths.
- Drop support for Python 3.9 and PyPy 3.9.
[3 lines not shown]
ena: Budget rx descriptors, not packets
We had ENA_RX_BUDGET = 256 in order to allow up to 256 received
packets to be processed before we do other cleanups (handling tx
packets and, critically, refilling the rx buffer ring). Since the
ring holds 1024 buffers by default, this was fine for normal packets:
We refill the ring when it falls below 7/8 full, and even with a large
burst of incoming packets allowing it to fall by another 1/4 before we
consider refilling the ring still leaves it at 7/8 - 1/4 = 5/8 full.
With jumbos, the story is different: A 9k jumbo (as is used by default
within the EC2 network) consumes 3 descriptors, so a single rx cleanup
pass can consume 3/4 of the default-sized rx ring; if the rx buffer
ring wasn't completely full before a packet burst arrives, this puts
us perilously close to running out of rx buffers.
This precise failure mode has been observed on some EC2 instance types
within a Cluster Placement Group, resulting in the nominal 10 Gbps
single-flow throughput between instances dropping to ~100 Mbps as a
[21 lines not shown]
ena: Adjust ena_[rt]x_cleanup to return bool
The ena_[rt]x_cleanup functions are limited internally to a maximum
number of packets; this ensures that TX doesn't starve RX (or vice
versa) and also attempts to ensure that we get a chance to refill
the RX buffer ring before the device runs out of buffers and starts
dropping packets.
Historically these functions have returned the number of packets which
they processed which ena_cleanup compares to their respective budgets
to decide whether to reinvoke them. This is unnecessary complication;
since the precise number of packets processed is never used, adjust
the APIs of those functions to return a bool indicating if they want
to be reinvoked (aka if they hit their limits).
Since ena_tx_cleanup now only uses work_done if diagnostics are
enabled (ena_log_io macros to nothing otherwise) eliminate that
variable and pass its value (ENA_TX_BUDGET - budget) to ena_log_io
directly.
[9 lines not shown]
ena: Report RX overrun errors
Extract rx_overruns from the keep alive descriptor reported by
the device and expose it via sysctl hw stats.
RX overrun errors occur when a packet arrives but there are not
enough free buffers in the RX ring to receive it.
MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D56640
(cherry picked from commit e3f4a63af63bea70bc86b6c790b14aa5ee99fcd0)
install.1: Document options incompatible with -s
Reported by: des
Reviewed by: ziaee
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57409
misc/mate-user-guide: switch to GitHub release asset
Minor versions of 1.28.x are no longer published to the MATE mirror
and are only available on GitHub. Use USE_GITHUB=nodefault with a
release tarball instead of the auto-generated one, as recommended
by the porter's handbook.
pkgtools/pkglint: update to 23.21.0
Changes since 23.20.0 from 2026-01-31:
Warn about removed files that are still in CVS.
Allow the note about the "!=" assignment operator to be suppressed using
the standard rationale. Previously, the comment needed to be on the same
line, the line above didn't work.
Only allow ${RUN} at the beginning of a shell execution line, as that
variable expands to a "@".
Explain how to suppress diagnostics.
Allow the error about omf-scrollkeeper.mk to be suppressed.
[LoopInterchange] Identify unsafe instructions for interchange (#201402)
In LoopInterchange, all instructions in the loops are traversed and
checked during the legality phase, and the pass bails out if it finds an
instruction that is unsafe to interchange. However, previously it only
handled call instructions and ignored all others, leaving several kinds
of instruction that should have been detected but were not.
This patch fixes the issue by restructuring the legality check, in
particular replacing instruction‑specific handling with calling general
Instruction APIs.
Fixes #200913.
Fix match_any dynamic user condition ranking
A dynamic condition in extension(match_any) can be false even when another static
trait already makes the variant applicable. Before this change, lowering still
ranked the condition as true in that situation, so `condition(score(N): flag)`
could make the variant win even when flag is false.
The previous change separated static applicability from guarded ranking for
dynamic conditions. This fix adds the match_any-specific handling:
```
if staticVMI does not match:
try conditionTrueVMI, because the runtime condition itself may satisfy match_any
if staticVMI already matches and this is match_any:
add guarded candidate: flag true, with user_condition_true and score
add unguarded candidate: flag false, with only static traits
otherwise:
[6 lines not shown]
www/lua-stream-nginx-module: clean up port
Install only the files required to build the module.
Remove tests, CI metadata, and other upstream development files.
Sponsored by: Netzkommune GmbH
[flang][OpenACC] Re-declare cached array sections with lower bounds only (#201223)
When acc.cache yields a box, rebind the symbol with a fir.shift (lower
bounds, no extents) instead of a fir.shape_shift, so the rebox preserves
the materialized descriptor's extents and strides. Add lowering tests.
Assisted by Claude