Commit graph

4126 commits

Author SHA1 Message Date
Greg Price 52c04b0347 cpython: Use autoreconfHook to rebuild configure script.
In particular this will let us use patches that apply to configure.ac.
2020-05-13 21:23:48 -07:00
Greg Price f8a8243bd3 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:
  https://github.com/python/cpython/commit/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.
2020-05-11 23:37:04 -07:00
Greg Price 9d8831c8fe 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:
  https://github.com/python/cpython/commit/a6a4dc816
  https://bugs.python.org/issue31370
2020-03-30 22:56:48 -07:00
Vladimír Čunát 804477b875
Merge #75430: erlangR22: 22.1.7 -> 22.3 2020-03-29 08:41:36 +02:00
Jörg Thalheim 774ddebd87
Merge pull request #83472 from Mic92/propragate-darwin-go
Propragate darwin go
2020-03-28 06:57:59 +00:00
Stig Palmquist 62831e1023 rakudo: 2020.02 -> 2020.02.1
dependencies:
moarvm: 2020.02 -> 2020.02.1
nqp: 2020.02 -> 2020.02.1
2020-03-27 02:00:17 -07:00
Jonathan Ringer 279438e7f8 python: add use-pkgs-prefix option to update script 2020-03-27 01:47:30 -07:00
Jörg Thalheim 066db11215
Revert "Merge pull request #83099 from marsam/fix-buildGoModule-packages-darwin"
This reverts commit 4e6bf03504, reversing
changes made to afd997aab6.

Instead we propagate those frameworks from the compiler again
2020-03-27 07:33:21 +00:00
Vladimír Čunát a533068c3e
Merge #82728: racket: enable building on aarch64 2020-03-24 11:59:03 +01:00
Michael Raskin db4ccddb35
Merge pull request #83185 from idontgetoutmuch/octave-for-macos
Build octave on macos
2020-03-23 08:17:27 +00:00
Dominic Steinitz 6d196e8c92 Build octave on macos 2020-03-23 06:31:11 +00:00
Mario Rodas 618075428b joker: fix build on darwin 2020-03-21 05:29:00 -05:00
Mario Rodas ef35625322
Merge pull request #79920 from r-ryantm/auto-update/groovy
groovy: 2.5.9 -> 3.0.0
2020-03-17 08:28:38 -05:00
cw 98f6a60460 erlangR22: 22.1.7 -> 22.3 2020-03-17 06:54:06 +01:00
Benno Fünfstück ef3175bcfa racket: enable building on aarch64 2020-03-16 15:23:31 +01:00
Elis Hirwing f1dfb6e0f5
php: get rid of with lib; used on entire file 2020-03-15 18:04:57 +01:00
Elis Hirwing 6100ac4ab2
php: remove unsupported options
- mcrypt was removed in 7.2
 - mhash was integrated into hash in 7.0
2020-03-15 18:04:25 +01:00
Elis Hirwing da3384a25d
php: Re-indent main derivation 2020-03-15 10:27:37 +01:00
Frederik Rietdijk 13e7a3e112 Python: introduce tests for interpreters
This adds tests to the passthru of all Python interpreters.
2020-03-14 15:05:37 +01:00
Nathan van Doorn dd938aa157 metamath: 0.180 -> 0.181 2020-03-14 03:24:44 +00:00
Maximilian Bosch 37b590dc45
wasmer: 0.13.0 -> 0.16.2 2020-03-12 19:06:47 +01:00
Lancelot SIX 605640b294 guile: 2.2.6 -> 2.2.7
See https://lists.gnu.org/archive/html/info-gnu/2020-03/msg00004.html
for release information
2020-03-11 23:56:38 +00:00
Elis Hirwing 5bf47ab9bb
php72: 7.2.27 -> 7.2.28
Changelog: https://www.php.net/ChangeLog-7.php#7.2.28
2020-03-11 20:13:56 +01:00
Elis Hirwing 8f4cb37116
php73: 7.3.14 -> 7.3.15
Changelog: https://www.php.net/ChangeLog-7.php#7.3.15
2020-03-11 20:12:34 +01:00
Maximilian Bosch 0bf5619fe0
php: add buildEnv function for additional config on the CLI SAPI
Initially discussed in #55460.

This patch adds a `buildEnv` function to `php` that has the
following features:

* `php.buildEnv { extraConfig = /* ... */; }` to specify custom
  `php.ini` args for the CLI.

* `php.buildEnv { exts = phpPackages: [phpPackages.apcu] }` to
  create a PHP interpreter for the CLI with the `apcu` extension.
2020-03-09 20:41:28 +01:00
Frederik Rietdijk 188c3a4d03 Merge staging-next into staging 2020-03-06 07:09:30 +01:00
Mario Rodas a9368dfb1a
Merge pull request #81792 from r-ryantm/auto-update/jruby
jruby: 9.2.10.0 -> 9.2.11.0
2020-03-05 07:05:50 -05:00
Mario Rodas 1193f8e7ed
Merge pull request #81790 from r-ryantm/auto-update/joker
joker: 0.14.1 -> 0.14.2
2020-03-05 07:05:04 -05:00
R. RyanTM d08fb3b922 jruby: 9.2.10.0 -> 9.2.11.0 2020-03-05 02:42:20 +00:00
R. RyanTM 94c7f25f69 joker: 0.14.1 -> 0.14.2 2020-03-05 02:36:00 +00:00
Jan Tojnar 1a44e325d2
Merge branch 'staging-next' into staging 2020-03-04 21:24:05 +01:00
Jan Tojnar 88b22b6890
php74: 7.4.2 → 7.4.3
https://github.com/php/php-src/blob/php-7.4.3/NEWS#L3-L90
2020-03-04 20:22:15 +01:00
Jonathan Ringer 3973a3c79c python: add pythonRemoveTestsDirHook
This will automatically remove a top-level "tests"
directory from being installed.
2020-03-03 20:01:00 +01:00
Jonathan Ringer fe4580359e python39: 3.9.0.a3 -> 3.9.0.a4 2020-03-03 07:33:39 +01:00
Jonathan Ringer 2a019cc48c python38: 3.8.1 -> 3.8.2 2020-03-03 07:33:39 +01:00
Vladimír Čunát 4d954e528d
Merge #80714: icon-lang: fix build 2020-03-02 16:15:53 +01:00
Mario Rodas 8a863c2973
Merge pull request #81364 from ggreif/wasmtime-0.12
wasmtime: 0.8.0 -> 0.12.0
2020-03-02 08:08:14 -05:00
Gabor Greif aaf997511b wasmtime: bump to v0.12.0 (from v0.8.0)
- moved to modern cargo fetcher
- removed patch (not needed)
- disabled test (due to bytecodealliance/wasmtime#1197)
2020-03-01 02:34:43 +01:00
Frederik Rietdijk 79217339d2 Merge master into staging-next 2020-02-29 15:29:11 +01:00
Emily 6d3fc35620 pypy{,3}: use openssl_1_1
"We now support building PyPy with OpenSSL 1.1 in our built-in _ssl
module, as well as maintaining support for previous versions."
-- https://pypy.readthedocs.io/en/latest/release-pypy2.7-v5.6.0.html
2020-02-28 16:06:20 +00:00
Jan Tojnar bb701376cf
Merge branch 'master' into staging-next 2020-02-28 11:30:44 +01:00
Stig Palmquist ccb142916c rakudo: 2020.01.1 -> 2020.02
dependencies:
moarvm: 2020.01.1 -> 2020.02
nqp: 2020.01 -> 2020.01

recommended:
zef: 0.8.2 -> 0.8.3
2020-02-27 22:00:27 -06:00
worldofpeace 14474ff8b5
Merge pull request #78475 from GRBurst/dart
dart: 2.0.0 -> 2.7.1 (stable) + 2.0.0 -> 2.8.0-dev.10.0 (dev)
2020-02-27 13:43:28 +00:00
GRBurst 1204e44cad
dart: 2.0.0 -> 2.7.1 (stable) + 2.0.0 -> 2.8.0-dev.10.0 (dev)
- dart stable: make it default
- add aarch64 (arm64) packages
- set myself as maintainer
2020-02-27 14:23:27 +01:00
Matthieu Coudron 7f821b3efc
Merge pull request #81067 from teto/lua_fix
- introduce a default checkPhase for lua (disabled by default)
- dont apply patchShebangs on the whole lua package; hopefulyl it doesnt break stuff
2020-02-27 11:01:30 +01:00
Frederik Rietdijk ef156f7a8b Merge staging-next into staging 2020-02-27 10:15:34 +01:00
Daiderd Jordan cc05b65a99
Merge pull request #81114 from cw789/elixir_update
elixir_1_10: 1.10.1 -> 1.10.2
2020-02-27 08:34:05 +01:00
Michael Raskin b41a7eeb18
Merge pull request #79864 from doronbehar/improve-octave
octave: Use qt5 and other improvements
2020-02-27 06:32:54 +00:00
cw da473475d5 elixir_1_10: 1.10.1 -> 1.10.2 2020-02-26 13:12:21 +01:00
Doron Behar 3fa64cd5de octave: make optional features declarative in default.nix
Instead of in all-packages.nix .
2020-02-26 10:09:09 +02:00