Referencing modulesPath in NixOS configurations can cause evaluation
errors in restricted mode. If used as `${modulesPath}` (as in all
use-sites in nixpkgs) the modules subtree is copied into its own store
path. Access to this path will be forbidden in restricted mode.
Converting to a string solves this issue.
`${builtins.toString modulesPath}` will point to a subdirectory of the
nixpkgs tree out of which evalModules is called.
This change converts modulesPath to a string by default so that the
call-site doesn't have to anymore.
The build fails with boost-1.62.
More specifically, the test of the boost-serialization integration fails
due to the protected destructor in the class template `MemoryBlock`.
Creates and installs wrapper scripts around the clang-tools from
`llvmPackages.clang-unwrapped`.
Motivation
----------
Fixes#9214
Allows to install clang-tools for C++ development without also installing the
clang compiler and its tool-chain. This way it is possible to use e.g.
`clang-format` without conflicting with e.g. GCC's tool-chain, or the global
system tool-chain.
Sets the `basedirlist` option in setup.cfg such that distutils does not search
for headers and libraries in `/usr`, and `/usr/local`.
Otherwise the build can fail on non-NixOS machines, see #15993.
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")'
Fast multi-dimensional array library for C++
Blitz++ is a C++ class library for scientific computing which provides
performance on par with Fortran 77/90. It uses template techniques to
achieve high performance. Blitz++ provides dense arrays and vectors,
random number generators, and small vectors (useful for representing
multicomponent or vector fields).
From the project page [1]:
> PyTables is a package for managing hierarchical datasets and designed to
> efficiently and easily cope with extremely large amounts of data.
It offers read/write access to hdf5 archives through a hierarchical interface.
I am adding it, because pandas depends on tables for hdf5 read/write
functionality.
Note: The name is a bit of an issue. The project is called pytables, whereas
the python module is simply called tables. I chose to name the nix-expression
tables for consistency with the source-tarball and the module name.
[1]: http://www.pytables.org/moin
This adds additional compression modes to hdf5.
Note: The szip license may not be compatible with everyone's use case. Hence,
it is an optional dependency.
Description from the numexpr project page [1]:
> Numexpr is a fast numerical expression evaluator for NumPy. With it,
> expressions that operate on arrays (like "3*a+4*b") are accelerated and use
> less memory than doing the same calculation in Python.
I am adding it, because it is a dependency of the pytables package.
[1]: https://github.com/pydata/numexpr