haskell-jp / questions #100 at 2022-02-27 12:06:47 +0900

stack build はデフォルトでコア数に合わせて自動で並列でインストール作業してくれますが、これが原因でstack buildが失敗するとかってありえますか?何回やってもbuildが失敗しています。
ググって出てくる対処方法はいくつか試したのですが、うまくいかず
• stack setup --reinstall
https://haskell.e-bigmoon.com/posts/2018/02-23-stack-build-failure.html
出ているエラーはこんな感じです
unix-time                   > [5 of 5] Compiling Data.UnixTime
unix-time                   > 
unix-time                   > /private/var/folders/nk/y8y8_lqd78xb3v36wkb3zzbm0000gn/T/stack-270fa405daabf780/unix-time-0.3.7/cbits/conv.c:1:10: error:  fatal error: 'config.h' file not found
unix-time                   >   |
unix-time                   > 1 | #include "config.h"
unix-time                   >   |          ^
unix-time                   > #include "config.h"
unix-time                   >          ^~~~~~~~~~
unix-time                   > 1 error generated.
unix-time                   > `gcc' failed in phase `C Compiler'. (Exit code: 1)
stack buildが失敗してもう一回buildすると続きからやってくれるみたいですが、最終的には↑の箇所で止まってしまいます。

gccのバージョンが原因?こちらをつかっています
 gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: x86_64-apple-darwin21.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
/private/var/folders/nk/y8y8_lqd78xb3v36wkb3zzbm0000gn/T/stack-270fa405daabf780/unix-time-0.3.7/cbits/conv.c:1:10: error:  fatal error: 'config.h' file not found

から,ビルドしようとしているのは unix-time0.3.7 であり,`unix-time` は(同時に最新は 0.4.7 であり,`0.3.7` は相当古いバージョンであることもわかる),Hackageの情報とかからですと.さらにのページから上記エラーについて古いパッケージでは問題があって今は直ってるようなものが何か無いかを Filtersis:pr config.h is:closed とかで検索すると,がありますね.これがmergeされて,その直後 0.3.8 としてリリースされているということまでリポジトリ上でわかるので,今回は修正前の古い unix-time バージョンである 0.3.7 を使っていること,ひいては,そのような古い unix-time を引っ張ってくるような Stackage LTS バージョンを未だに利用していることが問題であるため,を上げるべきでは?という推測が一旦はできますが上記調査方法から改めて追ってもらった上で如何でしょうか.
ありがとうございます :pray:
みてみます~
うまくいきました!
Installing executable weight-recorder in /Users/makoto/work/haskell/haskell-yesod-weight-record-app/.stack-work/install/x86_64-osx/02c97572d1d6d4aadb28a9c901b240b24751427553706f10a613cd2634d5c95b/8.10.7/bin
Completed 136 action(s).
stack buildで1日が消えてしまった…
この本の10章Webアプリケーションの作成で躓いていました。
--resolver lts=8.24 を指定すれば完全再現できると書いてありますが上記の通り依存するライブラリのバージョンが古くなって動かないようです。
https://gihyo.jp/book/2017/978-4-7741-9237-6

直し方を一応残しておきます。だれか見るかもしれないので。
https://github.com/makoto-engineer/haskell-yesod-weight-record-app/issues/1

@notogawa さんありがとうございます:pray: