Skip to content

[V3-02] C++20の配布互換性とnative build構成を検証する #116

Description

@PyYoshi

親トラッカー: #114

目的・成果物

sanitizerとDebugの分離、build preset、C++20機能と配布互換性の検証、規格採用の設計判断

実装先・順序

作業

  • 規格更新と安全性refactor、algorithm変更を別PRにする。
  • CMakeとCython/setuptoolsの両経路、最低対応OS/runtimeでwheelを検証しsdist要件を記録する。

完了条件

GCC/Clang/MSVCとApple Clang、CMakeとCython経由で検証。最低対応runtimeでwheelを実行しsdist要件も記録。V3-01に依存

  • 対象の実装PR・設計判断へのリンクを記録する。
  • 再現command、検証結果、必要なartifact hashを記録する。
  • 未解決事項・既知の制約と、依存先への影響を明記する。

現在の実績(2026-09-21)

  • GCC/Clang/AppleClang/MSVC、Debug/Release/sanitizerのnative build基盤。
  • C++20 opt-inの30 wheel build/installed smoke(run 35513146332)。
  • glibc 2.24上のx86_64全5 ABI、およびQEMU ARM64全5 ABIの既存wheel smoke。
  • sdist tar.gzからの独立C++20再build、uv環境でのinstalled smoke、sdist要件の記録。
  • span/concepts/ranges等の独立機能probe。GCC/AppleClang/MSVCと限定旧glibcで検証。
  • 最低macOS・Windows runtimeでの実行。
  • 新標準library機能を実wheelへ導入する際の配布条件確認・既定規格の採用判断。

ARM64は未確認ではなくQEMUで確認済み。ただしARM実機性能や現在のdev全体の再buildを保証しない。既定規格・最低対応条件は変更していない。

根拠: #130/#131/#134/#135/#137/#138/#147/#148
C++20配布検証最低runtimeARM64検証sdist
#169ではnative #43/#44の通常reset比較と3OS shared lifecycle/export修正も統合した。最低runtimeでの実行とは別の検証。

追加検証:既存wheelの静的監査(2026-09-21)

  • run 35513146332のmacOS/Windows各10 wheelをLLVMで静的検査。新規Actions・再buildなし。
  • macOS: extensionのarchitectureと最低versionが全件wheel tagと一致(x86_64 cp311=10.9、cp312/313=10.13、cp314/314t=10.15、arm64=11.0)。
  • Windows: win32/amd64のCOFF architectureとPython ABI別DLL参照を確認。PEのOS/subsystem 6.0を最低対応OSの保証とはしない。
  • extensionの直接依存までの確認。最低OS上のimport/実行、同梱DLLの推移依存、最低CRTでの動作は未検証。

取得量5,356,582 bytes、artifactはGit管理外のarchives/v3-corpus/runtime-audit-macos-v1/runtime-audit-windows-v1/に保存。再現command・artifact ID・詳細は静的監査記録
次に必要なのは該当macOS/Windows・architecture・Python/CRTの実行環境。静的監査で元の最低runtime実行条件を代替せず、本Issueはopenを維持する。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    pinned継続して追跡する作業。既存stale設定の除外対象v3cChardet v3開発の作業・設計判断

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions