问题标签 [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.

0 投票
1 回答
881 浏览

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.

0 投票
1 回答
710 浏览

haskell - 尝试构建 Cabal 库时出现 GHC 构建错误

我正在尝试在我的系统上构建/安装 Cabal,但遇到了以下依赖错误:

我安装了 GHC 7.0.1,据我所知 GHC 6.6.1 和后来的“文件路径”包?我不清楚“基地”到底指的是什么?

0 投票
2 回答
2045 浏览

haskell - GHC IO 管理器支持哪些 IO 活动?

我一直在阅读 GHC 中的新 IO 管理器,它使用异步事件通知并避免阻塞 I/O 来实现高吞吐量。

哪些 IO 活动有资格由新的异步 IO 代码管理?读写文件和网络活动?数据库访问?是否存在经理必须诉诸阻塞的 IO?

0 投票
1 回答
316 浏览

haskell - Haskell 列表推导中的任意输入集

我如何在 Haskell 中使用列表推导中的任意输入集?

我会给你一个我所追求的例子:

0 投票
1 回答
309 浏览

haskell - 如何构建一个使用文本库的分析程序?

我正在构建一个链接到文本库的程序。当我在没有分析的情况下构建它时,一切正常:

当我使用分析构建它时,我收到以下错误:

我通过 cabal 安装了 text-0.11.0.1 的分析版本,但似乎没有找到它。我猜 text-0.10.0.0 是随 Haskell 平台安装的。Aghc-pkg list text给了我以下信息:

如何使用 text-0.11.0.1 的分析版本编译此程序?

0 投票
2 回答
229 浏览

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 不显示为成本中心。

0 投票
3 回答
2308 浏览

optimization - Haskell中自动并行的现状

可能重复:
Haskell 中的多核编程现状如何?

特别是在 GHC 中的地位如何?它是流行的,还是仍在试验中?

编译器在决定何时以及如何并行化时有多谨慎/细粒度?运行时是否适当地选择了线程池的大小,或者我们必须通过命令行指定?

0 投票
3 回答
1602 浏览

haskell - Haskell 中尚未在 GHC 中实现的可能优化?

因此,由于纯代码和非纯代码之间的明确区分,纯函数式语言具有自己的潜力类别。我已经看到了一些在 Haskell 中实现起来更简单的功能,例如Nested Data ParallelismStream Fusion

我的问题是,在可行性/简单性方面,Haskell 或多或少独特但尚未实施的其他改进/优化是什么?(我主要关心 GHC,但也喜欢听别人说)

0 投票
2 回答
822 浏览

haskell - 可存储空数据声明

我正在尝试为 C 库创建一个 Haskell 包装器。底层结构过于复杂,无法表示为显式类型,除了在 C 函数之间传递之外,我实际上并没有使用它们,所以我EmptyDataDecls让 GHC 为我解决问题。

我需要的是一个指向这些数据类型之一的指针,但是当我尝试用它创建一个时,alloca它抱怨数据不是 type Storable。例如:

GHC 不会编译这个,说没有Storable Struct. 我可以自己实现它:

但这接近于违背目的 - 如果我不关心结构中的内容,我不想定义这些东西。

我注意到指向指针的指针工作正常,因为Ptr类是Storable. 所以我可以通过在调用之前使用peekon来完成我的目标:ptrget_struct

不过,这感觉像是一种黑客行为。

有没有办法在Storable不定义实例的情况下考虑空数据声明?

0 投票
2 回答
1202 浏览

performance - 为什么 `(map digitToInt) 。show`这么快?

将非负数Integer转换为其数字列表通常是这样完成的:

我试图找到一种更直接的方法来执行任务,而不涉及字符串转换,但我无法想出更快的方法。

到目前为止我一直在尝试的事情:

基线:

从 StackOverflow 上的另一个问题得到这个:

试图推出我自己的:

这个灵感来自showIntNumeric

现在是基准。注意:我强制使用filter.

这是参考。现在为digits2

那是3.46倍。

digits34.89倍。只是为了好玩,我尝试只使用 revDigits3 并避免使用reverse.

奇怪的是,这甚至更慢,慢了5.24倍。

最后一个:

这慢了10.43倍。

我的印象是,仅使用算术和 cons 会胜过任何涉及字符串转换的操作。显然,有些东西我无法掌握。

那么诀窍是什么?为什么digits这么快?

我正在使用 GHC 6.12.3。