Selected changesmerged Sep 24, 2026
Don't merge distinct impl candidatesRust · 89 + / 30 −
Introduces 5 new declarations in compiler/rustc_next_trait_solver/src/solve/trait_goals.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
compiler/rustc_next_trait_solver/src/solve/trait_goals.rs ↗ · 10 files
@@ -1493,19 +1493,77 @@ where } } + /// Like `try_merge_candidates`, but returns `None` if there are multiple user-written+ /// impls, or a user-written impl and a builtin impl, in which case we bail with ambiguity.+ ///+ /// Candidates with equal responses can still come from conflicting impls, ex - two+ /// overlapping impls which both apply due to impossible where-clauses. We don't want+ /// to merge these. Multiple builtin impls are still merged as usual. This is not+ /// done for marker traits, as their impls are allowed to overlap.+ #[instrument(level = "trace", skip(self), ret)]+ fn try_merge_impl_candidates(+ &mut self,+ trait_def_id: I::TraitId,+ candidates: &[Candidate<I>],+ ) -> Option<CanonicalResponse<I>> {+ let is_marker = self.cx().trait_is_marker(trait_def_id);+ let all_builtin = candidates+ .iter()+ .all(|candidate| matches!(candidate.source, CandidateSource::BuiltinImpl(_)));++ if is_marker || all_builtin {+ self.try_merge_candidates(candidates).map(|(response, _)| response)+ } else if candidates.len() > 1 {+ None+ } else {+ candidates.first().map(|candidate| candidate.result)+ }+ }++ fn merge_candidates_or_bail_with_ambiguity(+ &mut self,+ candidates: &[Candidate<I>],
llama: add llama_batch_extC++ · 692 + / 139 −
Introduces 19 new declarations in src/llama-batch.cpp.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
src/llama-batch.cpp ↗ · 10 files
@@ -985,3 +1020,305 @@ void llama_batch_free(struct llama_batch batch) { } if (batch.logits) free(batch.logits); }+++// llama_batch_ext++size_t llama_batch_ext_select_n_embd_inp(llama_context_type ctx_type, llm_arch arch, const llama_hparams & hparams) {+ if (ctx_type == LLAMA_CONTEXT_TYPE_MTP) {+ return hparams.n_embd_out();+ }+ if (arch == LLM_ARCH_DFLASH) {+ return hparams.n_embd_inp_enc();+ }+ return hparams.n_embd_inp();+}++llama_batch_ext::llama_batch_ext(llama_context * ctx) :+ n_tokens_max(llama_n_batch(ctx)),+ n_embd_inp(llama_batch_ext_select_n_embd_inp(ctx->get_cparams().ctx_type, llama_get_model(ctx)->arch, llama_get_model(ctx)->hparams)),+ n_embd_inp_enc(llama_get_model(ctx)->hparams.n_embd_inp_enc()),+ n_seq_max(llama_n_seq_max(ctx)),+ mem(llama_get_memory(ctx)),+ n_vocab(llama_vocab_n_tokens(llama_model_get_vocab(llama_get_model(ctx)))),+ n_pos_per_embd(llama_get_model(ctx)->hparams.n_pos_per_embd()) {+ clear();+}++llama_batch_ext::llama_batch_ext(+ size_t n_tokens_max,+ size_t n_embd_inp,+ size_t n_embd_inp_enc,+ llama_seq_id n_seq_max,
Fix benchmarking exemplar pod by using strict decode and corev1 PodsGo · 83 + / 20 −
Introduces 7 new declarations in staging/src/k8s.io/apiserver/pkg/storage/testing/store_benchmarks.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/testing/store_benchmarks.go ↗ · 6 files
@@ -65,6 +69,65 @@ const ( trafficPatch = "Patch" ) +var (+ scheme = runtime.NewScheme()+ codecs = serializer.NewCodecFactory(scheme)+)++func init() {+ metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion)+ utilruntime.Must(corev1.AddToScheme(scheme))+ utilruntime.Must(metav1.AddMetaToScheme(scheme))+ scheme.AddUnversionedTypes(corev1.SchemeGroupVersion, &metav1.Status{})+ pb := protobuf.NewSerializer(scheme, scheme)+ corev1ProtoCodec = codecs.CodecForVersions(pb, pb, schema.GroupVersions{corev1.SchemeGroupVersion}, schema.GroupVersions{corev1.SchemeGroupVersion})+}++var (+ corev1ProtoCodec runtime.Codec+)++// StoreConfig is subset of Storage configuration that is shared between cacher and etcd3. Used to ensure consistent config for setting up a store for benchmarks.+type StoreConfig struct {+ Versioner storage.Versioner+ GroupResource schema.GroupResource+ ResourcePrefix string+ KeyFunc func(runtime.Object) (string, error)+ GetAttrsFunc func(runtime.Object) (label labels.Set, field fields.Set, err error)+ NewFunc func() runtime.Object+ NewListFunc func() runtime.Object+ Codec runtime.Codec+}+
Bitonic sort comparablePython · 32 + / 4 −
Introduces 5 new declarations in sorts/bitonic_sort.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
sorts/bitonic_sort.py ↗ · 2 files
@@ -6,8 +6,16 @@ from __future__ import annotations +from typing import Protocol -def comp_and_swap(array: list[int], index1: int, index2: int, direction: int) -> None:++class Comparable(Protocol):+ def __lt__(self, other: object, /) -> bool: ...+++def comp_and_swap[T: Comparable](+ array: list[T], index1: int, index2: int, direction: int+) -> None: """Compare the value at given index1 and index2 of the array and swap them as per the given direction.
Use graph-backed codegen for client proxies and WASM loadersRust · 72 + / 49 −
Introduces 5 new declarations in crates/next-core/src/next_client_reference/ecmascript_client_reference/ecmascript_client_reference_module.rs.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
crates/next-core/src/next_client_reference/ecmascript_client_reference/ecmascript_client_reference_module.rs ↗ · 21 files
@@ -291,25 +285,28 @@ impl EcmascriptChunkPlaceable for EcmascriptClientReferenceModule { } #[turbo_tasks::function]- fn chunk_item_content(- self: Vc<Self>,- _chunking_context: Vc<Box<dyn ChunkingContext>>,+ async fn chunk_item_content(+ self: ResolvedVc<Self>,+ chunking_context: ResolvedVc<Box<dyn ChunkingContext>>, _module_graph: Vc<ModuleGraph>,- _async_module_info: Option<Vc<AsyncModuleInfo>>,+ async_module_info: Option<Vc<AsyncModuleInfo>>, _estimated: bool, ) -> Result<Vc<EcmascriptChunkItemContent>> {- bail!("Attempted to get chunk_item_content for EcmascriptClientReferenceModule")+ Ok(chunk_item_content_with_code_from(+ *ResolvedVc::upcast(self),+ self.proxy_module(),+ *chunking_context,+ async_module_info,+ )) } } -/// This wrapper only exists to overwrite the `asset_ident` method of the-/// wrapped [`Vc<Box<dyn EcmascriptChunkItem>>`]. Otherwise, the asset ident of-/// the chunk item would not be the same as the asset ident of the-/// [`Vc<EcmascriptClientReferenceModule>`].+/// This wrapper uses the client-reference module's graph identity for both its asset identifier+/// and code generation. The generated proxy supplies the code, but isn't itself in the graph. #[turbo_tasks::value] struct EcmascriptClientReferenceProxyChunkItem { inner_module: ResolvedVc<EcmascriptClientReferenceModule>,