Selected changesmerged Aug 27, 2026
[ONNX] Skip affected models on torch 2.13 (two dynamo regressions)Python · 102 + / 0 −
Introduces 3 new declarations in src/transformers/exporters/exporter_onnx.py.
Adds new core implementation rather than adjusting what was there. Read the linked PR for the surrounding test context.
src/transformers/exporters/exporter_onnx.py ↗ · 1 files
@@ -727,6 +727,108 @@ def _fix_sort_stable(gm: torch.fx.GraphModule, node: torch.fx.Node) -> bool: return True +@functools.cache+def _integral_scalar_promotion_ops() -> frozenset:+ """Ops where a Python float meeting an integral tensor needs the tensor promoted first.++ Named for torch 2.13, where the mishandling appeared, but applied on every version: both rewrites are+ semantics-preserving — a cast to the dtype the op already produces, and an overload swap with the same+ meaning — so gating them on a version would add a branch that changes nothing except which torch the+ path is exercised on.++ `sub`/`rsub` and `mul` are what the affected models spell (`1.0 - attention_mask`, `mask * 2.0`); both+ overloads appear, since decomposition rewrites `.Tensor` to `.Scalar` when the operand is a constant.++ Resolved on first use rather than at import: this module is importable without torch, and naming an+ `OpOverload` at module scope breaks that.+ """+ return frozenset(+ {+ torch.ops.aten.rsub.Scalar,+ torch.ops.aten.sub.Scalar,+ torch.ops.aten.sub.Tensor,+ torch.ops.aten.mul.Scalar,+ torch.ops.aten.mul.Tensor,+ }+ )+++@register_fx_node_fix("onnx")+def _fix_integral_tensor_float_scalar(gm: torch.fx.GraphModule, node: torch.fx.Node) -> bool:+ """Promote an integral tensor before it meets a Python float, which torch 2.13 mishandles.+
validation-gen: Support maps of pointersGo · 726 + / 22 −
Introduces 49 new declarations in staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/tags/eachval/map_of_pointers/zz_generated.validations.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/tags/eachval/map_of_pointers/zz_generated.validations.go ↗ · 19 files
@@ -0,0 +1,156 @@+//go:build !ignore_autogenerated+// +build !ignore_autogenerated++/*+Copyright The Kubernetes Authors.++Licensed under the Apache License, Version 2.0 (the "License");+you may not use this file except in compliance with the License.+You may obtain a copy of the License at++ http://www.apache.org/licenses/LICENSE-2.0++Unless required by applicable law or agreed to in writing, software+distributed under the License is distributed on an "AS IS" BASIS,+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+See the License for the specific language governing permissions and+limitations under the License.+*/++// Code generated by validation-gen. DO NOT EDIT.++package mapofpointers++import (+ context "context"+ fmt "fmt"++ equality "k8s.io/apimachinery/pkg/api/equality"+ operation "k8s.io/apimachinery/pkg/api/operation"+ safe "k8s.io/apimachinery/pkg/api/safe"+ validate "k8s.io/apimachinery/pkg/api/validate"+ field "k8s.io/apimachinery/pkg/util/validation/field"+ testscheme "k8s.io/code-generator/cmd/validation-gen/testscheme"
Upgrade Turbopack to hashbrown 0.15Rust · 268 + / 324 −
Introduces 8 new declarations in turbopack/crates/turbo-tasks-backend/src/backend/mod.rs.
Adds new framework internals rather than adjusting what was there. Read the linked PR for the surrounding test context.
turbopack/crates/turbo-tasks-backend/src/backend/mod.rs ↗ · 11 files
@@ -1569,76 +1570,88 @@ impl TurboTasksBackend { self.track_cache_hit_by_fn(native_fn); // Step 3a: Insert into in-memory cache using the pre-located shard. // Use the existing Arc from storage to avoid a duplicate allocation.- match raw_entry_in_shard(shard, self.storage.task_cache.hasher(), hash, |k| {- k.eq_components(native_fn, this, arg_ref)- }) {- RawEntry::Occupied(_) => {}- RawEntry::Vacant(e) => {- e.insert(stored_type, task_id);- }- };+ with_entry_in_shard(+ shard,+ self.storage.task_cache.hasher(),+ hash,+ arg,+ |k, arg| k.eq_components(native_fn, this, arg.as_ref()),+ |entry, _arg| {+ if let Entry::Vacant(entry) = entry {+ entry.insert((stored_type, task_id));+ }+ },+ ); task_id } else {- match raw_entry_in_shard(shard, self.storage.task_cache.hasher(), hash, |k| {- k.eq_components(native_fn, this, arg_ref)- }) {- RawEntry::Occupied(e) => {- // Another thread beat us to creating this task — use their task_id.- // They will handle logging the new task as modified.- let task_id = *e.get();- drop(e);
model: add DSpark support for Nemotron3.5C++ · 52 + / 25 −
Introduces 1 new declaration in src/models/dflash.cpp.
Adds new runtime rather than adjusting what was there. Read the linked PR for the surrounding test context.
src/models/dflash.cpp ↗ · 6 files
@@ -354,17 +360,21 @@ static void build_dspark_markov_head(llm_graph_context & g, const llama_model & cat = cat ? ggml_concat(ctx0, cat, col, 1) : col; - // conf(i) = sigmoid(conf_proj . [conf_inp(i); markov_w1[prev(i)]] + b) -- [1, n_blocks]- ggml_tensor * conf_inp_i = ggml_view_2d(ctx0, conf_inp, conf_inp->ne[0], n_blocks,- (size_t) block_drafts * conf_inp->nb[1], i*conf_inp->nb[1]);- ggml_tensor * feat = ggml_concat(ctx0, ggml_cont(ctx0, conf_inp_i), w1_prev, 0);- ggml_tensor * conf = ggml_mul_mat(ctx0, model.dspark_conf_proj, feat);- if (model.dspark_conf_proj_b) {- conf = ggml_add(ctx0, conf, model.dspark_conf_proj_b);- }- conf = ggml_sigmoid(ctx0, conf);+ if (has_conf) {+ // confidence head input: predicts per-position acceptance+ ggml_tensor * conf_inp = res->t_embd; // [n_embd, n_tok]+ // conf(i) = sigmoid(conf_proj . [conf_inp(i); markov_w1[prev(i)]] + b) -- [1, n_blocks]+ ggml_tensor * conf_inp_i = ggml_view_2d(ctx0, conf_inp, conf_inp->ne[0], n_blocks,+ (size_t) block_drafts * conf_inp->nb[1], i*conf_inp->nb[1]);+ ggml_tensor * feat = ggml_concat(ctx0, ggml_cont(ctx0, conf_inp_i), w1_prev, 0);+ ggml_tensor * conf = ggml_mul_mat(ctx0, model.dspark_conf_proj, feat);+ if (model.dspark_conf_proj_b) {+ conf = ggml_add(ctx0, conf, model.dspark_conf_proj_b);+ }+ conf = ggml_sigmoid(ctx0, conf); - cat_conf = cat_conf ? ggml_concat(ctx0, cat_conf, conf, 1) : conf;+ cat_conf = cat_conf ? ggml_concat(ctx0, cat_conf, conf, 1) : conf;+ } if (i + 1 < block_drafts) { prev = ggml_argmax(ctx0, col);
Add spelling suggestions to the Integrated Browser context menuTypeScript · 24 + / 0 −
Reworks 23 lines of existing logic in src/vs/platform/browserView/electron-main/browserViewMainService.ts.
Changes how existing core implementation behaves. Read the linked PR for the surrounding test context.
src/vs/platform/browserView/electron-main/browserViewMainService.ts ↗ · 1 files
@@ -564,6 +564,30 @@ export class BrowserViewMainService extends Disposable implements IBrowserViewMa })); } + const spellingSuggestions = params.dictionarySuggestions ?? [];+ const canAddToDictionary = !!params.misspelledWord && webContents.session.isPersistent();+ if (params.misspelledWord && (spellingSuggestions.length > 0 || canAddToDictionary)) {+ if (menu.items.length > 0) {+ menu.append(new MenuItem({ type: 'separator' }));+ }+ for (const suggestion of spellingSuggestions) {+ menu.append(new MenuItem({+ label: suggestion,+ click: () => webContents.replaceMisspelling(suggestion)+ }));+ }+ if (canAddToDictionary) {+ if (spellingSuggestions.length > 0) {+ menu.append(new MenuItem({ type: 'separator' }));+ }+ menu.append(new MenuItem({+ label: localize('browser.contextMenu.addToDictionary', 'Add to Dictionary'),+ click: () => webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)+ }));+ }+ menu.append(new MenuItem({ type: 'separator' }));+ }+ if (params.isEditable) { menu.append(new MenuItem({ role: 'cut', enabled: params.editFlags.canCut })); menu.append(new MenuItem({ role: 'copy', enabled: params.editFlags.canCopy }));