ghc相关内容

交叉编译GHC失败,缺少图标

成功运行 ./configure --target=arm-linux-androideabi --with-gcc=arm-linux-androideabi-gcc 然后Make失败。 checking value of ENOTSUP... 95 checking value of SIGINT... 2 checking value of O_BINARY... 0 che ..
发布时间:2022-09-06 12:54:49 其他开发

`ghci`中的Haskell多行`let`

我在ghci中发现以下功能正常工作: let foo = ["a", "b", "c"] .但这不起作用: let bar = ["a", "b", "c"] .这也不是: let baz = ["a"] ++ ["b"] ++ ["c"] 当我尝试将其编译为文件时,提供了相同的错误, ..
发布时间:2022-09-06 12:43:48 其他开发

GHC生成的.hi、.p_hi和.dyn_hi文件有什么不同

我正在尝试减小包含NIX派生的归档的大小。我注意到每个模块都有3个大小相似的文件hi、p_hi和dyn_hi。 GHC(提示)解释器只需要hi,如果我删除REST变量,则不会发生任何情况。 p_hi和dyn_hi沙袋也是这样吗? 推荐答案 通常.hi文件是关联的.o对象文件的接口定义。旧版本的GHC一次只能与一个版本一起使用。当库需要分析信息或动态链接时,这会导致问题,因为 ..
发布时间:2022-09-06 12:30:30 其他开发

具有全局GHC的Haskell堆栈

是否可以将stack与已安装的ghc一起使用,而不安装ghc或cabal的本地副本? 推荐答案 是。如果PATH中的ghc是所选快照的正确版本,stack将很乐意使用它。 % ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.4 % stack --resolver=lts-2. ..
发布时间:2022-09-06 12:24:27 其他开发

FlexibleContents扩展有什么好处?你能用一个简单的例子来解释一下吗?

我试图通过搜索对普通人(例如,像我一样读过LYHFGG的人)解释它的网页来了解FlexibleContages扩展的作用,但我没有找到任何这样的资源。 因此我就这个话题向专家请教:你们能解释一下这个扩展是什么,为什么会存在,并给出一两个简单的例子,说明人们应该如何使用它以及为什么使用它? 此外如果我正在阅读他人的代码which使用此扩展,那么我应该了解有关此扩展的哪些信息才能理解使用此 ..
发布时间:2022-09-06 12:15:54 其他开发

为什么定义MonadReader需要FunctionalDependency?

我刚刚理解了类的定义MonadReader class Monad m => MonadReader r m | m -> r where ... 阅读了Haskell中的函数依赖文档,现在我可以理解| m -> r指定类型变量r由m唯一决定。根据我目前所见的几个典型的MonadReader实例(例如Reader),我认为这个要求是合理的,但在我看来,即使没有这个函数依赖子句,我们仍然可 ..
发布时间:2022-04-20 14:21:32 其他开发

非穷举模式匹配仅仅是因为我省略了`否则=`?

我用Haskell编写了一个简单的程序,播放the guessing game described in The Rust Programming Language book: 它的工作原理是这样的:程序将生成一个介于1和100之间的随机整数。然后,它会提示玩家输入一个猜测。输入猜测后,它将指示猜测是过低还是过高。如果猜测正确,游戏将打印祝贺并退出。 这是我写的: import ..
发布时间:2022-02-26 15:47:37 其他开发

如何在 Linux Debian Wheezy 上安装 Haskell 平台?

最初我以为我会使用 apt-get 使用几个命令来安装 Haskell,但它似乎有点复杂. 当我查看 haskell org 下载页面时,我下载了 haskell-platform-2013.2.0.0.tar.gz.然后下一步有点令人困惑.它要求在安装平台之前安装 GHC 但同时如果打开 GHC 下载页面,它会显示一些警告,例如 Stop !.....我们建议安装 Haskell 平台而不 ..
发布时间:2022-01-24 23:00:00 服务器开发

关于 GHC 实施的好的介绍性文字?

在 Haskell 中编程时(尤其是在解决 Project Euler 问题时,次优的解决方案往往会对 CPU 或内存需求造成压力),我经常对为什么程序的行为方式感到困惑.我查看配置文件,尝试引入一些严格性,选择另一种数据结构,......但大多是在黑暗中摸索,因为我缺乏良好的直觉. 另外,虽然我知道 Lisp、Prolog 和命令式语言的典型实现方式,但我不知道如何实现惰性语言.我也有点好 ..

阅读 GHC 核心

Core 是 GHC 的中间语言.Reading Core 可以帮助您更好地了解程序的性能.有人向我索要有关阅读 Core 的文档或教程,但我找不到太多. 哪些文档可用于阅读 GHC Core? 这是我目前发现的: 像 C 一样快地编写 Haskell:利用严格性、惰性和递归性 Haskell 和 C 一样快:在高海拔地区工作以获得低水平性能 RWH:第 25 章.分析和优化 ..
发布时间:2022-01-17 00:00:19 其他开发

随着分配更多的盒装数组,代码变得更慢

编辑: 事实证明,事情通常(不仅仅是数组/引用操作)会减慢创建更多数组的速度,所以我猜这可能只是测量增加的 GC 时间和可能没有我想的那么奇怪.但是我真的很想知道(并学习如何找出)这里发生了什么,以及是否有某种方法可以在创建大量小型数组的代码中减轻这种影响.原始问题如下. 在调查库中一些奇怪的基准测试结果时,我偶然发现了一些我不理解的行为,尽管它可能非常明显.许多操作(创建新的Mutable ..
发布时间:2022-01-16 10:28:59 其他开发

GHC 用于垃圾收集的 RTS 选项

我有一个 Haskell 程序,它处理一个文本文件并构建一个 Map(包含数百万个元素).整个过程可以运行2-3分钟.我发现调整 -H 和 -A 选项会对运行时间产生很大影响. 有 有关 RTS 功能的文档,但对我来说很难阅读,因为我不了解 GC 理论中的算法和术语.我正在寻找一个技术含量较低的解释,最好是针对 Haskell/GHC.有没有关于为这些选项选择合理值的参考资料? 编辑: ..
发布时间:2022-01-16 09:51:01 其他开发

修复 ghc-pkg check 发现的问题

ghc-pkg check 会列出损坏的软件包,以及它们损坏的原因,这真是太好了.但据我所知,没有自动化的方法来处理那些损坏的包裹.处理破损包裹的推荐方法是什么?(最好不要重装GHC) 解决方案 希望您足够明智,不会破坏全局包数据库中的任何内容.那里的破损很容易意味着需要重新安装 GHC.因此,让我们假设损坏仅限于用户包 db(可能除了用户包覆盖的全局中的一两个包).如果只有少数软件包损坏 ..
发布时间:2022-01-15 22:42:17 其他开发

制作小型haskell可执行文件?

有什么好的方法可以制作小型的 haskell 可执行文件吗?使用 ghc6,一个简单的 hello world 程序似乎达到了大约 370kB(剥离前为 523kB).C 中的 Hello world 大约为 4kB(剥离前为 9kB). 解决方案 用GHC的开发分支(有谁知道具体是在哪个版本添加的?): $ ghc -o hello hello.hs$ strip -p --strip ..
发布时间:2022-01-11 15:27:58 其他开发