Skip to main content
QUICK REVIEW

[論文レビュー] Package Managers à la Carte: A Formal Model of Dependency Resolution

Ryan Gibb, Patrick Ferris|arXiv (Cornell University)|Feb 20, 2026
Security and Verification in Computing被引用数 2
ひとこと要約

論文はPackage Calculusを提案する。これは依存解決をさまざまなパッケージマネージャ間で統一する最小限の形式体系で、現実世界の差異をモデル化する拡張を提供し、クロスエコシステムの翻訳と解決を可能にする。

ABSTRACT

Package managers are legion. Every programming language and operating system has its own solution, each with subtly different semantics for dependency resolution. This fragmentation prevents multilingual projects from expressing precise dependencies across language ecosystems; it leaves external system and hardware dependencies implicit and unversioned; it obscures security vulnerabilities that lie in the full dependency graph. We present the extit{Package Calculus}, a formalism for dependency resolution that unifies the core semantics of diverse package managers. Through a series of formal reductions, we show how this core is expressive enough to model the diversity that real-world package managers employ in their dependency expression languages. By using the Package Calculus as the intermediate representation of dependencies, we enable translation between distinct package managers and resolution across ecosystems.

研究の動機と目的

  • 30以上のパッケージマネージャに共通するコア概念の特定。
  • Package Calculusを開発して依存解決、デプロイ、ルート制約を捉える。
  • 拡張が現実世界の差異軸(衝突、同時バージョン、ピア、機能など)をどのようにモデル化するかを示す。
  • 計算を中間表現として使用してパッケージマネージャ間の翻訳を実演する。

提案手法

  • コア計算を、パッケージ、依存関係、解決、および3つのコア条件(ルート包含、依存関係閉包、バージョンの一意性)で定義する。
  • 依存解決のNP完全性を証明し、実践で回避する方法を議論する。
  • コア計算を拡張して、差異軸(衝突、同時バージョン、ピア依存、機能、パッケージ式、可変式、仮想パッケージ)をモデル化する。
  • 各拡張からコア計算への健全性・完全性を保つ還元を示す。
  • 計算を中間表現として用いて、n^2の翻訳者から2nの翻訳者へとクロスエコシステム翻訳を縮約する還元を提示する。
(c) Hypergraph of reduction.
(c) Hypergraph of reduction.

実験結果

リサーチクエスチョン

  • RQ1多様なパッケージマネージャを横断する依存解決を、単一の正式モデルでどのように捉えることができるか。
  • RQ2現実世界の機能拡張(衝突、同時性、ピア、機能など)をコア計算に健全に還元できるか。
  • RQ3現実世界設定における依存解決の複雑さはどの程度で、それをどのように緩和できるか。
  • RQ4Package Calculusを中間表現として用いてクロスエコシステム翻訳を効率的に達成できるか。

主な発見

  • Package Calculusは、ルート包含、依存関係閉包、バージョンの一意性を捉える最小限の正式体系を提供する。
  • 解決は一般にはNP完全だが、制限形や拡張はこの複雑性を回避・管理できる。
  • 差異軸(衝突、同時バージョン、ピア依存、機能、パッケージ式、可変式、仮想パッケージ)は、それぞれコアへの健全で完全な還元を持つ拡張としてモデル化可能である。
  • クロスエコシステム翻訳は、依存式表現の中間表現として計算を用いることで、n^2の翻訳者から2nの翻訳者へと縮約される。
  • Go、Cargo、Nix、opam などのエコシステムは、厳密なバージョン制約から正確な名称-バージョン依存までのスペクトラム上で異なる戦略を示し、リゾルバの複雑さに影響を与える。
(c) Hypergraph illustration.
(c) Hypergraph illustration.

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。