Completed
the build system as code generation using metaprogramming
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
When You Come to a Fork in the Road, Take It - Finding Configuration Constraints in Linux Kernel
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 the kernel has tons of configuration options
- 3 this configurability brings maintenance challenges
- 4 there are serious cases of unexpected interactions between configuration options
- 5 there are even more pernicious examples of bad combinations of configuration options
- 6 first steps towards tackling the maintenance challenges of configurability
- 7 a common problem: mapping code back to the configurations that control that code
- 8 what does linux's build system do?
- 9 let's look at the phases of build process
- 10 the build system as code generation using metaprogramming
- 11 configuration localization is finding the inverse of the build process
- 12 each phase of the build encodes rules to control the inclusion and exclusion of source code
- 13 we can use boolean logic to represent the "buildability" of code at each step
- 14 configuration localization then becomes the boolean satisfiability problem
- 15 when you come to a fork in the road, take it
- 16 tooling
- 17 SuperC does configuration-preserving C preprocessing (and parsing)
- 18 Kmax collects Kbuild Makefile conditions for each source file's constraints
- 19 Kclause converts Kconfig files into logical fomulas
- 20 conclusion