0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Go开发团队正式宣布推出Go 1.11版本

DPVg_AI_era 来源:未知 作者:李倩 2018-08-27 09:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Go开发团队正式宣布推出Go 1.11版本。新版本在工具链、运行时和库等方面有很多变化和改进,特别是增加了模块支持和WebAssembly支持两个新特性。

今天,Go开发团队宣布推出Go 1.11正式版。

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

这距离Go 1.10的发布已经过去六个月。

新版本在工具链、运行时和库等方面有很多变化和改进,兼容性方面也依然会兼容旧版本。此外,新版本增加了两个最激动人心的新特性:对模块(modules)和WebAssembly的支持。

模块、软件包版本控制和依赖关系管理

Go 1.11版本增加了对“模块”(modules)这个新概念的初步支持,这是GOPATH的替代方案,集成了对版本控制和软件包分发的支持。

使用modules,开发人员将不再局限于在GOPATH中工作,版本依赖性信息是显式而且轻量级的,并且构建项更具可靠性和可重复性。

模块支持功能目前仍处于实验性阶段,根据Go 1.11用户的反馈,细节可能会发生变化,Go开发团队也在计划增加更多工具。模块支持可能仍有一些可能影响使用的问题,因此请充分利用问题跟踪器进行反馈或查阅解决方案。

WebAssembly

Go 1.11还为WebAssembly(js/wasm)添加了一个实验端口。这允许程序员将Go程序编译为与四种主流Web浏览器兼容的二进制格式。

目前,Go程序编译为一个WebAssembly模块,该模块包括Go runtime,用于goroutine scheduling,garbage collection,maps等。因此,其大小至少约为2 MB,或压缩为500 KB。Go程序可以使用新的实验性syscall/js包调用JavaScript。二进制大小和与其他语言的互操作还不是优先级的,但可能在将来的版本中解决。

由于添加了新的GOOS值“js”和GOARCH值“wasm”,Go工具现在将忽略名为* _js.go或* _wasm.go的Go文件,除非使用了那些GOOS/GOARCH值。如果你的现有文件名与这些模式一致,则需要重命名它们。

你可以在webassembly.org上阅读有关WebAssembly(缩写为“Wasm”)的更多信息,并查看这个Wiki页面,了解如何开始使用Wasm with Go。

其他工具

导入路径限制

由于 Go 模块支持在命令行操作中为符号@指定了特殊含义,因此该Go命令现在不允许使用包含@符号的导入路径。goget从未允许这种导入路径,因此该限制只会影响用户通过其他方式构建自定义 GOPATH 树。

Package 加载

新的软件包golang.org/x/tools/go/packages提供了一个简单的API来定位和加载Go源代码包。虽然它还不是标准库的一部分,但对于许多任务,它有效地替代了go/build包,后者的API无法完全支持模块。这个AIP支持构建分析工具,这些工具与Bazel和Buck等替代构建系统同样有效。

构建缓存要求

Go 1.11 将是支持设置环境变量GOCACHE=off以禁用构建缓存的最后一个版本。从 Go 1.12 开始,将需要构建缓存,作为消除$GOPATH/pkg的步骤。

编译器工具链

默认情况下,现在更多函数可以进行内联,包括调用panic的函数。编译器工具链现在支持行指令中的列信息。引入了新的包导出数据格式。

汇编

汇编程序amd64现在接受 AVX512 指令。

调试

编译器现在可以为优化的二进制文件生成更精确的调试信息,包括可变位置信息、行号和断点位置。这将使调试没有-N -l编译的二进制文件成为可能。Go 1.11添加了在调试器中调用Go函数的实验性支持。

测试

从Go 1.10开始,Go test命令在被测试的包上运行Go vet,以便在运行测试之前识别问题。因为vet在运行前用go/type检查代码,所以不检查类型的测试将会失败。

Vet

go vet命令现在在分析包未进行类型检查时会报告致命错误。一起,类型检查错误只会导致打印警告,并以状态1退出vet。

跟踪

使用新的runtime/trace包的用户注释API,用户可以在执行跟踪中记录应用程序级别的信息,并创建相关的goroutines组。go tool trace这个命令在跟踪视图和新用户任务/区域分析页面中显示此信息。

Runtime

runtime现在使用稀疏堆布局,因此不再限制Go堆的大小(以前的限制是512GiB)。这也解决了使用-race编译的混合Go/C二进制文件或二进制文件中的“address space conflict”故障。

在macOS和iOS上,运行时现在使用libSystem.so,而不是直接调用内核。这应该使Go二进制文件与未来版本的macOS和iOS更加兼容。syscall package仍然可以进行直接的系统调用。

此外,Go 1.11正式版对核心库也有更改,不过所有更改都比较小。具体请见Release Notes。

Google 的 Go 工程师AndrewBonventre在博客中特别感谢了Richard Musiol为WebAssembly端口做出的贡献,以及感谢为这个新版本做出贡献的所有人,包括编写代码,提交错误,提供反馈和/或测试测试版和发布候选版本。如果你在使用中发现任何问题,请提交问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2822

    浏览量

    52798
  • Go
    Go
    +关注

    关注

    0

    文章

    45

    浏览量

    12518
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51082

原文标题:入坑搞定Python多种任务,Go 1.11 新版本正式发布!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式开发工具版本的选择策略

    版本在嵌入式开发团队协作中,软件工具版本的统一性管理需要分层次、分场景处理。 一、必须强制统一软件版本的情况 1、编译器
    发表于 11-25 06:11

    房产数据平台安家go获取地区列表数据的API接口

    ​ 在房产数据平台“安家go”中,获取地区列表数据是一个常见需求,它允许开发者访问全国或特定区域的行政区划信息,如省、市、区县等。这对于构建房产搜索、数据分析或地图应用至关重要。本文将详细介绍
    的头像 发表于 11-21 14:38 172次阅读
    房产数据平台安家<b class='flag-5'>go</b>获取地区列表数据的API接口

    影目INMO GO3新品发布,携手蚂蚁、腾讯应用宝、智谱等行业巨头打造AI+AR生态

    产业生态平台——影目世界,携手腾讯、蚂蚁集团、智谱AI等行业巨头共建原生内容生态,并宣布正式进军线下渠道,联手LOHO、依视路陆逊梯卡、亚洲眼镜等品牌布局2000+体验门店。从美学设计到智能交互,从AI功能到生态开放,影目INMO GO3的发布,不仅重塑了智能眼镜的
    发表于 10-16 19:57 1209次阅读
    影目INMO <b class='flag-5'>GO</b>3新品发布,携手蚂蚁、腾讯应用宝、智谱等行业巨头打造AI+AR生态

    Quartus Prime Pro 25.1版本的安装和使用

    如果用户开发板是基于Agilex 3、Agilex 5等高阶器件,则需要安装高版本的Quartus软件比如Quartus Prime Pro 25.1版本,这个版本在安装包和licen
    的头像 发表于 10-07 13:06 2048次阅读
    Quartus Prime Pro 25.1<b class='flag-5'>版本</b>的安装和使用

    一个带有CYPD3177的自定义COOLDIM_PRG_BOARD,当它翻转时,则没有POWER_DRILL2GO,为什么?

    我有一个带有 CYPD3177 的自定义COOLDIM_PRG_BOARD 。 当插入时,它仅从POWER_DRILL2GO电源接收POWER_DRILL2GO信号,并且 USB 电缆处于一个方向
    发表于 05-26 07:24

    通过XRES引脚POWER_DRILL2GO保持ic复位是否会降低ic的最终输出?

    我正在使用 CYPAS111A1 PAG1S 设计 65W USB C 型充电器。 我想通过控制器切断 USB 输出。 通过 XRES 引脚POWER_DRILL2GO保持 ic 复位是否会降低 ic 的最终输出? 请予以支持。
    发表于 05-26 06:44

    如果 PD 合约不匹配,BCR 是否仍会打开 SINK_FET_EN POWER_DRILL2GO路径?

    BCR 具有 SINK_FET_EN 和 SAFE_PWR_EN 引脚来控制POWER_DRILL2GO消耗路径。 如果 PD 合约不匹配,BCR 是否仍会打开 SINK_FET_EN POWER_DRILL2GO路径?或者只打开 SAFE_PWR_EN POWER_DR
    发表于 05-23 08:01

    从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

    Go 语言在 2009 年被 Google 推出,在创建之初便明确提出了“少即是多(Less is more)”的设计原则,强调“以工程效率为核心,用极简规则解决复杂问题”。它与 Java 语言生态
    的头像 发表于 04-25 11:13 508次阅读

    Candera GmbH推出CGI Studio 3.15版本

    近期,Candera GmbH 推出 CGI Studio 3.15,这是 Candera 处于行业领先地位的人机界面(HMI)开发软件的最新版本。此次更新带来了一系列创新功能,旨在简化开发
    的头像 发表于 03-24 16:24 791次阅读

    成会明院士团队创新方法,实现石墨烯高产制备

    石墨烯氧化物(GO)作为一种重要的材料,因其优异的分散性、化学反应性和与其他材料的兼容性,广泛应用于水处理、能源存储、热管理、功能复合材料和生物医学等多个领域。特别是在智能手机、5G通信系统等高
    的头像 发表于 02-12 09:18 1008次阅读
    成会明院士<b class='flag-5'>团队</b>创新方法,实现石墨烯高产制备

    ABViewer 15.2版本现已发布

    我们的团队很高兴宣布ABViewer 15.2版本现已发布。新版本对软件的所有主要功能进行了改进。下面您将找到我们所做更改的详细列表。 PDF转DWG改进: · 转换质量全面提升; ·
    的头像 发表于 02-11 11:49 842次阅读

    AMAZINGIC晶焱科技技术应用:典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To Go.

    AMAZINGIC晶焱科技技术应用:典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To Go.
    的头像 发表于 02-05 16:01 1052次阅读
    AMAZINGIC晶焱科技技术应用:典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To <b class='flag-5'>Go</b>.

    典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To Go.

    典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To Go.
    的头像 发表于 01-22 17:23 884次阅读
    典范转移 EV全生态系商机 - The CAN SIC Transceiver Is Ready To <b class='flag-5'>Go</b>.

    OurBMC 24.12版本正式上线

    日前,经过社区开发者的共同努力,OurBMC 全新升级,24.12版本正式上线。
    的头像 发表于 01-07 13:45 1297次阅读

    影目科技发布全球首款同传翻译眼镜INMO GO2

    近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言
    的头像 发表于 12-11 10:00 1949次阅读