0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Go開發(fā)團(tuán)隊(duì)正式宣布推出Go 1.11版本

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-08-27 09:03 ? 次閱讀

Go開發(fā)團(tuán)隊(duì)正式宣布推出Go 1.11版本。新版本在工具鏈、運(yùn)行時(shí)和庫等方面有很多變化和改進(jìn),特別是增加了模塊支持和WebAssembly支持兩個(gè)新特性。

今天,Go開發(fā)團(tuán)隊(duì)宣布推出Go 1.11正式版。

下載地址:https://golang.org/dl

這距離Go 1.10的發(fā)布已經(jīng)過去六個(gè)月。

新版本在工具鏈、運(yùn)行時(shí)和庫等方面有很多變化和改進(jìn),兼容性方面也依然會兼容舊版本。此外,新版本增加了兩個(gè)最激動人心的新特性:對模塊(modules)和WebAssembly的支持。

模塊、軟件包版本控制和依賴關(guān)系管理

Go 1.11版本增加了對“模塊”(modules)這個(gè)新概念的初步支持,這是GOPATH的替代方案,集成了對版本控制和軟件包分發(fā)的支持。

使用modules,開發(fā)人員將不再局限于在GOPATH中工作,版本依賴性信息是顯式而且輕量級的,并且構(gòu)建項(xiàng)更具可靠性和可重復(fù)性。

模塊支持功能目前仍處于實(shí)驗(yàn)性階段,根據(jù)Go 1.11用戶的反饋,細(xì)節(jié)可能會發(fā)生變化,Go開發(fā)團(tuán)隊(duì)也在計(jì)劃增加更多工具。模塊支持可能仍有一些可能影響使用的問題,因此請充分利用問題跟蹤器進(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ōu)先級的,但可能在將來的版本中解決。

由于添加了新的GOOS值“js”和GOARCH值“wasm”,Go工具現(xiàn)在將忽略名為* _js.go或* _wasm.go的Go文件,除非使用了那些GOOS/GOARCH值。如果你的現(xiàn)有文件名與這些模式一致,則需要重命名它們。

你可以在webassembly.org上閱讀有關(guān)WebAssembly(縮寫為“Wasm”)的更多信息,并查看這個(gè)Wiki頁面,了解如何開始使用Wasm with Go。

其他工具

導(dǎo)入路徑限制

由于 Go 模塊支持在命令行操作中為符號@指定了特殊含義,因此該Go命令現(xiàn)在不允許使用包含@符號的導(dǎo)入路徑。goget從未允許這種導(dǎo)入路徑,因此該限制只會影響用戶通過其他方式構(gòu)建自定義 GOPATH 樹。

Package 加載

新的軟件包golang.org/x/tools/go/packages提供了一個(gè)簡單的API來定位和加載Go源代碼包。雖然它還不是標(biāo)準(zhǔn)庫的一部分,但對于許多任務(wù),它有效地替代了go/build包,后者的API無法完全支持模塊。這個(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 開始,將需要構(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)試信息,包括可變位置信息、行號和斷點(diǎn)位置。這將使調(diào)試沒有-N -l編譯的二進(jìn)制文件成為可能。Go 1.11添加了在調(diào)試器中調(diào)用Go函數(shù)的實(shí)驗(yàn)性支持。

測試

從Go 1.10開始,Go test命令在被測試的包上運(yùn)行Go vet,以便在運(yùn)行測試之前識別問題。因?yàn)関et在運(yùn)行前用go/type檢查代碼,所以不檢查類型的測試將會失敗。

Vet

go vet命令現(xiàn)在在分析包未進(jìn)行類型檢查時(shí)會報(bào)告致命錯(cuò)誤。一起,類型檢查錯(cuò)誤只會導(dǎo)致打印警告,并以狀態(tài)1退出vet。

跟蹤

使用新的runtime/trace包的用戶注釋API,用戶可以在執(zhí)行跟蹤中記錄應(yīng)用程序級別的信息,并創(chuàng)建相關(guān)的goroutines組。go tool trace這個(gè)命令在跟蹤視圖和新用戶任務(wù)/區(qū)域分析頁面中顯示此信息。

Runtime

runtime現(xiàn)在使用稀疏堆布局,因此不再限制Go堆的大?。ㄒ郧暗南拗剖?12GiB)。這也解決了使用-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)制文件與未來版本的macOS和iOS更加兼容。syscall package仍然可以進(jìn)行直接的系統(tǒng)調(diào)用。

此外,Go 1.11正式版對核心庫也有更改,不過所有更改都比較小。具體請見Release Notes。

Google 的 Go 工程師AndrewBonventre在博客中特別感謝了Richard Musiol為WebAssembly端口做出的貢獻(xiàn),以及感謝為這個(gè)新版本做出貢獻(xiàn)的所有人,包括編寫代碼,提交錯(cuò)誤,提供反饋和/或測試測試版和發(fā)布候選版本。如果你在使用中發(fā)現(xiàn)任何問題,請?zhí)峤粏栴}。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2655

    瀏覽量

    47293
  • Go
    Go
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    12235
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015

原文標(biāo)題:入坑搞定Python多種任務(wù),Go 1.11 新版本正式發(fā)布!

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    go語言如何解決并發(fā)問題

    作為一個(gè)后端開發(fā),日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認(rèn),PHP確實(shí)是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負(fù)擔(dān),字符串和整型壓根就不用區(qū)分,開發(fā)速度真的是比
    的頭像 發(fā)表于 10-23 13:38 ?91次閱讀
    <b class='flag-5'>go</b>語言如何解決并發(fā)問題

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

    前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)、強(qiáng)類型、編譯型語言。Go
    的頭像 發(fā)表于 08-12 14:32 ?661次閱讀
    三十分鐘入門基礎(chǔ)<b class='flag-5'>Go</b> Java小子版

    聯(lián)想將推出搭載AMD Z1系列處理器的Legion Go拯救者掌機(jī)“Lite”版

     據(jù)WindowsCentral報(bào)道,相關(guān)知情人士透露,聯(lián)想正研發(fā)Legion Go拯救者掌機(jī)的“Lite”版本,將采用AMD Z1系列處理器,性能較上一代有所提升。
    的頭像 發(fā)表于 05-27 17:45 ?744次閱讀

    求助,關(guān)于PSoC4000S POWER_DRILL2GO下降壓擺率的疑問求解

    我不確定來自哪個(gè)版本,但數(shù)據(jù)表中列出了 PSoC4000S POWER_DRILL2GO下降壓擺率。(1V/ms 最小,最大 67V/ms) 目前的設(shè)計(jì)并不能滿足這個(gè)要求
    發(fā)表于 05-21 08:14

    請問STVP+COSMIC環(huán)境下的go to definition怎么用?

    STVP+COSMIC環(huán)境下的go to definition怎么用? 我現(xiàn)在go to definition在一個(gè)宏定義的時(shí)候有效果,但是函數(shù)什么的沒用,是怎么回事呢,是不是工程里面沒有設(shè)置好,求大家?guī)蛶兔Γ?/div>
    發(fā)表于 05-11 06:11

    為什么無法使用STVD右鍵跳轉(zhuǎn)到Go to definition of功能?

    我的STVD右鍵跳轉(zhuǎn)到 Go to definition of xx功能不能用 跳轉(zhuǎn)不過去 是怎么回事 找函數(shù)好麻煩
    發(fā)表于 05-08 08:28

    關(guān)于go中接口類型的表示方法

    go是一個(gè)靜態(tài)性語言,每個(gè)變量都有靜態(tài)的類型,因此每個(gè)變量在編譯階段中有明確的變量類型,比如像:int、float32、MyType。
    的頭像 發(fā)表于 04-28 10:13 ?323次閱讀

    使用Docker部署Go Web應(yīng)用程序步驟

    大多數(shù)情況下Go應(yīng)用程序被編譯成單個(gè)二進(jìn)制文件,web應(yīng)用程序則會包括模版和配置文件。而當(dāng)一個(gè)項(xiàng)目中有很多文件的時(shí)候,由于很多文件沒有同步就會導(dǎo)致錯(cuò)誤的發(fā)生并且產(chǎn)生很多的問題。
    發(fā)表于 04-20 09:33 ?466次閱讀
    使用Docker部署<b class='flag-5'>Go</b> Web應(yīng)用程序步驟

    在CYT4BF中從Deepsleep轉(zhuǎn)換到Active時(shí),POWER_DRILL2GO的穩(wěn)定時(shí)間是多少?

    我想知道 CYT4BF 中從 DeepSleep 轉(zhuǎn)換到 Active 時(shí)核心POWER_DRILL2GO穩(wěn)定時(shí)間。 我根據(jù)數(shù)據(jù)表中的時(shí)鐘檢查了POWER_DRILL2GO模式轉(zhuǎn)換時(shí)間。 并且在
    發(fā)表于 03-06 07:58

    PMG1 PoR復(fù)位時(shí)POWER_DRILL2GO什么時(shí)候進(jìn)入?

    我有兩個(gè)關(guān)于 PMG1 PoR 的問題。 1.復(fù)位時(shí)POWER_DRILL2GO什么時(shí)候進(jìn)入? 也許您想在電壓低于預(yù)設(shè)值時(shí)強(qiáng)制 EZ-PD? PMG1-S1 MCU 設(shè)備復(fù)位
    發(fā)表于 03-06 06:03

    Arduino IDE中是否有與Xmc2Go兼容的LoRaWAN庫?

    我想問一下 Arduino IDE 中是否有與 Xmc2Go 兼容的 LoRaWAN 庫? 我正在嘗試使用連接到 Xmc2Go 的 RFM95W Lora 模塊通過 LoRaWAN 將數(shù)據(jù)傳輸
    發(fā)表于 02-27 06:05

    MiniProg4在POWER_DRILL2GO周期后失去與PC的連接的原因?

    你好我使用 MiniProg4 作為 I2C 橋接器(通過 12 引腳)和 PSoC? 編程器(通過 5 引腳端口)。 我正在用 Python 開發(fā)一個(gè)代碼,以控制 MiniProg4 和用于
    發(fā)表于 01-19 07:55

    請問復(fù)制BSP的文件為何無法go def跳轉(zhuǎn)是灰色?

    請問復(fù)制BSP的文件為何無法go def跳轉(zhuǎn)是灰色 路徑并無中文,也無數(shù)字開頭。。。 請大家看看是為何
    發(fā)表于 01-15 07:51

    Go配置TM 軟件中心用戶指南

    電子發(fā)燒友網(wǎng)站提供《Go配置TM 軟件中心用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 09:48 ?0次下載
    <b class='flag-5'>Go</b>配置TM 軟件中心用戶指南

    使用go語言實(shí)現(xiàn)一個(gè)grpc攔截器

    開發(fā)grpc服務(wù)時(shí),我們經(jīng)常會遇到一些通用的需求,比如:日志、鏈路追蹤、鑒權(quán)等。這些需求可以通過grpc攔截器來實(shí)現(xiàn)。本文使用go語言來實(shí)現(xiàn)一個(gè) grpc一元模式(Unary)攔截器,上報(bào)鏈路追蹤信息。
    的頭像 發(fā)表于 12-18 10:13 ?616次閱讀
    使用<b class='flag-5'>go</b>語言實(shí)現(xiàn)一個(gè)grpc攔截器