しばらくの間、cabal サンドボックスでインストール/ビルドを行うと、Windows マシンで失敗することが多いという事実に当惑していました。最終的に、特定のパスが制限を超えたことが原因であることがわかりましたMAX_PATH(パスは事実上 255 文字に制限されています)。
具体的な例として、cabal install data-default-instances-old-locale-0.0.1cabal サンドボックス フォルダー内で実行しようとすると失敗します。プロセスのある時点で、Cabal はar.exeのようなパスで呼び出しますdist/dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-45644\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a。これは、temp ディレクトリ (単純に に設定したC:\Temp) の下の作業フォルダーに相対的であるため、フル パスはC:\Temp\data-default-instances-old-locale-0.0.1-18744\data-default-instances-old-locale-0.0.1\dist\dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-18744\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a.
その最終的なパスの長さは 272 文字で、255 の制限をはるかに超えています。
Windows でより長いパスを処理することは可能ですが、それは自明ではなく、いずれにせよ、ar はそれらを処理するために必要なことを何もしていないようです (これは GNU ツール チェーンの単なるポートであるため、驚くべきことではありません)。
これは予見可能な将来の状況だと感じていますが、誰かが回避策を考えることができるでしょうか?