The fall C++ meeting was held in San Diego, CA. As usual, Red Hat sent three of us to the meeting: myself from the Concurrency and Parallelism Study Group (SG1), Jason Merrill from the Core Language Working Group, and Jonathan Wakely from the Library Working Group (LEWG).
SG1 had a fairly full plate but finished the week with a bit of breathing room to spare. This article describes the major topics discussed this week in SG1.
Continue reading “Fall 2018 ISO WG21 C++ Standards Committee meeting trip report”
On the heels of our recently announcement, General Availability of Clang/LLVM 6.0, Go 1.10, and Rust 1.29, I want to share how we’ll be supporting them going forward. Previously, these packages had been in “Technology Preview” status, which means that they were provided for “you to test functionality and provide feedback during the development process”, and were “not fully supported under Red Hat Subscription Level Agreements, may not be functionally complete, and are not intended for production use”.
So now that we’ve promoted them to fully supported status, what does that mean? In the simplest terms, General Availability (GA) means that these packages have officially entered the “Full Support Phase” of their lifecycle:
Continue reading “Support Lifecycle for Clang/LLVM, Go, and Rust”
We are pleased to announce the immediate availability of Red Hat Developer Toolset 8 beta for Red Hat Enterprise Linux 6 and 7. The key new components for this release are:
- GCC 8.2.1
- GDB 8.2
- Updated components such as SystemTap, Valgrind, OProfile, and many more
Like other tools, these are installable via
yum from the Red Hat Enterprise Linux 6 or 7 Devtools or RHSCL channel. For more details, see the “New Features” section below.
Continue reading “GCC 8 and tools now in beta for Red Hat Enterprise Linux 6 and 7”
If you are developing with C/C++, Clang tools and newer versions of GCC can be quite helpful for checking your code and giving you better warnings and error messages to help avoid bugs. The newer compilers have better optimizations and code generation.
You can easily install the latest-supported Clang and GCC compilers for C, C++, Objective-C, and FORTRAN using
yum on Red Hat Enterprise Linux. These compilers are available as software collections that are typically updated twice a year. The May 2018 update included Clang/LLVM 5 and GCC 7.3, as well as Go and Rust.
If you want your default
gcc to always be GCC 7, or you want
clang to always be in your path, this article shows how to permanently enable a software collection by adding it to the profile (dot files) for your user account. A number of common questions about software collections are also answered.
Continue reading “How to install Clang/LLVM 5 and GCC 7 on RHEL”
The Summer 2018 ISO C++ standards committee meeting this year was back in Rapperswil, Switzerland. The new features for C++2a are coming fast now; the Core language working group had very little time for issue processing because of all the proposal papers coming to us from the Evolution working group.
Red Hat sent three of us to the meeting, to cover different tracks: myself (Core), Jonathan Wakely (Library), and Torvald Riegel (Parallelism/Concurrency). Overall, I thought the meeting was very successful; we made significant progress in a lot of areas.
New C++ language features that were accepted at this meeting:
Continue reading “June 2018 ISO C++ Meeting Trip Report (Core Language)”
Continuing in the effort to detect common programming errors, the just-released GCC 8 contains a number of new warnings as well as enhancements to existing checkers to help find non-obvious bugs in C and C++ code. This article focuses on those that deal with inadvertent string truncation and discusses some of the approaches for avoiding the underlying problems. If you haven’t read it, you might also want to read David Malcolm’s article Usability improvements in GCC 8.
Why Is String Truncation a Problem?
It is well-known why buffer overflow is dangerous: writing past the end of an object can overwrite data in adjacent storage, resulting in data corruption. In the most benign cases, the corruption can simply lead to incorrect behavior of the program. If the adjacent data is an address in the executable text segment, the corruption may be exploitable to gain control of the affected process, which can lead to a security vulnerability. (See CWE-119 for more on buffer overflow.)
Continue reading “Detecting String Truncation with GCC 8”
We are pleased to announce the general availability of:
- Red Hat Software Collections 3.1 (including Ruby 2.5, Perl 2.26, PHP 7.0.27, PostgreSQL 10, MongoDB 3.6, Varnish 5, HAProxy 1.8, Apache 2.4 update)
- Red Hat Developer Toolset 7.1 (GCC 7.3)
- Clang/LLVM 5.0, Go 1.8.7, Rust 1.25.0
Continue reading “Announcing GA for latest Software Collections, Developer Toolset, Compilers”
This year’s Winter ISO C++ Standard Committee meeting was held in March in Jacksonville, Florida. A number of larger features, for which there is substantial interest but which are also difficult to get right, were discussed:
- Concepts, along with Concept types from the Ranges TS; see P0898 and n4685
- Modules; see n4689
- Coroutines; see n4723
- Networking; see n4711
- Executors; see p0443
Jason Merrill’s recently published trip report covers the core language topics. This report focuses on the topics of interest to the Concurrency and Parallelism Study Group (SG1). The “big ticket” items discussed in SG1 during the week were:
Continue reading “March 2018 ISO C++ Meeting Trip Report (SG1: Concurrency and Parallelism)”
The March C++ ISO Standard meeting this year was back in Jacksonville, Florida. As usual, Red Hat sent three of us to the meeting: Torvald Riegel, Thomas Rodgers, and myself. Jonathan Wakely attended via speakerphone. There were 121 people attending the plenary meeting at the beginning of the week.
This meeting was mostly about new features for C++20, particularly when and how to merge Technical Specifications into the draft standard. In the core language, the ones trying to make C++20 are Concepts (already partially merged), Coroutines, and Modules. There was a lot of discussion around all three.
Continue reading “March 2018 ISO C++ Meeting Trip Report (Core Language)”
The GNU Toolchain is a collection of programming tools produced by the GNU Project. The tools are often packaged together due to their common use for developing software applications, operating systems, and low-level software for embedded systems.
This blog is part of a series (see: Fall 2017 Update) covering the latest changes and improvements in the components that make up this Toolchain. Apart from the announcement of new releases, the features described here are at the bleeding edge of software development in the tools. This means that it may be awhile before they make it into production releases, and they might not be fully functional yet. But anyone who is interested in experimenting with them can build their own copy of the Toolchain and then try them out.
Continue reading “GNU Toolchain Update – Spring 2018”