簡體   English   中英

SDL2 向后兼容性保證?

[英]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 不會發生重大更改。

干杯!

來自 SDL 維基

我們痴迷於 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM