This reduces diffoscope's closure size from 2470 MiB to 579 MiB by
leaving out some less crucial dependencies (like GHC and Free
Pascal). These can be re-enabled by turning on enableBloat.
This update was generated by hackage2nix v20151217-7-g3384c26 using the following inputs:
- Nixpkgs: 7cbc1f27d4
- Hackage: dfdbb526ed
- LTS Haskell: e72964a553
- Stackage Nightly: a9df6f5b32
This will eventually become the new stable branch (as unstable ones
are wont to do), but is worth having if you want to patch yesterday's
‘large’ files today, or need to apply patches already created with it.
“First release of the 3.1.x series. This is taken from the
"64bithash" branch.
- Adds support for -B values greater than 2GB, enabled by
-DXD3_USE_LARGESIZET=1 variable. [Enabled in nixpkgs.]
- Adds new performance and speed regression test, written in #Golang.
[Not enabled in nixpkgs.]
When compiled for large sizes, xdelta3 uses a 64bit checksum function.
This impacts both compression and speed.
Relative to 3.0.11, the new branch is currently 3-5% slower and
has 1-2% worse compression. Performance will be addressed in
future 3.1.x releases.”
Before executing the gnuplot executable the environment variable `GDFONTPATH`
is populated with a list of font directories, which is obtained from `fc-list`.
In that process we iterated over each line and called `dirname` on it, which
introduces a performance hit for loading and executing the external executable
`dirname` every time.
The new version avoids the loop.
The author of this patch measured a 42 fold performance improvement:
old version:
$ time ./gnuplot_old/bin/gnuplot -e ''
real 0m3.828s
user 0m0.392s
sys 0m0.465s
new version:
$ time ./gnuplot_new2/bin/gnuplot -e ''
real 0m0.091s
user 0m0.112s
sys 0m0.014s
The correctness of the value of `GDFONTPATH` was confirmed with the following
command and comparing its output between versions:
$ gnuplot -e 'print system("echo $GDFONTPATH")'
Citing from http://hydra.cryp.to/build/1533084/log/raw:
Configuring ghcjs-0.2.0...
Setup: At least the following dependencies are missing:
aeson >=0.7 && <0.10,
haskell-src-exts ==1.16.*,
optparse-applicative ==0.11.*,
syb >=0.4 && <0.6
This issue has been present for a while now, and it's only gotten worse.