On Tue, Aug 28, 2018, at 10:42 PM, Jeff Walden wrote: > jsapi.h and jsfriendapi.h are mega-huge, monolithic headers. A one-stop > shop is maybe (maybe) convenient for users. But it's terrible for Gecko > and SpiderMonkey: touching jsapi.h rebuilds the world. (The one-stop > shop approach is also pretty terrible for users because js*api.h are > unreadable, disorganized messes.)
Nice! I don't know if you saw, but this summer our intern Sofia completed a project to report on the effective build-time cost of changes to specific files. Her intern presentation is available on AirMo[1]. I don't have a link to her final slides handy, but you can see some interim results here[2]. chmanchester has been working on running the reports she developed regularly in CI, you can see the output from a recent run[3]. The short version is "take the full transitive cost of building everything in the dependency graph upstream of a file, multiply by how often the file gets changed (from the pushlog)". You can see in the third link that jsapi.h is pretty far up the list, it's #8! Changing the code so that jsapi.h gets changed less often will definitely result in faster rebuilds for lots of people. At some point even a perfect build system can't save us from dependencies like this--only changing the code can make things better. -Ted 1. https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E297612 2. https://docs.google.com/presentation/d/1jRLZueb9PKFb6o2NsbB7dv5gTF1V0ZEBiOGj7R_1JfI/edit#slide=id.gc6f9544c1_0_0 3 .https://taskcluster-artifacts.net/CLtUuQugTjKONONL4hh5Nw/0/public/14day_report.html _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform