dep指定版本 go_Go 1.12 版本的新特性
Go 1.12
昨天,Go 官方發布 1.12 版本。本文介紹下 Go 1.12 版本變更的內容。
Go 1.12 正式版發布了,距離上個正式發布版 Go 1.11 已經過去半年。跟往常一樣,Go 1.12 保持了 兼容性承諾,預期所有 Go 程序會像之前一樣正常編譯。新版本的更新亮點有: TLS 1.3 的初步支持、模塊支持的更強大以及提升 macOS & iOS 的前向兼容性。新版在語言規范方面沒做改動。
工具
go tool vet?不再支持;
二進制包在下個版本將不再支持;
go tool tour?不再包含在主二進制發行版中,需要手動安裝;
Go 1.12 在 trace 工具加入了Mutator Utilization 圖的支持,它可以方便發現 GC 性能受限的情況;
Go Module 進一步支持。計劃在?Go 1.13?默認啟用 module 模式。
當?GO111MODULE?設置為?on?時,go 命令現在支持模塊目錄之外的模塊感知操作,前提是這些操作不需要解析相對于當前目錄的導入路徑或顯式編輯?go.mod?文件。諸如?go get?,go list?和?go mod download?之類的命令就像在具有初始空要求的模塊中一樣。
go 命令下載和解壓縮模塊現在可以安全地同時調用。模塊高速緩存(GOPATH/pkg/mod)必須駐留在支持文件鎖定的文件系統中。
go.mod?文件中的 go 指令現在指示該模塊中文件使用的語言版本。如果沒有現有版本,它將被設置為當前版本(go 1.12)。如果模塊的go指令指定的版本比正在使用的工具鏈更新,則 go 命令將嘗試構建軟件包,并且僅在該構建失敗時才會記錄不匹配。
當使用活動模塊無法解析導入時,go 命令現在將在查詢模塊高速緩存和常用網絡源之前嘗試使用主模塊的replace 指令中提到的模塊。如果找到匹配的替換但但replace指令未指定版本,則 go 命令使用從零time.Time(例如?v0.0.0-00010101000000-000000000000)派生的偽版本。
Runtime
提升了大量堆(Heap)活躍狀態情況下的清理性能,這減少了垃圾回收之后的分配延遲,可以更好地將內存釋放回操作系統;
Runtime 的 timer 和 deadline 代碼隨著 CPU 數目的增加,會有更好的表現。這提升了網絡連接最后期限(deadline)相關操作的性能;
對大型堆分配的相關修復,提升了內存配置文件的精確性;
平臺相關
其中關于 FreeBSD 和 macOS,Go 1.12 是最后一個支持 FreeBSD 10.x 和 macOS 10.10 Yosemite 的版本。下個版本的 Go 1.13 將要求 FreeBSD 11.2+ 或 FreeBSD 12.0+,對于 macOS,則要求 macOS 10.11 El Capitan 或更新版本。
核心庫
TLS 1.3
Go 1.12 在 RFC 8446 指定的crypto/tls包中添加了對 TLS 1.3 的選擇支持??梢酝ㄟ^將值?tls13 = 1?添加到?GODEBUG環境變量來啟用它。 它將在?Go 1.13?中默認啟用。
庫的微小變更。與往常一樣,承諾保持?Go 1的兼容性情況下,庫中有各種微小的更改和更新。
小結
Go 的包管理是一直為人詬病,從 Go 1.5 引入的 vendor 機制,到準官方工具dep,go modules?隨著 Go 1.11 的發布而和我們見面了,這是官方提倡的包管理,乃至項目管理機制,可以不再需要GOPATH的存在。到當前的 Go 1.12 ,Go 語言做了很多努力,正如 Go 官方博客所說:
2018 was a great year for the Golang ecosystem, with package management as one of our major focuses.
2018 年是 Go 生態系統的重要一年,包裝管理是我們的主要關注點之一。 2018 年 2 月,在社區范圍內討論如何將軟件包管理直接集成到Go工具鏈中,并且在8月份,Go 1.11中提供了該功能的第一個粗略實現,稱為?go modules。 遷移到?go modules將是 Go 生態系統中影響最深遠的變化。轉換整個生態系統:代碼、用戶、工具等。從 GOPATH 轉換到模塊將需要在許多不同領域開展工作。 模塊系統將幫助我們為Go生態系統提供更好的身份驗證和構建速度。
相比 godep 和 vendor 機制而言,go modules?已經很先進,Go 1.12 已經發布,可以考慮逐步遷移到go modules。
了解更詳細的發布日志,查看原文?https://golang.org/doc/go1.12 。
訂閱最新文章,歡迎關注我的公眾號
微信公眾號參考
Go 1.12 Release Notes
Go Modules in 2019
總結
以上是生活随笔為你收集整理的dep指定版本 go_Go 1.12 版本的新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 创建全国文明城市宣传文案40句
 - 下一篇: 一路风景一路心情句子185个