写点什么

GCC 5.1 正式发布

  • 2015-04-27
  • 本文字数:1108 字

    阅读完需:约 4 分钟

GNU 项目组近期宣布正式发布GCC 5.1。GCC 5 的第一个主要版本增加了许多新特性和改进,例如:改进对C++11/14 的支持,libstdc++ 库默认使用全新ABI,一个机器码即时编译嵌入库。

GCC 5.1 中引入的最重要的变化:

  • ANSI 批准的 C 标准 gnu89 太过于古老,新版本中采用 gnu11 作为默认的 C 编译器。
  • 在其它方面,C++ 运行时引入一个新的 ABI,默认启用并且使用兼容 C++11 的 std::string 和 std::list 类代替现有的类。这个改动不影响已有代码,开发者无须为此重构它们,使用第三方库的开发者如果想要使用老版本 ABI,则需要使用 -D_GLIBCXX_USE_CXX11_ABI=0 这个 flag。新的 libstdc++ 库提供了双重 ABI ,这意味着使用老版本 GCC 构建的代码能够在最新的 libstdc++ 库中运行。库和插件的提供者可以选择支持同样的双重 ABI 概念,以此免去开发者们的重构之忧。
  • 更好地支持 C++11 和 C++14:libstdc++ 现在完全支持 C++11 并为 C++14 提供实验性支持。此外,G++ 支持许多 C++14 的特性,例如:变量模板、非静态数据成员初始化集合,确定大小的内存销毁函数等。
  • GCC 5 提供一个可选的,Go 1.4.2 的完整实现。
  • GCC 5 能够将自身构建为共享库 libgccjit,然后作为即时编译器嵌入到机器码中。这一选择仍是实验性的并且“尚不推荐应用于实际产品中”,但是它的确给我们带来诸多有趣的可能性,例如在Python 中自定义一门语言,然后为它构建一个机器码编译器。通过查阅官方GCC 5.1 发行版无法判断应用于 GCC 运行时库的许可例外是否同样可以应用于 libgccjit。如果你的最终产品和分发的程序链接了 GCC 运行时库,没有运行时库例外意味着你的产品和程序必须在 GCC 的许可(GPL3)下发布。
  • 最后,GCC 5.1 增加了许多优化,例如:相同函数统一使用一个新的相同代码折叠(ICF)路径;检测只赋值却未使用的变量并优化;改进了内存使用以及链接时间;改进了注册配置等。你可以获取更完整的改动概况以了解更多细节。

GCC 主要的竞争者是 LLVM,现在发布到 3.6 版本。Phoronix运行了一系列的基准测试来比较GCC 5 预发布版与LLVM 3.5,他们发现二者在绝大多数测试中的表现非常相似,只在几个测试中不太一样,例如:C-Ray 多线程ray-tracer 测试中,GCC 的性能领先;LLVM 的Clang 在编译时胜于GCC。这么看来,两款编译器间最大的差异大概就是不同的许可模式了,GCC 基于GPL3 的许可,而LLVM 基于一种更像是MIT/BSD 的许可。

查看英文原文: GCC 5.1 is Out


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-04-27 07:014272
用户头像

发布了 63 篇内容, 共 134.5 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

有奖问卷调研|OpenTiny给你送天命人好礼啦!

OpenTiny社区

开源 低代码 用户体验 OpenTiny 前端组件库

Screaming Frog SEO Spider(尖叫青蛙网络爬虫软件)永久激活版

Rose

数字化服务能力再获肯定!望繁信科技惊艳亮相CDIE大会

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

Office 2021全套包支持mac和win安装下载

你的猪会飞吗

Office 2021 Office LTSC 2021 office2021 Mac破解版

简单实用的苹果解压缩软件推荐

Rose

采取预测分析最佳战术,指点企业未来精准决策

智达方通

企业管理 全面预算管理 财务规划 财务预测 财务预测分析

Translatium for Mac翻译软件(支持150多种语言和方言)

Rose

加入华为云开源共创,让优秀开发者支持更优秀开发者

华为云开发者联盟

ServiceStage集成Sermant实现应用的优雅上下线

华为云开源

开源 微服务治理 字节码增强 sermant

人工智能 | Mistral 大语言模型

测吧(北京)科技有限公司

测试

TikTok直播为什么要用独立IP

Ogcloud

海外直播 tiktok直播 tiktok直播网络 海外IP 海外直播IP

文献解读-Genome-wide imputation using the practical haplotype graph in the heterozygous crop cassava

INSVAST

基因数据分析 生信服务

一场 Kafka CRC 异常引发的血案

不在线第一只蜗牛

kafka 分布式

阿里巴巴商品搜索API返回值中的图片与详情链接

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

iStat Menus 系统状态监控工具 :全面掌控你的Mac

Rose

FTP客户端工具 Yummy FTP Pro for Mac中文直装版

Rose

草图大师SketchUp Pro 2023中文版安装包分享【mac/win】

Rose

Hidden Bar for mac 菜单栏图标隐藏工具|帮你收纳不常用的菜单栏项目

Rose

AI图像放大工具,图片放大无所不能

程序那些事

程序那些事 Stable Diffusion

短剧APP遭遇DDoS攻击的解决方法

网络安全服务

负载均衡 IP DDoS DDoS 攻击 短剧app开发

Go 必知必会:探索 Go 语言中的数组和切片深入理解顺序集合

王中阳Go

数组 go语言 切片 go基础

犀牛Rhinoceros 7:专业的3D建模软件

Rose

MiniMax 首个文生视频模型发布,可生成 6s,限时免费;阿里 Qwen2-VL 第二代视觉语言模型开源丨RTE 开发者日报

声网

浅析前端数据埋点监控:用户行为与性能分析的桥梁

不在线第一只蜗牛

数据库 前端开发

Gauss游马会openGauss-全局临时表

Gauss松鼠会

XLD音频无损解码 X Lossless Decoder for mac 中文版

Rose

行业首家!百度智能云通过中国信通院「H5 端人脸识别安全能力」测评

Baidu AICLOUD

人脸识别

GCC 5.1正式发布_DevOps & 平台工程_Sergio De Simone_InfoQ精选文章