写点什么

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

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

关注

评论

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

架构训练营模块三作业

沈益飞

架构训练营 架构师训练营 4 期

mysqlx学习

SkyFire

mysqlx

瞰源 | 别逗了,同学!开源不是点赞送礼

OpenTEKr

狄安瞰源

拾起卖数字化平台亮相2021全国废钢铁大会引热烈反响 数字化建设助推废钢产业高质量发展

InfoQ 天津

直击前沿技术:云原生应用低代码开发平台实践

博文视点Broadview

发现新视界——视觉计算将如何改变生产方式

阿里云弹性计算

阿里云 云栖大会 视觉计算

linux信号操作

SkyFire

Linux 信号

28天写作挑战复盘

圣迪

灵魂洗礼

为什么 MongoDB 使用 B 树

编程江湖

mongodb

性能分析之系统资源饱和度

zuozewei

Linux 性能分析 12月日更

瞰源 | 假领子的流行经济学看开源

OpenTEKr

狄安瞰源

Thinking Agile 2021,Being Agile 2022

Bruce Talk

敏捷 随笔 Agile

spring 源码解析一、概述

xzy

Java spring spring源码

运维意识

搬砖的周狮傅

开发感想

学生管理系统架构文档

皓月

架构实战营 #架构实战营 「架构实战营」

Golang的通道复用上手(三)

liuzhen007

go语言 28天写作 12月日更

模块三作业

whoami

「架构实战营」

比格云CEO 诸葛辉:本土开源力量的崛起,正为底层技术基础设施掀起一股中国风 I OpenTEKr 大话开源 Vol.4

OpenTEKr

大话开源

关于Kafka分区leader迁移的感想

Kafka中文社区

正转与反转(30/28)

赵新龙

28天写作

如何用 Python 自动发送微博?

老表

Python selenium 跟老表学云服务器 自动化实战

linux库打桩

SkyFire

Linux hook

NFS(网络文件系统)配置(Ubunut/Deepin等系统)

SkyFire

Linux NFS

架构训练营第四期 作业3

supermenG

架构师训练营 4 期

Mybatis使用的9种设计模式,你知道几种

编程江湖

设计模式 JAVA开发

热更新技术在游戏 SDK 中的实践

bilibili游戏技术

Modern-Cpp学习笔记

SkyFire

c++

2021年,你读过哪些书?(29/28)

赵新龙

28天写作

关于net6中宿主模型的一点点看法

喵叔

28天写作 12月日更

架构实战营 - 模块 3 课后作业

tony

ClickPaaS 胡柏:开源不是童话,它背后的商业逻辑正是其哲学的另一面体现 I OpenTEKr 大话开源 Vol.3

OpenTEKr

大话开源

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