| 16 Mar 2024 |
infinisil | This works: nix-build nixos --arg configuration '{}' -A config.system.build.manual.manualHTML.inputDerivation | 05:06:38 |
ryantm | Added nrd input closure to the gist too | 05:09:57 |
infinisil | ryantm: Oh and nix-build pkgs/top-level/release.nix -A manual is for the Nixpkgs manual | 05:12:08 |
ryantm | That one would be a more fair comparison since I render the entire nixpkgs manual (also with a search index) | 05:13:21 |
ryantm | [ryantm@replit1:~/p/nixpkgs]$ /run/current-system/sw/bin/time nix-build --check pkgs/top-level/release.nix -A manual
trace: warning: lib.zipWithNames is a deprecated alias of lib.zipAttrsWithNames.
checking outputs of '/nix/store/3jsvqqgpj2qfbkj2y82w4ac4nnf2g5px-nixpkgs-manual.drv'...
Running phase: unpackPhase
unpacking source archive /nix/store/sn18ydylvr7jsxbhj2yndh9y2s3z55mv-doc
source root is doc
Running phase: patchPhase
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
no configure script, doing nothing
Running phase: buildPhase
substituteStream(): WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. (file './manual.md.in')
Running phase: installPhase
Running phase: fixupPhase
shrinking RPATHs of ELF executables and libraries in /nix/store/m94bxwbilm1hh0dzk53qs7zvdr1vwsps-nixpkgs-manual
checking for references to /build/ in /nix/store/m94bxwbilm1hh0dzk53qs7zvdr1vwsps-nixpkgs-manual...
patching script interpreter paths in /nix/store/m94bxwbilm1hh0dzk53qs7zvdr1vwsps-nixpkgs-manual
/nix/store/m94bxwbilm1hh0dzk53qs7zvdr1vwsps-nixpkgs-manual
0.60user 0.18system 0:02.19elapsed 36%CPU (0avgtext+0avgdata 174568maxresident)k
0inputs+0outputs (0major+39903minor)pagefaults 0swaps
| 05:14:26 |
ryantm | Very similar times! | 05:15:03 |
ryantm | Good on you making it that fast with Python :) | 05:16:48 |
ryantm | Looks like it builds an epub and a single page manual. mmdoc is building a multipage, singlepage, man, epub, and search index, but yeah, maybe pretty close overall speed wise. | 05:18:04 |
infinisil | Yeah and closure sizes are also comparable (70MB vs 200MB) | 05:22:36 |
ryantm | Oh wait, I don't think that time is apples to apples:
[ryantm@replit1:~/p/nixpkgs]$ /run/current-system/sw/bin/time nix-build --check pkgs/top-level/release.nix -A manual.inputDerivation
trace: warning: lib.zipWithNames is a deprecated alias of lib.zipAttrsWithNames.
this derivation will be built:
/nix/store/j622rlm0k013mmspbzgkqgd4zl12vvvd-nixpkgs-manual.drv
error: some outputs of '/nix/store/j622rlm0k013mmspbzgkqgd4zl12vvvd-nixpkgs-manual.drv' are not valid, so checking is not possible
Command exited with non-zero status 1
0.59user 0.18system 0:01.53elapsed 50%CPU (0avgtext+0avgdata 174980maxresident)k
0inputs+0outputs (0major+39908minor)pagefaults 0swaps
[ryantm@replit1:~/p/nixpkgs]$ nix path-info --recursive --closure-size --human-readable ./result
/nix/store/m94bxwbilm1hh0dzk53qs7zvdr1vwsps-nixpkgs-manual 2.0M
| 05:22:56 |
ryantm | The manual is already built as the inputDerivation to that derivation. | 05:23:37 |
ryantm | Nix is so hard to benchmark with the all the caching and indirection. | 05:24:40 |
infinisil | ryantm: Not sure what you mean, I'm pretty sure nix-build --check pkgs/top-level/release.nix -A manual is the actual build, it's not just a dependency | 05:25:23 |
infinisil | And the command you pasted failed | 05:25:33 |
ryantm | Ah yeah, oops. Okay. | 05:25:53 |
infinisil | (gotta build without --check first.. yeah not a great interface) | 05:25:58 |
ryantm | Redacted or Malformed Event | 05:26:59 |
ryantm | Updated the gist again. Looks like the nixpkgs closure is bigger, but the nixpkgs closure matters less. | 05:28:28 |
infinisil | Could you post the results in the github issue? I'm overall not very convinced that this is worth it though 😅 | 05:29:31 |
infinisil | * Could you post the results in the github issue (ideally a nice markdown table with the numbers)? I'm overall not very convinced that this is worth it though 😅 | 05:29:46 |
ryantm | Yeah there's a lot of hate for C. | 05:30:00 |
ryantm | and your thing is already working mostly, though not multipage. | 05:30:23 |
ryantm | Seems reasonable not to switch. | 05:30:26 |
infinisil | I feel kind of bad, you worked on this for so long 😅 | 05:31:07 |
ryantm | I'll take down my multipage manual when we publish official ones. | 05:31:08 |
ryantm | No big deal, I still love the project independent of Nix accepting it. | 05:31:34 |
ryantm | I use it for all my projects and blogs and stuff. | 05:31:44 |
ryantm | I love the easy interface with no config I came up with. | 05:31:59 |
@jade_:matrix.org | In reply to @ryantm:matrix.org and your thing is already working mostly, though not multipage. I've been told the code is literally there for it, though. so we seem to need to do some wiring. | 07:41:14 |
| pennae joined the room. | 09:23:50 |