-
-
Notifications
You must be signed in to change notification settings - Fork 104
Comparing changes
Open a pull request
base repository: NixOS/nixpkgs-channels
base: 9d0c3ffe6783
head repository: NixOS/nixpkgs-channels
compare: 9480bae33709
Commits on Feb 29, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 27e52af - Browse repository at this point
Copy the full SHA 27e52afView commit details
Commits on Mar 31, 2020
-
cpython: Drop unrecognized --with-threads configure flag.
The ./configure script prints a warning when passed this flag, starting with 3.7: configure: WARNING: unrecognized options: --with-threads The reason is that there's no longer such a thing as a build without threads. Eliminate the warning, by only passing the flag on the older releases that accept it. Upstream change and discussion: python/cpython@a6a4dc816 https://bugs.python.org/issue31370
Configuration menu - View commit details
-
Copy full SHA for 9d8831c - Browse repository at this point
Copy the full SHA 9d8831cView commit details
Commits on Apr 5, 2020
-
Configuration menu - View commit details
-
Copy full SHA for dcbe7d3 - Browse repository at this point
Copy the full SHA dcbe7d3View commit details
Commits on Apr 27, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1a3841f - Browse repository at this point
Copy the full SHA 1a3841fView commit details
Commits on May 2, 2020
-
Configuration menu - View commit details
-
Copy full SHA for a830034 - Browse repository at this point
Copy the full SHA a830034View commit details
Commits on May 5, 2020
-
Co-authored-by: 0x4A6F <0x4A6F@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 4752e21 - Browse repository at this point
Copy the full SHA 4752e21View commit details -
Configuration menu - View commit details
-
Copy full SHA for 47fb499 - Browse repository at this point
Copy the full SHA 47fb499View commit details
Commits on May 6, 2020
-
rustPlatform: increase build-speed of
checkPhase
for rust-packagesWhen running `cargo test --release`, the artifacts from `buildPhase` will be reused here. Previously, most of the stuff had to be recompiled without optimizations.
Configuration menu - View commit details
-
Copy full SHA for 04248f6 - Browse repository at this point
Copy the full SHA 04248f6View commit details
Commits on May 8, 2020
-
rustPlatform: don't install test executables
This is done by gathering all binaries to install before running the checkPhase.
Configuration menu - View commit details
-
Copy full SHA for e32c005 - Browse repository at this point
Copy the full SHA e32c005View commit details -
Configuration menu - View commit details
-
Copy full SHA for f236714 - Browse repository at this point
Copy the full SHA f236714View commit details
Commits on May 9, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1ef7bea - Browse repository at this point
Copy the full SHA 1ef7beaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8be7358 - Browse repository at this point
Copy the full SHA 8be7358View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1202fe5 - Browse repository at this point
Copy the full SHA 1202fe5View commit details
Commits on May 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for d7c9582 - Browse repository at this point
Copy the full SHA d7c9582View commit details -
Configuration menu - View commit details
-
Copy full SHA for e338c12 - Browse repository at this point
Copy the full SHA e338c12View commit details -
This is disabled by default in the linux-hardened patchset, but is required by e.g. LVM. Fixes #87260.
Configuration menu - View commit details
-
Copy full SHA for 4688ec0 - Browse repository at this point
Copy the full SHA 4688ec0View commit details
Commits on May 11, 2020
-
Merge branch 'staging-next' into PR 82342
Hydra nixpkgs: ?compare=1586582
Configuration menu - View commit details
-
Copy full SHA for 5eaabaf - Browse repository at this point
Copy the full SHA 5eaabafView commit details
Commits on May 12, 2020
-
cpython: Use --enable-optimizations, for a 16% speedup.
Without this flag, the configure script prints a warning at the end, like this (reformatted): If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations We're doing a build to distribute to people for day-to-day use, doing things other than developing the Python interpreter. So that's certainly a release build -- we're the target audience for this recommendation. --- And, trying it out, upstream isn't kidding! I ran the standard benchmark suite that the CPython developers use for performance work, "pyperformance". Following its usage instructions: https://pyperformance.readthedocs.io/usage.html I ran the whole suite, like so: $ nix-shell -p ./result."$variant" --run ' cd $(mktemp -d); python -m venv venv; . venv/bin/activate pip install pyperformance pyperformance run -o ~/tmp/result.'"$variant"'.json ' and then examined the results with commands like: $ python -m pyperf compare_to --table -G \ ~/tmp/result.{$before,$after}.json Across all the benchmarks in the suite, the median speedup was 16%. (Meaning 1.16x faster; 14% less time). The middle half of them ranged from a 13% to a 22% speedup. Each of the 60 benchmarks in the suite got faster, by speedups ranging from 3% to 53%. --- One reason this isn't just the default to begin with is that, until recently, it made the build a lot slower. What it does is turn on profile-guided optimization, which means first build for profiling, then run some task to get a profile, then build again using the profile. And, short of further customization, the task it would use would be nearly the full test suite, which includes a lot of expensive and slow tests, and can easily take half an hour to run. Happily, in 2019 an upstream developer did the work to carefully select a more appropriate set of tests to use for the profile: python/cpython@4e16a4a31 https://bugs.python.org/issue36044 This suite takes just 2 minutes to run. And the resulting final build is actually slightly faster than with the much longer suite, at least as measured by those standard "pyperformance" benchmarks. That work went into the 3.8 release, but the same list works great if used on older releases too. So, start passing that --enable-optimizations flag; and backport that good-for-PGO set of tests, so that we use it on all releases.
Configuration menu - View commit details
-
Copy full SHA for f8a8243 - Browse repository at this point
Copy the full SHA f8a8243View commit details -
treewide: strip more things in cross
Stripping reduces closure sizes.
Configuration menu - View commit details
-
Copy full SHA for 34aff7f - Browse repository at this point
Copy the full SHA 34aff7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 736462d - Browse repository at this point
Copy the full SHA 736462dView commit details -
rustPlatform: add
buildAndTestSubdir
-argumentThere are several tarballs (such as the `rust-lang/rust`-source) with a `Cargo.toml` at root and several sub-packages (with their own Cargo.toml) without using workspaces[1]. In such a case it's needed to move into a subdir to only build the specified sub-package (e.g. `rustfmt` or `rsl`), however the artifacts are at `/target` in the root-dir of the build environment. This breaks the build since `buildRustPackage` searches for executables in `target` (which is at the build-env's root) at the end of the `buildPhase`. With the optional `buildAndTestSubdir`-argument, the builder moves into the specified subdir using `pushd`/`popd` during `buildPhase` and `checkPhase`. Also moved the logic to find executables and libs to the end of the `buildPhase` from a custom `postBuild`-hook to fix packages with custom `build`/`install`-procedures such as `uutils-coreutils`. [1] https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
Configuration menu - View commit details
-
Copy full SHA for 6b23cfe - Browse repository at this point
Copy the full SHA 6b23cfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d7f889 - Browse repository at this point
Copy the full SHA 0d7f889View commit details
Commits on May 13, 2020
-
A lot of tests are using `debug_assert!` which isn't available in release-mode.
Configuration menu - View commit details
-
Copy full SHA for e49f3a4 - Browse repository at this point
Copy the full SHA e49f3a4View commit details -
When running the default builder for Rust, the artifacts would be stored in `target/<arch>/<profile>`, however the `install`-target expects the default structure (`target/<profile>`) of `cargo`-builds. When using the Makefile for building as well, the expected structure is created instead.
Configuration menu - View commit details
-
Copy full SHA for 068beb2 - Browse repository at this point
Copy the full SHA 068beb2View commit details -
Needed since we store artifacts in `target/<arch>/<profile>`.
Configuration menu - View commit details
-
Copy full SHA for 913dcdd - Browse repository at this point
Copy the full SHA 913dcddView commit details
Commits on May 14, 2020
-
cpython: Use autoreconfHook to rebuild configure script.
In particular this will let us use patches that apply to configure.ac.
Configuration menu - View commit details
-
Copy full SHA for 52c04b0 - Browse repository at this point
Copy the full SHA 52c04b0View commit details -
cpython: Optimize dynamic symbol tables, for a 6% speedup.
I took a close look at how Debian builds the Python interpreter, because I noticed it ran substantially faster than the one in nixpkgs and I was curious why. One thing that I found made a material difference in performance was this pair of linker flags (passed to the compiler): -Wl,-O1 -Wl,-Bsymbolic-functions In other words, effectively the linker gets passed the flags: -O1 -Bsymbolic-functions Doing the same thing in nixpkgs turns out to make the interpreter run about 6% faster, which is quite a big win for such an easy change. So, let's apply it. --- I had not known there was a `-O1` flag for the *linker*! But indeed there is. These flags are unrelated to "link-time optimization" (LTO), despite the latter's name. LTO means doing classic compiler optimizations on the actual code, at the linking step when it becomes possible to do them with cross-object-file information. These two flags, by contrast, cause the linker to make certain optimizations within the scope of its job as the linker. Documentation is here, though sparse: https://sourceware.org/binutils/docs-2.31/ld/Options.html The meaning of -O1 was explained in more detail in this LWN article: https://lwn.net/Articles/192624/ Apparently it makes the resulting symbol table use a bigger hash table, so the load factor is smaller and lookups are faster. Cool. As for -Bsymbolic-functions, the documentation indicates that it's a way of saving lookups through the symbol table entirely. There can apparently be situations where it changes the behavior of a program, specifically if the program relies on linker tricks to provide customization features: https://bugs.launchpad.net/ubuntu/+source/xfe/+bug/644645 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637184#35 But I'm pretty sure CPython doesn't permit that kind of trick: you don't load a shared object that tries to redefine some symbol found in the interpreter core. The stronger reason I'm confident using -Bsymbolic-functions is safe, though, is empirical. Both Debian and Ubuntu have been shipping a Python built this way since forever -- it was introduced for the Python 2.4 and 2.5 in Ubuntu "hardy", and Debian "lenny", released in 2008 and 2009. In those 12 years they haven't seen a need to drop this flag; and I've been unable to locate any reports of trouble related to it, either on the Web in general or on the Debian bug tracker. (There are reports of a handful of other programs breaking with it, but not Python/CPython.) So that seems like about as thorough testing as one could hope for. --- As for the performance impact: I ran CPython upstream's preferred benchmark suite, "pyperformance", in the same way as described in the previous commit. On top of that commit's change, the results across the 60 benchmarks in the suite are: The median is 6% faster. The middle half (aka interquartile range) is from 4% to 8% faster. Out of 60 benchmarks, 3 come out slower, by 1-4%. At the other end, 5 are at least 10% faster, and one is 17% faster. So, that's quite a material speedup! I don't know how big the effect of these flags is for other software; but certainly CPython tends to do plenty of dynamic linking, as that's how it loads extension modules, which are ubiquitous in the stdlib as well as popular third-party libraries. So perhaps that helps explain why optimizing the dynamic linker has such an impact.
Configuration menu - View commit details
-
Copy full SHA for 480c8d1 - Browse repository at this point
Copy the full SHA 480c8d1View commit details
Commits on May 15, 2020
-
postgresql_9_5: 9.5.21 -> 9.5.22
Release notes: https://www.postgresql.org/docs/9.5/release-9-5-22.html
Configuration menu - View commit details
-
Copy full SHA for 3ea0c17 - Browse repository at this point
Copy the full SHA 3ea0c17View commit details -
postgresql_9_6: 9.6.17 -> 9.6.18
Release notes: https://www.postgresql.org/docs/9.6/release-9-6-18.html
Configuration menu - View commit details
-
Copy full SHA for 6851378 - Browse repository at this point
Copy the full SHA 6851378View commit details -
Release notes: https://www.postgresql.org/docs/10/release-10-13.html
Configuration menu - View commit details
-
Copy full SHA for 35d2d4d - Browse repository at this point
Copy the full SHA 35d2d4dView commit details -
Release notes: https://www.postgresql.org/docs/11/release-11-8.html
Configuration menu - View commit details
-
Copy full SHA for 070c330 - Browse repository at this point
Copy the full SHA 070c330View commit details -
Release notes: https://www.postgresql.org/docs/current/release-12-3.html
Configuration menu - View commit details
-
Copy full SHA for 490cce0 - Browse repository at this point
Copy the full SHA 490cce0View commit details
Commits on May 19, 2020
-
The upstream version fails to compile due to a missing limits.h include. I added a patch to fix that. I opened a pull request to upstream it too, but the project has moved from GitHub onto sr.ht and now asks me to send a patch to the mailing list. My default email client is not really suitable for that, and getting git-send-email set up will take some work, so in the meantime it is easier to just patch it here.
Configuration menu - View commit details
-
Copy full SHA for d4c80a4 - Browse repository at this point
Copy the full SHA d4c80a4View commit details
Commits on May 20, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 54db655 - Browse repository at this point
Copy the full SHA 54db655View commit details
Commits on May 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 6574ba1 - Browse repository at this point
Copy the full SHA 6574ba1View commit details -
I submitted my patch upstream, it was merged, and version 1.0.1 which includes it has been released. So the patch here is no longer necessary. Also, the maintainer added a Nixpkgs-based build environment to the upstream CI setup, so in the future the upstream version will likely not need any patching.
Configuration menu - View commit details
-
Copy full SHA for d4d36c3 - Browse repository at this point
Copy the full SHA d4d36c3View commit details -
acme-client: use source tarball to avoid autoreconf
This was suggested by the upstream maintainer [1], and it is a nice simplification. Also change the url to sr.ht as the project has moved there. [1]: NixOS/nixpkgs#88201 (comment)
Configuration menu - View commit details
-
Copy full SHA for bdd706c - Browse repository at this point
Copy the full SHA bdd706cView commit details
Commits on May 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 6bfabdf - Browse repository at this point
Copy the full SHA 6bfabdfView commit details
Commits on May 27, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c5f7bda - Browse repository at this point
Copy the full SHA c5f7bdaView commit details
Commits on May 28, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 2bde879 - Browse repository at this point
Copy the full SHA 2bde879View commit details
Commits on May 29, 2020
-
Jonathan Ringer committed
May 29, 2020 Configuration menu - View commit details
-
Copy full SHA for 80c9f30 - Browse repository at this point
Copy the full SHA 80c9f30View commit details
Commits on May 30, 2020
-
Merge pull request #87435 from matthewbauer/strip-more-in-cross
treewide: strip more things in cross
Configuration menu - View commit details
-
Copy full SHA for 01377fc - Browse repository at this point
Copy the full SHA 01377fcView commit details -
mesa: make more things optional (#87438)
osmesa & gallium-nine are not needed for all systems. So this adds a flag to disable them if you don’t want them.
Configuration menu - View commit details
-
Copy full SHA for c2039e1 - Browse repository at this point
Copy the full SHA c2039e1View commit details
Commits on May 31, 2020
-
/cc roundup #88306; the issue seems quite serious to me. I also made two other patches non-conditional, as we rebuild all platforms anyway.
Configuration menu - View commit details
-
Copy full SHA for 3f08d64 - Browse repository at this point
Copy the full SHA 3f08d64View commit details -
sqlite-analyzer: 3.31.1 -> 3.32.1
It needs to be synced with sqlite itself.
Configuration menu - View commit details
-
Copy full SHA for 0ef57f5 - Browse repository at this point
Copy the full SHA 0ef57f5View commit details -
mpv: disable samba support by default
samba support will be dropped in mpv upstream in its next release (see mpv-player/mpv@3b8b7cb). Also, using it triggered segmentation faults when using luasocket. Closes #88584
Configuration menu - View commit details
-
Copy full SHA for 164985a - Browse repository at this point
Copy the full SHA 164985aView commit details -
Co-authored-by: cole-h <cole.e.helbling@outlook.com> Co-authored-by: asymmetric <lorenzo@mailbox.org>
Configuration menu - View commit details
-
Copy full SHA for 59e8e7a - Browse repository at this point
Copy the full SHA 59e8e7aView commit details
Commits on Jun 1, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e215c3b - Browse repository at this point
Copy the full SHA e215c3bView commit details
Commits on Jun 2, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 642e991 - Browse repository at this point
Copy the full SHA 642e991View commit details
Commits on Jun 3, 2020
-
Merge pull request #88842 from r-ryantm/auto-update/openh264
openh264: 2.1.0 -> 2.1.1
Configuration menu - View commit details
-
Copy full SHA for 51fd4eb - Browse repository at this point
Copy the full SHA 51fd4ebView commit details
There are no files selected for viewing