“奔腾安全的FDIV"指的是Pentium安全的FDIV....在2014年? [英] "Pentium-safe FDIV" ... in year 2014?

查看:36
本文介绍了“奔腾安全的FDIV"指的是Pentium安全的FDIV....在2014年?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每次查看编译器设置时,都会想到相同的问题:为什么当前的Delphi编译器仍具有奔腾安全的FDIV"编译器选项?

Everytime I look in the compiler settings, the same question comes into my mind: Why does the current compiler of Delphi still have the "Pentium-safe FDIV" compiler option?

Pentium-FDIV-Bug于1994年11月发现,在1995年的CPU模型中没有出现.此时的处理器可能仅足以与Windows 95、98和Me一起使用.据我所知,第一个具有133 MHz频率的Intel Pentium 1 CPU(因此足够快以达到Windows 2000的最低系统要求)于1995年6月发布,当然没有FDIV错误.

The Pentium-FDIV-Bug was found in November 1994 and did not occur in CPU models of 1995. Processors at this time were probably only strong enough work with Windows 95, 98 and maybe also Me. As far as I know, the first Intel Pentium 1 CPU with 133 MHz (and therefore fast enough to reach the minimum system requirements of Windows 2000) was released in June 1995, without FDIV bug, of course.

当前Delphi版本的VCL/RTL使用Windows API,这在古代的操作系统中是不可用的.Windows 98和Me不能与空的Delphi XE6 VCL应用程序一起使用.我没有检查Delphi XE6的VCL/RTL是否已经破坏了Windows 2000的兼容性,但是我认为是这样.

The VCL/RTL of current Delphi versions makes use of Windows APIs which are not available in ancient Operating Systems. Windows 98 and Me do not work with an empty Delphi XE6 VCL application; I didn't check if the VCL/RTL of Delphi XE6 has already broken Windows 2000 compatibility, but I think so.

那么,当Embarcadero放弃对2000年使用的操作系统的支持时,为什么仍保留1994年使用的编译器开关?抱歉,没有人会需要此编译选项,因为受影响的CPU仍将与VCL/RTL要求的操作系统不兼容.

So, why does Embarcadero keep a compiler switch which was used in 1994, when they drop support for Operating Systems which were used in year 2000? Ergo, nobody will require this compile option, since the affected CPUs won't be compatible with the Operating Systems the VCL/RTL requires anyway.

更新;为了澄清这个问题:是否有任何用例在此开关可能有用的情况下?还是编译器在内部忽略该选项,而只是保留旧项目文件的选项?

Update; To clarify the question: Is there any use-case where this switch might be useful? Or maybe the compiler internally ignores the option, and it is just there to preserve the options for old project files?

推荐答案

Pentium划分错误影响了许多早期的Pentium模型.受影响模型的最高时钟速度为100MHz.官方文件表明Delphi XE6面向Vista和更高版本,但实际上仍然可以针对Windows XP,我相信XE6可以使运行在Windows 2000上的可执行文件.XP的最低要求是233MHz处理器,Windows 2000为133MHz处理器.

The Pentium divide bug affected a number of the very early Pentium models. The highest clock speed of the affected models was 100MHz. The official documents indicate that Delphi XE6 targets Vista and up, but in reality it is still possible to target Windows XP, and I believe that XE6 can make executables that run on Windows 2000. The minimum requirements for XP are a 233MHz processor, and for Windows 2000 a 133MHz processor.

因此,您可能可以在有故障的奔腾处理器上运行XE6编译的代码,这似乎是合理的.实际上,至少在过去的15年中,Embarcadero的任何人都不会感到有义务支持有缺陷的Pentium处理器.根本没有在21世纪的野外看到过它们.

So, it is just about plausible that you might be able to run code compiled by XE6 on a defective Pentium processor. In reality, nobody at Embarcadero, for at least the past 15 years, will have felt any obligation to support defective Pentium processors. They simply have not been seen in the wild in the 21st Century.

那么,为什么未删除编译器功能?只有Embarcadero知道答案,但是我可以给出一些明显的原因:

So, why has the compiler feature not been removed? Only Embarcadero know the answer to that but I can give a few obvious reasons:

  1. 删除此功能会干扰向后兼容性.如果有人(即使他们不需要)在启用开关的情况下进行构建,那么将其删除也会影响他们.
  2. 删除功能成本.这样做需要更改UI,编译器,文档,测试套件等.
  3. 删除功能会带来风险.每当您更改代码,经过多年尝试和测试的代码时,都存在引入新缺陷的风险.

这篇关于“奔腾安全的FDIV"指的是Pentium安全的FDIV....在2014年?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆