- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Haskell 程序,我想用 GHC 进行编译,由 Shake 构建系统编排。我应该执行哪些命令,在什么情况下应该重新运行它们?
最佳答案
有两种方法可以进行编译,也有两种方法可以获取依赖项。您需要从每组中选择一个(所有 4 种组合都有意义),以得出组合方法。
编译
您可以:
.hs
文件及其传递导入的任何 .hi
文件依次对每个文件调用 ghc -c
,生成都是 .hi
和 .o
文件。最后,根据所有 .o
文件调用 ghc -o
。实际代码see this example ..hs
文件调用一次ghc --make
。实际代码see this example .ghc --make
的优点是它比多次调用 ghc -c
更快,因为 GHC 可以加载每个 .hi
仅文件一次,而不是每个命令一次。通常加速比为 3 倍。缺点是并行性比较困难(您可以使用 -j
到 ghc --make
,但 Shake 仍然假设每个操作消耗一个 CPU),并且两个 ghc --make
如果编译在任何依赖项上重叠,则它们不能同时运行。
依赖关系
您可以:
import
语句(也许还有 #include
语句),或者使用诸如 haskell-src-exts
之类的库。 。对于具有非常近似的 import
解析器的实际代码 see this example .parseMakefile
来解析依赖关系。实际代码see this example .解析 Haskell 文件的优点是可以生成 Haskell 文件并且速度更快。使用ghc -M
的优点是更容易支持所有GHC功能。
关于haskell - 如何使用 Shake 编译 Haskell 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724824/
Shake 有 shakeVersion::String: Defaults to 1. The version number of your build rules. Change the vers
由于各种不幸的原因,我的部分构建需要 root 权限。我正在尝试使用 sudo为了这: cmd_ "sudo other_script.sh" [input] [output] 但是,大概是因为 Sh
我将 Xcode 更新到 9.0,现在 ⌘R 不再可以在 iOS 模拟器中重新加载应用程序,并且 ⌘D 不再打开开发者菜单。 开发者菜单的新快捷方式是 ^⌘Z,并且不再有重新加载应用程序的快捷方式。
我正在为我的应用程序开发简单的摇一摇功能,但我遇到了一个奇怪的问题。当我在我的 Honor5x 上测试它时,它就像一个魅力,但当我试图在三星 S5 上执行它时,它太敏感了。加速度计在不同设备上的工作方
我先找到example Shake 用法演示了一种似乎容易出错的模式: contents "txt" need contents cmd "tar -cf" [out] co
我正在使用 animate.css 实现 CSS3 摇动效果,CSS 看起来像下面的代码片段。现在它来回摇晃了好几次,我想把摇晃减半。有没有办法用 animate css3 来做到这一点,或者我需要修
我从 "Running" section of the Shake manual 创建了推荐的 build.sh 文件: #!/bin/sh mkdir -p _shake ghc --make Sh
我的应用程序上有一个可以由用户调整大小的控件,它有一些按钮固定在右上角,还有一个滚动条。 问题在于,当调整控件大小时,锚定在右侧的控件也会更改位置,并且仅在几毫秒后控件才进入正确位置。因此,看起来子控
我希望我的应用随时启动 Activity 以响应手机的“摇动”。 是否建议在后台持续运行一个服务来监听加速度计的变化? 有没有其他方法可以做到这一点? 有很多应用可以执行此类操作。 最佳答案 是的,使
我有一个构建两组目标的项目。一种是手持设备的各种版本的固件,最终为每个设备创建一个 .dfu 文件。这使用了 arm 编译链。另一组是为构建平台编译代码的相同设备的模拟器(嗯,通常无论如何)。我继承的
我有这样的规则: "foo" *> \out do need something create "foo" somehow 构建正确,运行构建两次不会构建目标。然后我向这条规则添加一个系统:
在 Puppet/Chef 的脉络中;我真的很想将 Shake 用于不仅仅是本地构建。我认为 Shake 的原理足够抽象(虽然我没有深入研究过),可以将其用作更大的配置构建工具的基础。 最佳答案 免责
我对规则感到困惑 Shake用于确定输出是否需要重建。我有一个简单的文档构建,包含两个步骤。完整的构建文件如下,但总而言之,asciidoc 用于将 .txt 文件转换为 .dbxml(Docbook
使用 jQuery UI 的抖动效果会导致元素跑到换行符处,抖动,然后跑回来。我尝试改变CSS的位置等,但没有破解它,我觉得有一个正常的,优雅的解决方案。 http://jsfiddle.net/Sh
在iPhone App中如何实现摇动手势? 请帮忙并提出建议。 谢谢 最佳答案 如果您的 ViewController 启用第一响应者 [self becomeFirstResponder] 并实现m
在 Shake 文档中,它建议使用标志 -with-rtsopts=-I0 进行编译。禁用空闲垃圾收集。为什么Shake建议这样做? 最佳答案 默认情况下(不带标志)如果所有 Haskell 线程空闲
我正在尝试了解如何使用 Shake 以及如何构建新规则。作为练习,我决定实现我称之为 backup 的规则。 我们的想法是在文件不存在或文件太旧(让我们超过 24 小时)时生成一个文件。我喜欢将长命令
我对测试库私有(private)类/函数的简单方法很感兴趣。下面有两个文件用于测试文件 curves_attribution.dart 中的代码。后者 (2) 是 http://pub.dartlan
我想摇动“#error_message”div。我正在做: $('#error_message').effect('shake', {times: 2, distance: 5}, 200); div
我正在尝试制作一个元素,它可以来回摇晃并变小,然后在单击时重置为其原始大小。问题是,当点击时,它似乎经历了尺寸循环,但在第一个之后,它就不再晃动了。如果尝试到处移动功能,但似乎没有任何效果。我的代码中
我是一名优秀的程序员,十分优秀!