我第一次设置 Haskell 开发环境的经历是普遍的还是一次性的?
Is my experience with setting up Haskell dev environment for the first time common or a one-off?
我已经决定 ide 开始 Haskell 并且遇到了一个陌生的生态系统。我已经用简短和详细的版本写下了我目前的结论(现在我意识到我遇到的问题可能是暂时的,将来不会适用,并且意识到下面的文字可能不适合 SO)。
我现在具体想知道的是
- 我描述的设置对退伍军人有意义吗?
- 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题?
短版:
如果这是你第一次接触Haskell并且你想安装Haskell(ghccup、ghc、cabal-install、stack)和一个由Visual Studio组成的开发环境代码,Haskell 语言服务器插件和 HIE。
确保 stack new
根据 (https://docs.haskellstack.org/en/stable/README/#start-your-new-project) 和您正在安装的 HIE 都在解析
ghcup
.
安装的相同版本的 GHC
长版:
大家好Haskell各位!
我正在分享我对 Haskell 的尝试,希望能帮助其他人避免一两个菜鸟错误。
就像我问过的所有明智的人一样 google how to install haskell
,
这让我进入了下一页 https://www.haskell.org/platform/(我使用的是 macOS 10.13.6)。
我已经按照建议下载了 ghcup,然后安装了 ghc 8.6.5 和 cabal-install 3.0.0.0。
两者都是根据 ghcup 推荐的版本。我能够 ghcup list
、ghcup list -t all
,一切看起来都很好。
stack
是推荐的下一个。
这个过程很简单,在堆栈完成它需要做的一切之后我 stack --version
告诉我我有
Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2
.
堆栈文档的下一部分让我陷入困境 https://docs.haskellstack.org/en/stable/README/#start-your-new-project。
特别是 stack new my-project
外行人将根据所谓的解析器设置一个新项目。
我此时不知道或不关心的是,默认情况下它会使用 15.2 版本的解析器(在我写这篇文章时是最新的)来设置一个
该项目的“包含电池”的隔离环境(如有任何错误,请纠正我 assumption/terminology)。
我可能不知道的是解析器 15.2“期望”找到 ghc 8.8.2,如果没有找到它,它会做出明智的事情并安装它。
我直觉地理解了这个问题——这是在解决——然后我继续前进(这是在我找到 https://github.com/commercialhaskell/lts-haskell#readme 之前)。
继续 IDE,google 将我带到 haskell-language-server,它还没有准备好迎接黄金时段。下一个最好的事情是
haskell-ide-engine 可以是 idered haskell-language-server 整体的一部分。
由于天真和对目前的体验感到满意,我从源代码构建了他,因为我对
在这一点上用 nix 做任何事情或弄清楚什么是 Visual Studio Code DevContainer。
构建成功,到目前为止我已经安装了HIE、ghcup、ghc、cabal-install、visual studio代码包Haskell语言服务器
我准备开始学习 Haskell。
除了 HIE 拒绝工作 :/.
出了什么问题?
- ghcup 在我的机器上安装了 ghc 8.6.5
- stack new my-project 默认使用安装了 ghc 8.8.2 的最新解析器 15.2(与项目隔离)
- HIE 通过查看 ghcup 安装的 ghc 来构建自己(?),它是 8.6.5
结果是构建 HIE 所针对的版本与
stack new my-project
设置的版本不匹配。
一旦我更好地理解了涉及的部分,就很容易 google 寻求解决方案并迫使我彻底阅读文档。
错全在我,因为我没有更好地关注我正在阅读的文档。但是,我不准备必须弄清楚
生态系统中虽小但至关重要的部分的细微差别。
我确实意识到整个情况完全是我自己造成的,我本可以在安装 GHC 并启动 GHCI 后立即开始学习这门语言。我想知道是我走错路了还是大多数人都是这样开始的?
2020 年 7 月 25 日更新
Haskell 语言服务器现在更容易安装,看看这个 post 和它末尾的 video。 https://mpickering.github.io/ide/posts/2020-07-10-ghc-libdir.html
Does the setup I'm describing makes sense to veterans?
haskell 生态系统一开始可能看起来很奇怪(也许确实如此!),开始学习语言基础知识也许最好的选择就是您最后的评论([=23 选择的那个) =]当然,例如)。
我认为问题的关键是大多数 haskell 工具与特定版本的唯一 haskell 编译器耦合,而且如果工具必须解析、格式化或类型检查 haskell源代码(像编辑器和ides需要做的那样)。
但是,作为 haskell-ide-engine
的合作者之一,我希望让初学者尽可能顺利地安装和使用工具。可以使用 stack 和 cabal 完成安装,而且它不是自动的。
您必须 stack install.hs latest
使用该工具支持的最新 ghc 版本安装 hie,目前是 ghc-8.8.2
。您还可以使用 stack install.hs hie-${version}
f.e stack install.hs hie-8.6.5
.
安装特定版本
如果您使用 cabal 安装 hie,安装程序会在 $PATH
中查找 ghc 版本,然后 cabal-hie-install latest
安装找到的最新支持版本。也许你是用 cabal 来安装 hie 的?
您可以安装多个版本的 hie,每个安装都会生成多个可执行文件:例如 hie
本身、hie-8.6
和 hie-8.6.5
以及一个分析您的项目的 hie-wrapper
并选择更合适的 hie
版本(如果可用)。
请毫不犹豫地提出如何改进流程的建议。
存在一些问题:
我已经决定 ide 开始 Haskell 并且遇到了一个陌生的生态系统。我已经用简短和详细的版本写下了我目前的结论(现在我意识到我遇到的问题可能是暂时的,将来不会适用,并且意识到下面的文字可能不适合 SO)。
我现在具体想知道的是
- 我描述的设置对退伍军人有意义吗?
- 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题?
短版:
如果这是你第一次接触Haskell并且你想安装Haskell(ghccup、ghc、cabal-install、stack)和一个由Visual Studio组成的开发环境代码,Haskell 语言服务器插件和 HIE。
确保 stack new
根据 (https://docs.haskellstack.org/en/stable/README/#start-your-new-project) 和您正在安装的 HIE 都在解析
ghcup
.
长版:
大家好Haskell各位!
我正在分享我对 Haskell 的尝试,希望能帮助其他人避免一两个菜鸟错误。
就像我问过的所有明智的人一样 google how to install haskell
,
这让我进入了下一页 https://www.haskell.org/platform/(我使用的是 macOS 10.13.6)。
我已经按照建议下载了 ghcup,然后安装了 ghc 8.6.5 和 cabal-install 3.0.0.0。
两者都是根据 ghcup 推荐的版本。我能够 ghcup list
、ghcup list -t all
,一切看起来都很好。
stack
是推荐的下一个。
这个过程很简单,在堆栈完成它需要做的一切之后我 stack --version
告诉我我有
Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2
.
堆栈文档的下一部分让我陷入困境 https://docs.haskellstack.org/en/stable/README/#start-your-new-project。
特别是 stack new my-project
外行人将根据所谓的解析器设置一个新项目。
我此时不知道或不关心的是,默认情况下它会使用 15.2 版本的解析器(在我写这篇文章时是最新的)来设置一个
该项目的“包含电池”的隔离环境(如有任何错误,请纠正我 assumption/terminology)。
我可能不知道的是解析器 15.2“期望”找到 ghc 8.8.2,如果没有找到它,它会做出明智的事情并安装它。
我直觉地理解了这个问题——这是在解决——然后我继续前进(这是在我找到 https://github.com/commercialhaskell/lts-haskell#readme 之前)。
继续 IDE,google 将我带到 haskell-language-server,它还没有准备好迎接黄金时段。下一个最好的事情是 haskell-ide-engine 可以是 idered haskell-language-server 整体的一部分。 由于天真和对目前的体验感到满意,我从源代码构建了他,因为我对 在这一点上用 nix 做任何事情或弄清楚什么是 Visual Studio Code DevContainer。 构建成功,到目前为止我已经安装了HIE、ghcup、ghc、cabal-install、visual studio代码包Haskell语言服务器 我准备开始学习 Haskell。 除了 HIE 拒绝工作 :/.
出了什么问题?
- ghcup 在我的机器上安装了 ghc 8.6.5
- stack new my-project 默认使用安装了 ghc 8.8.2 的最新解析器 15.2(与项目隔离)
- HIE 通过查看 ghcup 安装的 ghc 来构建自己(?),它是 8.6.5
结果是构建 HIE 所针对的版本与
stack new my-project
设置的版本不匹配。 一旦我更好地理解了涉及的部分,就很容易 google 寻求解决方案并迫使我彻底阅读文档。 错全在我,因为我没有更好地关注我正在阅读的文档。但是,我不准备必须弄清楚 生态系统中虽小但至关重要的部分的细微差别。
我确实意识到整个情况完全是我自己造成的,我本可以在安装 GHC 并启动 GHCI 后立即开始学习这门语言。我想知道是我走错路了还是大多数人都是这样开始的?
2020 年 7 月 25 日更新
Haskell 语言服务器现在更容易安装,看看这个 post 和它末尾的 video。 https://mpickering.github.io/ide/posts/2020-07-10-ghc-libdir.html
Does the setup I'm describing makes sense to veterans?
haskell 生态系统一开始可能看起来很奇怪(也许确实如此!),开始学习语言基础知识也许最好的选择就是您最后的评论([=23 选择的那个) =]当然,例如)。
我认为问题的关键是大多数 haskell 工具与特定版本的唯一 haskell 编译器耦合,而且如果工具必须解析、格式化或类型检查 haskell源代码(像编辑器和ides需要做的那样)。
但是,作为 haskell-ide-engine
的合作者之一,我希望让初学者尽可能顺利地安装和使用工具。可以使用 stack 和 cabal 完成安装,而且它不是自动的。
您必须 stack install.hs latest
使用该工具支持的最新 ghc 版本安装 hie,目前是 ghc-8.8.2
。您还可以使用 stack install.hs hie-${version}
f.e stack install.hs hie-8.6.5
.
如果您使用 cabal 安装 hie,安装程序会在 $PATH
中查找 ghc 版本,然后 cabal-hie-install latest
安装找到的最新支持版本。也许你是用 cabal 来安装 hie 的?
您可以安装多个版本的 hie,每个安装都会生成多个可执行文件:例如 hie
本身、hie-8.6
和 hie-8.6.5
以及一个分析您的项目的 hie-wrapper
并选择更合适的 hie
版本(如果可用)。
请毫不犹豫地提出如何改进流程的建议。 存在一些问题: