編譯器發布週期

OCaml 版本代表什麼?

OCaml 的發布版本遵循類似 Linux 的版本字串方案。OCaml 版本字串由三個數字組成,並可選擇性地在後面加上預發布或開發標籤 (%i.%i.%i[~alpha%i|~beta%i|~rc%i|+%s])。例如,4.14.1、5.1.0~alpha2 和 5.3.0+dev0-2023-12-22 都是有效的 OCaml 版本。

  • 第一個版本號碼(4.14.1 中的 4)是 OCaml 的主要版本。當 OCaml 語言新增主要新功能時,會更新這個版本號碼。例如,OCaml 5 新增了共享記憶體平行處理和效果處理器,而 OCaml 4 則引入了 GADTs(廣義抽象資料類型)。

  • 第二個版本號碼(4.14.1 中的 14)是 OCaml 的次要版本。每當 OCaml 發布新版本時,此號碼就會增加。特別是,新的 OCaml 次要版本可能包含重大變更。但是,我們會盡力維持向後相容性。

  • 最後一個數字(4.14.1 中的 1)是錯誤修復號碼。更新到最新的錯誤修復版本總是安全的,這些錯誤修復版本旨在完全向後相容,並且僅包含重要或非常安全的錯誤修正。

  • 預發布標籤 ~alpha%i~beta%i~rc%i(例如 5.1.0~alpha2 中的 ~alpha2)描述了目前正在測試的編譯器預發布版本。請參閱[下方](## Prerelease versions) 以取得更完整的說明。

  • 開發標籤 +tag 表示編譯器的開發或實驗版本。5.3.0+dev0-2023-12-22 中的 +dev0-2023-12-22 是編譯器用於其開發版本的 +dev%i-%date 形式標籤的範例。

何時發布新版本?

自 OCaml 4.03 以來,我們使用基於時間的發布排程:每六個月發布一個新的 OCaml 次要版本。

例如,在撰寫本文時,OCaml 的下一個計畫發布版本為

  • OCaml 5.2:大約在 2024 年 4 月
  • OCaml 5.3:大約在 2024 年 10 月

時間是近似值,因為當出現無法預見的問題時,我們通常會延遲發布以確保品質。因此,發布通常會延遲,通常最多延遲兩個月。

我們可能會隨時發布錯誤修復版本。

錯誤修復版本

如果我們發現會嚴重阻礙初始發布版本使用的問題,就會發布錯誤修復版本。在這種情況下,我們通常會回溯移植發布後整合到主幹中的安全錯誤修正。

大多數錯誤修復版本都是在 M.m.0 次要版本發布後一兩個月發布的 M.m.1 版本,以修復在預發布測試期間未發現的重要問題。

強烈建議使用者盡快切換到最新的錯誤修復版本。我們會盡力避免任何迴歸,讓此過程變得容易。

例外 LTS 版本

從 OCaml 4 切換到 OCaml 5 需要完全重寫 OCaml 執行階段。這對 OCaml 5 發布版本的穩定性產生了負面影響,包括:

  • 支援的架構
  • 支援的作業系統
  • 效能穩定性
  • 執行階段錯誤的數量

為了讓穩定版本易於使用,我們特別將 OCaml 4.14 維護為 OCaml 的長期支援版本。未來將會發布新的 OCaml 4.14 錯誤修復版本,直到 OCaml 5 被認為足夠成熟。

歡迎使用者提供關於 OCaml 5 中哪些修正程式也應納入 4.14 的回饋。

一旦 OCaml 5 穩定下來,就會停止對 OCaml 4.14 的此項延長支援。目前,我們預計支援 OCaml 4.14,直到 OCaml 5.4(大約在 2025 年 4 月)。

仍然需要協助嗎?

協助改善我們的文件

所有 OCaml 文件都是開放原始碼。發現有錯誤或不清楚之處嗎?提交提取請求。

OCaml

創新。社群。安全。