我担心GHC
中异步异常的处理可能会成为许多应用程序的净丢失。
虽然the paper解释了设计的细节,但对于普通程序员来说,这种方法在日常工作中是否提供任何好处都太复杂了。
第2节列出了当前方法的四个原因(推测计算,超时,用户中断和资源耗尽)。在我看来,三个是关于取消计算的能力,一个是关于从资源耗尽中恢复的能力,我觉得有问题(有没有公开的代码可以证明这一点?)。
特别是,如本文所述,Java
已弃用Thread.stop()
,因为中止计算会导致未定义状态。 IO
中的GHC
次操作不是一样的吗?添加惰性并且API变得更加复杂,相比之下,对大多数应用程序没有明显的好处。
总结一下,如果GHC
使用与Java
相同的方法(安全点,中断轮询),会给生态系统带来什么后果?