写点什么

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:444716
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

redis sentinel架构

王瑞强

throw与throws的区别学习笔记

风翱

异常 5月日更

UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad

汪子熙

Fiori SAP UI5 Launchpad

超级详细!全网独家首发的SpringCloud Alibaba 到底有多强?

Java 程序员 架构 面试

华为HMS生态和1+8+N的交叉点,点透棋局的华为帐号

脑极体

论:在996的天下,Java程序员该如何高效学习

Java架构师迁哥

数据湖vs数据仓库vs数据集市

数据社

数据仓库 数据湖 5月日更

使用Excel调用ABAP系统的函数

汪子熙

Excel Office SAP abap

C4C和CRM里获取当前登录用户分配的Organization Unit

汪子熙

CRM SAP C4C Cloud for Customer

科大讯飞语音转文字以及中文分词的Java测试代码

汪子熙

Java 人工智能

玩转直播系列之消息模块演进(3)

vivo互联网技术

Java 服务器 消息系统 直播技术

阿里云原生开源大家族加入中科院软件所开源软件供应链点亮计 - 暑期 2021

阿里巴巴云原生

开源 容器 微服务 开发者 云原生

面向WEB开发人员的Docker(五):部署开发WordPress

devpoint

Docker Wordpress 部署 Docker-compose

仰望天空,脚踏实地 —— CODING OKR 全新上线

CODING DevOps

团队管理 OKR

IO

ltc

IO流

百度 Serverless 架构揭秘与应用实践

百度开发者中心

百度 开源 Serverless 云原生

为什么5、6月会空缺出大量技术岗?跳槽注意事项+面试官关心什么

Java架构师迁哥

推荐计划 | 推荐好友用 CODING,获高额返现奖励

CODING DevOps

团队管理 敏捷开发 研发工具 开发团队

参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!

阿里巴巴云原生

开源 开发者 云原生 dubbo 中间件

双非渣硕也能上岸?痛述阿里Java岗7轮技术面经历,险幸上岸

Java 程序员 架构 面试

存储技术入门,这些硬件应该首先有所了解

SunnyZhang的IT世界

服务器 存储 交换机 san

(VMware)ubuntu环境下搭建Swarm+Stack一站式部署容器集群

逸少

Docker Docker Swarm Docker-compose Ubuntu20.04

部署混合云环境的5大挑战

云计算

☕【JVM 技术之旅】让你完全攻克内存溢出(OOM)这一难题(上)

码界西柚

JVM OOM 异常 Exception 5月日更

高级软件工程师必备的五大技能

架构精进之路

5月日更

SAP CRM WebClient UI里的文件是如何上传到ABAP Netweaver后台的

汪子熙

chrome CRM SAP WebClient UI

Kubernetes 普及系列:容器基础入门

CODING DevOps

Kubernetes

程序员写好技术文章的几点小技巧

阿里巴巴云原生

程序员 云原生 写作 写作技巧

5分钟速读之Rust权威指南(八)

wzx

rust

飞猪基于 Serverless 的云+端实践与思考

阿里巴巴云原生

Serverless 容器 运维 云原生 监控

简单了解 MySQL 中相关的锁

leonsh

MySQL 后端

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