Haskell 如何使用Shake库构建反应式构建系统?
有没有可能使用inotify(或git附件和YesSOD使用的任何东西)使Shake成为反应式的,这样,如果文件系统以暗示应该执行规则的方式发生变化,它就会尽早执行?Shake的作者尼尔·米切尔(Neil Mitchell)回答说: 有几种方法可以实现这一点:Haskell 如何使用Shake库构建反应式构建系统?,haskell,reactive-programming,shake-build-system,Haskell,Reactive Programming,Shake Build System,有没有可能使用inotify(或git附件和YesSOD使用的任何东西)使Shake成为反应式的,这样,如果文件系统以暗示应该执行规则的方式发生变化,它就会尽早执行?Shake的作者尼尔·米切尔(Neil Mitchell)回答说: 有几种方法可以实现这一点: 您可以在每次检测到某些内容时重新运行Shake 改变。Shake经过高度优化,可实现快速重建(如果更改 需要进行编译,然后是Shake找出原因的时间 重建可能是最小的。不需要改变就可以震动 Shake在启动时会做一些事情,比如阅读 摇动数
我们还确定,将Shake与Hobbes这样的实用程序(也在Hackage上)相结合可以实现反应性构建。这个问题似乎离题了,因为它是对Shake的功能要求,而不是编程问题。@PetrPudlák我将这个问题解释为“如何使用Shake库构建反应性构建系统?”,因为至少有一个答案不需要新功能。我使用Shake作为生成管理器,第2步对我来说大约需要300毫秒,这对于任何合理的自动轮询方法来说都太慢了。@nominolo如果这对您有关系,请告诉我,我将重做API以避免重新运行的开销。如果您的用例有一个Haskell配置文件,我很乐意看到它,因为它可能会识别出300ms中的其他故障。