Pull Request on 2026年01月20日

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

注意点

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。


目次

  1. #123393 Delete unused ServerRequestLog.cs file
  2. #123392 Implement IDisposable in BlazorWebWasmLogClient
  3. #123390 Add thread-safe locking to request logging in BlazorWebWasm
  4. #123362 Fix array size overflow in objectalloc.cpp
  5. #123345 Mark async reflection tests relying on stack frames as NoInlining
  6. #123339 [release/10.0] Update dependencies from dotnet/xharness
  7. #123298 [release/9.0-staging] Update dependencies from dotnet/cecil
  8. #123295 Fix ArgumentOutOfRangeException when Concat called after Skip that skips more elements than exist
  9. #123294 Fix ILogB for Half and BFloat16 subnormal values
  10. #123260 Fix Base64 decoding edge cases with small destinations and whitespace
  11. #123244 [release/9.0-staging] Update dependencies from dotnet/source-build-reference-packages
  12. #123243 [release/8.0-staging] Update dependencies from dotnet/source-build-reference-packages
  13. #123239 Fix for TLS 1.3 session resumption on Linux
  14. #123220 Update .gitignore to ignore all .exe files
  15. #123213 Interpreter - disable libraries tests using marshalled calli
  16. #123185 [release/8.0] Update dependencies from dotnet/emsdk
  17. #123177 Make ObjectsAllocatedByClass callback skippable with enabled COR_PRF_MONITOR_GC
  18. #123151 Add Base64 parity APIs with Base64Url
  19. #123122 [release/9.0-staging] Update dependencies from dotnet/xharness
  20. #123116 [release/9.0-staging] Update dependencies from dotnet/arcade
  21. [#123090 wasm][coreclr] callhelpers generator, pinvoke part
  22. #123062 [release/9.0-staging] Update dependencies from dotnet/runtime-assets
  23. #123056 [release/9.0] Update dependencies from dotnet/emsdk
  24. [#122430 Tests][UserEvents] Add userevents functional runtime tests

#123393 Delete unused ServerRequestLog.cs file

  • 作成者: @Copilot
  • 作成日時: 2026年01月20日 17:43:44(UTC)
  • マージ日時: 2026年01月20日 17:50:21(UTC)
  • ラベル: 指定なし

概要

PR #123388のレビューフィードバックに対応し、未使用のファイル ServerRequestLog.cs を削除しました。このファイルは BlazorWebWasmRequestLog と重複する内容で、コードベース全体で使用されていません。

変更内容

  • 削除ファイル: src/mono/wasm/Wasm.Build.Tests/Common/ServerRequestLog.cs(13行削除)
    • テストヘルパーコードの重複削除

パフォーマンスへの影響

影響なし

関連Issue

PR #123388のレビューフィードバック対応

その他

  • 未使用のテストヘルパーコードの整理による技術負債削減
  • コードベースの保守性向上

#123392 Implement IDisposable in BlazorWebWasmLogClient

  • 作成者: @Copilot
  • 作成日時: 2026年01月20日 17:37:39(UTC)
  • マージ日時: 2026年01月20日 17:52:12(UTC)
  • ラベル: 指定なし

概要

BlazorWebWasmLogClientがリソースリークを起こしていた問題を修正。HttpClientを生成していながら破棄していなかったため、ソケット枯渇の原因になる可能性がありました。IDisposableを実装して適切なリソース管理を実現します。

// Before
var requestLogClient = new BlazorWebWasmLogClient(baseUrl);

// After
using var requestLogClient = new BlazorWebWasmLogClient(baseUrl);

変更内容

  • BlazorWebWasmLogClient.cs: IDisposableインターフェースを実装し、Dispose()メソッドでHttpClientリソースをクリーンアップ(+6/-1)
  • AssetCachingTests.cs: テストコードでusingステートメントを使用した自動破棄への変更(+1/-1)

パフォーマンスへの影響

改善点: ソケットリークによる枯渇が防止される。長時間動作するアプリケーションでリソース枯渇による性能低下やハングアップが改善されます。

関連Issue

#123392

その他

なし


#123390 Add thread-safe locking to request logging in BlazorWebWasm

  • 作成者: @Copilot
  • 作成日時: 2026年01月20日 17:36:32(UTC)
  • マージ日時: 2026年01月20日 17:53:04(UTC)
  • ラベル: 指定なし

概要

BlazorWebWasm テストアセットの requestLogs リストへの並行アクセスにおけるスレッド安全性の問題を修正しました。複数の HTTP リクエストから同期なしでリストにアクセスしていたレース条件を、ロックオブジェクトの導入で解決します。

変更内容

ファイル: src/mono/wasm/testassets/BlazorWebWasm/BlazorWebWasm/Program.cs

  • requestLogsLock オブジェクトを新規追加し、requestLogs リストの全アクセスポイントを保護
  • ロギングミドルウェア内の Add() 操作をロックで保護
  • GET エンドポイント (/request-logs) で ToList() スナップショット取得時にロック適用
  • DELETE エンドポイントの Clear() 操作をロックで保護
var requestLogs = new List<BlazorWebWasmRequestLog>();
var requestLogsLock = new object();

app.Use(async (context, next) =>
{
    await next.Invoke();
    var logEntry = new BlazorWebWasmRequestLog(/*...*/);
    lock (requestLogsLock)
    {
        requestLogs.Add(logEntry);
    }
});

app.MapGet("/request-logs", () =>
{
    lock (requestLogsLock)
    {
        return requestLogs.ToList();
    }
});

パフォーマンスへの影響

影響最小限。ロック取得時間はログエントリ追加・スナップショット取得の短い期間に限定され、テストアセット用途では無視できるレベルです。

関連Issue

#123388

その他

テストアセットの内部実装修正のため、公開 API への互換性への影響はありません。


#123362 Fix array size overflow in objectalloc.cpp

  • 作成者: @EgorBo
  • 作成日時: 2026年01月19日 20:00:02(UTC)
  • マージ日時: 2026年01月20日 21:42:14(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JITコンパイラのオブジェクト割り当て最適化において、スタック割り当て配列のレイアウトサイズ計算時に発生するオーバーフロー問題を修正しました。配列の最大長と要素サイズを掛け合わせた際(例:CORINFO_Array_MaxLength * UINT16_MAX = 140735337136185)にuint32_tの範囲を超える場合、スタック割り当てを防止することでクラッシュを回避します。

変更内容

  • src/coreclr/jit/layout.cpp: ClassLayoutBuilder::BuildArrayにオーバーフロー検出ロジックを追加。m_overflowフラグで追跡し、新しいtypTryGetArrayLayout APIを実装
  • src/coreclr/jit/layout.h: ClassLayoutBuilderm_overflowフラグとアクセッサメソッドIsOverflow()を追加
  • src/coreclr/jit/compiler.h: API シグネチャをtypGetArrayLayoutからtypTryGetArrayLayoutに変更(Try パターンに従う)
  • src/coreclr/jit/objectalloc.cpp: 2つのコールサイトを更新。オーバーフロー時は失敗ハンドリングで早期リターン、既に検証済みの場合はアサーション

パフォーマンスへの影響

影響なし。本修正はエッジケースの安全性向上であり、正常なサイズの配列割り当てのパフォーマンスに変化はありません。オーバーフロー検出は計算時(JIT時)に限定されています。

関連Issue

#123361

その他

JIT内部APIの例外安全性向上として、typGetArrayLayoutの失敗可能版であるtypTryGetArrayLayoutを導入。これにより予測不可能な大きさの配列型に対して安全に対応できるようになりました。


#123345 Mark async reflection tests relying on stack frames as NoInlining

  • 作成者: @jakobbotsch
  • 作成日時: 2026年01月19日 12:14:30(UTC)
  • マージ日時: 2026年01月20日 09:18:52(UTC)
  • ラベル: needs-area-label

概要

非同期リフレクションテストの不安定性を修正するPRです。FromStack(1)FromStackDMI(1)メソッドはスタックフレーム情報に依存しているため、テスト実行時のインライン化によって間違ったフレームがスキップされることが原因でテストが失敗していました。NoInlining属性を追加することで、スタックフレームの位置を固定化し、テストの信頼性を向上させます。

[MethodImpl(MethodImplOptions.NoInlining)]
private static void FromStack(int level)
{
    // StackFrame情報を正確に取得
}

変更内容

  • src/tests/async/reflection/reflection.cs
    • FromStackメソッドに[MethodImpl(MethodImplOptions.NoInlining)]属性を追加
    • FromStackDMIメソッドに[MethodImpl(MethodImplOptions.NoInlining)]属性を追加

パフォーマンスへの影響

影響なし。テストコードの変更であり、本番コードへの影響はありません。

関連Issue

Fix #123279

その他

このPRはテストの信頼性向上を目的とした修正です。JITコンパイラのインライン化最適化により、スタックフレーム情報を必要とするテストが不安定になることは、リフレクションやスタックトレース機能を使用するコードで一般的な問題です。NoInlining属性によってメソッド呼び出しスタックが保証され、StackFrameコンストラクタのlevelパラメータが正確に動作するようになります。


#123339 [release/10.0] Update dependencies from dotnet/xharness

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月19日 05:02:44(UTC)
  • マージ日時: 2026年01月20日 13:39:33(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/xharnessライブラリの依存パッケージを自動更新するPull Requestです。Microsoft.DotNet.XHarness関連の3つのNuGetパッケージを11.0.0-prerelease.26058.2から11.0.0-prerelease.26064.3へ更新しています。このアップデートはxharnessの最新の改善と修正を.NET Runtimeの10.0リリースブランチに取り込むものです。

変更内容

  • .config/dotnet-tools.json: ツール設定の依存パッケージバージョン更新(1行変更)
  • eng/Version.Details.props: バージョン定義ファイルの更新(3行変更)
  • eng/Version.Details.xml: バージョン詳細情報の更新(6行変更)

更新対象パッケージ:

  • Microsoft.DotNet.XHarness.CLI
  • Microsoft.DotNet.XHarness.TestRunners.Common
  • Microsoft.DotNet.XHarness.TestRunners.Xunit

パフォーマンスへの影響

影響なし

(プリリリース版パッケージの定期更新であり、パフォーマンス関連の変更は含まれていません)

関連Issue

なし

その他

  • 更新日時:2026年1月14日UTC
  • 更新元コミット:31e0b8e08f57890f7b7004b93361d69cd4b21079(xharness main ブランチ)
  • 自動化更新:このPRはdotnet-maestro[bot]による自動依存関係更新ツールで作成されています

#123298 [release/9.0-staging] Update dependencies from dotnet/cecil

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月17日 02:01:32(UTC)
  • マージ日時: 2026年01月20日 13:41:52(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/cecilの依存関係をアルファ版から新しいアルファ版へ更新するPull Requestです。Microsoft.SourceBuild.Intermediate.cecilとMicrosoft.DotNet.Cecilが0.11.5-alpha.26061.2から0.11.5-alpha.26065.1にアップデートされています。これはrelease/9.0-stagingブランチの定期的な依存関係アップデート作業の一環です。

変更内容

  • eng/Version.Details.xml: 依存関係バージョン情報の更新(+4/-4行)
    • Microsoft.SourceBuild.Intermediate.cecilバージョン更新
    • Microsoft.DotNet.Cecilバージョン更新
  • eng/Versions.props: バージョン定義の更新(+1/-1行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPull Requestは自動生成されたもの(dotnet-maestro[bot]作成)です
  • Cecil build 20260115.1(2026年1月16日生成)に基づいています
  • 関連するcommit: 9f41421e1ca90e8e88fdf62f25c386483a212e87
  • 変更範囲は限定的で、バージョン定義ファイルのみの更新です

#123295 Fix ArgumentOutOfRangeException when Concat called after Skip that skips more elements than exist

  • 作成者: @Copilot
  • 作成日時: 2026年01月16日 23:55:51(UTC)
  • マージ日時: 2026年01月20日 02:57:44(UTC)
  • ラベル: area-System.Linq

概要

Enumerable.Skip()が存在する要素数以上をスキップした後、Concat()Append()などの演算子を呼び出すとArgumentOutOfRangeExceptionがスローされる回帰バグを修正しました。問題はIListSkipTakeIterator.Fill()メソッドが境界チェックなしにSpan.Slice()を呼び出していたことが原因です。

// 修正前(例): sourceIndexがsourceSpan.Lengthを超えている場合に例外
var result = new int[] { 1 }
    .Skip(2)
    .Concat(new int[] { 2, 3 })
    .ToArray(); // ArgumentOutOfRangeException

// 修正後: 正常に [ 2, 3 ] を返す

変更内容

  • SkipTake.SpeedOpt.cs: IListSkipTakeIterator.Fill()メソッドに境界チェックsourceIndex < sourceSpan.Lengthを追加し、スライス操作前にインデックスが有効範囲内であることを確認
  • SkipTests.cs: 複数のソース型(配列、List、ReadOnlyCollection、ICollection、IReadOnlyCollection、列挙可能)と各種演算子(Concat、Append、Select、Where、Take、Distinct、OrderBy、Contains)に対応した包括的な回帰テストを追加

パフォーマンスへの影響

影響なし。追加された境界チェックは単純な条件判定であり、無効なスライス操作の実行を防ぐため、むしろ不必要な例外スローを回避するものです。

関連Issue

#123284(Enumerable.Concat()メソッドがSkip()の後に呼び出されるとArgumentOutOfRangeExceptionをスロー)

その他

  • 回帰導入: PR #112401(「Enumerable.SkipおよびEnumerable.Takeのパフォーマンス改善」、2025年2月13日マージ)で導入
  • IndexOfメソッド: 同じPR #112401で追加されたIndexOfメソッドは既に同様の境界チェック(minInclusive < span.Length)を実装しているため、このバグの影響を受けていません
  • セキュリティ: セキュリティ脆弱性なし。単純な境界チェック追加のみ

#123294 Fix ILogB for Half and BFloat16 subnormal values

  • 作成者: @Copilot
  • 作成日時: 2026年01月16日 23:52:47(UTC)
  • マージ日時: 2026年01月20日 03:01:41(UTC)
  • ラベル: 指定なし

概要

HalfBFloat16ILogBメソッドが非正規化数(subnormal values)に対して誤った値を返していた問題を修正しました。BitOperations.LeadingZeroCountushort/byteのオーバーロードを持たないため、暗黙的にuintに拡張され、16ビット幅ではなく32ビット幅として計算されていました。例えばHalf.EpsilonILogBは-24であるべきでしたが-40が返されていました。

// 修正前: TrailingSignificandがushortで、uint へ暗黙的に拡張される
int exponent = BitOperations.LeadingZeroCount(significand) - 16;

// 修正後: ushort専用のLeadingZeroCount オーバーロードを使用
int exponent = BitOperations.LeadingZeroCount(significand);

変更内容

  • BitOperations.cs: ushortbyte向けの内部用LeadingZeroCountオーバーロードを追加(ビット幅調整を正確に処理)
  • Half.cs, BFloat16.cs: ILogB実装を新しいオーバーロードを使用するように修正
  • UInt16.cs, Int16.cs, Byte.cs, SByte.cs, Char.cs: 手動の調整値(-16/-24)を削除し、新しい内部オーバーロードを使用するようにリファクタリング
  • HalfTests.cs, BFloat16Tests.cs: 正規値、特殊値、非正規化値を含む包括的なILogBテストを追加

パフォーマンスへの影響

影響なし。LeadingZeroCountの呼び出しは従来通りインライン化される組み込み操作です。新しいオーバーロードはビット幅調整を正確に行うだけで、実行時パフォーマンスに変化はありません。

関連Issue

#123293

その他

  • 69,569のテストがすべてパス(失敗0件)
  • セキュリティ上の脆弱性なし
  • この修正はHalfBFloat16の IEEE754互換性を改善し、IEEE logb関数の正確な実装を実現します

#123260 Fix Base64 decoding edge cases with small destinations and whitespace

  • 作成者: @MihaZupan
  • 作成日時: 2026年01月16日 14:31:52(UTC)
  • マージ日時: 2026年01月20日 22:54:40(UTC)
  • ラベル: area-System.Memory

概要

Base64デコーディングにおいて、小さい宛先バッファと埋め込みホワイトスペースが存在する場合のエッジケースを修正しました。InvalidDataFallbackメソッドが宛先バッファ不足の状態でホワイトスペース処理時に進行できなくなる問題を解決し、ブロック単位のフォールバック処理を導入しています。

変更内容

  • Base64DecoderHelper.cs: InvalidDataFallbackループの終了条件を明示的に変更。DecodeFromDestinationTooSmallを返しても進捗がない場合(localConsumed == 0)、ブロック単位デコーディングにフォールバック
  • Base64DecoderUnitTests.cs: 小さい宛先バッファでホワイトスペース処理を検証するテストケースDecodingWithEmbeddedWhiteSpaceIntoSmallDestination_TrailingWhiteSpacesAreConsumedを追加(+17行)
  • Convert.cs: 既存のパラメータ化テストにBase64.DecodeFromUtf8Convertメソッドの一貫性確認アサーションを追加(+17行)

パフォーマンスへの影響

影響なし。本修正は例外的なエッジケース処理の改善であり、通常のBase64デコーディングパスには影響しません。ホワイトスペース処理時に無限ループを回避するため、むしろ異常系での性能向上につながります。

関連Issue

  • #123222
  • #123389
  • #123151
  • #123258(置換)

その他

本修正は破壊的変更ではなく、既存API(Base64.DecodeFromUtf8Convert.TryFromBase64String)の動作一貫性を改善するものです。小さい宛先バッファでホワイトスペース含有データをデコードする場合の動作がConvertメソッドと統一されます。


#123244 [release/9.0-staging] Update dependencies from dotnet/source-build-reference-packages

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月16日 01:03:41(UTC)
  • マージ日時: 2026年01月20日 13:42:33(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

このPRは、dotnet/runtime の release/9.0-staging ブランチにおいて、dotnet/source-build-reference-packages からの依存関係を更新するものです。Microsoft.SourceBuild.Intermediate.source-build-reference-packages パッケージを 9.0.0-alpha.1.25521.3 から 9.0.0-alpha.1.26055.1 へ更新しています。

変更内容

  • eng/Version.Details.xml: 依存関係の参照を更新(+2行/-2行)
    • Microsoft.SourceBuild.Intermediate.source-build-reference-packages のバージョン番号を更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは dotnet-maestro[bot] による自動更新です
  • ビルド日時: 2026年1月5日 UTC
  • 対象ブランチ: dotnet/source-build-reference-packages の release/9.0 ブランチ
  • Maestro による依存関係管理システムによる自動更新となります

#123243 [release/8.0-staging] Update dependencies from dotnet/source-build-reference-packages

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月16日 01:03:32(UTC)
  • マージ日時: 2026年01月20日 13:51:57(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

このPull Requestは、dotnet/source-build-reference-packagesリポジトリからの依存関係を更新するもので、Microsoft.SourceBuild.Intermediate.source-build-reference-packagesパッケージを8.0.0-alpha.1.25522.3から8.0.0-alpha.1.25615.3へ更新しています。これはRelease/8.0ブランチの定期的な依存関係同期です。

変更内容

パフォーマンスへの影響

影響なし

この更新は依存パッケージのメタデータ更新であり、ランタイムパフォーマンスやコンパイル時間への直接的な影響は記載されていません。

関連Issue

なし

その他

  • 自動依存関係更新(dotnet-maestro[bot]による)
  • Release/8.0-stagingブランチへの定期的な依存関係同期
  • Maestroサブスクリプション: 1626bff2-6010-444e-f998-08dbcfd3e5b0

#123239 Fix for TLS 1.3 session resumption on Linux

  • 作成者: @multiarc
  • 作成日時: 2026年01月16日 00:37:30(UTC)
  • マージ日時: 2026年01月20日 21:31:59(UTC)
  • ラベル: area-System.Net.Security community-contribution

概要

LinuxにおけるTLS 1.3セッション再開時に、クライアント証明書を使用した再開接続でIsMutuallyAuthenticated=falseおよびLocalCertificate=nullが誤って報告されるリグレッション問題を修正しました。TLS再開時にクライアント証明書情報が正しく継承されるようにInterop層を修正し、回帰テストを追加しています。

// 修正後:再開接続でも相互認証情報が正しく保持される
SSL_get0_param() → 現在のセッションから証明書情報を取得

変更内容

  • Interop.OpenSsl.cs: NewSessionCallbackを修正。TLS 1.3の新規セッションチケット発行時に、SSL_get_certificateがnullの場合は現在のセッションから証明書情報を取得するように変更(+15行)
  • Interop.Ssl.cs: SslSessionReusedSslGetSessionIntPtrオーバーロードを追加。アンマネージドコールバックコンテキストからこれらを呼び出し可能に(+7行)
  • SslStreamMutualAuthenticationTest.cs: 回帰テストSslStream_Tls13ResumptionWithClientCert_IsMutuallyAuthenticatedTrueを追加。初期接続と再開接続の両方で相互認証プロパティが正しく設定されることを検証(+49行)

パフォーマンスへの影響

影響なし。本修正はセッション再開時の証明書情報取得ロジックの修正であり、パフォーマンスクリティカルなパスに変更なし。

関連Issue

#123238

その他

  • 破壊的変更なし。新規APIはInterop層の内部実装
  • Linuxプラットフォーム固有(OpenSSL)の修正
  • TLS 1.3セッション再開のみが対象

#123220 Update .gitignore to ignore all .exe files

  • 作成者: @Copilot
  • 作成日時: 2026年01月15日 16:16:29(UTC)
  • マージ日時: 2026年01月20日 03:13:10(UTC)
  • ラベル: area-Infrastructure

概要

.gitignoreファイルに*.exeパターンを追加し、誤ってリポジトリにコミットされる実行ファイル(特にnuget.exe)を防ぐ変更です。テストリソースとして必要な既存の.exeファイルは例外として追跡を継続します。

変更内容

  • .gitignore: *.exeパターンを追加して全実行ファイルを除外(+4行)
  • テスト用の既存.exeファイルは!プレフィックスで例外指定:
    • src/libraries/System.Diagnostics.FileVersionInfo/tests/.../NativeConsoleApp.exe
    • src/libraries/System.Reflection.Metadata/tests/Resources/NetModule/AppCS.exe
    • src/libraries/System.Reflection.Metadata/tests/Resources/Misc/Signed.exe

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更はCopilot開発エージェントがnuget.exeをリポジトリにマージしようとする問題への対処です。.gitignoreの変更のため、将来のコミット時に意図しない実行ファイルの追加が防止されます。既存の追跡済みファイルへの影響はありません。


#123213 Interpreter - disable libraries tests using marshalled calli

  • 作成者: @janvorli
  • 作成日時: 2026年01月15日 13:07:44(UTC)
  • マージ日時: 2026年01月20日 13:34:35(UTC)
  • ラベル: area-CodeGen-Interpreter-coreclr

概要

CoreCLR インタープリタは marshalled calli 命令をサポートしていないため、この機能を使用するテストをスキップするようにしました。3つのテストメソッドに ActiveIssue 属性を追加して、インタープリタモード実行時にテストを無視するようにしています。

変更内容

  • src/libraries/System.Reflection.Emit.ILGeneration/tests/ILGenerator/Emit4Tests.cs

    • TestEmitCalliNonBlittable テストに ActiveIssue 属性を追加
    • TestDynamicMethodEmitCalliNonBlittable テストに ActiveIssue 属性を追加
  • src/libraries/System.Reflection.Emit/tests/PersistedAssemblyBuilder/AssemblySaveILGeneratorTests.cs

    • EmitCalliNonBlittable テストに ActiveIssue 属性を追加
    • インデント修正

パフォーマンスへの影響

影響なし。(テストスキップのみの変更のため、実行時のパフォーマンスには影響しません)

関連Issue

記載なし

その他

  • この変更により、インタープリタモードでの実行時にサポートされていない marshalled calli 関連のテストが自動的にスキップされます
  • ActiveIssue 属性の使用は、既知の未実装機能に対する標準的なテストスキップ方法です
  • 将来 marshalled calli がインタープリタでサポートされるようになった場合、この属性を削除することでテストが復活します

#123185 [release/8.0] Update dependencies from dotnet/emsdk

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月14日 17:52:42(UTC)
  • マージ日時: 2026年01月20日 16:18:27(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/runtime の release/8.0 ブランチにおいて、Emscripten SDK(emsdk)関連の依存パッケージを更新するPull Requestです。Microsoft.SourceBuild.Intermediate.emsdk と Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100 が、それぞれ新しいバージョンに更新されています。

変更内容

  • NuGet.config: NuGet フィード設定を更新(+1/-1)
  • eng/Version.Details.xml: 依存パッケージバージョン情報を更新(+4/-4)
    • Microsoft.SourceBuild.Intermediate.emsdk: 8.0.23-servicing.25626.3 → 8.0.24-servicing.26056.3
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100: 8.0.23 → 8.0.24
  • eng/Versions.props: バージョン定義プロパティを更新(+1/-1)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはMaestro(自動依存関係更新ツール)によって生成された自動更新です
  • 更新対象は WebAssembly/Emscripten 開発ワークロード関連のパッケージです
  • release/8.0 ブランチの定期メンテナンス更新の一環と考えられます

#123177 Make ObjectsAllocatedByClass callback skippable with enabled COR_PRF_MONITOR_GC

  • 作成者: @valco1994
  • 作成日時: 2026年01月14日 12:54:47(UTC)
  • マージ日時: 2026年01月20日 23:28:42(UTC)
  • ラベル: area-Diagnostics-coreclr community-contribution

概要

プロファイラーが COR_PRF_MONITOR_GC を有効にしている場合、ObjectsAllocatedByClass コールバックをスキップ可能にする新しいフラグ COR_PRF_HIGH_MONITOR_GC_SKIP_ALLOCATED_BY_CLASS_STATISTIC を追加しました。これにより、不要なメモリ統計情報の収集を避けることができます。

// プロファイラーでフラグを設定することで、ObjectsAllocatedByClassコールバックをスキップ
var eventMask = COR_PRF_MONITOR_GC | COR_PRF_HIGH_MONITOR_GC_SKIP_ALLOCATED_BY_CLASS_STATISTIC;

変更内容

  • corprof.idl: COR_PRF_HIGH_MONITOR_GC_SKIP_ALLOCATED_BY_CLASS_STATISTIC フラグを新規追加
  • profilepriv.inl: フラグ処理のヘルパーメソッドを実装
  • corprof.h: プリビルド済みヘッダーを更新
  • gcenv.ee.cpp: GCToEEInterface::DiagGCStart でフラグの判定ロジックを追加し、フラグが設定されている場合は ObjectsAllocatedByClass コールバックをスキップ
  • テストケース: マネージド側テスト(.cs)とネイティブプロファイラー側テスト(.cpp、.h)を追加

パフォーマンスへの影響

改善: プロファイラーがこのフラグを有効にすることで、GC統計情報の収集に伴う CPU オーバーヘッドとメモリスナップショット取得時間を削減できます。特にメモリプロファイリングが不要なシナリオでのパフォーマンス向上が期待されます。

関連Issue

#108230

その他

  • API の追加であり、既存コードとの互換性に影響なし(オプショナルフラグ)
  • COR_PRF_HIGH_MONITOR フラグセットへの拡張実装
  • テストカバレッジを備えた完全な実装

#123151 Add Base64 parity APIs with Base64Url

  • 作成者: @Copilot
  • 作成日時: 2026年01月13日 20:19:54(UTC)
  • マージ日時: 2026年01月20日 03:04:35(UTC)
  • ラベル: area-System.Buffers

概要

System.Buffers.Text.Base64Base64Url と同等のAPI群を追加し、UTF-16ベースのエンコード/デコード操作のパリティを実現するPRです。特にDecodeFromCharsメソッドがOperationStatusを返すことで、InvalidDataDestinationTooSmallを区別できるようになり、Convert.TryFromBase64Charsの制限を解決します。

// 新しいAPI例:エラーの原因を特定可能
var status = Base64.DecodeFromChars(base64Input, buffer, 
    out int charsConsumed, out int bytesWritten);
// status: InvalidData, DestinationTooSmall, Done を区別可能

変更内容

  • Base64.cs: 16個の新しいpublic APIメソッド追加
    • エンコード: EncodeToCharsEncodeToUtf8EncodeToString(Tryバリアント含む)
    • デコード: DecodeFromCharsDecodeFromUtf8(Tryバリアント含む)
    • ヘルパー: GetEncodedLengthGetMaxDecodedLength
  • Base64Encoder.cs / Base64Decoder.cs: 新API実装ロジック追加
  • Base64UrlEncoder.cs / Base64UrlDecoder.cs: コード重複を削減(実装の共通化)
  • Convert.cs / Convert.Base64.cs: 新Base64 APIへの委譲でコード簡略化(215行削除)
  • テスト: Base64EncoderUnitTests.cs、Base64DecoderUnitTests.cs、Base64Fuzzer.cs拡張

パフォーマンスへの影響

影響なし。既存実装を呼び出しに変更する委譲処理のため、パフォーマンス低下の懸念なし。むしろConvert.ToBase64StringなどがBase64.EncodeToStringに直接委譲されることで、一部の間接呼び出しが減少する可能性あり。

関連Issue

Fixes dotnet/runtime#121454

その他

  • 互換性: 公開APIの追加のみで、既存APIへの破壊的変更なし
  • API設計: Base64Urlとの一貫性を重視し、OperationStatus戻り値で例外ベースより明確なエラー区別が可能
  • コード品質: 39個の新規単体テストで網羅的なカバレッジを実現

#123122 [release/9.0-staging] Update dependencies from dotnet/xharness

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月13日 09:35:33(UTC)
  • マージ日時: 2026年01月20日 13:43:41(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/xharnessの依存関係を更新するPull Requestです。Microsoft.DotNet.XHarness関連のNuGetパッケージを9.0.0-prerelease.25615.2から11.0.0-prerelease.26064.3にアップグレードしています。これにより、テストランナーとCLIツールの最新機能やバグ修正が取り込まれます。

変更内容

  • .config/dotnet-tools.json: dotnet-toolsの設定ファイルを更新
  • eng/Version.Details.xml: xharnessの依存関係バージョン情報を更新(9.0.0-prerelease.25615.2 → 11.0.0-prerelease.26064.3)
  • eng/Versions.props: ビルド構成のバージョンプロパティを更新

更新対象パッケージ:

  • Microsoft.DotNet.XHarness.CLI
  • Microsoft.DotNet.XHarness.TestRunners.Common
  • Microsoft.DotNet.XHarness.TestRunners.Xunit

パフォーマンスへの影響

影響なし(依存関係の更新であり、runtime自体のコード変更ではありません)

関連Issue

なし

その他

  • このPRはMaestroボットによる自動依存関係更新(subscription: 077f423f-1332-4108-a2ea-08dcc66548e6)です
  • 更新対象はrelease/9.0-stagingブランチ
  • xharnessのコミット: 31e0b8e08f57890f7b7004b93361d69cd4b21079
  • メジャーバージョン(9.0.0 → 11.0.0)の更新であるため、xharness側での大幅な機能追加やAPIの変更が予想されます

#123116 [release/9.0-staging] Update dependencies from dotnet/arcade

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月13日 02:03:01(UTC)
  • マージ日時: 2026年01月20日 13:45:40(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/arcadeの依存関係を更新するPull Requestです。Arcadeビルドツールチェーンと関連するNuGetパッケージを9.0.0-beta.25626.6から9.0.0-beta.26063.2へ、XUnitパッケージを2.9.0-beta.25626.6から2.9.0-beta.26063.2へ更新しています。このアップデートはrelease/9.0-stagingブランチ向けの自動依存関係更新です。

変更内容

  • eng/Version.Details.xml: 19個のArcadeパッケージと2個のXUnitパッケージのバージョン情報を更新
  • eng/Versions.props: バージョン定義ファイルの更新(16行の差分)
  • eng/common/core-templates/job/publish-build-assets.yml: ビルドアセット発行テンプレートの軽微な更新(1行)
  • eng/common/core-templates/post-build/post-build.yml: ポストビルドテンプレートの軽微な更新(2行)
  • eng/common/templates/variables/pool-providers.yml: プール設定テンプレートの軽微な更新(1行)
  • global.json: グローバル設定ファイルの更新(3行)

パフォーマンスへの影響

影響なし。このPull Requestは依存関係の更新のみであり、ランタイムパフォーマンスやコンパイル時間への直接的な影響は想定されません。

関連Issue

なし

その他

  • このPRはdotnet-maestro[bot]による自動生成です
  • 更新対象はMicrosoft.DotNet.Arcade.Sdkおよび関連するビルドタスク、テスト用ツール(GenAPI、Helix SDK、XUnitExtensionsなど)です
  • release/9.0ブランチの更新で、本番環境への適用前のステージング環境向けです

#123090 [wasm][coreclr] callhelpers generator, pinvoke part

  • 作成者: @radekdoulik
  • 作成日時: 2026年01月12日 16:54:00(UTC)
  • マージ日時: 2026年01月20日 20:36:52(UTC)
  • ラベル: arch-wasm area-VM-coreclr

概要

WebAssemblyターゲット向けのPInvoke呼び出しテーブルを自動生成するコード生成ツールの実装です。従来のハードコードされたネイティブライブラリエントリポイントを廃止し、マネージドアセンブリをスキャンして動的にcallhelpers-pinvoke.cppを生成します。これにより、PInvoke解決ロジックが一元化され、保守性が向上します。

// 生成されるコードの概要
public extern IntPtr callhelpers_pinvoke_override(string libraryName, string functionName);

変更内容

  • PInvokeTableGenerator.cs: Generate メソッドをリファクタリングし、PInvoke と Reverse PInvoke (コールバック) を別ファイルに分離生成
  • callhelpers-pinvoke.cpp: 新規生成ファイル (334行) で PInvoke テーブルと callhelpers_pinvoke_override 実装を提供
  • ビルドシステム: GEN_PINVOKE=1 時に生成ファイルを条件付きコンパイル
  • ネイティブライブラリ: System.Native.Browser と System.Runtime.InteropServices.JavaScript.Native を empty.c スタブに変更
  • CMakeLists.txt: 各種依存関係を整理し、生成ファイルの組み込みを構成
  • pinvoke_override.cpp: 大幅簡素化 (22行から3行へ) され、生成コードを委譲

パフォーマンスへの影響

直接的なパフォーマンス影響の具体的な計測値は記載されていませんが、以下の改善が期待されます:

  • ハードコードされたテーブル検索をコード生成時に最適化可能
  • 実行時解決オーバーヘッドの削減
  • native libs の empty.c スタブ化により不要なシンボル解決排除
  • 懸念点: 生成コードサイズの増加(callhelpers-pinvoke.cpp で +334行)

関連Issue

なし

その他

  • 互換性: WASM/CoreCLR 環境限定の変更で、他のプラットフォームへの影響なし
  • 特記事項: libz モジュール依存を削除 (System.IO.Compression.Native でカバー)
  • コードレビュー指摘: src/coreclr/hosts/corerun/CMakeLists.txt にて System.Native.Browser-Static の重複リンク指摘あり(クリーンアップ推奨)

#123062 [release/9.0-staging] Update dependencies from dotnet/runtime-assets

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月10日 02:01:35(UTC)
  • マージ日時: 2026年01月20日 13:47:04(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/runtime-assets リポジトリから依存パッケージを更新するマージコミットです。テストデータおよびランタイムリソースパッケージが beta.25625.4 から beta.26059.3 にアップデートされました。14個のテストデータおよびリソース関連パッケージが対象です。

変更内容

  • eng/Version.Details.xml: パッケージバージョン情報を更新(+28/-28行)
  • eng/Versions.props: ビルドプロパティ内のバージョン定義を更新(+14/-14行)

更新対象パッケージ:

  • Microsoft.DotNet.CilStrip.Sources
  • System.ComponentModel.TypeConverter.TestData
  • System.Data.Common.TestData
  • System.Drawing.Common.TestData
  • System.Formats.Tar.TestData
  • System.IO.Compression.TestData
  • System.IO.Packaging.TestData
  • System.Net.TestData
  • System.Private.Runtime.UnicodeData
  • System.Runtime.Numerics.TestData
  • System.Runtime.TimeZoneData
  • System.Security.Cryptography.X509Certificates.TestData
  • System.Text.RegularExpressions.TestData
  • System.Windows.Extensions.TestData

パフォーマンスへの影響

影響なし(依存パッケージ版の更新のため、直接的なパフォーマンス変更なし)

関連Issue

なし

その他

  • 本PR は dotnet-maestro[bot] による自動依存関係更新です
  • release/9.0-staging ブランチへのマージです
  • ビルド日時: 2026年1月9日 UTC

#123056 [release/9.0] Update dependencies from dotnet/emsdk

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月10日 00:11:42(UTC)
  • マージ日時: 2026年01月20日 13:48:01(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/emsdk の依存パッケージを release/9.0 ブランチに更新するMaestro自動更新PRです。Emscripten WebAssembly ツールチェーン関連のパッケージをサービシング版から最新版へ更新しています。

変更内容

  • NuGet.config: パッケージソースの構成を更新(1行追加、1行削除)
  • eng/Version.Details.xml: 5行の更新
    • Microsoft.SourceBuild.Intermediate.emsdk: 9.0.13-servicing.26056.4 → 9.0.13-servicing.26059.3
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport: 9.0.13-servicing.26056.4 → 9.0.13-servicing.26059.3
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100: 9.0.13 → 9.0.13(バージョン変更なし)
  • eng/Versions.props: バージョン定義の更新(1行追加、1行削除)

パフォーマンスへの影響

影響なし。依存パッケージの更新のみで、ランタイムやコンパイラの動作ロジックに変更はありません。

関連Issue

なし

その他

  • 自動更新PR(dotnet-maestro[bot]による作成)
  • ビルド日時: 2026年1月9日 23:08:55 UTC
  • dotnet/emsdk リポジトリのコミット: 6a81c0472ee65fe798afb1d746c155de47903763
  • WebAssemblyワークロード機能に関連する依存関係の更新

#122430 [Tests][UserEvents] Add userevents functional runtime tests

  • 作成者: @mdh1418
  • 作成日時: 2025年12月11日 03:13:14(UTC)
  • マージ日時: 2026年01月20日 15:09:52(UTC)
  • ラベル: area-Tracing-coreclr

概要

このPRは、.NET Runtimeのuser_events機能(Linuxカーネルトレースポイント経由のイベントトレーシング)に対する包括的な機能テストを追加します。Microsoft OneCollectのRecordTraceツールを使用してイベントを収集し、エンドツーエンドでの正確性を検証します。共有テストインフラストラクチャUserEventsTestRunnerがトレーシング、プロセス生成、イベント検証を調整し、5つのテストシナリオ(基本的なランタイムイベント、アクティビティ追跡、カスタムメタデータ、マネージイベント、マルチスレッド)が実装されています。

変更内容

テストインフラストラクチャ:

  • UserEventsTestRunner.cs - RecordTraceプロセスとtraceeプロセスを管理し、トレースファイルを検証する共有テストオーケストレーター
  • UserEventsRequirements.cs - カーネルバージョン(6.4+)、glibc、tracefsおよびuser_events対応の環境検証ロジック
  • userevents_common.csproj - RecordTraceの実行可能ファイルをコピーし、Helix統合マーカーを作成するビルド構成

テストシナリオ(5個):

  • basic - AllocationSampledイベント検証
  • activity - 非同期タスク間のアクティビティID相関性検証
  • custommetadata - EtwSelfDescribingEventFormat経由のカスタムメタデータ検証
  • managedevent - マネージユーザーイベントソース出力検証
  • multithread - 複数スレッドからの並行イベント出力検証

ビルド・CI統合:

  • eng/Versions.props - TraceEvent 3.1.28、RecordTrace 0.1.32221に更新
  • NuGet.config - dotnet-diagnostics-testsパッケージソース追加
  • helixpublishwitharcade.proj - Helix環境でのファイル実行権限復元
  • issues.targets - NativeAOT互換性問題によりuser_eventsテストを除外

パフォーマンスへの影響

影響なし。本変更はテスト基盤の追加であり、ランタイムのパフォーマンスに影響はありません。テスト実行時には外部依存(RecordTrace、トレースの符号解決)がありますが、テスト環境に限定される変更です。

関連Issue

#122134(本PRの前バージョン)、#115265(user_events機能追加PR)

その他

依存関係と環境要件:

  • Linuxカーネル 6.4以上、.NET 10、glibc 2.35以上が必須
  • Microsoft.OneCollect.RecordTrace(外部依存)、Microsoft.Diagnostics.Tracing.TraceEvent 3.1.24以上

Helix CI特有の考慮事項:

  • RecordTraceは昇格特権(sudo)が必要なため、テストインフラストラクチャで実行権限を明示的に付与
  • Helix環境ではTMPDIRが/datadisks/disk1/work/<id>/tに設定されるが、RecordTraceは/tmpのみをスキャンするため、traceeプロセスのTMPDIRを/tmpに設定

**テスト