Selected changesmerged Oct 7, 2026
component-base/metrics/testutil: compute quantiles from native histogramsGo · 163 + / 0 −
Introduces 4 new declarations in staging/src/k8s.io/component-base/metrics/testutil/metrics.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/component-base/metrics/testutil/metrics.go ↗ · 2 files
@@ -383,6 +413,139 @@ func (hist *Histogram) Quantile(q float64) float64 { return bucketQuantile(q, buckets) } +// nativeBuckets decodes the sparse, exponentially sized buckets of a native+// histogram (https://www.kubernetes.dev/resources/keps/5808/)+// into a list of non-cumulative buckets covering the real number line,+// sorted by ascending upper bound. It returns nil if hist doesn't carry any+// native histogram data (e.g. because native histograms are disabled or the+// histogram has no observations).+func (hist *Histogram) nativeBuckets() []bucket {+ h := hist.Histogram+ if len(h.GetPositiveSpan()) == 0 && len(h.GetNegativeSpan()) == 0 &&+ h.GetZeroCount() == 0 && h.GetZeroCountFloat() == 0 {+ return nil+ }++ schema := h.GetSchema()+ var buckets []bucket++ for idx, count := range decodeNativeHistogramSpans(h.GetPositiveSpan(), h.GetPositiveDelta(), h.GetPositiveCount()) {+ if count <= 0 {+ continue+ }+ lower, upper := nativeHistogramBucketBounds(schema, idx)+ buckets = append(buckets, bucket{lowerBound: lower, upperBound: upper, count: count})+ }+ for idx, count := range decodeNativeHistogramSpans(h.GetNegativeSpan(), h.GetNegativeDelta(), h.GetNegativeCount()) {+ if count <= 0 {+ continue+ }+ lower, upper := nativeHistogramBucketBounds(schema, idx)+ buckets = append(buckets, bucket{lowerBound: -upper, upperBound: -lower, count: count})+ }
llama : add a GPU cache for MoE experts kept in host memoryC++ · 739 + / 13 −
Introduces 14 new declarations in src/llama-moe-cache.cpp.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
src/llama-moe-cache.cpp ↗ · 14 files
@@ -0,0 +1,550 @@+#include "llama-moe-cache.h"++#include "llama-impl.h"+#include "llama-model.h"++#include "ggml-cpp.h"++#include <algorithm>+#include <stdexcept>+#include <unordered_map>+#include <vector>++namespace {++// LRU of the experts of a group of layers, the slot of each expert is kept in the slot map of its layer+struct moe_cache_lru {+ int32_t n_expert = 0;+ int32_t n_slots = 0;++ std::vector<int32_t *> slot_map; // [n_layer] data of the slot maps, -1 if the expert is not cached+ std::vector<int32_t> key_of; // [n_slots] il*n_expert + expert, -1 if empty++ // doubly linked list of the slots, head is the least recently used+ std::vector<int32_t> prev;+ std::vector<int32_t> next;+ int32_t head = -1;+ int32_t tail = -1;++ std::vector<uint32_t> seen; // [n_expert]+ uint32_t seen_gen = 0;+ std::vector<int32_t> uniq;++ void init(int32_t n_layer, int32_t n_expert, int32_t n_slots) {
BUG: read_sas IndexError for column text on SAS7BDAT amd pages (GH#60809)Python · 124 + / 29 −
Introduces 2 new declarations in pandas/io/sas/sas7bdat.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/io/sas/sas7bdat.py ↗ · 5 files
@@ -868,34 +870,127 @@ def _process_format_subheader(self, offset: int, length: int) -> None: label_idx = self._read_uint( text_subheader_label, const.column_label_text_subheader_index_length )- label_idx = min(label_idx, len(self.column_names_raw) - 1)- label_start = self._read_uint( col_label_offset, const.column_label_offset_length ) label_len = self._read_uint(col_label_len, const.column_label_length_length) - label_names = self.column_names_raw[label_idx]- column_label = self._convert_header_text(- label_names[label_start : label_start + label_len]- )- format_names = self.column_names_raw[format_idx]- column_format = self._convert_header_text(- format_names[format_start : format_start + format_len]- )- current_column_number = len(self.columns)-- col = _Column(- current_column_number,- self.column_names[current_column_number],- column_label,- column_format,- self._column_types[current_column_number],- self._column_data_lengths[current_column_number],+ self._column_format_refs.append(+ (+ (format_idx, format_start, format_len),+ (label_idx, label_start, label_len),+ ) )
feat: Deprecate REST providers and pn.state.publish in favor of pluginsPython · 89 + / 24 −
Introduces 6 new declarations in panel/command/serve.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
panel/command/serve.py ↗ · 13 files
@@ -858,11 +864,15 @@ def _tornado_routes(self, args, kwargs): kwargs['extra_patterns'] = patterns = kwargs.get('extra_patterns', []) patterns += get_static_routes(self._static_dirs) - # Handle tranquilized functions in the supplied functions- if args.rest_provider in REST_PROVIDERS:- patterns.extend(REST_PROVIDERS[args.rest_provider](self._files, args.rest_endpoint))- elif args.rest_provider is not None:- raise ValueError(f"rest-provider {args.rest_provider!r} not recognized.")+ if args.rest_endpoint is not None:+ deprecated('2.0', '--rest-endpoint', extra=self._rest_deprecation)+ if args.rest_provider is not None:+ deprecated('2.0', '--rest-provider', extra=self._rest_deprecation)+ if args.rest_provider not in REST_PROVIDERS:+ raise ValueError(f"rest-provider {args.rest_provider!r} not recognized.")+ patterns.extend(REST_PROVIDERS[args.rest_provider](+ self._files, args.rest_endpoint or 'rest'+ )) if args.liveness: argvs = {f: args.args for f in self._files}
add IBM f128 typeRust · 141 + / 27 −
Introduces 8 new declarations in library/stdarch/crates/core_arch/src/powerpc/mod.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
library/stdarch/crates/core_arch/src/powerpc/mod.rs ↗ · 30 files
@@ -2,6 +2,47 @@ pub(crate) mod macros; +/// The IBM extended-precision (double-double) floating-point type.+// FIXME(ppcf128) improve the docs.+#[lang = "ppcf128"]+#[doc(alias = "__ibm128")]+#[doc(alias = "doubledouble")]+#[doc(alias = "f64f64")]+#[unstable(feature = "powerpc_ppcf128", issue = "163323")]+#[allow(non_camel_case_types)]+#[doc(cfg(any(target_arch = "powerpc", target_arch = "powerpc64")))]+#[derive(Clone, Copy)]+pub struct ppcf128(u128);++#[unstable(feature = "powerpc_ppcf128", issue = "163323")]+impl crate::fmt::Debug for ppcf128 {+ fn fmt(&self, f: &mut crate::fmt::Formatter<'_>) -> crate::fmt::Result {+ let (hi, lo) = self.to_components();+ write!(f, "ppcf128({hi:?}, {lo:?})")+ }+}++impl ppcf128 {+ /// Returns the memory representation of this floating point number as a byte array in+ /// native byte order.+ #[unstable(feature = "powerpc_ppcf128", issue = "163323")]+ #[inline]+ pub const fn to_ne_bytes(self) -> [u8; 16] {+ // SAFETY: every bit pattern of a `ppcf128` is a valid `[u8; 16]`.+ unsafe { crate::mem::transmute::<ppcf128, [u8; 16]>(self) }+ }+