The problem was in builtins.partition call. I've tried to rewrite it with
builtins.foldl', but that doesn't help. However replacing it with a pair of
builtins.filter calls works.
diff --git a/lib/lists.nix b/lib/lists.nix
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -242,10 +242,10 @@ rec {
=> { right = [ 5 3 4 ]; wrong = [ 1 2 ]; }
*/
partition = builtins.partition or (pred:
- foldr (h: t:
+ builtins.foldl' (t: h:
if pred h
- then { right = [h] ++ t.right; wrong = t.wrong; }
- else { right = t.right; wrong = [h] ++ t.wrong; }
+ then { right = t.right ++ [h]; wrong = t.wrong; }
+ else { right = t.right; wrong = t.wrong ++ [h]; }
) { right = []; wrong = []; });
/* Merges two lists of the same size together. If the sizes aren't the same
fmtutil has started to report number of failed formats in its return code. One
could regenerate the share/texmf/web2c/fmtutil.cnf to only include available
.ini files, but simpler solution is to ignore the return code.
Originally this was introduced in 055e646b ('coreutils: Guard against compiler not supporting __builtin_stpncpy_chk') four years ago. Right now this doesn't seem to serve any purpose and it conflicts with the hardening flags:
<command line>:2:9: warning: '_FORTIFY_SOURCE' macro redefined [-Wmacro-redefined]
#define _FORTIFY_SOURCE 2
^
<command line>:1:9: note: previous definition is here
#define _FORTIFY_SOURCE 0
^
1 warning generated.
This also fixes breakage on darwin due to LLVM4.0 migration.
I had to enable opengl because otherwise macOS build is broken.
See root commit 23f8871c7 ('Do not include OpenGL directly but use our
TGLIncludes for that purpose.')
I've enabled xml because TUnfold depends on it.
Original error:
$ nix-shell -p jekyll --command "jekyll new test"
Running bundle install in /private/tmp/test...
Bundler: There was an error while trying to write to
Bundler:
`/nix/store/l67429rhvrmr7c4c1msb7s8zjq4fx7ad-gemfile-and-lockfile/.bundle/config`.
Bundler: It is likely that you need to grant write permissions for
that path.
1) Replace --system-libclang with an explicit setting for the path to
nix libclang 3.9. Otherwise it will find system's libclang on darwin.
2) Remove clang/llvm from build inputs. This prevents ycm itself from
being compiled by clang 3.9. stdenv's standard compiler (gcc or
clang 3.7) will suffice.
3) Enable C++11 again as #16212 is caused by incopatibility between
clang 3.9 and libc++ 3.7, but we don't compile YCM with clang 3.9, so
this is not needed anymore.
Modern compiler will issue a following error whenever '#include <string>'
is done:
/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1938:44:
error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification 'noexcept(is_nothrow_copy_constructible<allocator_type>::value)'
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
^
/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1326:40:
note: previous declaration is here
_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
^
1 error generated.
This happens because modern clang is more strict about checking
exception specification for forward declaration and definition.
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?r1=242056&r2=242623&diff_format=h
Without this one gets a lot of build time warnings like:
ld: warning: object file (/tmp/strip.2OzFn8) was built for newer OSX
version (10.9) than being linked (10.7)