如何在不导致下载ghc的情况下找出与快照对应的ghc版本

时间:2018-05-31 14:51:24

标签: haskell-stack

需要一种方法来确定与给定快照相关联的ghc版本,而无需下载ghc。

我可以运行此命令来获取信息,但不幸的是,它在打印出版本之前首先下载了ghc:

stack query compiler wanted

我需要这个,因为我正在优化CI构建并且有一种获取ghc版本的方法允许我将其用作检索适当构建缓存的密钥。试图查询此信息触发下载的事实破坏了我尝试的任何优化。

2 个答案:

答案 0 :(得分:0)

@mgsloan给了我足够的信息来整理解决方案,可以在这里找到:

https://github.com/haskell-works/hw-dsv/blob/master/scripts/ghc-version

答案 1 :(得分:0)

不理想但可以解析

的stdout或stderr
stack --resolver SNAPSHOT --no-install-ghc query

stack --resolver SNAPSHOT --no-install-ghc path --compiler-exe

或者这里是一个使用 pantry 获取信息的小程序:

import Pantry

main :: IO ()
main = do
  rsnap <-
    runPantryApp $ do
    let rurl = defaultSnapshotLocation (LTS 18 0)
    url <- completeSnapshotLocation rurl
    loadSnapshot url
  print $ rsCompiler rsnap