| vLLM |
With the ARC eviction policy, the CPU KV-cache offload tier evicted a running request's first chunks before its last ones, so the chunks it kept could never be hit, since lookup needs a contiguous prefix from chunk 0. ARC now evicts a running request's chunks tail first, as LRU does. After 16 concurrent 2,048-token prompts on an RTX 4090, resident but unreachable chunks fell from 252 to 0, and replaying the prompts hit 8,016 cached tokens instead of 4,096, the same as LRU. Landing commit. |
#67098 |
merged |
Nov 2026 |
| PyTorch core |
Enable the existing dynamic-shape support for foreach operations by default under torch.compile, with a test update. Landing commit. |
#158985 |
merged |
Jul 2025 |
| PyTorch core |
Expose rearrange through the torch.func public API, with tests and documentation. Landing commit. |
#173183 |
merged |
May 2026 |
| PyTorch core |
The cuDNN CTC loss read strided log_probs as if contiguous and returned a gradient buffer that cuDNN leaves unwritten past each sequence's length; it now copies the input contiguously and zero-initializes the gradient, with tests against the native kernel. Landing commit. |
#203097 |
merged |
Nov 2026 |
| PyTorch core |
Sparse CSR add, addmm, mm and sampled_addmm with out= wrote their result contiguously into a strided out.values() view, so it landed in the wrong elements and overwrote the storage between them. They now run on a contiguous clone and copy the result back through the view, and resizing such a view to another shape raises instead of restriding it. This applies the fix the sparse maintainer posted on the issue, with two corrections and regression tests; the full test_sparse_csr.py passes on an RTX 4090. Landing commit. |
#203228 |
merged |
Nov 2026 |
| PyTorch core |
Each conditional node in a CUDA graph re-routes allocations to the graph's memory pool and took a pool reference it never released, so the pool leaked and could never be freed. The reference is now released right after each re-route, so the graph keeps only the one from capture start. Tests check the pool's use count, the pinned-host pool and expandable segments, and fail without the fix (RTX 4090). Landing commit. |
#201639 |
merged |
Nov 2026 |
| Meta bpfilter |
IPv4 Type-of-Service matcher: command-line parsing, BPF code generation and unit tests. |
#364 |
merged |
Jan 2026 |
| Meta bpfilter |
IPv6 Traffic Class matcher with endianness-safe byte loads, plus tests. |
#369 |
merged |
Jan 2026 |
| PyTorch Ignite |
Seven type-hint modernizations across the metrics module (Union[...] to X | Y) from a good-first-issue sweep; counted here as one contribution. |
#3484–#3490 |
merged |
Jan 2026 |
| DuckDB |
A CASE or IF that passed a hash join's dictionary column through for some chunks only made the operator cache throw an INTERNAL error that invalidated the database, because the cache assumed a global dictionary never changes; the cache now demotes such a column to flat. Landing commit. |
#27979 |
merged |
Nov 2026 |
| DuckDB |
SELECT DISTINCT over an unnested struct covered only the columns as written, not the expanded fields, so rows collapsed wrongly; the binder now regenerates the targets after binding. Landing commit. |
#27973 |
merged |
Nov 2026 |
| DuckDB |
The deprecated materialized C API left a result half-initialized on an untyped SQLNULL column, so later accessors read a missing null mask and segfaulted on SELECT NULL, 42; translation now handles SQLNULL. Landing commit. |
#27707 |
merged |
Nov 2026 |
| Meta bpfilter |
meta.probability above 50 % matched every packet: a sign-extended 32-bit immediate in a 64-bit BPF compare; switched to 32-bit jumps and extended the end-to-end test. Landing commit. |
#597 |
merged |
Oct 2026 |
| Apache Arrow nanoarrow |
The testing JSON comparison ignored metadata on nested and dictionary child fields; it now recurses into them, with a gtest. Landing commit. |
#993 |
merged |
Oct 2026 |
| Apache Arrow Rust |
The Parquet Arrow writer counted every row, nulls included, when deciding whether to build a dictionary cache, so mostly-null or all-null dictionary columns allocated a cache they never used; it now counts the selected non-null values across the whole write. An all-null 131,072-row column with 65,536 dictionary values now retains 168 bytes instead of 524,456. Landing commit. |
#12122 |
merged |
Nov 2026 |
| Apache Arrow Rust |
Benchmarks for Parquet definition and repetition level encoding and for nested writer cases (short lists with nulls, maps), the baseline for encoding levels a group at a time. Landing commit. |
#12213 |
merged |
Nov 2026 |
| Apache Arrow Rust |
Sparse-dictionary row encoding in arrow-row gathered dictionary values with a dynamic extend per row; typed gathers for string and binary values cut mean time by about 21–24 % on the 8,192-row string-dictionary benchmark (32K–4M dictionary values). Landing commit. |
#12113 |
merged |
Nov 2026 |
| OpenTelemetry C++ |
SocketAddr read a sockaddr_in through a misaligned cast; it now stores a sockaddr_storage, with a regression test that fails on the original header even without sanitizers. Landing commit. |
#4725 |
merged |
Oct 2026 |
| unordered_dense |
clear() writes the whole index, so it costs as much as the largest size the table ever had. An opt-in clear(clear_mode::sparse) now empties each entry by its own probe walk below one entry per 16 groups: 16 entries left after a 4M-entry peak clear in about 95 ns instead of about 820 µs (Ryzen 9 7950X). Plain clear() is unchanged, since it must still work after keys were moved out. Landing commit. |
#387 |
merged |
Nov 2026 |