Commit graph

7414 commits

Author SHA1 Message Date
Eelco Dolstra a6f0bef0a7 Update to async/await-enabled tokio 2019-12-10 13:37:23 +01:00
Eelco Dolstra 7f08975050 Add NAR parser 2019-12-10 13:37:23 +01:00
Eelco Dolstra 6317f0f7a0 StorePath improvements 2019-12-10 13:37:23 +01:00
Eelco Dolstra cce218f950 Add base32 encoder/decoder 2019-12-10 13:37:23 +01:00
Eelco Dolstra a1ff43045b Move stuff around 2019-12-10 13:37:23 +01:00
Eelco Dolstra ce3c41aef0 Drop some dependencies 2019-12-10 13:37:23 +01:00
Eelco Dolstra d832a355ea Use rustls
In particular, this enables HTTP/2 support in reqwest, which is a lot
more efficient.
2019-12-10 13:37:23 +01:00
Eelco Dolstra dd5d76e2ed Basic BinaryCacheStore implementation using async Rust 2019-12-10 13:37:23 +01:00
Eelco Dolstra 98ef11677c EvalState::callFunction(): Make FunctionCallTrace use less stack space
The FunctionCallTrace object consumes a few hundred bytes of stack
space, even when tracing is disabled. This was causing stack overflows:

  $ nix-instantiate '<nixpkgs> -A texlive.combined.scheme-full --dry-run
  error: stack overflow (possible infinite recursion)

This is with the default stack size of 8 MiB.

Putting the object on the heap reduces stack usage to < 5 MiB.
2019-12-10 13:32:30 +01:00
Eelco Dolstra 61cc9f34d2 Remove UserLock self-lock check
This is no longer needed since we're not using POSIX locks anymore.
2019-12-09 23:57:33 +01:00
Yorick f765e44123
downgrade required libarchive version (ubuntu 16.04) 2019-12-09 18:39:37 +07:00
Yorick 3663a8a7e9
release.nix: add libarchive to rpm and deb dependencies 2019-12-09 17:31:05 +07:00
Yorick b232eea40a
nix-rust: remove unused tar file code 2019-12-09 17:28:15 +07:00
Yorick eba82b7c88
further clean up libarchive code 2019-12-09 17:21:46 +07:00
puck 28ee687adf Clean up libarchive support 2019-12-07 18:12:21 +00:00
Yorick fe7ec70e6b
remove rust unpack_tarfile ffi 2019-12-07 23:28:31 +07:00
Yorick 1355554d12
code 'cleanup' 2019-12-07 23:23:11 +07:00
Yorick f54c168031
add wrapper function around libarchive to c++ errors 2019-12-07 23:10:27 +07:00
Yorick 232b390766
fixup! libarchive proof of concept 2019-12-07 23:00:37 +07:00
Yorick 9ff5f6492f
libarchive proof of concept 2019-12-07 22:35:14 +07:00
Eelco Dolstra 3b9c9d34e5 Shut up clang warning
(cherry picked from commit 3392f1b778)
2019-12-05 20:41:44 +01:00
Eelco Dolstra 80ab95315d nix doctor: Fix typo
(cherry picked from commit 96c6b08ed7)
2019-12-05 20:40:52 +01:00
Eelco Dolstra 47a937d512 Show hash mismatch warnings in SRI format
(cherry picked from commit 63c5c91cc0)
2019-12-05 20:32:25 +01:00
Eelco Dolstra 0678e4d56a Move #include
(cherry picked from commit 8beedd4486)
2019-12-05 20:30:29 +01:00
Eelco Dolstra 79142cbbe1 Bindings: Add convenience method for requiring an attribute
(cherry picked from commit fb692e5f7b)
2019-12-05 20:29:15 +01:00
Eelco Dolstra 0d118ef0c9 Bindings::get(): Add convenience method
This allows writing attribute lookups as

    if (auto name = value.attrs->get(state.sName))
      ...

(cherry picked from commit f216c76c56)
2019-12-05 20:29:00 +01:00
Eelco Dolstra 50d483a2c1 Fix precompiled-headers generation
It's now regenerated when util.hh changes, and is ordered after
config.h to fix a race.
2019-12-05 20:26:24 +01:00
Eelco Dolstra 5e449b43ed Initialize Command::_name
(cherry picked from commit d0a769cb06)
2019-12-05 20:21:22 +01:00
Eelco Dolstra ac67685606 Make subcommand construction in MultiCommand lazy
(cherry picked from commit a0de58f471)
2019-12-05 20:19:26 +01:00
Eelco Dolstra f964f428fe Move Command and MultiCommand to libutil
(cherry picked from commit f70434b1fb)
2019-12-05 20:13:47 +01:00
Eelco Dolstra f1b5c76c1a MultiCommand: Simplify construction
(cherry picked from commit 15a16e5c05)
2019-12-05 20:10:35 +01:00
Eelco Dolstra 092af3c826 Eliminate more pass-by-value in variadic calls 2019-12-05 19:58:52 +01:00
Eelco Dolstra 603b2f583c Revert "Make fmt() non-recursive"
This reverts commit 2b761d5f50.

Also *really* make fmt() take arguments by reference.
2019-12-05 19:58:49 +01:00
Eelco Dolstra 334b8f8af1 fmt(): Pass arguments by reference rather than by value 2019-12-05 17:40:46 +01:00
Eelco Dolstra f4b9495854
Merge pull request #3255 from Profpatsch/doc-manual-allowSubstitutes-add-note
doc/manual: add note to `allowSubstitutes` advanced attribute
2019-12-04 12:46:31 +01:00
Eelco Dolstra c1d18050b4 Disable recursive Nix test on macOS
https://hydra.nixos.org/build/107724274
2019-12-03 19:19:14 +01:00
Profpatsch 7923e22276 doc/manual: add ids to the advanced attribute definitions
This makes it possible to reference single attribute definitions,
for pointing people to their exact definition.
2019-12-03 18:22:27 +01:00
Profpatsch 7395e091c5 doc/manual: add note to allowSubstitutes advanced attribute 2019-12-03 18:01:45 +01:00
Eelco Dolstra e59e2b2951 Merge branch 'pkg-config-static' of https://github.com/matthewbauer/nix 2019-12-02 13:20:02 +01:00
Eelco Dolstra ac2bc721d8 Merge remote-tracking branch 'origin/recursive-nix' 2019-12-02 12:34:46 +01:00
Graham Christensen ec364582eb
Merge pull request #3252 from bwignall/typo
Fix typos
2019-11-30 19:05:43 -05:00
Brian Wignall 8737980e75 Fix typos 2019-11-30 19:04:14 -05:00
Eelco Dolstra f102d793f1
Merge pull request #2748 from edolstra/rust
Make nix/unpack-channel.nix a builtin builder
2019-11-29 19:33:31 +01:00
Eelco Dolstra 39954a9586 Make libnixrust a dynamic library
This is a hack to fix the build on macOS, which was failing because
libnixrust.a contains compiler builtins that clash with
libclang_rt.osx.a. There's probably a better solution...

https://hydra.nixos.org/build/107473280
2019-11-29 18:30:39 +01:00
Eelco Dolstra 895ed4cef0
Remove RPM spec file
Closes #3225.
Closes #3226.
2019-11-28 15:10:18 +01:00
Eelco Dolstra 2d6f1ddbb5
Remove builtins.valueSize
Fixes #3246.
2019-11-28 13:52:42 +01:00
Eelco Dolstra 895ce1bb6c make clean: Delete nix-rust/target 2019-11-27 17:33:59 +01:00
Eelco Dolstra f553a8bdea When OPTIMIZE=0, build rust code in debug mode 2019-11-27 14:18:57 +01:00
Eelco Dolstra 949dc84894 Fix segfault on i686-linux
https://hydra.nixos.org/build/107467517

Seems that on i686-linux, gcc and rustc disagree on how to return
1-word structs: gcc has the caller pass a pointer to the result, while
rustc has the callee return the result in a register. Work around this
by using a bare pointer.
2019-11-27 14:17:15 +01:00
Eelco Dolstra dbc4f9d478 Fix macOS build
https://hydra.nixos.org/build/107466992
2019-11-27 00:17:39 +01:00