我注意到GHC(一种广泛使用的Haskell编译器)有一个用Python编写的测试套件,而不是Haskell(正如我天真地期待的那样).这是什么历史?用不同的语言编写测试套件有什么特别的好处吗?
编辑:根据评论中的建议,我在/ r/haskell中询问了这个问题.它现在已经生成了三个答案,我在下面引用它:
tathougies说:
测试套件驱动程序似乎是用Python编写的.Python是一种很好的高级脚本语言.
这就像问'为什么GHC使用Make而不是haskell'?可能因为make更好地运行内置外部依赖性解析的shell程序.
测试本身似乎是用Haskell编写的,验证编译器的某些属性并捕获回归.如果它们失败,则看起来通知python驱动程序,然后将错误报告给用户.
phadej补充道:
FWIW GHC的内置系统正在被重写以使用shake:Haskell库.
eacameron说:
我不知道.但GHC并没有像你和我一样使用Haskell的奢侈品.它必须使用以前版本的自身进行引导,并且它希望避免依赖性.Python是一个非常轻量级的要求,因为大多数系统(Windows除外)都内置了它.
早在2008年,在版本3.4之后,Eclipse更改了"运行"按钮的默认行为以尝试使用焦点启动文件,而不是启动上次运行的相同运行配置.如何恢复旧的行为?
我有一个包含重复邮件副本的mbox邮箱,它们的"X-Evolution:"标题不同.
我希望以尽可能快速和简单的方式删除重复的内容.看起来这已经写好了,但我还没有找到它,虽然我已经看过Python邮箱模块,各种perl mbox解析器,formail等等.
有没有人有什么建议?