[Nix-dev] Dataflow
stewart mackenzie
setori88 at gmail.com
Thu Dec 25 17:45:02 CET 2014
> Maybe I'm wrong, but I don't think the Nix language itself has any idea
> of concurrency as such -- at the manual says
>
> "The Nix expression language is a pure, lazy, functional language."
>
> (https://nixos.org/nix/manual/#ch-expression-language)
Actually I recall eelco talking about threads in nix. IIRC there was a
motion to remove them but he wanted to keep them.
> Therefore, there's no value in adding concurrency unless your bottleneck
> is the actual derivation of the build *plan* (not the actual build).
You're quite correct, indeed I was referring to the build plan. One
light weight language thread calling the build tool for each
build/package that forms part of the build plan.
If one uses declarative concurrency I suspect one could essentially
remove much of the build plan logic that's in nix-the-language.
I need to do some more reading.
> As you've discovered, your problem is that the underlying mechansism is
> impure (and buggy). There's nothing Nix-the-language can do about that
> -- unless you want to go about replacing the build systems used by
> individual programs by more principled ones. I'm sure we'd all love
> that, but it's not a trivial task and need buy-in from any potential
> upstream.
Well that's certainly not going to happen any time soon. :) It was
just rather annoying trying to debug something that keeps hopping
about.
More information about the nix-dev
mailing list