CppCon opening keynote: "C++20: C++ at 40" -- Bjarne Stroustrup
Yesterday's CppCon opening keynote is up:
C++20: C++ at 40
by Bjarne Stroustrup
March 19-21, Madrid, Spain
April 1-4, Bristol, UK
June 16-21, Sofia, Bulgaria
By Blog Staff | Sep 17, 2019 07:27 PM | Tags: None
Yesterday's CppCon opening keynote is up:
C++20: C++ at 40
by Bjarne Stroustrup
By Adrien Hamelin | Sep 11, 2019 11:50 AM | Tags: experimental community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)
by G. Nishanov
Summary of the talk:
Are you doing memory lookups in a huge table?
Does your embarrassingly random access to your lookup tables lead to memory stalls?Fear no more!
We will explore techniques that allow us to do useful work while the prefetcher is busily working on bringing the requested cache lines from main memory, by utilizing nano-coroutines.
And the best part, nano-coroutines can be easily implemented using Coroutines TS that is already available in MSVC and Clang compilers. With a little bit of library support we can utilize the coroutines to extract intra-thread parallelism and quadruple the speed up your lookups.
By Adrien Hamelin | Sep 6, 2019 11:04 AM | Tags: community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Modern C++ Design (part 1 of 2)
Modern C++ Design (part 2 of 2)
by Titus Winters
Summary of the talk:
The old rules for C++API design are due for an update - we have made ad hoc changes to design principles in the standard library, but haven’t really written down the new ideas. Parameter passing and API design for free functions/member functions is due for a general update, particularly as a result of rvalue-references and reference qualification. How do we pass non-owning references? How do we sink a T? How do we express “maybe move” APIs? When do we want reference-qualified overload sets? What does an rvalue-reference qualified non-overloaded method mean? How do we express call once semantics?
For types, our consistency in producing Regular types has weakened in recent C++ releases with types like unique_ptr (move-only) and string_view (reference semantics). These classes of design that have shown themselves to be valuable, but certainly surprising at first. As we should not continue to extend the set of type designs arbitrarily, this is a good time to look at type design in the modern C++ era and narrow down the set of designs that are generally favored. This talk will focus on modern C++ design from small (choice of passing by value or reference) to large (Regular types, reference types, move-only types, etc). We will also introduce a taxonomy of type properties as a means to discuss known-good type design families.
We will also dive into the discussion of whether Regular design covers all good design, or whether there is more to the story.
By Adrien Hamelin | Sep 5, 2019 11:46 AM | Tags: community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Spectre: Secrets, Side-Channels, Sandboxes, and Security
by Chandler Carruth
Summary of the talk:
The discovery of speculative execution side-channel attacks (called "Spectre") fundamentally changes the security model of every modern superscalar microprocessor. Extracting secret data (credit cards, cryptographic keys) through side-channels is not new and has challenged the cryptographic community for decades. Despite this, the industry has often been complacent in our response, viewing these attacks as impacting a tiny amount of code and being nearly impossible to weaponize. But speculative execution attack techniques have fundamentally altered the ease and applicability of side-channels, making them a serious threat to computer security. Responding to these issues has impacted CPU design, compiler design, library design, sandbox techniques and even the C++ programming language and standard.
This talk will explain how these kinds of attacks work at a high level and provide a clear set of terminology to describe these classes of vulnerabilities and attacks. It will show how the different variants work at the low level of modern hardware to give a detailed and precise understanding of the mechanics involved on CPUs today.
It will also provide guidance about what makes applications and services vulnerable and how to analyze your software to understand the degree of its exposure. It will include an overview of the numerous different mitigation techniques available, how to deploy them, and what tradeoffs come with them. Some of these mitigations will be covered in detail: how they work at a hardware level, where they don't work, and what attack vectors remain.
Finally, the talk will show how traditional side-channel risks are made substantially easier to exploit due to speculative execution. This will cover how cryptographic and other libraries dealing in high-value secrets need to be adapted to correctly defend against these attacks. Further, it will introduce general problems of sandboxing untrusted code from secret data and the current best techniques in those circumstances.
This talk will be accessible to most C and C++ programmers. No deep background on CPUs, assembly, hardware instructions, Spectre, side-channels, or security is needed.
By Adrien Hamelin | Sep 5, 2019 11:38 AM | Tags: community
Next presenter.
Presenter Interviews: Klaus Iglberger
by Bob Steagall
From the article:
In this week’s interview, Kevin chats with Klaus Iglberger about his upcoming class Modern C++ Design Patterns; we also find out more about the Back to Basics track and his talk on Move Semantics.
By Adrien Hamelin | Sep 2, 2019 11:21 AM | Tags: community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Applied Best Practices
by Jason Turner
Summary of the talk:
What happens when we start a project from scratch and try to apply all of the best practices? How well do constexpr, noexcept, [[nodiscard]] and other features interact with each other? Is it possible to apply all of the best practices at once, or will they conflict with each other? We will explore current best practices and examine their impact on compile time, runtime and testing. We'll also see some of the unexpected effects that result when best practices are applied to a new project.
By Adrien Hamelin | Aug 30, 2019 12:27 PM | Tags: community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Simplicity: Not Just For Beginners
by Kate Gregory
Summary of the talk:
Many people say that simple code is better code, but fewer put it into practice. In this talk I’ll spend a little time on why simpler is better, and why we resist simplicity. Then I’ll provide some specific approaches that are likely to make your code simpler, and discuss what you need to know and do in order to consistently write simpler code and reap the benefits of that simplicity.
By Adrien Hamelin | Aug 29, 2019 10:06 AM | Tags: community
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
The Bits Between the Bits: How We Get to main()
by Matt Godbolt
Summary of the talk:
When you run your C++ code, have you ever considered how the linker, loader, operating system, C and C++ runtime all work so hard to get everything set up for you to start running your code in main()?
In this Linux-focused talk, Matt will talk about how the linker stitches together your code and how that fits in with dynamic linking. He'll touch on debugging issues with the loader, and how ODR violations can manifest themselves. Then he'll take a look at what's going on behind the scenes to get the C runtime up, and then the C++ runtime, along with all the global object constructors - showing more reasons why you shouldn't be using them!
By the end of the talk you should have an understanding of how a bundle of object files are brought together by the linker, along with the relevant runtimes, and then loaded and executed by the operating system.
By Adrien Hamelin | Aug 29, 2019 10:04 AM | Tags: community
Another one.
Presenter Interviews: Emery Berger
by Bob Steagall
From the article:
In this week’s presenter interview, Kevin talks with Professor Emery Berger about his time working with memory management in C++, what he is looking forward to at this years conference, and his session Mesh: Automatically Compacting Your C++ Application’s Memory.
By Adrien Hamelin | Aug 26, 2019 11:00 AM | Tags: None
We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!
Can I has grammar?
by Timur Doumler
Summary of the talk:
Lightning talk.