问题标签 [compatibility]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
206 浏览

api - 开发 API:平衡新特性和向后兼容性

我现在正在为我们产品的开发人员功能开发 API 。

第一个版本已经发布,目前用户数量很少。自从我开始开发它的第二个版本以来,一些部分被重新设计,一些部分被删除以使 API 更加优雅和清晰。

但是对于旧版本用户来说,第二版部署可能会很痛苦。我们的营销部门正计划大量增强我们的 API 产品,为其添加更多功能。

我应该如何构建系统,所以
1)我们不会受限于“旧版本”来添加新的有趣功能
2)当前的 API 用户不会因为需要重新设计他们的系统以符合要求而感到不满意更改后的 API

或者 API 产品是否应该在公开发布之前在沙盒中测试相当长的一段时间,这样规范就不会有任何重大修改?

0 投票
9 回答
113323 浏览

java - Java 32 位与 64 位兼容性

针对 32 位 JDK 构建和编译成 32 位字节代码的 Java 代码是否可以在 64 位 JVM 中工作?还是 64 位 JVM 需要 64 位字节码?

为了提供更多细节,我的代码在运行 32 位 JVM 的 Solaris 环境中工作,但现在我在将 JDK 和 Weblogic Server 升级到 64 位后遇到了问题。

0 投票
1 回答
348 浏览

windows-xp - 能否在 XP 机器上运行 Target Designer for NT 4.0?

我试图在 Windows XP 系统上运行 Microsoft Windows NT Embedded 4.0 Target Designer,但是当我尝试构建时,我得到了错误。你有没有这样做过,如果是这样,有没有让它工作的诀窍?

到目前为止,我从 Microsoft 找到的最好线索是开发系统硬件要求文档包括“Windows NT 4.0 Service Pack 4 或更高版本”,但我不知道 XP 是否被视为 NT 4.0 的有效“或更高版本” .

当我尝试通过在 Windows NT 4.0 或 Windows 2000 兼容模式下运行 Target Designer 来构建映像时,在构建注册表/添加组件参数期间出现此错误:

当我在XP下正常运行时,在Build Registry / Binding Network过程中出现的错误是:

0 投票
4 回答
10288 浏览

visual-studio-2008 - Visual Studio 2010 是否向后兼容 Visual Studio 2008 的插件?

我不想丢失 Visual Studio 2008 中的一些非常棒的插件,但我听说 Visual Studio 2010 将使用 MEF。这是否意味着我可以和我跳舞的香蕉说再见了?

0 投票
7 回答
865 浏览

linux - 在 64 位操作系统上开发有什么优势吗?

我不确定我是否理解正确:在同一系统上,64 位操作系统运行/编译代码是否比 32 位操作系统快?

我们使用的是 64 位操作系统,它似乎只会导致与旧版和专有软件的兼容性问题。(我们正在运行 Ubuntu 9.04 Jaunty amd64)

0 投票
4 回答
715 浏览

assembly - 为什么现成的应用程序可以在 Intel 和 AMD 处理器上运行?

我缺乏理解的一件事是为 Intel CPU 编译的代码如何在 AMD CPU 上工作。

我的基本理解是,例如,如果您编译 C 代码,编译器会将源代码转换为机器语言,机器语言将具有针对特定处理器的指令。因此,您需要为您希望应用程序使用的任何平台使用编译器进行编译。为什么您不需要针对 AMD 和 Intel 的编译器,而必须为特定处理器购买软件?

我知道 AMD 处理器和 Intel 处理器在旧的 x86 指令中有一些兼容性。我想知道的是他们是怎么做到的?我的意思是,不像 AMD 或 Intel 互相打电话并告诉对方他们的商业机密,那么他们如何创建兼容的指令集呢?

是否所有的兼容性仍然基于 386 指令集,以及诸如“如果 AMD CPU,这样做 ELSE IF INTEL 那样做”之类的语句?

0 投票
2 回答
169 浏览

linux - linux下j2EE/Flex的开发平台?

在工作中,我们为所有笔记本电脑运行 vista。我不太喜欢它。由于许可证(和金钱)问题,XP 不是一个选项。老板和团队什么都可以,因为工作已经完成。

所以我希望将我的开发平台切换到linux(我不在乎)。

问题:我们正在 Adob​​e Flex 中构建一些东西。而且我已经为这对 flex / linux 读了很多不好的东西。

我的问题:我能否在 Linux 下使用 eclipse 和 flexbuilder 插件在不受巨大限制的情况下开发 Flex/J2EE 应用程序。(或至少 eclipse + flexSDK 编译器)

谢谢你的建议。

0 投票
4 回答
7779 浏览

c++ - 使用 Boost 创建具有向后兼容 ABI 的库

我正在研究某个 C++ 库(或更多框架)。我想让它向后兼容以前的版本,不仅保留 API 兼容性,还保留 ABI(就像 Qt 所做的出色工作一样)。

我使用了 Boost 的许多功能,在我看来,这使得向后兼容变得不可能,除非我强迫用户拥有完全相同(有时是旧的)版本的 Boost。

有没有办法(不重写 Boost 的 1/2)在其命名空间周围制作一些“前缀”/重命名它以防止它干扰用户版本的 Boost?

例如我的 libXYZ 使用 Boost 1.33 并且它有 class boost::foo. 在 1.35 版本boost::foo中升级并添加了新成员,因此,boost::foo从 1.33 和 1.35 开始不兼容 ABI。因此,libXYZ 的用户必须使用 Boost 1.33 或使用 Boost 1.35 重新编译 libXYZ(这可能已经以 XYZ 无法编译的方式破坏了某些 API)。

注意:我说的是带有 ELF 的 UNIX/Linux 操作系统,其中动态链接类似于静态链接,因此您不能链接两个不同版本的库,因为符号会干扰。

我可能想到的一种合适的解决方案是将 Boost 放在其他一些私有名称空间中。因此,libXYZ 将使用::XYZ::boost::foo而不是::boost::foo. 这将防止与用户可能使用的其他版本的 Boost 发生冲突。

因此,libXYZ 将继续与 Boost 1.33 一起工作,静态或动态链接到它与其他命名空间,假设它:

  • 不会在外部公开 Boost API。
  • 将保持公开 API 的稳定私有版本。

有没有办法用Boost做这样的事情?

编辑:最后我决定创建一个脚本,将源中的所有 boost 符号重命名为一些自定义符号。

基本原理:简化构建过程,独立于编译器可见性支持,而且它的可见性仅适用于动态库,对于静态这不起作用,所以我需要为每种类型的库单独构建和依赖。

该脚本在那里可用: http: //art-blog.no-ip.info/files/rename.py

编辑 2: Boost BCP 的最新版本支持命名空间重命名。

0 投票
3 回答
138 浏览

windows-vista - 使您的 WinXP 应用程序与 Vista 兼容需要多长时间?

“你问的问题似乎很主观,很可能会被关闭。”
是的,这是一个主观问题。
它没有答案。

我只是想知道如果我是唯一的一个。
所以……痛吗?
我只是想听听一些意见。

捷豹

PS 当然,这一切都取决于应用程序的大小、编写的语言、编程习惯的好坏等等……

0 投票
2 回答
579 浏览

sql-server-2005 - sql 2005 和 2008 之间的已知和“未知”不兼容性?

像往常一样,我们希望将我们的应用程序迁移到最新的 sql 版本不会有任何问题......

但...

但...

但...

好吧,只是为了做好准备,有人偶然发现了一些令人讨厌的不兼容问题吗?

(例如,我记得从 2000 年迁移到 2005 年之后,我们不得不连接到 sql 6.5 服务器的一个链接服务器停止工作)