!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

435 Members
Discussion about documentation improvements around the Nix ecosystem91 Servers

Load older messages


SenderMessageTime
28 Jun 2023
@pennae:matrix.eno.spacepennaemostly just enabling/disabling options and running a lot of clean uncached evals13:16:12
@joerg:thalheim.ioMic92Sol It's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples.13:17:22
@joerg:thalheim.ioMic92The flamegraphs from that looked way more useful.13:17:33
@joerg:thalheim.ioMic92 * So, it's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples.13:17:55
@pennae:matrix.eno.spacepennaeback then we also used the older nix profiling suite (NIX_COUNT_CALLS? was that the name?) to find the hot spot, but that didn't really help for much more than that13:18:41
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.frThe function-based profiler?13:19:01
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.fr andi- improved my not-so-fonctional ebpf profiler. I lost the branch though. 13:19:28
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.fr * andi- improved my not-so-fonctional ebpf profiler into something pretty fonctional. I lost the branch though. 13:19:37
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.frThe real issue is the viewer, there's too much information in these traces. We were tracing each and every thunk forcing.13:20:06
@andi:kack.itandi-
In reply to @ninjatrappeur:alternativebit.fr
andi- improved my not-so-fonctional ebpf profiler into something pretty fonctional. I lost the branch though.
https://github.com/andir/nix/tree/andir/profiling
13:21:05
@pennae:matrix.eno.spacepennaefwiw disabling docs on our current system makes no significant difference in eval time, disabling the spit options build adds 30%13:22:24
@sandro:supersandro.deSandro 🐧
In reply to @andi:kack.it
https://github.com/andir/nix/tree/andir/profiling
Does that improve the existing tracing or add a new one?
13:30:02
@andi:kack.itandi-new one, proper nix-internal call frames and all13:30:24
@sandro:supersandro.deSandro 🐧
In reply to @pennae:matrix.eno.space
fwiw disabling docs on our current system makes no significant difference in eval time, disabling the spit options build adds 30%
spit options? split options?
13:30:27
@sandro:supersandro.deSandro 🐧
In reply to @andi:kack.it
new one, proper nix-internal call frames and all
you just set NIX_SHOW_TRACE ?
13:30:46
@pennae:matrix.eno.spacepennae split options, yes 13:30:49
@sandro:supersandro.deSandro 🐧so setting documentation.nixos.options.splitBuild to false improves eval time if I don't build docs?13:47:18
@pennae:matrix.eno.spacepennaeif you don't build docs setting it to false makes no difference. if you do build docs settings it to false slows down the build by 30%13:59:48
@sandro:supersandro.deSandro 🐧ah, good that we cleared that up14:33:17
@pennae:matrix.eno.spacepennaeif it ever did speed up the build to set it to false we should remove it again :)14:37:23
@pennae:matrix.eno.spacepennaethe infra needed to make it works is a royal pain, if we can get away without it then good riddance14:37:43
@sternenseemann:systemli.orgsternido we have an overview of what markdown extensions/custom stuff you can use in the manual somewhere?18:04:34
@sternenseemann:systemli.orgsterniah in the obvious place, nice :)18:05:17
@sternenseemann:systemli.orgsterni pennae: fricklerhandwerk: basically if you do this dynamically you have the same problem, but it is even more complicated; you need to map a value to its definition point and we have no overarching semantics that would fix the meaning of that (e.g. unsafeGetAttrPos would be closest, but also doesn't apply for the reasons pennae outlines). Additionally doing it dynamically means that you have to write a treewalker again and that it'll be slower than statically generating docs 18:14:28
@sternenseemann:systemli.orgsterni I think the RFC should end up in a form where we enforce some kind of convention that means files are nixdoc-able and we can (optionally) also retrieve documentation at runtime in the repl (because it is convenient), but I'd sacrifize the latter if need be—it is a losing battle, since Nix has no module system-like semantics 18:15:52
@fricklerhandwerk:matrix.orgfricklerhandwerk sterni: which RFC do you mean? The one by Johannes Kirschbauer @hsjobeki or some hypothetical one that codifies nixdoc-like semantics? 18:49:39
@sternenseemann:systemli.orgsternithe former18:50:09
@sternenseemann:systemli.orgsterniand with the current trajectory I think it could be the latter (although I'm a bit fuzzy on what is written down currently)18:50:30
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.host @sterni if i understand your concerns: yes treewalker would be slow (as slow as evaluation) but at least accurate.
I guess you‘d suggest some limited set of patterns and nesting if you wanted static analysis solution.
And as the RFC got critical mass of sheperds i am thrilled to make progress as soon as @lassulus schedules the first meetups.
20:48:41
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.host Or just use the rfc outcome and build static analysis that can opt-in for dynamic evaluation in edge cases that are not possible with static analysis alone. 20:52:56

Show newer messages


Back to Room ListRoom Version: 6