Go開(kāi)發(fā)團(tuán)隊(duì)正式宣布推出Go 1.11版本。新版本在工具鏈、運(yùn)行時(shí)和庫(kù)等方面有很多變化和改進(jìn),特別是增加了模塊支持和WebAssembly支持兩個(gè)新特性。
今天,Go開(kāi)發(fā)團(tuán)隊(duì)宣布推出Go 1.11正式版。
下載地址:https://golang.org/dl
這距離Go 1.10的發(fā)布已經(jīng)過(guò)去六個(gè)月。
新版本在工具鏈、運(yùn)行時(shí)和庫(kù)等方面有很多變化和改進(jìn),兼容性方面也依然會(huì)兼容舊版本。此外,新版本增加了兩個(gè)最激動(dòng)人心的新特性:對(duì)模塊(modules)和WebAssembly的支持。
模塊、軟件包版本控制和依賴關(guān)系管理
Go 1.11版本增加了對(duì)“模塊”(modules)這個(gè)新概念的初步支持,這是GOPATH的替代方案,集成了對(duì)版本控制和軟件包分發(fā)的支持。
使用modules,開(kāi)發(fā)人員將不再局限于在GOPATH中工作,版本依賴性信息是顯式而且輕量級(jí)的,并且構(gòu)建項(xiàng)更具可靠性和可重復(fù)性。
模塊支持功能目前仍處于實(shí)驗(yàn)性階段,根據(jù)Go 1.11用戶的反饋,細(xì)節(jié)可能會(huì)發(fā)生變化,Go開(kāi)發(fā)團(tuán)隊(duì)也在計(jì)劃增加更多工具。模塊支持可能仍有一些可能影響使用的問(wèn)題,因此請(qǐng)充分利用問(wèn)題跟蹤器進(jìn)行反饋或查閱解決方案。
WebAssembly
Go 1.11還為WebAssembly(js/wasm)添加了一個(gè)實(shí)驗(yàn)端口。這允許程序員將Go程序編譯為與四種主流Web瀏覽器兼容的二進(jìn)制格式。
目前,Go程序編譯為一個(gè)WebAssembly模塊,該模塊包括Go runtime,用于goroutine scheduling,garbage collection,maps等。因此,其大小至少約為2 MB,或壓縮為500 KB。Go程序可以使用新的實(shí)驗(yàn)性syscall/js包調(diào)用JavaScript。二進(jìn)制大小和與其他語(yǔ)言的互操作還不是優(yōu)先級(jí)的,但可能在將來(lái)的版本中解決。
由于添加了新的GOOS值“js”和GOARCH值“wasm”,Go工具現(xiàn)在將忽略名為* _js.go或* _wasm.go的Go文件,除非使用了那些GOOS/GOARCH值。如果你的現(xiàn)有文件名與這些模式一致,則需要重命名它們。
你可以在webassembly.org上閱讀有關(guān)WebAssembly(縮寫(xiě)為“Wasm”)的更多信息,并查看這個(gè)Wiki頁(yè)面,了解如何開(kāi)始使用Wasm with Go。
其他工具
導(dǎo)入路徑限制
由于 Go 模塊支持在命令行操作中為符號(hào)@指定了特殊含義,因此該Go命令現(xiàn)在不允許使用包含@符號(hào)的導(dǎo)入路徑。goget從未允許這種導(dǎo)入路徑,因此該限制只會(huì)影響用戶通過(guò)其他方式構(gòu)建自定義 GOPATH 樹(shù)。
Package 加載
新的軟件包golang.org/x/tools/go/packages提供了一個(gè)簡(jiǎn)單的API來(lái)定位和加載Go源代碼包。雖然它還不是標(biāo)準(zhǔn)庫(kù)的一部分,但對(duì)于許多任務(wù),它有效地替代了go/build包,后者的API無(wú)法完全支持模塊。這個(gè)AIP支持構(gòu)建分析工具,這些工具與Bazel和Buck等替代構(gòu)建系統(tǒng)同樣有效。
構(gòu)建緩存要求
Go 1.11 將是支持設(shè)置環(huán)境變量GOCACHE=off以禁用構(gòu)建緩存的最后一個(gè)版本。從 Go 1.12 開(kāi)始,將需要構(gòu)建緩存,作為消除$GOPATH/pkg的步驟。
編譯器工具鏈
默認(rèn)情況下,現(xiàn)在更多函數(shù)可以進(jìn)行內(nèi)聯(lián),包括調(diào)用panic的函數(shù)。編譯器工具鏈現(xiàn)在支持行指令中的列信息。引入了新的包導(dǎo)出數(shù)據(jù)格式。
匯編程序amd64現(xiàn)在接受 AVX512 指令。
調(diào)試
編譯器現(xiàn)在可以為優(yōu)化的二進(jìn)制文件生成更精確的調(diào)試信息,包括可變位置信息、行號(hào)和斷點(diǎn)位置。這將使調(diào)試沒(méi)有-N -l編譯的二進(jìn)制文件成為可能。Go 1.11添加了在調(diào)試器中調(diào)用Go函數(shù)的實(shí)驗(yàn)性支持。
測(cè)試
從Go 1.10開(kāi)始,Go test命令在被測(cè)試的包上運(yùn)行Go vet,以便在運(yùn)行測(cè)試之前識(shí)別問(wèn)題。因?yàn)関et在運(yùn)行前用go/type檢查代碼,所以不檢查類(lèi)型的測(cè)試將會(huì)失敗。
Vet
go vet命令現(xiàn)在在分析包未進(jìn)行類(lèi)型檢查時(shí)會(huì)報(bào)告致命錯(cuò)誤。一起,類(lèi)型檢查錯(cuò)誤只會(huì)導(dǎo)致打印警告,并以狀態(tài)1退出vet。
跟蹤
使用新的runtime/trace包的用戶注釋API,用戶可以在執(zhí)行跟蹤中記錄應(yīng)用程序級(jí)別的信息,并創(chuàng)建相關(guān)的goroutines組。go tool trace這個(gè)命令在跟蹤視圖和新用戶任務(wù)/區(qū)域分析頁(yè)面中顯示此信息。
Runtime
runtime現(xiàn)在使用稀疏堆布局,因此不再限制Go堆的大小(以前的限制是512GiB)。這也解決了使用-race編譯的混合Go/C二進(jìn)制文件或二進(jìn)制文件中的“address space conflict”故障。
在macOS和iOS上,運(yùn)行時(shí)現(xiàn)在使用libSystem.so,而不是直接調(diào)用內(nèi)核。這應(yīng)該使Go二進(jìn)制文件與未來(lái)版本的macOS和iOS更加兼容。syscall package仍然可以進(jìn)行直接的系統(tǒng)調(diào)用。
此外,Go 1.11正式版對(duì)核心庫(kù)也有更改,不過(guò)所有更改都比較小。具體請(qǐng)見(jiàn)Release Notes。
Google 的 Go 工程師AndrewBonventre在博客中特別感謝了Richard Musiol為WebAssembly端口做出的貢獻(xiàn),以及感謝為這個(gè)新版本做出貢獻(xiàn)的所有人,包括編寫(xiě)代碼,提交錯(cuò)誤,提供反饋和/或測(cè)試測(cè)試版和發(fā)布候選版本。如果你在使用中發(fā)現(xiàn)任何問(wèn)題,請(qǐng)?zhí)峤粏?wèn)題。
-
模塊
+關(guān)注
關(guān)注
7文章
2788瀏覽量
50371 -
Go
+關(guān)注
關(guān)注
0文章
45瀏覽量
12393 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50217
原文標(biāo)題:入坑搞定Python多種任務(wù),Go 1.11 新版本正式發(fā)布!
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一個(gè)帶有CYPD3177的自定義COOLDIM_PRG_BOARD,當(dāng)它翻轉(zhuǎn)時(shí),則沒(méi)有POWER_DRILL2GO,為什么?
通過(guò)XRES引腳POWER_DRILL2GO保持ic復(fù)位是否會(huì)降低ic的最終輸出?
如果 PD 合約不匹配,BCR 是否仍會(huì)打開(kāi) SINK_FET_EN POWER_DRILL2GO路徑?
從 Java 到 Go:面向?qū)ο蟮木奕伺c云原生的輕騎兵
Candera GmbH推出CGI Studio 3.15版本
ABViewer 15.2版本現(xiàn)已發(fā)布
AMAZINGIC晶焱科技技術(shù)應(yīng)用:典范轉(zhuǎn)移 EV全生態(tài)系商機(jī) - The CAN SIC Transceiver Is Ready To Go.

典范轉(zhuǎn)移 EV全生態(tài)系商機(jī) - The CAN SIC Transceiver Is Ready To Go.

OurBMC 24.12版本正式上線
影目科技發(fā)布全球首款同傳翻譯眼鏡INMO GO2
馬斯克宣布FSD V13版本將很快發(fā)布
在學(xué)習(xí)go語(yǔ)言的過(guò)程踩過(guò)的坑
go語(yǔ)言如何解決并發(fā)問(wèn)題

【AWTK最新動(dòng)態(tài)】AWTK 1.8版本發(fā)布

三十分鐘入門(mén)基礎(chǔ)Go Java小子版

評(píng)論