> 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.
_______________________________________________
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to