gpt4 book ai didi

haskell - 有人能够将liquidhaskell 与nixos 集成吗?

转载 作者:行者123 更新时间:2023-12-02 10:11:24 25 4
gpt4 key购买 nike

我正在尝试在 NixOS 上使用 Liquidhaskell。我可以安装该软件包(liquidhaskell-0.8.2.3),但不能安装 cabal 集成,因为它需要 cabal 1.18-1.25,但我有 cabal 2.0.1.0 。

我已经安装了 Liquidhaskell 软件包作为 ghc-with-packages 设置的一部分:

[~:0]$ readlink $( type -p liquid )
/nix/store/pdbzl0p6k1klmajx969b6vvwyw9w0s6b-ghc-8.2.2-with-packages/bin/liquid

除此之外,该套件中还安装了软件包文本:

[proclib:1]$ ls -ld /nix/store/pdbzl0p6k1klmajx969b6vvwyw9w0s6b-ghc-8.2.2-with-packages/lib/ghc-8.2.2/text-1.2.2.2/
dr-xr-xr-x 3 root root 68 Jan 1 1970 /nix/store/pdbzl0p6k1klmajx969b6vvwyw9w0s6b-ghc-8.2.2-with-packages/lib/ghc-8.2.2/text-1.2.2.2/

但是,液体看不到这一点:

[proclib:1]$ liquid ~/bin/h/nix.hs 
LiquidHaskell Version 0.8.2.3
Copyright 2013-18 Regents of the University of California. All Rights Reserved.

liquid: Main: Could not find module ‘Data.Text’
Perhaps you meant Data.Set (from containers-0.5.10.2)
Use -v to see a list of the files searched for.

以上内容不是 cabal 包的一部分(试图从等式中消除 cabal 的东西)。

我尝试使用 nix-shell 来完成这项工作,但是 nix-shell 或 Liquid 在语言编译指示上崩溃了:

[~:0]$ nix-shell -p myHaskellEnv --run liquid ~/bin/h/nix.hs 
/nix/store/q1cwqhb6v8yx8vy4s5p6sxrq8s0bnqmy-nix.hs: line 5: {-#: command not found

非常感谢您的帮助。

最佳答案

问题似乎是 Liquid haskell 忽略了 ghcWithPackages 包装器,因为它直接使用 GHC API。您可以根据 this thread 按如下方式解决此问题.

nix-shell -p 'haskellPackages.ghcWithPackages(pkgs:[pkgs.text (pkgs.liquidhaskell)])' -p z3 --run 'liquid --ghc-option="-package-db=$(ghc-pkg list | head -n 1)" ./hellotext.hs'

或者有些等价,

nix-shell -p 'haskellPackages.ghcWithPackages(pkgs:[pkgs.text])' -p z3 -p haskellPackages.liquidhaskell --run 'NIX_GHC_LIBDIR=$(ghc-pkg list | head -n 1)/.. liquid ./hellotext.hs'

这表明当您处于基于 cabal2nix 包的 nix-shell 中时,它可以开箱即用。

关于haskell - 有人能够将liquidhaskell 与nixos 集成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com