Selected changesmerged Nov 10, 2026
Extract indexedWatchers.allMatchingWatchers iteratorGo · 33 + / 15 −
Introduces 4 new declarations in staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go ↗ · 2 files
@@ -1257,24 +1258,41 @@ func (c *Cacher) startDispatching(event *watchCacheEvent) { namespace := event.ObjFields["metadata.namespace"] name := event.ObjFields["metadata.name"]- forEachSelectionKey(namespace, name, triggerValues, supported,- func(scope namespacedName) {- for _, watcher := range c.watchers.scopeWatchers[scope] {- c.watchersBuffer = append(c.watchersBuffer, watcher)- }- },- func(indexValue string) {- for _, watcher := range c.watchers.indexWatchers[indexValue] {- c.watchersBuffer = append(c.watchersBuffer, watcher)+ for watcher := range c.watchers.allMatchingWatchers(namespace, name, triggerValues, supported) {+ c.watchersBuffer = append(c.watchersBuffer, watcher)+ }+}++func (i *indexedWatchers) allMatchingWatchers(namespace, name string, triggerValues []string, triggerSupported bool) iter.Seq[*cacheWatcher] {+ return func(yield func(*cacheWatcher) bool) {+ stopped := false+ yieldWatchers := func(watchers watchersMap) {+ if stopped {+ return }- },- func() {- for _, watchers := range c.watchers.indexWatchers {- for _, watcher := range watchers {- c.watchersBuffer = append(c.watchersBuffer, watcher)+ for _, watcher := range watchers {+ if !yield(watcher) {+ stopped = true+ return
Change the span building of paths from first-to-last to chainedRust · 43 + / 4 −
Introduces 3 new declarations in compiler/rustc_parse/src/parser/path.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
compiler/rustc_parse/src/parser/path.rs ↗ · 4 files
@@ -208,23 +208,35 @@ impl<'a> Parser<'a> { } let lo = self.token.span;+ let mut path_span = None; let mut segments = ThinVec::new(); let mod_sep_ctxt = self.token.span.ctxt(); if self.eat_path_sep() {+ chain_span(&mut path_span, self.prev_token.span); segments.push(PathSegment::path_root(lo.shrink_to_lo().with_ctxt(mod_sep_ctxt))); }- self.parse_path_segments(&mut segments, style, ty_generics)?;- Ok(Path { segments, span: lo.to(self.prev_token.span) })+ self.parse_path_segments_with_path_span(&mut segments, style, ty_generics, &mut path_span)?;+ Ok(Path { segments, span: path_span.unwrap() }) } pub(super) fn parse_path_segments( &mut self, segments: &mut ThinVec<PathSegment>, style: PathStyle, ty_generics: Option<&Generics>,+ ) -> PResult<'a, ()> {+ self.parse_path_segments_with_path_span(segments, style, ty_generics, &mut None)+ }++ fn parse_path_segments_with_path_span(+ &mut self,+ segments: &mut ThinVec<PathSegment>,+ style: PathStyle,+ ty_generics: Option<&Generics>,+ path_span: &mut Option<Span>, ) -> PResult<'a, ()> { loop {
fs: resolve symlinks before parent componentsJavaScript · 67 + / 11 −
Introduces 3 new declarations in lib/fs.js.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
lib/fs.js ↗ · 2 files
@@ -3602,10 +3645,23 @@ function realpath(p, options, callback) { pos = result + 1; } + if (part === '' || part === '.') {+ current = previous;+ return process.nextTick(LOOP);+ }+ if (part === '..') {+ base = pathModule.dirname(previous);+ current = base;+ if (current[current.length - 1] !== CHAR_FORWARD_SLASH &&+ current[current.length - 1] !== CHAR_BACKWARD_SLASH) {+ current += pathModule.sep;+ }+ return process.nextTick(LOOP);+ } // Continue if not a symlink, break if a pipe/socket if (knownHard.has(base)) { if (reachedPipeOrSocket) {- return callback(null, encodeRealpathResult(p, options));+ return callback(null, encodeRealpathResult(pathModule.resolve(p), options)); } return process.nextTick(LOOP); }
ui: show audio in Discover for models whose mmproj has an audio encoderTypeScript · 288 + / 6 −
Introduces 5 new declarations in tools/ui/src/lib/utils/gguf-metadata.ts.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
tools/ui/src/lib/utils/gguf-metadata.ts ↗ · 11 files
@@ -0,0 +1,153 @@+/**+ * Reads the metadata key/value pairs at the start of a GGUF file, from as many bytes of it as are given.+ * Format: https://github.com/ggml-org/ggml/blob/master/docs/gguf.md+ */++const GGUF_MAGIC = 0x46554747; // "GGUF", little-endian++enum GgufType {+ UINT8 = 0,+ INT8 = 1,+ UINT16 = 2,+ INT16 = 3,+ UINT32 = 4,+ INT32 = 5,+ FLOAT32 = 6,+ BOOL = 7,+ STRING = 8,+ ARRAY = 9,+ UINT64 = 10,+ INT64 = 11,+ FLOAT64 = 12+}++const SCALAR_SIZE: Partial<Record<GgufType, number>> = {+ [GgufType.BOOL]: 1,+ [GgufType.FLOAT32]: 4,+ [GgufType.FLOAT64]: 8,+ [GgufType.INT8]: 1,+ [GgufType.INT16]: 2,+ [GgufType.INT32]: 4,+ [GgufType.INT64]: 8,+ [GgufType.UINT8]: 1,+ [GgufType.UINT16]: 2,
BUG: loc setitem with a partial MultiIndex key sets NaN (GH#43719)Python · 81 + / 0 −
Introduces 2 new declarations in pandas/core/indexing.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/core/indexing.py ↗ · 3 files
@@ -932,6 +932,71 @@ def _maybe_mask_setitem_value(self, indexer, value): return indexer, value + @final+ def _maybe_restore_dropped_levels(self, key, indexer, value):+ """+ Relabel a Series/DataFrame value whose axis lacks the MultiIndex levels+ matched by the leading scalars of that axis's key.++ ``obj.loc[partial_key]`` drops those levels, so without this+ ``obj.loc[partial_key] = obj.loc[partial_key] * 2`` aligns to all-NaN.+ """+ if not isinstance(value, (ABCSeries, ABCDataFrame)):+ return value++ if self.axis is not None:+ key = _tupleize_axis_indexer(self.ndim, self.axis, key)+ # mirror how _get_setitem_indexer split the key between the axes+ if isinstance(indexer, tuple):+ keys = key+ else:+ keys, indexer = (key,), (indexer,)++ if value.ndim == 2:+ axes = list(range(len(indexer)))+ elif self.ndim == 1 or not (+ # a dict is a missing scalar key, see convert_missing_indexer+ is_scalar(indexer[0]) or isinstance(indexer[0], dict)+ ):+ # a Series value aligns on the rows unless they are selected by a scalar+ axes = [0]+ elif len(indexer) > 1:+ axes = [1]