Go 部落格
Go 1.5 發行
今天,Go 專案很榮幸地發布 Go 1.5,即 Go 的第六個主要穩定版本。
此版本對執行非常有意義的變更。編譯器工具鏈已從 C 轉換為 Go,移除了 Go 程式碼庫中最後的 C 程式碼痕跡。垃圾收集器已完全重新設計,帶來大幅減少垃圾收集暫停時間。與排程器相關的改進讓我們可以將預設GOMAXPROCS 值 (並行執行的 goroutine 數量) 從 1 變更為邏輯 CPU 數量。連結器的變更允許將 Go 套件分發為共用函式庫以連結到 Go 程式,且將 Go 套件建構到可能會連結或載入 C 程式的檔案或共用函式庫中 (設計文件).
此版本還包括開發人員工具改善。“內部”套件支援允許在套件間分享實作細節。針對外部分依賴關係的實驗性質支援是管理 Go 程式中依賴關係的標準機制中的一個進程。新的「go tool trace」 指令可讓使用者視覺化由執行時期中新的追蹤基礎架構所產生的程式追蹤。新的「go doc」指令提供了改良的命令列介面,以檢視 Go 套件文件。
還有幾個新的作業系統和架構移植。較為成熟的新移植為 darwin/arm、darwin/arm64(Apple 的 iPhone 和 iPad 裝置)以及 linux/arm64。此外,還提供 ppc64 和 ppc64le(IBM 64 位元 PowerPC,大端和小端)的實驗性質支援。
新的 darwin/arm64 移植和外部連結功能為Go mobile 專案添了燃料。此專案的一個實驗是要了解 Go 如何用於在 Android 和 iOS 裝置上建立應用程式。(Go mobile 工作本身並非此版本的組成項目。)
唯一的語言變更非常次要,是解除地圖文字語法中的限制,讓其更為簡潔明確,並與切片文字語法一致。
標準程式庫也新增和改善許多內容。flag 套件現在顯示更清楚的用法訊息。math/big 套件現在提供Float類型,可用於運算任意精準度浮點數。改善 Linux 和 BSD 系統上的 DNS 解析器已移除 cgo 需求,讓執行名稱查詢的程式不再需要 cgo。已將go/types 套件從golang.org/x/tools 儲存庫移至 標準程式庫中。(新的go/constant 和go/importer 套件也是此變更的結果。)reflect 套件已新增ArrayOf 和FuncOf 函數,類似於現有的SliceOf 函數。當然還有常規的較小修正和改進清單。
下一篇文章:Go GC: 以低延遲和簡潔性為優先
上一篇文章:GopherCon 2015 回顧
部落格索引