Adventures In Updating A Legacy Codebase
summary
Codebase with 20+ years of history moves to C++11 and 64-bit: automated rewrites run with clang-modernize but one transform creates a subtle runtime crash when it inserts casts; many APIs get removed or recreated so old bugs repeat; boost usage is audited and removed all Boost usage where it fails on the real‑time platform; a custom std‑like thread and filesystem are implemented; dozens of large classes are made movable to eliminate pointer‑of‑pointer allocations and to reduce heap churn.
AI-written summary · about
chapters (7)
- 0:00Start
- 8:43Brute force . Write your own tools
- 14:22Don't be blinded by your tools • Reviewing only the red rather than the whole line led to broken code
- 19:53Internal changes may be easier . Start with something you know
- 21:05What if your platform isn't an officially supported boost platform?
- 23:00Match the standard interfaces as much as possible for easy documentation
- 31:55Make it all work on a multicore system with C++11/14
related talks
47mAdventures with C++ Legacy Codebases: Tales of Incremental Improvement
55mSo, you inherited a large code base...
25mUpgrade from "permissive C++" to "modern C++" with Visual Studio 2019
32mBuilding a sustainable codebase: 7 years and counting
54mPractical Advice for Maintaining and Migrating Working Code
40mLessons from two decades of writing bad code
24mRefactoring Legacy Codebases with LibTooling
44mCustomising clang tidy to modernise your legacy C++ code
