diff options
Diffstat (limited to 'doc/manual/rl-next')
-rw-r--r-- | doc/manual/rl-next/build-timing-analysis.md | 22 | ||||
-rw-r--r-- | doc/manual/rl-next/meson.md | 15 |
2 files changed, 37 insertions, 0 deletions
diff --git a/doc/manual/rl-next/build-timing-analysis.md b/doc/manual/rl-next/build-timing-analysis.md new file mode 100644 index 000000000..1bf803dab --- /dev/null +++ b/doc/manual/rl-next/build-timing-analysis.md @@ -0,0 +1,22 @@ +--- +synopsis: Clang build timing analysis +cls: 587 +category: Development +--- + +We now have Clang build profiling available, which generates Chrome +tracing files for each compilation unit. To enable it, run `meson configure +build -Dprofile-build=enabled` in a Clang stdenv (`nix develop +.#native-clangStdenvPackages`) then rerun the compilation. + +If you want to make the build go faster, do a clang build with meson, then run +`maintainers/buildtime_report.sh build`, then contemplate how to improve the +build time. + +You can also look at individual object files' traces in +<https://ui.perfetto.dev>. + +See [the wiki page][improving-build-times-wiki] for more details on how to do +this. + +[improving-build-times-wiki]: https://wiki.lix.systems/link/8#bkmrk-page-title diff --git a/doc/manual/rl-next/meson.md b/doc/manual/rl-next/meson.md new file mode 100644 index 000000000..f836d192f --- /dev/null +++ b/doc/manual/rl-next/meson.md @@ -0,0 +1,15 @@ +--- +synopsis: Lix is built with meson +# and many more +cls: [580, 627, 628, 707, 711, 712, 719] +credits: [Qyriad, horrors, jade, 9999years, winter] +category: Packaging +--- + +Lix is built exclusively with the meson build system thanks to a huge team-wide +effort, and the legacy `make`/`autoconf` based build system has been removed +altogether. This improves maintainability of Lix, enables things like saving +20% of compile times with precompiled headers, and generally makes the build +less able to produce obscure incremental compilation bugs. + +Non-Nix-based downstream packaging needs rewriting accordingly. |