How to make Firefox builds 17% faster
Le post explique que buildcache peut désormais mettre en cache la génération des bindings C++ à partir des fichiers .webidl de Firefox grâce à son système de plugins Lua. Le pas WebIDL est exécuté via python3 -m mozbuild.action.webidl et produit des milliers de fichiers déterministes à partir des .webidl, ce qui en fait un bon candidat pour le cache. Avec le correctif du Bug 2027655, le Makefile passe conditionnellement $(CCACHE) via py_action quand MOZ_USING_BUILDCACHE est défini, permettant à buildcache d'intercepter l'action en la lançant comme buildcache python3 -m ... . Le wrapper Lua webidl.lua identifie la commande, énumère les entrées (file-lists.json, codegen.json, .webidl et scripts) et les sorties générées, et utilise le mode direct_mode pour hasher les fichiers et rejouer ou stocker les résultats. Les mesures montrent qu'avec buildcache et le plugin WebIDL un build clobber chaud passe à 1m12s, et l'auteur décrit comment activer les wrappers via lua_paths ou BUILDCACHE_LUA_PATH et augmenter max_local_entry_size pour les gros éléments.