nixpkgs/pkgs/development/interpreters
Andreas Rammhold 1e47dd9cb8 cpython: Enable LTO on all builds as it doesn't break reproducibility
LTO allows us to optimise the binaries we are shipping a bit further
than just with the regular -Ox and other compiler flags. It also is
deterministic and doesn't harm our reproducibility efforts while
providing us with up to 10% performance gain (and sometimes slightly
slower). See the table below for a comparsion of this version with the
Python 3.9 build that sets -fno-semantic-interposition.

+-------------------------+--------------------+------------------------+--------------+------------------------+
| Benchmark               | py39-nsip.nix.json | py39-nsip-lto.nix.json | Change       | Significance           |
+=========================+====================+========================+==============+========================+
| 2to3                    | 642 ms             | 620 ms                 | 1.03x faster | Significant (t=12.04)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| chameleon               | 14.6 ms            | 14.4 ms                | 1.02x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| chaos                   | 182 ms             | 182 ms                 | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| crypto_pyaes            | 175 ms             | 172 ms                 | 1.02x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| deltablue               | 11.2 ms            | 11.2 ms                | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| django_template         | 82.0 ms            | 81.4 ms                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| dulwich_log             | 101 ms             | 99.8 ms                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| fannkuch                | 634 ms             | 638 ms                 | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| float                   | 176 ms             | 189 ms                 | 1.08x slower | Significant (t=-4.30)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| go                      | 366 ms             | 365 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| hexiom                  | 14.9 ms            | 15.1 ms                | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| json_dumps              | 18.7 ms            | 18.5 ms                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| json_loads              | 37.9 us            | 37.3 us                | 1.02x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| logging_format          | 14.2 us            | 14.3 us                | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| logging_silent          | 305 ns             | 313 ns                 | 1.02x slower | Significant (t=-3.91)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| logging_simple          | 13.0 us            | 13.2 us                | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| mako                    | 24.7 ms            | 23.3 ms                | 1.06x faster | Significant (t=10.74)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| meteor_contest          | 130 ms             | 128 ms                 | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| nbody                   | 201 ms             | 201 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| nqueens                 | 152 ms             | 154 ms                 | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pathlib                 | 26.3 ms            | 26.2 ms                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pickle                  | 13.1 us            | 13.7 us                | 1.05x slower | Significant (t=-10.36) |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pickle_dict             | 26.6 us            | 27.1 us                | 1.02x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pickle_list             | 4.34 us            | 4.31 us                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pickle_pure_python      | 738 us             | 759 us                 | 1.03x slower | Significant (t=-5.26)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pidigits                | 181 ms             | 181 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| pyflate                 | 959 ms             | 974 ms                 | 1.02x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| python_startup          | 34.0 ms            | 31.4 ms                | 1.08x faster | Significant (t=29.75)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| python_startup_no_site  | 15.3 ms            | 14.5 ms                | 1.06x faster | Significant (t=17.58)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| raytrace                | 849 ms             | 846 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| regex_compile           | 261 ms             | 261 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| regex_dna               | 187 ms             | 221 ms                 | 1.18x slower | Significant (t=-46.94) |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| regex_effbot            | 3.66 ms            | 3.98 ms                | 1.09x slower | Significant (t=-18.55) |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| regex_v8                | 29.7 ms            | 29.3 ms                | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| richards                | 113 ms             | 110 ms                 | 1.03x faster | Significant (t=3.47)   |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| scimark_fft             | 592 ms             | 590 ms                 | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| scimark_lu              | 253 ms             | 265 ms                 | 1.05x slower | Significant (t=-8.97)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| scimark_monte_carlo     | 170 ms             | 177 ms                 | 1.04x slower | Significant (t=-4.96)  |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| scimark_sor             | 310 ms             | 315 ms                 | 1.02x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| scimark_sparse_mat_mult | 8.36 ms            | 8.33 ms                | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| spectral_norm           | 232 ms             | 229 ms                 | 1.02x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sqlalchemy_declarative  | 185 ms             | 183 ms                 | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sqlalchemy_imperative   | 27.4 ms            | 27.6 ms                | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sqlite_synth            | 4.73 us            | 4.73 us                | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sympy_expand            | 813 ms             | 819 ms                 | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sympy_integrate         | 31.6 ms            | 31.8 ms                | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sympy_str               | 477 ms             | 479 ms                 | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| sympy_sum               | 245 ms             | 247 ms                 | 1.01x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| telco                   | 11.3 ms            | 11.4 ms                | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| tornado_http            | 172 ms             | 172 ms                 | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| unpack_sequence         | 56.2 ns            | 51.2 ns                | 1.10x faster | Significant (t=2.50)   |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| unpickle                | 19.8 us            | 19.5 us                | 1.02x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| unpickle_list           | 5.75 us            | 5.75 us                | 1.00x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| unpickle_pure_python    | 524 us             | 522 us                 | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| xml_etree_generate      | 148 ms             | 148 ms                 | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| xml_etree_iterparse     | 129 ms             | 131 ms                 | 1.02x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| xml_etree_parse         | 179 ms             | 177 ms                 | 1.01x faster | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
| xml_etree_process       | 118 ms             | 119 ms                 | 1.00x slower | Not significant        |
+-------------------------+--------------------+------------------------+--------------+------------------------+
2021-07-05 12:34:02 -07:00
..
acl2 acl2: fix darwin build 2021-05-16 14:59:44 -07:00
alda alda: 1.4.4 -> 1.5.0 2021-07-03 00:34:40 +00:00
angelscript angelscript: Make Darwin-compatible 2021-05-16 21:45:55 +02:00
bats bats: 1.2.1 -> 1.3.0 2021-03-17 09:51:56 +01:00
ceptre ceptre: expand platforms to unix 2021-03-09 09:16:08 +07:00
chibi chibi: 0.9.1 -> 0.10 2021-05-17 13:35:12 -07:00
cling cling: fix llvm build 2021-05-08 18:13:45 -07:00
clips clips: 6.31 -> 6.40 2021-06-07 07:44:10 -07:00
clisp pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
clojure babashka: 0.4.3 -> 0.4.5 2021-06-10 19:09:16 -03:00
clojurescript/lumo pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
cyclone pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
dart dart: 2.12.2 -> 2.13.1 (#126979) 2021-06-16 03:42:30 +02:00
dhall dhall: Use --base-import-url flag for documentation (#128588) 2021-06-29 19:09:29 -07:00
duktape duktape: Add pkgconfig file 2021-06-16 17:42:03 -07:00
eff pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
elixir elixir: 1.12.0 -> 1.12.1 2021-05-29 19:05:07 +09:00
erlang erlang: 24.0.2 -> 24.0.3 2021-07-04 19:56:21 +09:00
evcxr evcxr: 0.9.0 -> 0.10.0 2021-06-05 20:59:07 +02:00
falcon falcon: 2013-09-19 -> unstable-2018-10-23 2021-05-10 00:03:10 +07:00
gauche gauche: mark broken on darwin 2021-02-02 14:46:05 +01:00
gnu-apl gnuapl: set meta.mainProgram 2021-06-14 17:34:33 +01:00
groovy treewide: makeWrapper buildInputs to nativeBuildInputs 2021-02-19 20:09:16 +07:00
gtk-server pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
guile guile-1.8: fix CVE-2016-8605 2021-02-23 20:38:06 +09:00
hugs development: /s/name/pname&version/ 2021-06-30 09:45:11 +02:00
hy hy: 0.19.0 -> 1.0a1 and improvements 2021-06-27 12:34:28 +02:00
icon-lang pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
io io: switch to pname 2021-02-24 14:00:12 +01:00
j j: 901f -> 902b 2021-05-01 21:58:31 +02:00
janet janet: the nix sandbox doesn't have /usr/bin/env 2021-07-05 19:24:08 +08:00
jelly
jimtcl pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
joker joker: 0.16.0 -> 0.17.1 2021-04-28 01:00:59 -04:00
jruby jruby: 9.2.18.0 -> 9.2.19.0 2021-06-23 09:43:01 -07:00
jython treewide: makeWrapper buildInputs to nativeBuildInputs 2021-02-19 20:09:16 +07:00
kona pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
lfe fix lfe 2021-05-18 05:40:58 +09:00
lolcode pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
love pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
lua-5 lua: remove unecessary postBuild for lua 5.3 2021-06-22 11:34:50 -03:00
luajit luajit_2_0: 2.1.0-2021-05-17 -> 2.1.0-2021-05-29 2021-05-30 16:02:20 +00:00
lush pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
maude pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
metamath metamath: fix cross-compilation and update license 2021-03-09 20:22:07 +07:00
micropython micropython: fix build on aarch64-darwin and aarch64-linux 2021-06-15 16:43:35 +02:00
mujs mujs: 1.1.1 -> 1.1.2 2021-05-02 11:00:09 +02:00
nix-exec pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
octave octave.buildEnv: Handle better no packages situation 2021-05-23 09:19:18 +03:00
perl perldevel: 5.33.8 -> 5.35.0 2021-06-03 13:23:01 +00:00
php php74: 7.4.20 -> 7.4.21 2021-07-01 14:03:19 +02:00
picoc pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
picolisp treewide: makeWrapper buildInputs to nativeBuildInputs 2021-02-19 20:09:16 +07:00
pixie pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
pure llvmPackages: Multuple outputs for everythting 2021-04-30 05:41:00 +00:00
pyrex treewide: remove stdenv where not needed 2021-01-25 18:31:47 +01:00
python cpython: Enable LTO on all builds as it doesn't break reproducibility 2021-07-05 12:34:02 -07:00
qnial pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
quickjs quickjs: 2020-11-08 -> 2021-03-27 2021-06-07 20:32:10 -03:00
racket racket: 8.0 -> 8.1 2021-06-01 13:08:54 -07:00
rakudo rakudo: remove references to stdenv.cc.cc 2021-06-21 09:13:59 +02:00
rascal development: /s/name/pname&version/ 2021-06-30 09:45:11 +02:00
red pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
regina pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
renpy renpy: ffmpeg_3 -> ffmpeg 2021-05-18 09:42:58 +02:00
ruby rubygems: ensure temporary directories are cleaned up 2021-05-20 20:51:41 +00:00
scheme48 scheme48: refactor and add siraben as maintainer 2021-02-24 15:22:15 +07:00
scsh pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
self pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
shen-sbcl pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
shen-sources pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
sollya sollya: init at 0.7 2021-03-09 14:38:35 +01:00
spidermonkey Merge pull request #114942 from lopsided98/spidermonkey-arm 2021-06-16 18:28:22 +02:00
supercollider Change all alsaLib references to alsa-lib 2021-06-10 01:12:49 -03:00
tcl tcl: allow passing in extra wrapper args through tclWrapperArgs 2021-06-17 20:39:44 +02:00
tclreadline tclreadline: simplify package with tcl.mkTclDerivation 2021-05-21 15:18:04 -05:00
tinyscheme tinyscheme: 1.41 -> 1.42 2021-03-09 23:02:02 +00:00
trealla trealla: 1.7.65 -> 1.8.74 2021-06-10 19:23:21 +07:00
unicon-lang treewide: unzip buldInputs to nativeBuildInputs (2) 2021-03-06 15:18:05 +07:00
wasm3 wasm3: init at 0.5.0 2021-06-22 08:06:31 -03:00
wasmer wasmer interpreter: 1.0.2 -> 2.0.0 2021-06-21 14:07:53 +02:00
wasmtime treewide: fix cargoSha256/cargoHash 2021-05-08 00:36:37 -07:00
yabasic yabasic: init at 2.89.1 2021-03-19 21:21:01 -03:00