Transitioning to memory safe programming is a requirement for modern browser engines. But… how? Is memory safety even possible in a large C++ codebase? And if so, what would it look like?
This talk will review the approach we’ve taken in WebKit over the last year, and the results we’ve achieved. I’ll define memory un-safety and memory safety from the perspective of an engineering project. Then I’ll show how we use safe idioms backed by static analysis to eliminate categories of un-safety. Notably, we do not use analysis to search for bugs; rather, we use it to define a safer C++ dialect.
Finally I’ll show how we approach transitioning to a memory safe language (Swift) — not as an either/or, but as a yes/and, in which the work we do in C++ creates a composable interface for verifying safety across programming languages.
View Slides
I'm the WebKit Architect @ Apple. I've been working on WebKit, as an engineer and manager, for about 20 years. During that time, I've worked on just about everything in WebKit, including engineering and management, programming languages, performance, API design, process architecture, OS integration, porting to various OS's and CPU's, and security. My current focus is WebKit's transition to memory safe programming.