问题标签 [ghc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - install ALUT on OSX
i am interested in installing the cabal package turing-music but i can't find the ALUT library on macports needed for the haskell binding to ALUT (http://hackage.haskell.org/package/ALUT).
Where can i find ALUT development libraries on OSX 10.6.3 so that compile the cabal package ALUT.
haskell - 尝试构建 Cabal 库时出现 GHC 构建错误
我正在尝试在我的系统上构建/安装 Cabal,但遇到了以下依赖错误:
我安装了 GHC 7.0.1,据我所知 GHC 6.6.1 和后来的“文件路径”包?我不清楚“基地”到底指的是什么?
haskell - GHC IO 管理器支持哪些 IO 活动?
我一直在阅读 GHC 中的新 IO 管理器,它使用异步事件通知并避免阻塞 I/O 来实现高吞吐量。
哪些 IO 活动有资格由新的异步 IO 代码管理?读写文件和网络活动?数据库访问?是否存在经理必须诉诸阻塞的 IO?
haskell - Haskell 列表推导中的任意输入集
我如何在 Haskell 中使用列表推导中的任意输入集?
我会给你一个我所追求的例子:
haskell - 如何构建一个使用文本库的分析程序?
我正在构建一个链接到文本库的程序。当我在没有分析的情况下构建它时,一切正常:
当我使用分析构建它时,我收到以下错误:
我通过 cabal 安装了 text-0.11.0.1 的分析版本,但似乎没有找到它。我猜 text-0.10.0.0 是随 Haskell 平台安装的。Aghc-pkg list text
给了我以下信息:
如何使用 text-0.11.0.1 的分析版本编译此程序?
haskell - 内联函数仍显示在 .prof 文件中
我试图弄清楚如何优化一些代码。这里是:
当我使用 ghc 6.12.1(i486 机器上的 ubuntu linux)编译时
ghc --make -O2 Vec.hs -prof -auto-all -fforce-recomp
并运行
vec +RTS -p
查看 Vec.prof 文件,
我看到函数 vx 和 vy 占用了很大一部分时间。
这是为什么?我认为 SPECIALIZE INLINE 杂注会使这些功能消失。
使用非多态时
函数 vx、vy、vz 不显示为成本中心。
optimization - Haskell中自动并行的现状
可能重复:
Haskell 中的多核编程现状如何?
特别是在 GHC 中的地位如何?它是流行的,还是仍在试验中?
编译器在决定何时以及如何并行化时有多谨慎/细粒度?运行时是否适当地选择了线程池的大小,或者我们必须通过命令行指定?
haskell - Haskell 中尚未在 GHC 中实现的可能优化?
因此,由于纯代码和非纯代码之间的明确区分,纯函数式语言具有自己的潜力类别。我已经看到了一些在 Haskell 中实现起来更简单的功能,例如Nested Data Parallelism或Stream Fusion。
我的问题是,在可行性/简单性方面,Haskell 或多或少独特但尚未实施的其他改进/优化是什么?(我主要关心 GHC,但也喜欢听别人说)
haskell - 可存储空数据声明
我正在尝试为 C 库创建一个 Haskell 包装器。底层结构过于复杂,无法表示为显式类型,除了在 C 函数之间传递之外,我实际上并没有使用它们,所以我EmptyDataDecls
让 GHC 为我解决问题。
我需要的是一个指向这些数据类型之一的指针,但是当我尝试用它创建一个时,alloca
它抱怨数据不是 type Storable
。例如:
GHC 不会编译这个,说没有Storable Struct
. 我可以自己实现它:
但这接近于违背目的 - 如果我不关心结构中的内容,我不想定义这些东西。
我注意到指向指针的指针工作正常,因为Ptr
类是Storable
. 所以我可以通过在调用之前使用peek
on来完成我的目标:ptr
get_struct
不过,这感觉像是一种黑客行为。
有没有办法在Storable
不定义实例的情况下考虑空数据声明?
performance - 为什么 `(map digitToInt) 。show`这么快?
将非负数Integer
转换为其数字列表通常是这样完成的:
我试图找到一种更直接的方法来执行任务,而不涉及字符串转换,但我无法想出更快的方法。
到目前为止我一直在尝试的事情:
基线:
从 StackOverflow 上的另一个问题得到这个:
试图推出我自己的:
这个灵感来自showInt
于Numeric
:
现在是基准。注意:我强制使用filter
.
这是参考。现在为digits2
:
那是3.46倍。
digits3
慢4.89倍。只是为了好玩,我尝试只使用 revDigits3 并避免使用reverse
.
奇怪的是,这甚至更慢,慢了5.24倍。
最后一个:
这慢了10.43倍。
我的印象是,仅使用算术和 cons 会胜过任何涉及字符串转换的操作。显然,有些东西我无法掌握。
那么诀窍是什么?为什么digits
这么快?
我正在使用 GHC 6.12.3。