How to make Firefox builds 17% faster
11 hours ago
- #Buildcache
- #WebIDL
- #Firefox
- Buildcache's Lua plugin system allows caching of non-compiler programs, demonstrated by caching Firefox's WebIDL binding code generation.
- A small Makefile change passes a command wrapper to the webidl action, enabling buildcache to intercept and cache the Python codegen step.
- A custom Lua wrapper for WebIDL specifies inputs (.webidl files, Python scripts) and outputs (generated C++ files) for buildcache to hash and cache.
- Benchmarks show buildcache with the WebIDL wrapper reduces warm build times to 1m12s, a significant speedup over other caching tools.
- Setup involves configuring buildcache with the Lua wrapper via config file or environment variable, and adjusting cache size for large entries.
- The Lua plugin system can extend caching to other deterministic build steps in Firefox, improving the edit-compile-test cycle.