- Prevent store collison with the xserver for two files
- Stop gcc from complaining at build time about C and CXX flags
- Enable parallel building for this expression
- Move to the new way of calling Xorg and it's dependencies
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 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")'
Broken since Aug 2015, but upstream has been dead for donkey's
years. Only dependent was systemtap. No reasonable way (or indeed
reason) to artificially keep this alive.
Aim for the head.