写点什么

GCC 4.8 发布,完成向 C++ 的迁移

  • 2013-03-29
  • 本文字数:846 字

    阅读完需:约 3 分钟

GNU 编译器集合(GCC)的最新版本发布,这标志着向C++ 的迁移已经完成。这一过程持续了多年,GCC 团队指出,为了有一个可维护的代码基来吸引并留住新的项目成员,这种迁移是必要的。之所以选择C++ ,部分原因是它是标准化的语言,而且 "支持更干净的代码,更容易编写并保证清晰的接口……尽管这并非灵丹妙药,但相对于基于C 的遗留代码,的确是种改进”。对大部分开发者来说,最终结果不过是,如果有兴趣从源代码构建GCC 4.8,则必须使用支持C++ 2003 的编译器。该版本设计得更为高效,更容易更新,普通用户可以直接受益。

新的编译器特性

首先介绍一下通用的编译器改进,该版本“引入了一个新的通用优化层,既满足了快速编译和极佳调试体验的需要,又保证了合理的运行时性能”。此外,4.8 包含了用于探测内存错误的 AddressSanitizer ,以及支持插入指令检查数据竞争的 ThreadSanitizer 。(ThreadSanitizer 目前只能用于 x86-64 GNU/Linux。)

值得注意的是,该版本还支持 64 位 ARM(AArch64)和 32 位 ARMv8 等架构。

特定于语言的改进

完成了向 C++ 的迁移,这并不是唯一值得赞赏的成绩,编译器在其他一些方面还有不少改进。GCC 目前初步在多种架构上实现了针对 GNU/Linux 和 Solaris 等平台的 Go 1.1 支持。如果使用 Fortran 和 C 进行开发的话,也有一些更新值得研究一番。

C++ 用户会看到如下对 C++11 支持的改进

  • thread_local 关键字
  • attribute 语法
  • 对齐说明符(alignment specifier)
  • 继承构造函数
  • forward_list 满足了能够感知分配器(allocator-aware)的容器这一需求

Clang 3.2 相比,GCC 4.8 对 C++11 的支持也非常不错,而且都领先于最新的 Visual C++ Compiler November 2012 CTP 。新增了编译选项 _-std=c++1y_,支持对下一个主要标准(预计大约在2017 年)提出的特性进行实验,这意味着应对未来C++ 变化的计划已经开始。

C++ 运行时标准库(libstdc++)对 C++11 有了更大的支持,改进了随机数生成器(包括新的 X86 处理器上的硬件支持),并加入了新的随机数分布。

查看英文原文 GCC 4.8 Completes Move to C++

2013-03-29 04:444636
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 146.9 次阅读, 收获喜欢 35 次。

关注

评论

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

远程办公暴露过程管理的不足

持续交付实践指南

管理 软件工程 远程办公

Week 10

一叶知秋

关于微服务架构(中台架构、领域驱动设计、组件设计原则)的一点思考

jason

腾讯一面面试官让我关闭连接

我是程序员小贱

有意思:Go函数的闭包

申屠鹏会

闭包 函数 Go 语言

第十周学习总结

赵龙

热乎的宇宙条总部面经,已拿offer,速来围观

我是程序员小贱

troubleshoot之:使用JFR解决内存泄露

程序那些事

Java 内存泄露 性能调优

[翻译]分布式系统的模式-综述

流沙

架构 分布式系统

六张图从HTTP/0.9进化到HTTP3.0

执鸢者

大前端 网络 HTTP

socket通信,你还会实现么?

小隐乐乐

炸裂!40+图万字长文拿下HTTP

我是程序员小贱

计算机网络

招银网络问了啥?这么尬?妥妥的安排

我是程序员小贱

环信助力OFashion迷橙开辟海外直播带货新通路

DT极客

第十周命题作业

赵龙

Code Review 失败后总结的几个实践技巧

Phoenix

团队管理 团队协作 技术人 代码质量

Newbe.Claptrap 框架如何实现 Claptrap 的多样性?

newbe36524

容器 微服务 .net core ASP.NET Core

架构师训练营第十周作业

qihuajun

可读代码编写炸鸡十 - 保持单纯

多选参数

代码质量 代码 代码优化 可读代码编写 可读代码

架构师训练营第十章作业

叮叮董董

微服务与DDD学习总结

qihuajun

如何优雅的编写GO程序?

八两

优雅 语法 Go 语言

一文读懂GaussDB(for Mongo)的计算存储分离架构

华为云开发者联盟

数据库 mongodb 数据 GaussDB 存储分离

架构师训练营第十章总结

叮叮董董

链表应用之设计高性能访客记录系统

架构师修行之路

数据结构 链表 架构师

Go make 和 new 的区别

曲镇

make Go 语言

芯片破壁者(十一):回看日本半导体的倾塌

脑极体

40张图入门Linux——(前端够用,运维入门)

执鸢者

Linux 大前端

Dubbo源码分析--dubbo-config配置层的套路

jason

架构师训练营--第10周作业

Just顾

我期待,这是个多彩的世界

瓜藤老祖

大三儿 乐队的夏天 九连真人

GCC 4.8发布,完成向C++的迁移_Linux_Jeff Martin_InfoQ精选文章