James McNellis' talks @Italian C++ Conference 2016
The talks James McNellis gave at the Italian C++ Conference 2016 are now online:
An Introduction to C++ Coroutines
One of the most interesting new features being proposed for C++ standardization is coroutines, formerly known as “resumable functions.” C++ coroutines are designed to be highly scalable, highly efficient (no overhead), and highly extensible, while still interacting seamlessly with the rest of the C++ language.
This session will consist of an in-depth introduction to C++ coroutines. We will begin by looking at the rationale for adding coroutines to the C++ language and then look at several examples that show [1] how to write a coroutine, [2] how to use the extensibility model to adapt existing libraries to work with C++ coroutines, and [3] how coroutines really work “under the hood,” using the Visual C++ implementation as a reference. Finally, we will look briefly at the status of the C++ coroutines proposal and some of the competing ideas.
Adventures in a Legacy Codebase
Three years ago, the Visual C++ team undertook a project to substantially modernize and redesign the Microsoft C Runtime (CRT) with the goals of improving long-term maintainability, performance, and usability. This work culminated with the release of the Universal CRT with Windows 10 and Visual Studio 2015.
In this session, I will discuss our team’s experiences from this project. We’ll look at some of the techniques we used in modernizing a decades-old codebase and look at some of the challenges that we faced, lessons that we learned, and best practices that we developed during the course of the project.