ANSI标准化过程的注释
在某个地方,我看到了ANSI委员会中有人的一些个人笔记。我以为是肯特·皮特曼(Kent Pitman),但搜索他的网站并没有任何事情。 Google也没有。
我对决定不将条件系统与CLOS集成的背景感兴趣。 Cltl2将其作为既成的成就,我很好奇为什么它没有发生。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
条件系统没有与CLOS集成,因为存在与未基于关闭的现有状态系统的实现(在至少一种情况下是基于风味的),因为直到标准化中很晚才完全不存在CLOS过程。由于条件系统在任何实施中都具有很深的根源,因此要求这些实现将其肠道的很大一部分剥夺并用一些基于闭合的胆量代替它们,这将使它们置于这些方面 - 这是实现的目的首先使复杂的条件处理成为可能 - 处于巨大的劣势。这样做本来是愚蠢的,并且本来会脱轨,因为这些实施的代表将对这样的决定有很大的影响。因此做出了正确的决定。
目前尚不清楚可以在库存硬件上真正表现出色(也许仍然不清楚,但是库存硬件现在如此之快,我们都很高兴地使用其他语言的实现,这些语言比良好的CLOS CLOSSHITATION都慢得多。可能是问题不再重要)。 CL也被认为是非常大的(很难记住我成熟的毛茸茸的CL IDE包含整个高度启发的且所有自己的文档都是我的Web浏览器的大小的2/3),因此人们考虑了不包含CLOS的子集实现的考虑但确实需要包含条件系统。
特别是值得研究的是CLHS问题(不是规格的一部分),以下文本来自于此:
这不是规范性的文字,但您可以看到人们在想什么。
The condition system was not integrated with CLOS because there were implementations with existing condition systems which were not CLOS-based (they were, in at least one case, flavors-based), because CLOS did not exist at all until pretty late in the standardisation process. Since a condition system has really deep roots in any implementation, requiring those implementations to rip out a great part of their guts in and replace them with some CLOS-based guts would have placed them – the very implementations which had gone out of their way to make sophisticated condition handling possible in the first place – at a huge disadvantage. Doing that would have been both stupid and would have derailed the standardisation process, since the representatives of those implementations would have been considerably antagonised by a decision like that. So the right decision was made.
It was also unclear at the time that CLOS could be made really performant on stock hardware (perhaps this is still unclear, but stock hardware is now so fast and we all happily live with implementations of other languages which are hugely slower than a good CLOS implementation can be so the problem no longer matters). CL was also considered really big (hard to remember when my fully-fledged hairy CL IDE containing the entire hyperspect and all its own documentation is 2/3 the size of my web browser), so people thought about subset implementations which might not contain CLOS but really needed to contain the condition system.
In particular it is worth looking at the CLHS issue (not part of the spec) CLOS-CONDITIONS-AGAIN, from which comes the following text:
This is not normative text but you can see what people were thinking.