- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每次查看编译器设置时,我都会想到同样的问题:为什么当前的 Delphi 编译器仍然具有“Pentium-safe FDIV”编译器选项?
Pentium-FDIV-Bug 于 1994 年 11 月被发现,并没有出现在 1995 年的 CPU 型号中。此时的处理器可能只能在 Windows 95、98 甚至 Me 上运行。据我所知,第一个 133 MHz 的 Intel Pentium 1 CPU(因此速度足以达到 Windows 2000 的最低系统要求)于 1995 年 6 月发布,当然没有 FDIV bug。
当前 Delphi 版本的 VCL/RTL 使用了古代操作系统中不可用的 Windows API。 Windows 98 和 Me 不能使用空的 Delphi XE6 VCL 应用程序;我没有检查Delphi XE6的VCL/RTL是否已经破坏了Windows 2000兼容性,但我认为是的。
那么,为什么 Embarcadero 保留了 1994 年使用的编译器开关,而放弃了对 2000 年使用的操作系统的支持?因此,没有人会需要此编译选项,因为受影响的 CPU 无论如何都不会与 VCL/RTL 所需的操作系统兼容。
更新;为了澄清这个问题:这个开关是否有任何有用的用例?或者编译器可能在内部忽略该选项,它只是为了保留旧项目文件的选项?
最佳答案
奔腾除法错误影响了许多早期的奔腾型号。受影响型号的最高时钟速度为 100MHz。官方文档表明Delphi XE6针对Vista及更高版本,但实际上仍然可以针对Windows XP,并且我相信XE6可以制作在Windows 2000上运行的可执行文件。XP的最低要求是233MHz处理器, Windows 2000 133MHz 处理器。
因此,您可以在有缺陷的奔腾处理器上运行 XE6 编译的代码,这似乎是合理的。事实上,至少在过去 15 年里,Embarcadero 没有人觉得有义务支持有缺陷的奔腾处理器。 21 世纪根本就没有在野外见过它们。
那么,为什么编译器功能没有被删除呢?只有内河码头知道答案,但我可以给出一些明显的原因:
关于delphi - "Pentium-safe FDIV"...2014 年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101125/
我收到了一位用户来自 MadExcept 的崩溃报告。异常是无效的浮点运算。 奇怪的是,调用堆栈在 @FSafeDivide 处终止。 我进行了谷歌搜索,发现这是对某些未正确执行除法的奔腾芯片的检查。
每次查看编译器设置时,我都会想到同样的问题:为什么当前的 Delphi 编译器仍然具有“Pentium-safe FDIV”编译器选项? Pentium-FDIV-Bug 于 1994 年 11 月被
我是一名优秀的程序员,十分优秀!