Selected changesmerged Sep 17, 2026
core/validation: keep stored ResourceQuota values out of update checksGo · 37 + / 19 −
Introduces 3 new declarations in pkg/apis/core/validation/validation.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
pkg/apis/core/validation/validation.go ↗ · 2 files
@@ -8528,21 +8528,48 @@ func ValidateResourceQuotaStatus(status *core.ResourceQuotaStatus, fld *field.Pa } func ValidateResourceQuotaSpec(resourceQuotaSpec *core.ResourceQuotaSpec, fld *field.Path) field.ErrorList {+ return validateResourceQuotaSpec(resourceQuotaSpec, nil, fld)+}++// validateResourceQuotaSpec validates a spec against the hard limits the object+// already stores, oldHard, which is nil on create. Nothing is mutated.+func validateResourceQuotaSpec(resourceQuotaSpec *core.ResourceQuotaSpec, oldHard core.ResourceList, fld *field.Path) field.ErrorList { allErrs := field.ErrorList{} - fldPath := fld.Child("hard")- for k, v := range resourceQuotaSpec.Hard {- resPath := fldPath.Key(string(k))- allErrs = append(allErrs, ValidateResourceQuotaResourceName(k, resPath)...)- allErrs = append(allErrs, ValidateResourceQuantityValue(k, v, resPath)...)- }+ allErrs = append(allErrs, validateResourceQuotaResourceList(resourceQuotaSpec.Hard, fld.Child("hard"), oldHard)...) allErrs = append(allErrs, validateResourceQuotaScopes(resourceQuotaSpec, fld)...) allErrs = append(allErrs, validateScopeSelector(resourceQuotaSpec, fld)...) return allErrs } +// validateResourceQuotaResourceList validates every name in values, and every+// value that none of the stored lists holds under the same key. Nothing is mutated.+func validateResourceQuotaResourceList(values core.ResourceList, fldPath *field.Path, stored ...core.ResourceList) field.ErrorList {+ allErrs := field.ErrorList{}+ for k, v := range values {+ resPath := fldPath.Key(string(k))+ allErrs = append(allErrs, ValidateResourceQuotaResourceName(k, resPath)...)+ // A value the object already holds was accepted when it was stored.
Always materialize the causal mask in Doge so sdpa stays causalPython · 85 + / 2 −
Introduces 3 new declarations in src/transformers/models/doge/modular_doge.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
src/transformers/models/doge/modular_doge.py ↗ · 3 files
@@ -449,7 +450,61 @@ def _init_weights(self, module): class DogeModel(MixtralModel):- pass+ def forward(+ self,+ input_ids: torch.LongTensor | None = None,+ attention_mask: torch.Tensor | None = None,+ position_ids: torch.LongTensor | None = None,+ past_key_values: Cache | None = None,+ inputs_embeds: torch.FloatTensor | None = None,+ use_cache: bool | None = None,+ **kwargs: Unpack[TransformersKwargs],+ ) -> MoeModelOutputWithPast:+ if (input_ids is None) ^ (inputs_embeds is not None):+ raise ValueError("You must specify exactly one of input_ids or inputs_embeds")++ if use_cache and past_key_values is None:+ past_key_values = DynamicCache(config=self.config)++ if inputs_embeds is None:+ inputs_embeds = self.embed_tokens(input_ids)++ if position_ids is None:+ past_seen_tokens = past_key_values.get_seq_length() if past_key_values is not None else 0+ position_ids = torch.arange(inputs_embeds.shape[1], device=inputs_embeds.device) + past_seen_tokens+ position_ids = position_ids.unsqueeze(0)++ mask_function = create_causal_mask if self.config.sliding_window is None else create_sliding_window_causal_mask+ causal_mask = mask_function(+ config=self.config,+ inputs_embeds=inputs_embeds,+ attention_mask=attention_mask,
Complex conjugate, negation and defaultRust · 37 + / 2 −
Introduces 7 new declarations in library/core/src/num/complex.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
library/core/src/num/complex.rs ↗ · 2 files
@@ -16,11 +16,46 @@ pub struct Complex<T> { impl<T> Complex<T> { /// Create a new complex number from a real and imaginary component. #[must_use]- pub fn new(re: T, im: T) -> Complex<T> {+ pub const fn new(re: T, im: T) -> Complex<T> { Complex { re, im } } } +#[unstable(feature = "complex_numbers", issue = "154023")]+impl<T: Default> Default for Complex<T> {+ fn default() -> Self {+ Self { re: Default::default(), im: Default::default() }+ }+}++#[unstable(feature = "complex_numbers", issue = "154023")]+impl<T> Complex<T>+where+ T: Neg<Output = T>,+{+ /// The complex conjugate of a complex number.+ ///+ /// The conjugate of `a + bi` is `a - bi`: the imaginary component is negated.+ /// Geometrically, this is a reflection across the real axis.+ #[must_use]+ pub fn conjugate(self) -> Self {+ Complex { re: self.re, im: -self.im }+ }+}++#[unstable(feature = "complex_numbers", issue = "154023")]+impl<T: Neg> Neg for Complex<T> {
[Flight] Server References for arbitrary object typesJavaScript · 491 + / 145 −
Introduces 12 new declarations in packages/react-server/src/ReactFlightReplyServer.js.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
packages/react-server/src/ReactFlightReplyServer.js ↗ · 27 files
@@ -496,92 +477,180 @@ function loadServerReference<A: Iterable<any>, T>( if (bound instanceof ReactPromise) { serverReferencePromise = Promise.resolve(bound); } else {- const resolvedValue = requireModule(serverReference) as any;- // Resolve the cached promise synchronously.- const initializedPromise: InitializedChunk<T> = blockedPromise as any;- initializedPromise.status = INITIALIZED;- initializedPromise.value = resolvedValue;- initializedPromise.reason = null;- return resolvedValue;+ // Nothing to preload and no bound arguments to wait for, so we can+ // resolve the reference synchronously.+ const value = requireServerReference(response, serverReference) as any;+ resolveServerReferenceChunk(response, blockedPromise, value);+ return readServerReference(+ response,+ blockedPromise,+ parentObject,+ key,+ ) as any; } } else if (bound instanceof ReactPromise) { serverReferencePromise = Promise.all([serverReferencePromise, bound]); } - let handler: InitializationHandler;- if (initializingHandler) {- handler = initializingHandler;- handler.deps++;- } else {- handler = initializingHandler = {- chunk: null,- value: null,
Keep metadata rendering stable across streaming modesTypeScript · 50 + / 40 −
Introduces 6 new declarations in packages/next/src/lib/metadata/metadata-parallel.tsx.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
packages/next/src/lib/metadata/metadata-parallel.tsx ↗ · 4 files
@@ -110,30 +112,35 @@ export function createMetadataComponents({ // We're going to throw the error from the metadata outlet so we just render null here instead return null })+ } - return tags+ async function Metadata() {+ return await getSelectedMetadata() } Metadata.displayName = 'Next.Metadata' + function MetadataBlocker() {+ return serveStreamingMetadata+ ? null+ : getSelectedMetadata().then(() => null)+ }+ function MetadataWrapper() {- // TODO: We shouldn't change what we render based on whether we are streaming or not.- // If we aren't streaming we should just block the response until we have resolved the- // metadata.- if (!serveStreamingMetadata) {- return (- <MetadataBoundary>- <Metadata />- </MetadataBoundary>- )- }+ // Keep the same component structure in streaming and blocking renders.+ // The blocker only holds the shell open when metadata must not stream.+ // React requires top-level suspenseful metadata to be nested under a host+ // element. Otherwise it becomes part of the document preamble and blocks+ // shell flushing instead of streaming. Metadata tags are hoisted out, so