This improves the implementation of `dumpVars` by removing a call to `install`.
This improves performance when sourcing setup.sh by more than 10%
It should also improve the performance when transitioning between build phases significantly as no process executions are issued anymore,
A test is added, which ensures that no extra execve calls are issued while sourcing setup.sh.
`ghcWithPackages` broke in #411741, partially because we don't have
tests for it. This adds some tests to make sure it keeps working in the
future. For now these tests will fail until #415436 is fixed.
This is split off of #415434.
Adds a regression test for https://github.com/NixOS/nixpkgs/pull/224542
These bash helpers make it trivial to write shell based setup hooks that utilize all cores.
This also makes it simpler to optimize existing hooks which are not yet utilizing all cores.
Existing hooks which already use `xargs -P` to parallelize their work, can be optimized further by replacing the xargs call with one of the functions added here , eg. `parallelRun` or `parallelMap`.
The new shell based functions `parallelRun` and `parallelMap` are superior to `xargs -P`, because:
- They perform better as they launch $NIX_BUILD_CORE workers, each handling many jobs, vs `xargss -P` usually launches a new process for each job (anything else is difficult to implement nicely with xargs).
- workers can be defined as shell functions, which allows using all declared shell variables and functions inside the worker (e.g isElf or isScript, etc.), vs. `xargs -P` forces the user to create a new shell process, which cannot re-use declared variables and functions.
If project uses C and does not include `stdbool.h`,
it will not have available lowercase booleans.
However, since this tool targets GLib programs,
we can rely on uppercase constants defined by GLib.
evolution-ews introduced a check for optional schemas, which would skip our hardcoded code paths.
a0c514bd34
Let’s update the semantic patch to also replace the invocations of specified `schemaExistsFunction` for known schemas with `true`.
We only need *a* package, to test the "documentationTarball" function,
not specifically vector. I guess we should use a package that is rarely
broken itself... for which a *dependency* of vector should be a good
choice. I took a random one... "random"!
This reverts commit 65a333600d.
This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.
It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).
A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.
[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e458