Daily edition

Aug 27, 2026

The edition exactly as it was published. Nothing here is re-selected on a later reading.

Aug 28, 20265 reads · 194 merged PRs screened

core implementation

huggingface/transformers · #48191

Files changed →View PR ↗

[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.+

systems design

kubernetes/kubernetes · #141383

Files changed →View PR ↗

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"

framework internals

vercel/next.js · #97808

Files changed →View PR ↗

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);

runtime

ggml-org/llama.cpp · #27804

Files changed →View PR ↗

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);

core implementation

microsoft/vscode · #333043

Files changed →View PR ↗

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 }));

Read today’s edition →