问题标签 [ghcjs]
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.
haskell - GHCJS/Haste 可以自己编译吗?
如果是这样,那么我可以让人们通过更改其(Haskell)配置来玩弄我的项目:在浏览器中重新编译它,然后在浏览器中重新运行它。我不在乎速度。我只想能够在浏览器中演示一个难以设置的桌面项目。因此,可能的新用户可以在几秒钟内看到他们是否喜欢它,而无需设置。
那该多酷啊!
根据我的阅读,GHCJS 将 STG 编译成 JavaScript。它说它使用 GHC API,所以我们也应该能够将它编译成 JavaScript,就像任何其他 Haskell 库一样。(对吗?)虽然 GHC 运行时有很多 C,但编译器本身是纯 Haskell 是真的吗?
所以:
- GHCJS 可以自己编译成 JavaScript 吗?
- Haste 可以自己编译成 JavaScript 吗?
- 是否已完成其中任何一项?(这就是http://haste-lang.org/try/的工作原理吗?它似乎需要一个网络。)
haskell - 如何为 .cabal 文件中的不同目标使用两个不同的编译器?
当我运行cabal build
它时,它使用一些 Haskell 编译器在我的 .cabal 文件中构建可执行文件和/或测试套件。
我可以控制哪个编译器用于不同的目标吗?理想情况下,我希望有单独的构建目标,在同一个.cabal
文件中使用 ghc 和 ghcjs。在我看来,有人可能想在同一个项目中使用 ghc 和 hugs 或两个版本的 ghc。这目前可能吗?
另外,cabal 如何决定运行时使用什么编译器cabal build
?我看到我的~/.cabal/config
文件中有一个编译器选项,但是将其从ghc
to更改为ghcjs
并取消注释它似乎并没有改变什么cabal build
。
javascript - 编译成 JavaScript 的 Haskell 程序怎么会比 JavaScript 本身更快呢?
与手动编写和优化的代码相比,出于显而易见的原因,我一直认为 GHCJS 生成的 JavaScript 程序非常慢。但是,在尝试它时,我注意到它并没有我想象的那么糟糕。我决定运行一系列小型基准测试来掌握真实性能,而这个让我特别惊讶。该程序只是用“1”填充一个数组并将它们相加。
哈斯克尔:
JavaScript:
还有一个粗略的基准:
GHCJS 怎么能比苗条、干净的原生 for 循环运行得更快?考虑到生成的代码应该暴露的装箱数量,这应该是不可能的。
haskell - 是否可以在浏览器中运行用 Haskell 编写的游戏?(也许通过 GHCJS?)
我想知道目前是否可以使用Helm或任何其他通过 GHCJS 在浏览器上运行的引擎在 Haskell 中编写游戏?
haskell - Why do I get "ghcjs-boot: command not found"?
I've installed ghcjs by the command
And I get something like
for my last line.
But when I tried this command
I got -bash: ghcjs-boot: command not found
What's the problem?
haskell - 致命:程序 autoreconf 是必需的,但未找到
我遵循了 GHCJS 的安装,当我来到“构建库”步骤时,我输入了命令ghcjs-boot --dev
但是我在终端中得到了以下几行
有谁知道这里有什么问题?
javascript - 我正确使用 ghcjs 吗?
我对 Haskell 和 ghcjs 很陌生。我从第一个“你好,世界!”开始。程序来学习。
这是我从 GHCJS wiki 复制的 Haskell 程序:
我使用命令ghcjs -o hello hello.hs
将其编译为 javascript,并尝试使用命令在终端上运行它node hello.jsexe/all.js
,但是当我尝试打开生成的文件“index.html”时:
但是当我在 Chrome 中打开它时,页面是空白的。有谁知道这里有什么问题?
haskell - 如何使用 GHCJS 从 Javascript 调用 Haskell
我一直在玩 GHCJS。FFI 可用于从 Haskell 调用 javascript,但我不知道如何反过来。假设我有一个在 Haskell 中编写的超级有用的实用程序函数:
有没有可能做一些事情,所以我可以从 Javascript 中调用它?我最接近的是注意到这h$main(h$main2CMainzimain)
将触发我的 Haskell 主函数。
javascript - 从 GHCJS FFI 绑定触发 JavaScript 导入/需要
我将使用 Famo.us 示例作为起点:
现在我有这些 GHCJS FFI 绑定:
— 如您所见,在内联 JavaScript 代码中,我总是需要引用诸如famous.core.FOO
使用完全限定名称之类的东西,而不是FOO
像通常那样。
这是使用这些 FFI 绑定的等效 Haskell 片段(为了清楚起见,隐藏在高级包装器后面):
这里的问题是:是否有可能让 GHCJS 自动生成 egvar Engine = famous.core.Engine
并var Surface = famous.core.Surface
在使用依赖于它的 FFI 绑定时在输出的 JavaScript 中导入?还是我唯一的选择是要么总是在我的内联 JS 中使用完全限定的名称,要么总是只为每个 FFI 绑定手动导入一个名称?
haskell - 带有反射/反射域的 XhrRequest
我想执行一个基本的 Ajax 请求,仅此而已。
我reflex
用于前端和Scotty
后端。Firefox Web 控制台告诉我请求成功,我在那里看到了预期的结果。但是网站从 切换Just "default"
到Nothing
而不是Just "success!"
.
这是一个完整的最小示例:
和Scotty
部分:
由于调试工具告诉我请求成功,我怀疑附近的错误,decodeXhrResponse
但我有点迷失如何继续调试,因为它只是被编译为(不可读的)Javascript。
我使用来自 GitHub 的 try-reflex Nix 脚本来设置所有内容并ghcjs hello.hs
在 Nix 环境中编译。
编辑:添加输出curl
: