现在我对 Y 持有的对象的功能做了一个小的改变。
需要做什么取决于您所做的具体更改。对于这些类型的情况,我们可以区分两种类型的更改:ABI 破坏性更改和 ABI 兼容更改。
ABI(应用程序二进制接口)是二进制级别的编译对象的接口。与 C++ 函数具有 API 的方式类似(例如,函数的签名是 API 的一部分),编译后的机器语言具有 ABI,该 ABI 取决于 API 和调用约定等。
了解哪些更改是 ABI 破坏性的,哪些不是,有时可能是一项艰巨的任务。但作为一个经验法则:
现在,如果您破坏了YABI,您应该发布它的新版本(我们称之为Y-2)。X将不兼容Y-2并且需要升级(可选)和重新编译(强制性)并作为新版本发布(我们称之为X-2)。X并且Y-2不兼容 ABI。X-2并且Y不兼容 ABI。
如果YABI 未受影响,您可以安全地分发Y(我们称之为Y-1.1)的新版本,它将Y在目标计算机上替换并与原始X.
从评论中可以看出:
我所做的更改只是删除了一个泄漏的对象并将其设为 NULL。
这既不是 API 也不是 ABI 重大更改。您只能安全地分发Y-1.1。
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |