Pull Request on 2026年01月14日

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

注意点

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


目次

  1. #123181 [browser] Add explicit runtime flavor to perf pipeline
  2. #123179 Add a CCA PR template
  3. #123170 Fix deflate64 fuzzer
  4. #123168 Fix buffer overflow in mono
  5. #123162 Don't hold the wait subsystem lock when acquiring the shared memory process-level lock
  6. #123154 Fix aspnet2 spmi
  7. #123153 [release/10.0] [TestOnly] Fix NumberFormatInfoGroupSize test
  8. #123152 [RyuJit/WASM] Refactoring in preparation for parameter homing
  9. #123148 Fix InstructionSetDesc.txt to only put managed names for ISAs with managed names
  10. #123147 Add Uri.UriSchemeData constant
  11. [#123131 browser][coreCLR] implement JS interop
  12. #123117 [release/9.0-staging] Update dependencies from dotnet/cecil
  13. #123112 Restore correct outerloop priority tracking and test execution
  14. #123105 [clr-interp] Disable more interpreter tests
  15. #123079 Add a script to generate code coverage reports after fuzzing
  16. #123074 Refactor process.cpp to eliminate vector dependency and shutdown race conditions
  17. #123047 [clr-interp] Fix debugger issues in interpreter
  18. #122989 Add DOTNET_DbgCreateDumpToolPath to override createdump directory (NativeAOT only)
  19. #122988 [Wasm RyuJIT] Initial writeup on the calling convention
  20. #122977 Fix intrinsic testing add and subtract overflow helpers
  21. #122945 Add regression tests for TarReader.GetNextEntry after DataStream disposal
  22. #122852 Cleanup some dead paths in EH
  23. #122837 Fix ZIP64 header corruption when large file at large offset
  24. #122357 Sync area notification subscribers with area-owners.md
  25. #122265 Add side-effect free debugger display to ValueStringBuilder.
  26. #120658 Fix minor documentation Change in Lazy.cs summaries (#111921)
  27. #119804 Add BitArray.PopCount
  28. #116524 Fix documentation for ReadOnlySequence.GetOffset
  29. #114521 Haiku: Add native library IO support

#123181 [browser] Add explicit runtime flavor to perf pipeline

  • 作成者: @maraf
  • 作成日時: 2026年01月14日 16:48:39(UTC)
  • マージ日時: 2026年01月14日 17:34:04(UTC)
  • ラベル: arch-wasm area-Build-mono perf-pipeline os-browser

概要

このPRは、browser/WASM性能パイプラインのアーティファクト準備ステップに明示的な /p:RuntimeFlavor=Mono パラメータを追加するものです。これにより、性能パイプラインが他のbrowser/WASM構成と一致し、PR #122495からの回帰を修正します。

変更内容

  • ファイル: eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
    • /p:RuntimeFlavor=Mono をビルドコマンドに追加(+1行)
    • 他のbrowser/WASM構成と同様に、ランタイムフレーバーを明示的に指定

パフォーマンスへの影響

影響なし(回帰修正による正常化)

このパラメータの追加により、WASM性能パイプラインが意図した通りMonoランタイムで構築される保証が強化され、パイプラインの一貫性が向上します。

関連Issue

  • 関連PR: #122495(回帰の原因となった変更)

その他

  • このはパイプライン設定の修正であり、コード変更ではありません
  • 他のbrowser/WASM構成との整合性を保つための調整です

#123179 Add a CCA PR template

  • 作成者: @stephentoub
  • 作成日時: 2026年01月14日 15:55:13(UTC)
  • マージ日時: 2026年01月14日 15:59:39(UTC)
  • ラベル: area-Infrastructure

概要

Copilot Coding Agent (CCA) 向けの PR テンプレートを新規追加しました。従来の servicing PR テンプレートが CCA 生成の PR に不適切なセクションを含んでいたため、CCA が専用テンプレートを使用するよう誘導する目的です。新テンプレートは HTML コメント以外のコンテンツは含まず、CCA のデフォルト動作に委ねる設計になっています。

変更内容

  • .github/PULL_REQUEST_TEMPLATE/copilot_coding_agent_pull_request_template.md (新規作成)
    • CCA 専用の PR テンプレートを追加
    • ほぼ空のテンプレート(HTML コメントのみ)で、既存の servicing テンプレート使用を回避

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • GitHub の PR テンプレート機能の仕様により、複数のテンプレートが存在する場合、Copilot はファイル名に基づいて最適なテンプレートを選択する動作が期待されています
  • このテンプレートが存在することで、CCA が自動的にこちらを優先使用し、servicing テンプレートの不適切なセクション(e.g., servicing-specific な質問項目)の挿入を防げます

#123170 Fix deflate64 fuzzer

  • 作成者: @rzikm
  • 作成日時: 2026年01月14日 08:30:50(UTC)
  • マージ日時: 2026年01月14日 11:27:04(UTC)
  • ラベル: area-Meta

概要

#122045でZipCompressionMethod.Deflate64が公開APIになったため、Deflate64Fuzzerの反射処理を削除し、公開enum値を直接使用するように更新しました。反射の削除により、コード保守性とパフォーマンスが向上します。

// 変更前: 反射を使用してenum値を取得
// 変更後: 公開APIの ZipCompressionMethod.Deflate64 を直接使用
var compressionMethod = ZipCompressionMethod.Deflate64;

変更内容

  • src/libraries/Fuzzing/DotnetFuzzing/Fuzzers/Deflate64Fuzzer.cs
    • 反射ベースのDeflate64 enum値取得処理を削除(-5行)
    • 新しく公開されたZipCompressionMethod.Deflate64enum値を直接使用するよう更新(+1行)

パフォーマンスへの影響

改善: リフレクション呼び出しの削除により、ファザー実行時のパフォーマンスが向上します。反射処理は実行時のオーバーヘッドを伴うため、直接enum参照への変更により実行効率が改善されます。

関連Issue

#122045(ZipCompressionMethod.Deflate64の公開化)

その他

破壊的変更なし。#122045で公開APIになったため、このPRの変更は安全に適用可能です。


#123168 Fix buffer overflow in mono

  • 作成者: @tpa95
  • 作成日時: 2026年01月14日 06:18:58(UTC)
  • マージ日時: 2026年01月14日 15:29:01(UTC)
  • ラベル: area-Codegen-JIT-mono community-contribution

概要

Mono JITコンパイラのhelpers.cにおいて、opコード変数がOP_LAST値を取得する特定の条件下でバッファオーバーフローが発生する脆弱性を修正しました。opidx配列のサイズがOP_LAST - OP_LOAD要素であるため、境界チェックが不足していました。Linux Verification Center(SVACE)によって検出されたセキュリティ問題です。

変更内容

  • src/mono/mono/mini/helpers.c: バッファオーバーフロー防止のための境界チェック修正(1行追加、1行削除)

パフォーマンスへの影響

影響なし (境界チェック追加による性能低下は無視可能と考えられます)

関連Issue

なし

その他

  • セキュリティ重要度: 中程度

    • バッファオーバーフロー脆弱性のため、メモリ破損やコード実行につながる可能性があります
    • Mono JITコンパイラの内部実装(mini)における修正であり、JIT時に特定の条件で発火する可能性があります
  • 検出方法: Linux Verification CenterのSVACE静的解析ツールにより検出されました

  • 報告者: Pavel Tikhomirov (Gazinformservice組織)


#123162 Don't hold the wait subsystem lock when acquiring the shared memory process-level lock

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年01月14日 01:12:01(UTC)
  • マージ日時: 2026年01月14日 04:23:56(UTC)
  • ラベル: area-System.Threading

概要

no-pthreads共有メモリ実装におけるデッドロック問題を解決するため、名前付きMutex廃棄時のロック取得順序を修正しました。Wait Subsystemロックを保持したまま共有メモリプロセスレベルロックを取得していたのを、ロック順序を逆転させることで回避します。これにより、aspnetcore PR #65006がブロック解除されます。

変更内容

  • ファイル: src/libraries/System.Private.CoreLib/src/System/Threading/NamedMutex.Unix.cs
  • 変更内容: ロック取得順序の修正(1行追加、1行削除)
    • 共有メモリプロセスレベルロック取得前に、Wait Subsystemロックを解放する処理を調整

パフォーマンスへの影響

デッドロック回避による処理の安定化。パフォーマンス面での直接的な改善はありませんが、デッドロックによるハング状態を排除することで、システムの可用性が向上します。

関連Issue

  • aspnetcore PR #65006のブロック解除に対応

その他

この変更は破壊的変更ではなく、デッドロック修正です。Wait Subsystemロックを保持している間に共有メモリのロックを取得する必要がないため、ロック順序を調整することで問題を解決しています。Unix環境(no-pthreads)の共有メモリ実装に特化した修正です。


#123154 Fix aspnet2 spmi

  • 作成者: @EgorBo
  • 作成日時: 2026年01月13日 20:48:29(UTC)
  • マージ日時: 2026年01月14日 21:40:23(UTC)
  • ラベル: area-CodeGen-coreclr

概要

aspnet2 SPMI収集スクリプトの動的バージョンチャネル使用に関する問題を修正しました。スクリプトが以前は "latest" チャネルを使用しようとしてビルド失敗が発生していたため、特定の .NET 10.0 RTM バージョンに一時的にピンニングするワークアラウンドを実装しています。

変更内容

  • src/coreclr/scripts/superpmi_aspnet2.py: 動的フレームワーク/チャネル設定をコメントアウトし、aspNetCoreVersion、runtimeVersion、sdkVersion を特定の .NET 10.0 RTM バージョンに固定(+11/-3、計14行の変更)

パフォーマンスへの影響

影響なし

関連Issue

#123154

その他

  • これは一時的なワークアラウンドであり、TODO コメントが追加されています
  • 動的バージョンチャネルの問題が根本的に解決されたら、後で改善する予定と考えられます
  • SPMI(SuperPMI)は JIT コンパイラのテストおよびベンチマーク用のツールセットであり、このスクリプトは ASP.NET 2.0 アプリケーションでの JIT コンパイルの再現に使用されます

#123153 [release/10.0] [TestOnly] Fix NumberFormatInfoGroupSize test

  • 作成者: @github-actions[bot]
  • 作成日時: 2026年01月13日 20:46:36(UTC)
  • マージ日時: 2026年01月14日 05:43:40(UTC)
  • ラベル: Servicing-approved

概要

ur-INカルチャーを使用するNumberFormatInfoGroupSizeテストがmacOSおよび他のAppleオペレーティングシステムで失敗している問題を修正するテストのみの変更です。グローバライゼーションデータの基盤となっているプラットフォーム固有の変更に対応するため、テストが古い値と新しい値の両方を受け入れるように更新されました。

変更内容

  • ファイル: src/libraries/System.Runtime/tests/System.Globalization.Tests/NumberFormatInfo/NumberFormatInfoNumberGroupSizes.cs
    • 追加行: 8行
    • 削除行: 5行
    • 変更内容: ur-INカルチャーのテストケースを更新し、macOSおよびAppleプラットフォーム上の新しいグローバライゼーションデータ値に対応

パフォーマンスへの影響

影響なし(テストのみの変更)

関連Issue

  • #120546(メインブランチへのバックポート元PR)

その他

  • リスク評価: Low(テストのみの変更で、新しいデータへの対応)
  • テスト検証: メインブランチで検証済み、release/10.0でも同じテスト失敗が確認されている
  • 特性: 内部で発見されたプラットフォーム固有の問題(カスタマー報告ではない)
  • 技術的背景: Appleプラットフォーム(macOS、iOS等)上のUnicode標準データベース更新に伴い、ur-IN(ウルドゥー語、インド)カルチャーの数値フォーマット設定が変更されたため、テストの期待値を柔軟に対応させたもの

#123152 [RyuJit/WASM] Refactoring in preparation for parameter homing

  • 作成者: @SingleAccretion
  • 作成日時: 2026年01月13日 20:41:14(UTC)
  • マージ日時: 2026年01月14日 21:11:36(UTC)
  • ラベル: arch-wasm area-CodeGen-coreclr community-contribution

概要

RyuJit/WASM コードジェネレーターのリファクタリングPRです。主な変更は、整数型と浮動小数点型の Live-in マスク用フィールドを統一し、単一のマスクフィールドに統合したことです。また、genEnregisterIncomingStackArgsメソッドが実装されました。このPRは差分がないはずの(no-diff)リファクタリングです。

変更内容

  • codegen.h: Live-in マスクフィールドの定義を変更(統合)
  • codegencommon.cpp: genEnregisterIncomingStackArgsの実装を追加し、Live-in マスク処理の統一化
  • codegenwasm.cpp: WASM固有のコードジェネレーション処理を拡張(31行追加)
  • lsrabuild.cpp: Linear Scan Register Allocation ビルド処理の調整
  • unwindwasm.cpp: WASM用アンワインド情報生成処理を更新
  • その他複数のコードジェネレーターファイル: ARM、LoongArch64、RISC-V などで Live-in マスク参照方式を統一

パフォーマンスへの影響

影響なし。作成者が明示的に「should be no-diff」と述べており、これはコンパイル結果に影響しないリファクタリングです。コードの保守性向上が主目的です。

関連Issue

なし

その他

  • このPRは WASM サポートの将来的な機能追加(parameter homing実装)に向けた準備段階です
  • genEnregisterIncomingStackArgsは実装されていますが、enregistered locals はまだ機能として存在しません
  • 複数のアーキテクチャ(x86/x64、ARM、ARM64、LoongArch64、RISC-V、WASM)にわたるコードジェネレーター間の統一化を進めています

#123148 Fix InstructionSetDesc.txt to only put managed names for ISAs with managed names

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年01月13日 19:37:15(UTC)
  • マージ日時: 2026年01月14日 01:15:40(UTC)
  • ラベル: area-crossgen2-coreclr

概要

InstructionSet列挙型から管理型へのマッピングロジックに合わせて、InstructionSetDesc.txtテーブルを修正しました。管理名を持つISAのみ管理名を記載し、管理型を持たないISAにはR2R名のみを使用するようにしました。この修正により、マッピングロジックと定義テーブルの一貫性が確保されます。

変更内容

  • CorInfoInstructionSet.cs (+32/-396)

    • InstructionSetとマネージド型のマッピングロジックを実装(約32行追加)
    • 既存の冗長または不正確な定義を削除(約396行削除)
  • InstructionSetDesc.txt (+16/-16)

    • テーブルエントリを修正し、マネージド型を持つISAのみマネージド名を記載
    • マネージド型を持たないISAについてはR2R名のみに限定

パフォーマンスへの影響

影響なし。これは定義ファイルとロジックの整合性を確保する修正であり、ランタイムパフォーマンスへの直接的な影響はありません。

関連Issue

#123139 - このPull Requestで修正される対象Issue

その他

このPull Requestは、InstructionSet列挙型とその対応するマネージド型の関連付けをより正確にするための整理作業です。ビルドシステムやJIT関連のメタデータが正しくマッピングされることで、将来のメンテナンス性が向上します。


#123147 Add Uri.UriSchemeData constant

  • 作成者: @Copilot
  • 作成日時: 2026年01月13日 19:16:39(UTC)
  • マージ日時: 2026年01月14日 00:10:27(UTC)
  • ラベル: area-System.Net

概要

System.UriクラスにUriSchemeData定数を追加するPRです。データURI(data:スキーム)を扱う際に、文字列をハードコーディングする代わりに定数を使用できるようになります。.NET 6で確立されたURI スキーム定数の追加パターンに従っています。

namespace System
{
    public partial class Uri
    {
        /// <summary>Specifies that the URI is a data URI.</summary>
        public static readonly string UriSchemeData = "data";
    }
}

変更内容

ファイル 変更内容
src/libraries/System.Private.Uri/src/System/Uri.cs UriSchemeData = "data"定数を追加(+2行)
src/libraries/System.Runtime/ref/System.Runtime.cs リファレンスアセンブリにUriSchemeDataの宣言を追加(+1行)

パフォーマンスへの影響

影響なし。新しい静的定数フィールドの追加のため、実行時パフォーマンスへの影響はありません。

関連Issue

  • dotnet/runtime#122020
  • dotnet/runtime#35180(.NET 6でのURI スキーム定数追加の先例)

その他

  • 互換性: 破壊的変更なし。新しいAPI追加のため、既存コードへの影響はありません。
  • テスト: 既存のUri関連テストはすべてパスしており、ビルドは警告・エラーなし。
  • リスク: 最小限。加算的なAPI追加のみで、既存の動作変更はありません。

#123131 [browser][coreCLR] implement JS interop

  • 作成者: @pavelsavara
  • 作成日時: 2026年01月13日 15:30:35(UTC)
  • マージ日時: 2026年01月14日 23:36:50(UTC)
  • ラベル: arch-wasm area-System.Runtime.InteropServices.JavaScript os-browser

概要

このPRはブラウザプラットフォーム上のCoresCLR向けにJavaScript相互運用機能を実装しています。camelCase命名規則に対応し、C#とJavaScript間のマーシャリング、Promise/Task処理、オブジェクトライフタイム管理、双方向関数呼び出しの基盤を構築しました。CoreCLR向けにはLibraryImportとUnmanagedCallersOnlyを使用し、Mono互換性も維持しています。

// JavaScriptExports(Mono互換とCoresCLR向けの分岐実装)
[UnmanagedCallersOnly] // CoreCLR
public static void BindManagedFunction(...) { ... }

変更内容

  • JavaScriptマーシャリング実装: SystemInteropJS_* 関数をネイティブ側で実装、型安全な変換処理を追加
  • CoreCLR/Mono分岐: JavaScriptExports.CoreCLR.cs、JSHostImplementation.CoreCLR.csなど、プラットフォーム別の実装分離
  • Reverse PInvoke基盤: callhelpers-reverse.cppにJavaScriptExports用の逆呼び出しスタブを追加(+128行)
  • I53メモリ操作: 53ビット整数の安全なマーシャリング処理をネイティブ側で実装
  • 型定義の整理: EmsAmbientSymbolsTypeの定義をems-ambient.tsへ移動、emscripten関数に_ems_プレフィックスを統一
  • サンプル更新: ブラウザサンプルでJSExport機能のテストを追加、HTTP テストは#120216まで無効化
  • Exit処理: forceDisposeProxiesをexit sequenceに登録

パフォーマンスへの影響

影響なし

具体的なパフォーマンスベンチマークや計測値の提供がないため、基盤実装段階と判断されます。I53メモリ操作の実装により、大きな整数値のマーシャリング時に追加の変換オーバーヘッドが発生する可能性がありますが、正確性の確保が優先されています。

関連Issue

その他

  • 互換性: CoreCLRとMono間で異なる実装パスを採用。LibraryImport/UnmanagedCallersOnlyはCoresCLR向けの最新アプローチですが、既存Mono実装との互換性維持が確認されています
  • レビュー: 48ファイル中46ファイルをCopilotが確認、指摘なし
  • 循環依存対応: rollup.config.pluginsにマーシャルファイルの循環依存警告抑制を追加
  • テストカバレッジ: JS Interop unit testsのパスが確認されています

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

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

概要

dotnet/cecil依存パッケージの自動更新PRです。Microsoft.SourceBuild.Intermediate.cecilおよびMicrosoft.DotNet.Cecilを0.11.5-alpha.25628.2から0.11.5-alpha.26061.2へアップグレードします。このPRはMaestroの自動依存関係更新システムによって生成されました。

変更内容

  • eng/Version.Details.xml: dotnet/cecil参照情報を更新(コミット: 03b17d939d6c0e0f228648b5d4d660e065a719e5、ブランチ: release/9.0)
  • eng/Versions.props: 関連するバージョンプロパティを更新
  • 更新対象パッケージ:
    • Microsoft.SourceBuild.Intermediate.cecil
    • Microsoft.DotNet.Cecil

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはdotnet-maestro[bot]による自動生成です
  • 対象はrelease/9.0-stagingブランチです
  • ビルド日時: 2026年1月12日 5:44:44 UTC
  • Cecilはメタデータ操作ライブラリであり、.NETランタイムやコンパイラツールチェーンの構築に使用されます

#123112 Restore correct outerloop priority tracking and test execution

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年01月13日 01:03:23(UTC)
  • マージ日時: 2026年01月14日 23:55:30(UTC)
  • ラベル: area-Infrastructure

概要

このPRは、XUnit wrapper生成器のouterloopテスト優先度追跡メカニズムを修復するものです。以前の実装で汎用的なPriorityプロパティが失われたため、outerloopテストが正しく実行されていませんでした。本変更により、テストインフラストラクチャ全体で使用されているCLRTestPriorityToBuild MSBuildプロパティに統一し、正常なテスト実行動作を復元します。

変更内容

  • XUnitWrapperGenerator.props: コンパイラ可視プロパティをPriorityからCLRTestPriorityToBuildに変更
  • XUnitWrapperGenerator.cs: outerloop属性フィルタリングロジックをPriority()からCLRTestPriorityToBuild()の確認に修正
  • OptionsHelper.cs: ヘルパーメソッドと定数をPriorityからCLRTestPriorityToBuildに統一
  • テストプロジェクトファイル複数: 優先度属性の設定更新(Methodical_others.csprojthread-race_r.csprojなど)

パフォーマンスへの影響

影響なし(テスト実行パイプライン修復のための変更であり、ランタイムパフォーマンスへの直接的な影響はありません)

関連Issue

作成者の概要より、outerloopテストの実行カバレッジが不足していた問題の修正

その他

この変更は、従前のバグにより実行されていなかったouterloopテストが、今後正常に実行される状況を復元するものです。MSBuild プロパティ名との統一により、テストインフラストラクチャの一貫性が向上します。


#123105 [clr-interp] Disable more interpreter tests

  • 作成者: @davidwrighton
  • 作成日時: 2026年01月12日 22:32:22(UTC)
  • マージ日時: 2026年01月14日 14:45:40(UTC)
  • ラベル: area-CodeGen-Interpreter-coreclr

概要

インタープリタ関連のテストを無効化するPull Request。複数のテストプロジェクト設定ファイルに対して、インタープリタでの実行を除外する設定が追加されています。各ファイルで1行ずつの追加となっており、テスト実行時の互換性問題やテスト失敗への対応と考えられます。

変更内容

  • src/tests/JIT/SIMD/Matrix4x4.cs (+1/-0)

    • Matrix4x4テストファイルに対してインタープリタテスト無効化設定を追加
  • src/tests/JIT/SIMD/Matrix4x4_r.csproj (+1/-0)

    • Matrix4x4リリースビルド設定プロジェクトファイルにインタープリタ除外設定を追加
  • src/tests/JIT/SIMD/Matrix4x4_ro.csproj (+1/-0)

    • Matrix4x4読み取り専用ビルド設定プロジェクトファイルにインタープリタ除外設定を追加
  • src/tests/readytorun/JittedMethodsCountingTest/JittedMethodsCountingTest.csproj (+1/-0)

    • JittedMethodsCountingTestプロジェクトにインタープリタ除外設定を追加

パフォーマンスへの影響

影響なし。本変更はテスト構成の変更であり、ランタイムのパフォーマンスには直接的な影響はありません。ただし、インタープリタモードでのテスト実行がスキップされるため、そのテスト環境でのバグ検出範囲が変更される可能性があります。

関連Issue

なし

その他

  • 変更は最小限(各ファイルで1行の追加)
  • CLR インタープリタ関連のテスト無効化に関する一連の対応の一部と考えられます
  • 作成者による詳細な説明がないため、具体的な無効化理由の詳細は PR の説明情報からは確認できません

#123079 Add a script to generate code coverage reports after fuzzing

  • 作成者: @MihaZupan
  • 作成日時: 2026年01月12日 01:48:38(UTC)
  • マージ日時: 2026年01月14日 08:33:09(UTC)
  • ラベル: area-Meta

概要

ファジングから生成されたテスト入力に対してコード カバレッジ レポートを生成するプロセスを自動化します。従来は複数の手動ステップが必要でしたが、collect-coverage.ps1 スクリプトにより、単一のコマンドで自動化できるようになります。

.\collect-coverage.ps1 HttpHeadersFuzzer inputs

このスクリプトは coverlet と reportgenerator ツールを使用して、アセンブリのインストルメンテーション、PDB ファイル管理、HTML レポート生成を自動化します。

変更内容

  • collect-coverage.ps1 (新規, 254行): カバレッジ収集ワークフローを自動化する PowerShell スクリプト
  • Program.cs (+9行): --get-instrumented-assemblies CLI オプションを追加し、スクリプトがインストルメンテーション対象のアセンブリを動的に取得可能に
  • run.bat (+16行): ハードコーディングされたパスから DotnetFuzzing.exe への動的検索に変更
  • .gitignore (+3/-2): 入力ディレクトリ、コーパス、カバレッジ レポートの除外パターンを追加
  • README.md (+17行): カバレッジ生成ワークフロー手順を文書化

パフォーマンスへの影響

影響なし。本変更はファジングのコード カバレッジ測定プロセスの自動化であり、ランタイム パフォーマンスには直接的な影響を与えません。

関連Issue

なし

その他

  • PowerShell スクリプトは主に LLM によって生成されています。スクリプト内で coverlet と reportgenerator ツールの自動インストール機能を含みます。
  • --get-instrumented-assemblies オプションは内部実装の拡張であり、公開 API ではありません。
  • Windows 環境での PowerShell スクリプト実行を想定した設計です。

#123074 Refactor process.cpp to eliminate vector dependency and shutdown race conditions

  • 作成者: @Copilot
  • 作成日時: 2026年01月11日 15:48:27(UTC)
  • マージ日時: 2026年01月14日 05:51:32(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

プロセスシャットダウン時のベクタデストラクタによる競合状態を排除するため、process.cppをリファクタリングしました。std::vector<const char*> g_argvCreateDumpを固定サイズ配列(32エントリ)に置き換え、クラッシュダンプ生成時の潜在的なクラッシュやハングを防止します。

// 変更前
std::vector<const char*> g_argvCreateDump;
g_argvCreateDump.push_back(arg);

// 変更後
const char* g_argvCreateDump[MAX_ARGV_ENTRIES];
g_argvCreateDump[index] = arg;

変更内容

  • src/coreclr/pal/src/thread/process.cpp: std::vectorconst char* g_argvCreateDump[MAX_ARGV_ENTRIES]に置き換え(+55/-41行)
    • PROCBuildCreateDumpCommandLineを配列インデックス操作に更新
    • PROCCreateCrashDumpIfEnabledで手動配列要素コピーと境界チェック追加
    • PAL_GenerateCoreDumpをローカル固定サイズ配列に更新
    • #include <vector>の削除
  • src/coreclr/nativeaot/Runtime/unix/PalCreateDump.cpp: 一貫性のため_ASSERTEを使用(+1/-4行)

パフォーマンスへの影響

改善あり:

  • ベクタデストラクタの動的メモリ解放処理が排除され、シャットダウン時のオーバーヘッド削減
  • スタック割り当て固定配列により、ヒープ断片化リスク低減
  • リリースビルドではランタイムオーバーヘッド追加なし(_ASSERTEは開発/テスト時のみ機能)

関連Issue

#122989

その他

  • 変更はクラッシュダンプ生成コードパスに限定され、リスク低い
  • CoreCLRとNativeAOT間で一貫したパターン採用
  • ビルド成功、エラー/警告なし

#123047 [clr-interp] Fix debugger issues in interpreter

  • 作成者: @davidwrighton
  • 作成日時: 2026年01月09日 21:45:14(UTC)
  • マージ日時: 2026年01月14日 01:50:43(UTC)
  • ラベル: area-CodeGen-Interpreter-coreclr

概要

CLRインタープリタモード(interpmode=2)使用時にデバッガが正常に動作しなかった問題を修正するPRです。EECodeInfo インフラストラクチャがインタープリタのスタブアドレスではなく実際のバイトコードアドレスを取得できるように改善されました。新たに GetInterpreterCodeFromInterpreterPrecodeIfPresent 関数を追加し、インタープリタプリコード(precode)から実際のバイトコードアドレスをアンラップして取得するようになります。

変更内容

  • src/coreclr/vm/precode.h/.cpp: GetInterpreterCodeFromInterpreterPrecodeIfPresent() 関数を新規追加。インタープリタプリコードをアンラップしてバイトコードアドレスを抽出します
  • src/coreclr/vm/method.hpp: MethodDescGetCodeForInterpreterOrJitted() ヘルパーメソッドを追加
  • src/coreclr/vm/stubmgr.cpp: nullポインタチェック追加によるメモリセーフティ向上
  • src/coreclr/debug/daccess/: 複数ファイル(request.cpp、enummem.cpp、dacdbiimpl.cpp、daccess.cpp)でDAC(Data Access Component)のコード取得ロジックを更新。GetCodeForInterpreterOrJitted() ヘルパーを使用してコードアドレス取得を統一化

パフォーマンスへの影響

影響なし。本変更はデバッグシナリオのコード取得ロジック改善であり、ランタイムのパフォーマンスパスには影響しません。

関連Issue

なし

その他

  • 本修正はインタープリタモード使用時のデバッガのみ関係する変更です
  • DAC(デバッガアクセスコンポーネント)に関連する複数箇所の統一的な改善により、デバッガがインタープリタ実行コードのメタデータを正確に取得できるようになります
  • 変更の性質上、インタープリタなしのビルドやJIT実行コードへの影響はありません

#122989 Add DOTNET_DbgCreateDumpToolPath to override createdump directory (NativeAOT only)

  • 作成者: @Copilot
  • 作成日時: 2026年01月07日 20:32:07(UTC)
  • マージ日時: 2026年01月14日 16:44:05(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

NativeAOT限定で、DOTNET_DbgCreateDumpToolPath 環境変数を追加し、createdumpツールのカスタムディレクトリを指定できるようにしました。createdumpが含まれていない環境で、ユーザーが独自のダンプ生成ツールを提供できます。

// 使用例
export DOTNET_DbgEnableMiniDump=1
export DOTNET_DbgCreateDumpToolPath=/path/to/directory
./myapp
// ランタイムは /path/to/directory/createdump を探します

変更内容

  • src/coreclr/nativeaot/Runtime/unix/PalCreateDump.cpp (+45/-17)

    • PalCreateDumpInitialize() 内で DOTNET_DbgCreateDumpToolPath 環境変数をチェック
    • 指定されたディレクトリパスとして使用してファイルパス構築
    • 環境変数未設定時は従来の動作にフォールバック
  • docs/design/coreclr/botr/xplat-minidump-generation.md (+13/-0)

    • 新しい環境変数の使用方法と制限事項(NativeAOT専用)を記載

パフォーマンスへの影響

影響なし。新しい環境変数は明示的に設定された場合のみ処理されます。既存のダンプ生成ロジック変更なし。

関連Issue

なし

その他

  • 互換性: 新規の選択的機能のため後方互換性は保証。NativeAOT専用で他のランタイム構成には影響なし
  • セキュリティ: ローリスク。環境変数ベースの動的パス指定で、初期化時のファイル検証は実施しない(既存パターンに準拠)
  • 対象環境: カスタム配布、最小コンテナ、組み込みシステムなどでcreatedumpが別途提供される環境を想定

#122988 [Wasm RyuJIT] Initial writeup on the calling convention

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年01月07日 20:07:05(UTC)
  • マージ日時: 2026年01月14日 21:10:43(UTC)
  • ラベル: arch-wasm needs-area-label

概要

WebAssembly向けのRyuJIT実装における呼び出し規約(Calling Convention)に関する包括的なドキュメントを追加しました。R2R(Ready-to-Run)およびJITコンパイル済みマネージドコードがWebAssemblyのスタックモデルとどのように相互運用するかを説明しています。

変更内容

  • docs/design/coreclr/botr/clr-abi.md: WebAssembly ABI(R2RおよびJIT)セクションを新規追加(+172行)
    • スタックレイアウト
    • 引数渡し規約(argument passing conventions)
    • プロローグ/エピローグの動作
    • 呼び出しシーケンス
    • コールサイトでのGC参照処理
    • ポータブルエントリーポイントメカニズム

パフォーマンスへの影響

影響なし(ドキュメント追加のみ)

関連Issue

なし

その他

  • このドキュメントはWasm RyuJIT実装の初期段階における仕様書として機能します
  • 将来的なJITコンパイル機能への拡張を考慮した設計となっています
  • CLRランタイムのWebAssemblyサポートに関する技術仕様の明確化により、開発者向けのリファレンスドキュメントとして活用可能です
  • 複数のレビュアー(jkotas、pavelsavara、BrzVlad等)による入念なレビュープロセスを経た信頼度の高いドキュメントです

#122977 Fix intrinsic testing add and subtract overflow helpers

  • 作成者: @a74nh
  • 作成日時: 2026年01月07日 16:20:20(UTC)
  • マージ日時: 2026年01月14日 15:07:16(UTC)
  • ラベル: area-System.Runtime.Intrinsics community-contribution

概要

ARM ハードウェア内在関数のテストヘルパーメソッドをリファクタリングしました。型固有の overflow 検出実装を複数削除し、IBinaryInteger<T>BigInteger を使用した汎用メソッドに統合しました。これにより、コード重複が削減され、overflow 検出の正確性が向上しました。

// 汎用な overflow 検出メソッドの例
public static bool TryAddOverflow<T>(T a, T b, out T result) 
    where T : IBinaryInteger<T>
{
    // BigInteger を使用して正確な範囲チェックを実行
}

変更内容

  • ファイル: src/tests/JIT/HardwareIntrinsics/Arm/Shared/Helpers.cs
    • 型固有の overflow 検出ロジックを汎用メソッドに統合(sbyte, short, int, long の重複実装を削除)
    • BigInteger を活用した正確な overflow 検出の実装
    • 加算および減算の saturating 演算ヘルパーメソッドの修正
    • コード行数: 383行削除、184行追加(net: -199行)

パフォーマンスへの影響

テストコードの変更であるため、実行時パフォーマンスへの直接的な影響はありません。ただし、テスト実行時の精度が向上し、誤検知が削減される可能性があります。

関連Issue

#122728

その他

  • レビューは tannergooding により複数回実施、最終承認
  • 汎用メソッドへの統合により、将来的な型追加時の保守性が向上

#122945 Add regression tests for TarReader.GetNextEntry after DataStream disposal

  • 作成者: @Copilot
  • 作成日時: 2026年01月06日 22:37:16(UTC)
  • マージ日時: 2026年01月14日 16:18:51(UTC)
  • ラベル: area-System.Formats.Tar

概要

このPRは、TarEntry.DataStreamをシークできないストリームで破棄した後にTarReader.GetNextEntry()を呼び出すとObjectDisposedExceptionがスローされていた既存のバグに対するリグレッションテストを追加します。バグ自体は既に修正済みで、SubReadStream.AdvanceToEnd()メソッドが破棄時にスローするプロパティではなく内部フィールドに直接アクセスするように改善されています。

変更内容

ファイル 変更内容
TarReader.GetNextEntry.Tests.cs 以下3つの同期テストを追加(各々+113行):
- GetNextEntry_UnseekableArchive_DisposedDataStream_DoesNotThrow - 全読込後の破棄
- GetNextEntry_UnseekableArchive_DisposedDataStream_PartiallyRead_DoesNotThrow - 部分読込後の破棄
- GetNextEntry_UnseekableArchive_DisposedDataStream_NotRead_DoesNotThrow - 未読状態での破棄
TarReader.GetNextEntryAsync.Tests.cs 上記3つの非同期テストバリアントを追加(各々+113行)

パフォーマンスへの影響

影響なし - テスト専用の変更です。

関連Issue

  • dotnet/runtime#101948(修正対象のIssue)
  • 元のIssue(バグ報告時):シークできないストリームでのDataStream破棄後にGetNextEntry()呼び出しでObjectDisposedExceptionが発生

その他

テスト実行結果: System.Formats.Tarの全5689テストが合格(特権要件による14件のスキップを含む)

リスク評価: 低 - テストのみの変更

注記: Copilotのレビューコメントでは、テストコード内の関連Issue番号が#89203と記載されているが、PR説明では#101948が参照されており、一貫性確認が推奨されています。


#122852 Cleanup some dead paths in EH

  • 作成者: @huoyaoyuan
  • 作成日時: 2026年01月04日 11:27:46(UTC)
  • マージ日時: 2026年01月14日 15:33:37(UTC)
  • ラベル: area-ExceptionHandling-coreclr community-contribution

概要

例外処理(EH)の不要なコードパスをクリーンアップし、ThreadStartExceptionをマネージドコードに移動するPRです。特に、RaiseExceptionが必要な場合とDispatchManagedExceptionで十分な場合を区別し、Windows上での例外相互運用性を改善しています。

変更内容

  • excep.cpp: 例外処理ロジックを大幅に簡素化(47行追加、172行削除)。不要な例外処理パスを削除
  • Thread.CoreCLR.cs: ThreadStartExceptionをマネージドコードで直接処理するよう移動
  • comsynchronizable.cpp/h: スレッド同期関連の例外処理を調整
  • threads.cpp/h: スレッド管理コードの例外ハンドリングをクリーンアップ
  • ThreadStartException.cs: マネージドコード側の例外定義を更新
  • その他のヘッダファイル: 不要な例外マクロと定義を削除

パフォーマンスへの影響

影響なし。本変更は不要なコードパスの削除と組織的な整理であり、ランタイムのパフォーマンスには直接的な影響を与えません。むしろ不要なコードパスの削除により、保守性が向上します。

関連Issue

なし

その他

  • DispatchManagedExceptionがWindows上でC++ EHと直接相互運用することが確認されました
  • UnwindAndContinueRethrowHelperAfterCatch(nativeRethrow)の使用は意図的なものですが、HandleThreadAbortについては不要と判断
  • この変更により、例外処理フローが簡潔になり、マネージドコードとネイティブコード間の例外ハンドリングの責務分離が明確になります

#122837 Fix ZIP64 header corruption when large file at large offset

  • 作成者: @Copilot
  • 作成日時: 2026年01月03日 19:04:14(UTC)
  • マージ日時: 2026年01月14日 14:04:26(UTC)
  • ラベル: area-System.IO.Compression

概要

ZipArchiveで4GBを超えるファイルが4GBを超えるオフセットに書き込まれる際、ZIP64ヘッダが破損する問題を修正しました。WriteCentralDirectoryFileHeaderInitializeメソッドでオフセット設定時にZip64ExtraFieldが上書きされ、ファイルサイズ情報が失われていました。修正により、null-coalescing演算子(??=)を使用してサイズ情報を保持しながらオフセットを追加するようにしました。

// 修正前:サイズ情報が上書きされる
zip64ExtraField = new() { LocalHeaderOffset = _offsetOfLocalHeader };

// 修正後:サイズ情報を保持、オフセットを追加
zip64ExtraField ??= new();
zip64ExtraField.LocalHeaderOffset = _offsetOfLocalHeader;

変更内容

  • ZipArchiveEntry.cs (行530周辺):ZIP64 Extra Field の生成ロジックを修正。新しいインスタンス作成時の上書きを回避し、既存のサイズ情報を保持
  • zip_LargeFiles.cs:回帰テスト LargeFile_At_LargeOffset_ZIP64_HeaderPreservation を追加。5GBの小ファイル群の後に5GBの大ファイルを配置し、サイズとオフセット両方のZIP64条件をトリガー

パフォーマンスへの影響

影響なし。単一行のロジック変更で、ZIP64セントラルディレクトリヘッダ書き込みの特定コードパスのみに関連。

関連Issue

#122489(ZipArchiveが特定データセット構成で破損したZIPを生成する問題)

その他

  • 既存の1359個のSystem.IO.Compressionテストはすべてパス
  • リスク評価:低。サイズとオフセット両方が4GBを超える限定的なコードパスのみに影響
  • RavenDBのスナップショットバックアップなど、大規模ファイル(>4GB)を含むアーカイブシナリオに該当
  • テストにはOOM例外処理が含まれ、メモリ不足時はSkipTestExceptionで適切にスキップ
  • .NET 9以降ではパッケージオーサリング不要

#122357 Sync area notification subscribers with area-owners.md

  • 作成者: @Copilot
  • 作成日時: 2025年12月09日 19:11:39(UTC)
  • マージ日時: 2026年01月14日 19:48:03(UTC)
  • ラベル: 指定なし

概要

このPRは、.github/policies/resourceManagement.ymldocs/area-owners.mdの間で、エリアラベル通知の購読者設定を同期しています。通知が正しいエリアリーダーとチームに送信されるよう、古い個別の購読者をチーム参照(例:dotnet/jit-contribdotnet/interop-contrib)に置き換え、所有権の割り当てを更新しました。

変更内容

  • .github/policies/resourceManagement.yml (+44行、-29行)

    • エリアリードの追加(@agocke、@karelz、@phil-allen-msftなど)
    • 個別購読者をチーム参照に置き換え(dotnet/jit-contribdotnet/ilc-contribdotnet/interop-contribなど)
    • GitHubハンドルの大文字小文字を統一(例:brzvladBrzVlad
    • 古いまたはコンサルタント専用の購読者を削除
  • docs/area-owners.md (+21行、-21行)

    • 現在のチーム構造を反映した所有権の割り当てを更新
    • セキュリティ関連エリアに暗号化専門家(@bartonjs、@vcsjones)を追加
    • アーカイブされたコンポーネントとインフラストラクチャエリアのリード割り当てを修正

パフォーマンスへの影響

影響なし

関連Issue

#122357

その他

このPRは、通知システムの信頼性と保守性を向上させることを目的としています。チーム参照の使用により、個別メンバーの変更時に手動更新の必要性が減り、より動的な購読者管理が実現します。area-owners.mdに専門家を記載することで、参照リソースとしての役割も継続します。


#122265 Add side-effect free debugger display to ValueStringBuilder.

  • 作成者: @teo-tsirpanis
  • 作成日時: 2025年12月06日 20:25:21(UTC)
  • マージ日時: 2026年01月14日 22:19:17(UTC)
  • ラベル: area-System.Runtime community-contribution

概要

ValueStringBuilderに対して、デバッガー表示時に副作用を持たないデバッグ表示機能を追加しました。従来はToString()呼び出しでビルダーの内容がクリアされてしまい、デバッグ時に予期しない動作を引き起こしていました。[DebuggerDisplay]属性を追加し、ビルダーの内容を表示するが状態を変更しないプロパティを実装することで、デバッグ体験を改善しています。

変更内容

ファイル 変更内容
src/libraries/Common/src/System/Text/ValueStringBuilder.cs [DebuggerDisplay]属性を追加。AsSpan().ToString()を使用した副作用のないDebuggerDisplayプロパティを実装
src/libraries/Common/src/System/Text/ValueStringBuilder_1.cs [DebuggerDisplay]属性を追加。ロジック抽出のためGetString()メソッドを新規作成。GetString()を使用した副作用のないDebuggerDisplayプロパティを実装

パフォーマンスへの影響

影響なし。デバッグ表示は通常のプログラム実行中には呼び出されず、デバッガーセッション時のみに作用します。

関連Issue

#122265

その他

この変更は公開API(ValueStringBuilder構造体)への追加であり、既存の動作に変更はないため、互換性への影響はありません。デバッグ時のToString()メソッドの呼び出しが原因で発生していた予期しないビルダークリアの問題を根本的に解決するものではなく、デバッガー表示の改善に限定されています。


#120658 Fix minor documentation Change in Lazy.cs summaries (#111921)

  • 作成者: @amritanand-py
  • 作成日時: 2025年10月13日 09:47:49(UTC)
  • マージ日時: 2026年01月14日 21:56:00(UTC)
  • ラベル: area-System.Runtime community-contribution

概要

Lazy.csのドキュメント文字列(XML documentation)を改善する軽微な変更です。Modeプロパティのサマリーに終了ピリオドを追加し、IsValueFaultedプロパティのサマリーを明確化して、値の作成時の失敗状態を示すよう改善しました。

変更内容

  • src/libraries/System.Private.CoreLib/src/System/Lazy.cs (+2/-2)
    • ModeプロパティのXMLドキュメント:終了ピリオドを追加
    • IsValueFaultedプロパティのXMLドキュメント:サマリーを明確化して、値の作成時の失敗状態を表すことを示唆

パフォーマンスへの影響

影響なし

(ドキュメント文字列のみの変更であり、実行時コードに変更はありません)

関連Issue

#111921

その他

  • 変更内容は軽微な文書化改善であり、APIやランタイム動作に影響を与えません
  • ドキュメント生成やIntelliSenseの表示精度向上に寄与します

#119804 Add BitArray.PopCount

  • 作成者: @huoyaoyuan
  • 作成日時: 2025年09月17日 11:39:05(UTC)
  • マージ日時: 2026年01月14日 14:47:13(UTC)
  • ラベル: area-System.Collections new-api-needs-documentation community-contribution

概要

BitArrayクラスにPopCountメソッドを追加しました。このメソッドはビット配列内で設定されている(1になっている)ビットの数をカウントします。BitArray内の1ビットの総数を効率的に取得する必要があるユースケースに対応します。

BitArray bits = new BitArray(new[] { true, false, true, true });
int count = bits.PopCount(); // returns 3

変更内容

  • System.Collections.cs: BitArray.PopCount()メソッドのシグネチャを公開API定義に追加
  • BitArray.cs: PopCount()メソッドの実装を追加。ビット配列内の設定されたビット数をカウント
  • BitArray_OperatorsTests.cs: PopCount()の機能をテストするテストケースを追加(15行)

パフォーマンスへの影響

ビット数のカウント処理は、内部的に最適化されたビット操作(おそらくハードウェアのPOPCNT命令やSystem.Numerics.Vector最適化を活用)を使用すると推定されます。具体的なパフォーマンス測定値はPR記載情報では不明です。

関連Issue

#104299(BitArray.PopCount機能要望)

その他

このメソッドはBitArrayに対するビット操作機能の充実を目的とした追加です。公開APIとして追加されるため、既存のコードに対する破壊的変更はありません。多くのレビュワーの承認を得ており、設計審査を通過した機能です。


#116524 Fix documentation for ReadOnlySequence.GetOffset

  • 作成者: @lilinus
  • 作成日時: 2025年06月11日 10:54:34(UTC)
  • マージ日時: 2026年01月14日 07:47:23(UTC)
  • ラベル: area-System.Memory community-contribution

概要

ReadOnlySequence<T>.GetOffset() メソッドのXML ドキュメンテーションを更新し、戻り値がゼロインデックスではないことを明確に伝えるようにしました。ゼロインデックスの値を得るための調整方法についてのRemarks セクションを追加しています。

/// <remarks>
/// The returned offset is not zero indexed from the start.
/// To obtain a zero-indexed value, subtract 1 from the returned offset.
/// </remarks>

変更内容

  • src/libraries/System.Memory/src/System/Buffers/ReadOnlySequence.cs
    • GetOffset() メソッドのドキュメンテーション更新(+6/-2行)
    • Summary の明確化と Remarks セクションの追加
    • ゼロインデックス値の取得方法についての説明を追加

パフォーマンスへの影響

影響なし。本変更はドキュメンテーションのみの更新です。

関連Issue

  • #75866 に関連

その他

  • dotnet/dotnet-api-docs リポジトリでも同様の更新が必要である可能性を作成者が指摘しています
  • Copilot による分析で、ゼロインデックスの定義やAPI 間での一貫性についてさらに明確化することが推奨されています

#114521 Haiku: Add native library IO support

  • 作成者: @trungnt2910
  • 作成日時: 2025年04月11日 02:55:27(UTC)
  • マージ日時: 2026年01月14日 06:14:07(UTC)
  • ラベル: area-System.IO community-contribution os-haiku

概要

Haiku OS向けのネイティブライブラリIO サポートを追加するPRです。ファイルシステムとマウントAPI(pal_io.cpal_mount.c)にHaiku固有の実装を追加し、ポータビリティの向上に対応しています。これは#55803の一部の実装です。

変更内容

  • src/native/libs/Common/pal_config.h.in:Haiku向けの設定マクロを追加(+2行)
  • src/native/libs/System.Native/pal_io.c:Haiku固有のI/O API実装を追加(+40行)
  • src/native/libs/System.Native/pal_mount.c:Haiku固有のマウント情報取得実装を追加(+57行)
  • src/native/libs/configure.cmake:Haiku向けのビルド設定を追加(+8行)

パフォーマンスへの影響

影響なし。プラットフォーム固有の条件分岐によるネイティブAPI実装追加のため、他のOSへの直接的なパフォーマンス影響はありません。

関連Issue

#55803(.NET Runtimeの複数OSサポート向上に関連)

その他

Copilot reviewerから、プラットフォームマクロの命名規則に関する指摘あり。コード内で__HAIKU__TARGET_HAIKUが混在しており、統一化を検討する余地があります。src/native/libs/System.Native/pal_mount.c:28#ifdef __HAIKU__部分が該当です。