[英]SDL2 Backward Compatibility Guarantees?
SDL2 通常被描述為打破了與 SDL 1.2 的向后兼容性。
這意味着在不同版本的 SDL2 中,API 和 ABI 保持向后兼容。
但是,我無法找到任何權威來源來證實情況確實如此。
例如, 對於 GLIBC,Red Hat 維護了一個網頁,其中聲明:
GNU C 庫 (glibc) 的不成文規則之一是針對舊版本 glibc 構建的程序將繼續針對較新版本的 glibc 工作。
這種保證對於可移植性非常有用,因為它意味着程序可以針對舊版本的 GLIBC 進行編譯,並在至少提供該版本或任何更新版本的 GLIBC 的任何平台上運行。
我能夠為 SDL2 找到的最接近這種保證的是Py SDL2 的發行說明,這是一個單獨的項目,它傳遞了對“向后兼容性”的引用:
改進了與舊 SDL2 版本的兼容性 […]
[…] 現在正確包裝以保持與以前的 SDL2 版本的向后兼容性
[…] 為以前的 SDL2 版本提供向后兼容性 […]
Github 上還有兩個問題,它們在使用SDL2 的上下文中提到了“向后兼容性”,但實際上根本不直接與 SDL 庫相關聯。
是否有任何官方或權威來源記錄或保證不同版本的 SDL2 的向后兼容性?
IE,如果我編譯一個程序以動態鏈接舊版本的 SDL2,是否可以安全地假設它可以在提供新版本 SDL2 的平台上運行?
根據SDL 的原作者和主要開發人員的說法,SDL2 開發的首要目標之一似乎是穩定 ABI,以便在 SDL 3 之前不會對其進行重大更改:
slouken Regular 2013 年 3 月
從今晚開始,SDL 2.0 已鎖定 ABI!
這意味着在 SDL 3 之前,API 不會發生重大更改。
干杯!
我們痴迷於 SDL2 具有向后兼容的 ABI。 無論您是使用 Steam Runtime SDK 還是任何舊的 SDL2 副本構建游戲,它都應該與 Steam 附帶的版本一起使用。
SDL 3 的開發計划采用類似的流程:
slouken評論於 22 天前(2022 年 10 月 4 日,格林威治標准時間 18:45)
我們目前的計划是在第一個 SDL3 發布之前立即對所有 ABI 進行重大更改,因此我們從一開始就有一個穩定的 ABI。
如果我們在 abi-laboratory.pro 上abi-laboratory.pro
,我們可能會看到 SDL2 在每個版本中或多或少地保持了其 promise 的完美 ABI 兼容性:
還可以通過單擊百分比來報告每個版本之間的特定更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.