3

我已经构建了 ghc-HEAD,我想尝试构建所有堆栈 lts 或 nightly 以查看它可以做多少。

我所说的一切都无法说服 stack 使用我的新 ghc 构建任何东西。我尝试设置如下:

stack setup 8.1.20160209 --ghc-variant=aarch64-HEAD --ghc-bindist=https://s3-us-west-1.amazonaws.com/stack-aarch64/ghc-8.1.20160209-aarch64-unknown-linux.tar.xz

然后我下载一个 lts config.cabal 并将所有包复制到 my.cabal 文件中。这就是使用常规 ghc 构建所有内容所必需的。我说

stack install --ghc-variant=aarch64-HEAD

它告诉我它不知道这些包在哪里。尝试堆栈求解器。所以我尝试了它,它也在很长一段时间后放弃了。

接下来我尝试制作一个自定义快照,再次将所有包放在一个 snapshot.yaml 中并将 stack.yaml 指向它。在 stack.yaml 中:

resolver:
  name: my-snapshot
  location: "./my-snapshot.yaml"
...

在 my-snapshot.yaml 中:

compiler: ghc-8.1.20160209

packages:
  - accelerate-0.15.1.0
  - ace-0.6
...

那也行不通。所以我尝试与 stack.yaml 协商

   skip-ghc-check: true
    compiler: ghc-8.1.20160209

    ghc-variant: aarch64-HEAD

    setup-info:
      ghc:
        aarch64-HEAD:
          8.1.20160209:
            url: "https://s3-us-west-1.amazonaws.com/stack-aarch64/ghc-8.1.20160209-aarch64-unknown-linux.tar.xz"

    install-ghc: true
    allow-newer: true

现在stack install说:

The following package identifiers were not found in your indices: bin-package-db-0.0.0.0
4

1 回答 1

1

所以我尝试了它,它也在很长一段时间后放弃了。

“放弃”是什么意思?输出是什么?

那也行不通

“不起作用”是什么意思?输出是什么?

堆栈安装--ghc-variant=aarch64-HEAD

你在堆栈安装什么?您需要指定一个解析器,在这种情况下,一个编译器版本 - 仅指定--ghc-variant是不够的。你需要类似的东西stack install --allow-newer --ghc-variant=aarch64-HEAD --compiler ghc-8.1.20160209不幸的是,由于https://github.com/commercialhaskell/stack/issues/1579,目前这可能不起作用

自定义快照是解决此问题的一种方法,但您需要列出所需每个包的确切版本。

我不确定 bin-package-db 错误来自哪里,抱歉

于 2016-02-18T03:46:01.197 回答