lix/src/nix
jade 0f99ed43f1 build-time: remove 20% more by PCH'ing C++ stdlib
It seems like someone implemented precompiled headers a long time ago
and then it never got ported to meson or maybe didn't work at all.

This is, however, blessedly easy to simply implement. I went looking for
`#define` that could affect the result of precompiling the headers, and
as far as I can tell we aren't doing any of that, so this should truly
just be free build time savings.

Previous state:
Compilation (551 times):
  Parsing (frontend):         1302.1 s
  Codegen & opts (backend):    956.3 s

New state:
**** Time summary:
Compilation (567 times):
  Parsing (frontend):         1123.0 s
  Codegen & opts (backend):   1078.1 s

I wonder if the "regression" in codegen time is just doing the PCH
operation a few times, because meson does it per-target.

Change-Id: I664366b8069bab4851308b3a7571bea97ac64022
2024-05-30 21:54:21 +00:00
..
realisation
add-file.md
add-path.md
add-to-store.cc Simplify ContentAddress 2023-07-07 07:30:01 -04:00
app.cc Allow dynamic derivation deps in inputDrvs 2023-09-07 10:39:37 -04:00
build.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
build.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
bundle.cc Overhaul completions, redo #6693 (#8131) 2024-03-25 15:30:36 +00:00
bundle.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
cat.cc nix cat/dump-path/key: stop progress bar before writeFull 2024-05-18 17:51:16 +00:00
config.cc Rename nix show-config to nix config show 2024-05-03 16:26:16 +02:00
copy.cc Make command infra less stateful and more regular 2023-03-15 16:29:07 -04:00
copy.md Also use long options in src/nix/*.md 2023-05-17 08:10:30 +01:00
daemon.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
daemon.md Port the flags of nix-daemon to nix daemon (#8788) 2023-08-28 13:43:34 +00:00
derivation-add.cc Create nix derivation add command 2023-04-07 08:34:58 -04:00
derivation-add.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
derivation-show.cc Rename files to reflect new nix derivation show name 2023-04-07 08:34:58 -04:00
derivation-show.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
derivation.cc nix show-derivation -> nix derivation show 2023-04-07 08:34:58 -04:00
develop.cc Remove 100s of CPU time (10%) from build times (1465s -> 1302s) 2024-05-29 22:16:15 -07:00
develop.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
diff-closures.cc refactor some nix-env and profile code to libcmd 2024-04-29 01:19:21 +00:00
diff-closures.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
doctor.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
dump-path.cc nix cat/dump-path/key: stop progress bar before writeFull 2024-05-18 17:51:16 +00:00
edit.cc util.{hh,cc}: Split out current-process.{hh,cc} 2024-05-29 11:01:34 +02:00
edit.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
eval.cc nix3-eval: don't elide top-level errors 2024-05-08 13:37:20 -06:00
eval.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
flake-archive.md
flake-check.md Also use long options in src/nix/*.md 2023-05-17 08:10:30 +01:00
flake-clone.md
flake-init.md
flake-lock.md Merge pull request #8817 from iFreilicht/flake-update-lock-overhaul 2024-03-25 17:36:24 -06:00
flake-metadata.md
flake-new.md
flake-prefetch.md
flake-show.md
flake-update.md Merge pull request #8817 from iFreilicht/flake-update-lock-overhaul 2024-03-25 17:36:24 -06:00
flake.cc Merge pull request #8817 from iFreilicht/flake-update-lock-overhaul 2024-03-25 17:36:24 -06:00
flake.md Document the path flakeref format (#8640) 2023-07-04 08:39:08 +00:00
fmt.cc Merge pull request #9494 from sellout/nix-run-execv 2024-03-04 07:11:25 +01:00
fmt.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
get-env.sh Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
hash.cc Merge pull request #7750 from obsidiansystems/no-args-prepare 2023-03-15 17:23:40 -04:00
help-stores.md Tweaks 2023-03-23 15:32:59 +01:00
help.md
key-convert-secret-to-public.md
key-generate-secret.md Fix missing ` in key manual 2022-06-08 11:46:50 +02:00
log.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
log.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
ls.cc Get rid of some unchecked calls to std::cout 2023-03-02 15:02:24 +01:00
main.cc util.{hh,cc}: Split out namespaces.{hh,cc} 2024-05-29 11:41:16 +02:00
make-content-addressed.cc Make command infra less stateful and more regular 2023-03-15 16:29:07 -04:00
make-content-addressed.md clarify definition of "installable" 2023-03-05 01:46:17 +01:00
meson.build build-time: remove 20% more by PCH'ing C++ stdlib 2024-05-30 21:54:21 +00:00
nar-cat.md
nar-dump-path.md
nar-ls.md Also use long options in src/nix/*.md 2023-05-17 08:10:30 +01:00
nar.cc Make command infra less stateful and more regular 2023-03-15 16:29:07 -04:00
nar.md
nix.md docs: clarify how ^ works for -E/-f installables 2024-04-29 08:53:43 -06:00
optimise-store.cc util.hh: split out signals stuff 2024-03-11 00:52:09 -07:00
optimise-store.md
path-from-hash-part.cc Add command 'nix store path-from-hash-part' 2022-10-18 16:51:12 +02:00
path-from-hash-part.md Add command 'nix store path-from-hash-part' 2022-10-18 16:51:12 +02:00
path-info.cc Replace src/libutil/json.cc with nlohmann json generation 2022-11-16 16:50:50 +01:00
path-info.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
ping-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
ping-store.md
prefetch.cc filetransfer: remove decompress request parameter 2024-04-25 01:33:08 +02:00
print-dev-env.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
profile-diff-closures.md
profile-history.md
profile-install.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
profile-list.md nix3-profile: remove indices 2024-05-02 12:02:28 -06:00
profile-remove.md Merge changes Id1a67156,I03f4c7c1,I146736bb,I3b1453cb into main 2024-05-03 13:39:49 +00:00
profile-rollback.md
profile-upgrade.md Merge changes Id1a67156,I03f4c7c1,I146736bb,I3b1453cb into main 2024-05-03 13:39:49 +00:00
profile-wipe-history.md
profile.cc nix3-profile: make element names stable 2024-05-02 12:59:15 -06:00
profile.md Dedup some markdown -> C++ big literal stuff in build system 2023-05-15 10:38:11 -04:00
realisation.cc Move enabled experimental feature to libutil struct 2023-03-20 11:05:22 -04:00
registry-add.md
registry-list.md
registry-pin.md
registry-remove.md
registry.cc Overhaul completions, redo #6693 (#8131) 2024-03-25 15:30:36 +00:00
registry.md doc: Fix typo 2022-06-28 22:43:37 -04:00
repl.cc Move evaluator settings (type and global) to separate file/header 2023-07-31 10:14:15 -04:00
repl.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
run.cc util.{hh,cc}: Split out current-process.{hh,cc} 2024-05-29 11:01:34 +02:00
run.hh Merge pull request #9494 from sellout/nix-run-execv 2024-03-04 07:11:25 +01:00
run.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
search.cc Merge pull request #9481 from iFreilicht/disallow-nix-search-without-search-terms 2024-03-04 08:40:12 +01:00
search.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
shell.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00
sigs.cc nix cat/dump-path/key: stop progress bar before writeFull 2024-05-18 17:51:16 +00:00
store-cat.md
store-copy-log.cc Fix misrendering of 'nix store --help' 2023-03-21 12:02:19 +01:00
store-copy-log.md link "store derivation" to glossary definition 2022-12-21 11:42:50 +01:00
store-delete.cc Make command infra less stateful and more regular 2023-03-15 16:29:07 -04:00
store-delete.md clarify definition of "installable" 2023-03-05 01:46:17 +01:00
store-dump-path.md clarify definition of "installable" 2023-03-05 01:46:17 +01:00
store-gc.cc Deduplicate the Store downcasting with a template 2022-03-11 13:32:33 +00:00
store-gc.md
store-ls.md Also use long options in src/nix/*.md 2023-05-17 08:10:30 +01:00
store-prefetch-file.md
store-repair.cc Make command infra less stateful and more regular 2023-03-15 16:29:07 -04:00
store-repair.md clarify definition of "installable" 2023-03-05 01:46:17 +01:00
store.cc Move store docs to 'nix help-stores' 2023-03-21 14:37:09 +01:00
upgrade-nix.cc util.{hh,cc}: Split out processes.{hh,cc} 2024-05-29 11:01:34 +02:00
upgrade-nix.md Fix the pages in the manual for Lix 2024-05-05 16:11:01 -07:00
verify.cc util.hh: split out signals stuff 2024-03-11 00:52:09 -07:00
verify.md Also use long options in src/nix/*.md 2023-05-17 08:10:30 +01:00
why-depends.cc Overhaul completions, redo #6693 (#8131) 2024-03-25 15:30:36 +00:00
why-depends.md docs: guide to installables docs in installable commands' docs 2024-04-29 08:06:05 -06:00