From bcf03e8cd2d1fb3a7d1dbbfee960dd47b36fc7bb Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Thu, 4 Jun 2020 20:36:31 +0200 Subject: [PATCH 1/2] Revert "cpython: Optimize dynamic symbol tables, for a 6% speedup." ofborg does not like fetching patches when the derivation is used during bootstrapping. This reverts commit 480c8d199166b2f8cd20e6e245d8a019329ec466. --- .../python/cpython/2.7/default.nix | 7 ------ .../interpreters/python/cpython/default.nix | 25 ------------------- 2 files changed, 32 deletions(-) diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix index 0e9a790237f..db86b67835e 100644 --- a/pkgs/development/interpreters/python/cpython/2.7/default.nix +++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix @@ -100,13 +100,6 @@ let # libuuid, slowing down program startup a lot). ./no-ldconfig.patch - # Optimize symbol tables for the sake of dynamic linking. - # Significant for Python because of extension modules. - (fetchpatch { - url = "https://salsa.debian.org/cpython-team/python3/-/raw/27103a32e/debian/patches/link-opt.diff"; - sha256 = "0vp36276ndbrwr7882vg7vjd61c8mv7bqgal6bbh2fimp6zlkdhv"; - }) - ] ++ optionals stdenv.hostPlatform.isCygwin [ ./2.5.2-ctypes-util-find_library.patch ./2.5.2-tkinter-x11.patch diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index 34ffc9b32d0..9f0ac8d6972 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -99,31 +99,6 @@ in with passthru; stdenv.mkDerivation { # (since it will do a futile invocation of gcc (!) to find # libuuid, slowing down program startup a lot). (./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch") - ] ++ optionals stdenv.isLinux [ - # Optimize symbol tables for the sake of dynamic linking. - # Significant for Python because of extension modules. - ( - if pythonAtLeast "3.8" then - fetchpatch { - url = "https://salsa.debian.org/cpython-team/python3/-/raw/3.8.3rc1-1/debian/patches/link-opt.diff"; - sha256 = "0va85318nahnqgydwjs7723h8gx41inbdawdy6v4hiykzgc8s7vs"; - } - else if isPy37 then - fetchurl { - url = "https://salsa.debian.org/cpython-team/python3/-/raw/3.7.6-1/debian/patches/link-opt.diff"; - sha256 = "1aqvsc0p3sxnfsi8jz7537wl6v95v26ba4nflwvmn5lxlc3y3g13"; - } - else if isPy36 then - fetchpatch { - url = "https://salsa.debian.org/cpython-team/python3/-/raw/3.6.8-1/debian/patches/link-opt.diff"; - sha256 = "1nhdrgla75ily9gk7xx0crxa7ynqzks0djxk36sa3lgg5w8vjvyr"; - } - else - fetchpatch { - url = "https://salsa.debian.org/cpython-team/python3/-/raw/27103a32e/debian/patches/link-opt.diff"; - sha256 = "0vp36276ndbrwr7882vg7vjd61c8mv7bqgal6bbh2fimp6zlkdhv"; - } - ) ] ++ optionals (isPy35 || isPy36) [ # Determinism: Write null timestamps when compiling python files. ./3.5/force_bytecode_determinism.patch From a337c44db65bdb7838bf1b1875631879b3a820c9 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Thu, 4 Jun 2020 18:37:59 +0200 Subject: [PATCH 2/2] python3Minimal: disable optimizations No point for the bootstrapping. --- pkgs/development/interpreters/python/cpython/default.nix | 4 +++- pkgs/development/interpreters/python/default.nix | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index 9f0ac8d6972..8886b60d39e 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -31,6 +31,7 @@ , stripBytecode ? false , includeSiteCustomize ? true , static ? false +, enableOptimizations ? true }: assert x11Support -> tcl != null @@ -151,11 +152,12 @@ in with passthru; stdenv.mkDerivation { PYTHONHASHSEED=0; configureFlags = [ - "--enable-optimizations" "--enable-shared" "--without-ensurepip" "--with-system-expat" "--with-system-ffi" + ] ++ optionals enableOptimizations [ + "--enable-optimizations" ] ++ optionals (pythonOlder "3.7") [ # This is unconditionally true starting in CPython 3.7. "--with-threads" diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 6da7abc876e..a4bf8599aac 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -146,6 +146,7 @@ in { rebuildBytecode = false; stripBytecode = true; includeSiteCustomize = false; + enableOptimizations = false; }).overrideAttrs(old: { pname = "python3-minimal"; meta = old.meta // {