我第一次建立Haskell开发环境的经验是常见的还是一次性的?
我决定从Haskell开始,然后遇到一个陌生的生态系统。我已经用简短和长篇的形式写下了我目前的结论(现在我意识到我的问题可能是暂时的,将来不会适用,并且意识到下面的文本可能不适合这样做) 我现在特别想知道的是我第一次建立Haskell开发环境的经验是常见的还是一次性的?,haskell,haskell-stack,haskell-ide-engine,Haskell,Haskell Stack,Haskell Ide Engine,我决定从Haskell开始,然后遇到一个陌生的生态系统。我已经用简短和长篇的形式写下了我目前的结论(现在我意识到我的问题可能是暂时的,将来不会适用,并且意识到下面的文本可能不适合这样做) 我现在特别想知道的是 我所描述的设置对退伍军人有意义吗 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题 短版: 如果这是您与Haskell的第一次接触,并且您希望安装Haskell(ghccup、ghc、cabal安装、stack)和由Visual Studio代码、Haskell语言服务器插件和
- 我所描述的设置对退伍军人有意义吗
- 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题
根据()堆叠新的
,并且正在安装的HIE都已解析
与ghcup安装的GHC版本相同
长版本:
嗨,哈斯凯勒
我正在分享我对哈斯克尔的尝试,希望能从一两次新手失误中拯救其他人。
像所有明智的人一样,我问过谷歌如何安装haskell,
这让我进入了下一页(我在macOS 10.13.6上)。
我已经按照建议下载了ghcup,该建议又安装了ghc 8.6.5和cabal安装3.0.0.0。
根据ghcup,两者都是推荐的版本。我能够ghcup列表
,ghcup列表-t all
,一切看起来都很好。
堆栈
是建议的下一个堆栈。
这个过程是直接进行的,在stack完成了它需要做的所有事情之后,我stack--version
告诉我我已经完成了版本2.1.3,Git版本0fa51b9925decd937e4a993ad90cb686f88fa282(7739提交)x86_64 hpack-0.31.2
堆栈文档的下一部分给我带来了麻烦。
特别是stack new my project
对于未初始化的用户,将基于所谓的解析器设置一个新项目。
在这一点上,我不知道或不关心的是,默认情况下,它将使用15.2版本的解析器(我写这篇文章时的最新版本)来设置
项目“包括电池”的隔离环境(请纠正我的任何错误假设/术语)。
我可能不知道的是,解析器15.2“期望”找到ghc 8.8.2,如果它没有找到它,它会做明智的事情并安装它。
我直觉地理解了这个问题——这是在解决这个问题——然后我继续前进(这是在我发现之前)
转到IDE,google将我带到haskell语言服务器,它还没有准备好。其次是
haskell ide引擎,可以被视为haskell语言服务器整体的一部分。
由于天真和对目前为止的经验感到满意,我从源代码构建hie,因为我对它不感兴趣
在这一点上使用nix做任何事情,或者弄清楚visualstudio代码DevContainer是什么。
构建是成功的,到目前为止,我已经安装了HIE、ghcup、ghc、cabal安装、visual studio代码包Haskell语言服务器
我准备开始学习哈斯克尔。
除非他拒绝工作:/
出了什么问题
- ghcup在我的机器上安装了ghc 8.6.5
- 默认情况下,stack new my project使用最新的解析器15.2,该解析器安装了ghc 8.8.2(与项目隔离)
- 通过查看ghcup安装的ghc(第8.6.5节),HIE自行构建(?)
结果是生成HIE所依据的版本与由
设置的版本不匹配。 一旦我更好地理解了涉及的部分,就很容易在谷歌上搜索解决方案,并迫使我彻底阅读文档。 这都是我的错,因为我没有更好地关注我正在阅读的文档。然而,我不想弄明白 生态系统中小而关键的部分的细微差别stack new my project
stack install.hs latest
以使用该工具支持的最新ghc版本(当前为ghc-8.8.2
)安装hie。您还可以使用stack install.hs hie-${version}
f.estack install.hs hie-8.6.5
安装特定版本
如果使用cabal安装hie,安装程序将在$PATH
中查找ghc版本,并且cabal hie安装最新版本
将安装找到的最新支持版本。也许是你利用阴谋集团安装了hie
您可以安装多个版本的hie,每次安装都会生成多个可执行文件:例如hie
本身、hie-8.6
和hie-8.6.5
以及分析项目并选择更合适的hie
版本的hie包装程序,