平台電子報:2023 年 8 月

歡迎來到 OCaml 平台電子報第五版!

深入了解八月份的最新更新,並探索 OCaml 平台的發展。就像我們之前的電子報一樣,我們將重點介紹 OCaml 開發工作流程的最新發展和增強功能。

八月份,我們在最近採用的指導原則使用者角色之後,公開了 OCaml 平台路線圖的初始草案。該討論串引發了很多活動,我們很高興看到這麼多人參與討論 OCaml 開發人員工具的方向。非常感謝您積極參與對話並分享您的回饋!這促使與平台維護者進行了多次討論,當我們修改路線圖時,我們正在考慮您的所有回饋。

八月份的另一個頭條新聞是啟動將 wasm_of_ocaml 整合到 Dune 中的工作,以便將 OCaml 程式編譯為 WebAssembly (Wasm)。這是繼最近宣布 ocaml-wasm 組織之後的舉動。這是一個令人興奮的時刻!將 OCaml 程式編譯為 WebAssembly 正在成為現實!

但下面會有更多相關資訊。讓我們深入探討上個月發生的所有進展。

版本

以下是本月發佈的所有平台工具新版本

如需詳細的版本說明和公告,請瀏覽 OCaml 更新日誌

建置套件

[Dune] 探索 Dune 中的套件管理

貢獻者:@rgrinberg (Tarides)、@Leonidas-from-XIV (Tarides)、@gridbugs (Tarides)、@kit-ty-kate (Tarides)、@Alizter

本月,透過新增對各種 opam 功能的支援,在支援更多 opam 套件的鎖定目錄產生方面取得了良好的進展。值得注意的是,該團隊實作了一個新的when 動作來支援 opam 的條件建置步驟,以及隨附的 PR 來將 opam 篩選器轉換為 when 動作

還開始了從鎖定檔案初始化 Dune 環境的工作。這是將所有已實作功能 (來源擷取、opam 儲存庫管理、鎖定目錄產生等) 連結在一起的最後一個缺失的部分。這使得執行 dune build 來建置具有 opam 相依性的專案成為可能。

上述工作 (在產生鎖定目錄時擴展 opam 套件的涵蓋範圍,以及從鎖定目錄初始化 Dune 環境) 應在下個月繼續進行。該團隊也開始更徹底地追蹤 Dune 後續工作中的缺失功能。您可以查看 GitHub 上的問題清單

活動

[opam] opam 2.2 中對 Windows 的原生支援

貢獻者:@rjbou (OCamlPro)、@kit-ty-kate (Tarides)、@dra27 (Tarides)、@AltGr (OCamlPro)

繼上個月發佈 opam 2.2 第二個 alpha 版本後,opam 團隊開始處理第三個 alpha 版本,並合併了眾多的錯誤修正和改進

他們也開始處理為 Windows 產生靜態二進位檔

為預期 opam 2.2 的第一個 beta 版本,下一步是透過向上游傳送 ocaml-opam/opam-repository-mingwdra27/opam-repository 中的修補程式,使 opam-repository 與 Windows 相容。

這方面的工作將在下個月繼續進行,但同時,請隨時安裝 opam 2.2~alpha2 並報告您遇到的任何問題!

[Dune] 使用 wasm_of_ocaml 編譯為 WebAssembly

貢獻者:@vouillon (Tarides)、@hhugo

繼最近宣布 ocaml-wasm 組織後,wasm_of_ocaml 團隊在 Dune 上新增了一個PR,該 PR 支援將 OCaml 程式編譯為 WebAssembly (Wasm)!

目標使用者體驗將類似於 Dune 上的 JavaScript 編譯;也就是說,您將能夠將 wasm 新增為 Dune 可執行檔的模式

(executable (name foo) (modes wasm))

執行 dune build 將產生 Wasm 二進位檔。

PR 尚處於早期階段,並且正在積極審查中,但鑑於 wasm_of_ocaml 團隊在執行階段實作方面取得了令人矚目的進展,請持續關注未來幾週和幾個月的更多相關更新。

活動

[Dune] dune monitor:連線到正在執行的 Dune 建置

貢獻者:@Alizter

7 月,@Alizter 開始處理新的 dune monitor 命令,以連線到正在執行的 Dune 建置。

這項工作在本月繼續進行,並且作為其中的一部分,Dune RPC 進行了許多改進,包括報告失敗的工作更好的錯誤訊息

PR 已合併,新命令將在即將於 9 月推出的 Dune 3.11 中提供。

活動

[Dune] Dune 終端使用者介面

貢獻者:@Alizter、@rgrinberg (Tarides)

早在 4 月,Dune 推出了由 @Alizter 貢獻的新 tui 顯示模式,該模式旨在為 Dune 帶來類似 GUI 的體驗。

此進展在八月繼續,@Alizter 將 TUI 移植到 Nottui,這是一個基於終端的使用者介面程式庫,以便為 tui 模式新增更多互動性。特別是,錯誤訊息現在可以捲動,並且可以展開/最小化。

這些功能將在即將推出的 Dune 3.11 中提供。請試用新的 TUI,並讓 Dune 團隊知道您是否有任何回饋!

活動:

產生文件

[odoc] 將搜尋功能新增至 odoc

貢獻者:@panglesd (Tarides)、@EmileTrotignon (Tarides)、@julow (Tarides)、@jonludlam (Tarides)

在修正上個月發現的一些問題後,odoc 團隊開始積極審查 將搜尋列新增至 odoc 的 HTML 輸出的提取請求。

由於審查的結果,發現了一些相關問題,並且已將其作為在搜尋功能方面取得進展的先決條件加以解決。值得注意的是,連線到原始碼的穩定性需要透過實作語義錨點來改善。

下個月,odoc 團隊計劃繼續審查不同的提取請求,目標是在接下來的幾週內發布支援搜尋的 odoc 主要版本。

活動

[odoc] odoc 中影像和資產的語法

貢獻者:@panglesd (Tarides)

繼 7 月開始的討論之後,odoc 團隊開始實作工作,以在 odoc 中新增對影像和資產的支援。

目前正在進行實作參照任意資源的語法,這是搜尋功能和支援圖片的必要條件。

我們離在 OCaml.org 的中央套件文件中加入圖片越來越近了!

程式碼編輯與重構

[Merlin] Merlin 中對專案範圍參考的支援

貢獻者:@voodoos (Tarides), @trefis (Tarides), @Ekdohibs (OcamlPro)

如同上個月宣布的,八月份的重點是將必要的變更上游到編譯器。一個在編譯器上的 PR 已開啟,目前正在積極審查中。Merlin 團隊希望它能及時合併到 OCaml 5.2 的下一個版本中。

團隊也在考慮將修補程式回溯到編譯器的先前版本,並使其在 opam 上可用。這將允許人們提早開始測試此功能,而無需等待 OCaml 5.2 的發布。

活動