snix/third_party/nix/src
Griffin Smith 98148e6711 refactor(3p/nix): Abstract away concrete bindings impl
To pave the way for the thing we want to do eventually which is use a
linear-time array for bindings (aka attribute sets) that are statically
known to be small enough to get a performance benefit from doing so,
make the Bindings class abstract, and define a BTreeBindings class that
inherits from it and is (currently always) returned from the static
initializer. The idea is that we'll have an ArrayBindings class as well
later that we can dispatch to conditionally based on an optional
"capacity" parameter or something like that.

There was some difficulty here in getting the iterator to work - the
approach we settled on ended up making a concrete BindingsIterator class
which will wrap a std::variant of either a btree iterator or something
else later, but right now just wraps a btree iterator.

Paired-With: Luke Granger-Brown <git@lukegb.com>
Paired-With: Vincent Ambo <mail@tazj.in>
Paired-With: Perry Lorier <isomer@tvl.fyi>
Change-Id: Ie02ca5a1c55e8ebf99ab1e957110bd9284278907
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1121
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-13 23:50:24 +00:00
..
build-remote refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
cpptoml style(3p/nix): Remove 'using std::*' from types.hh 2020-05-24 22:29:21 +01:00
libexpr refactor(3p/nix): Abstract away concrete bindings impl 2020-07-13 23:50:24 +00:00
libmain feat(3p/nix): install pkgconfig files for libexpr, libmain and libstore 2020-06-21 20:42:28 +00:00
libstore fix(3p/nix/libstore): use exception instead of assertion when storepath is malformed 2020-07-10 19:41:52 +00:00
libutil refactor(3p/nix/libexpr): Make nix::AttrName a std::variant 2020-07-13 20:14:49 +00:00
nix fix(3p/nix/repl): Scan NixRepl for GC roots 2020-07-10 22:25:30 +00:00
nix-build refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-channel fix(nix-channel): Actually strip whitespace. 2020-07-13 20:18:26 +00:00
nix-collect-garbage refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-copy-closure refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-daemon refactor(3p/nix/libexpr): Make nix::AttrName a std::variant 2020-07-13 20:14:49 +00:00
nix-env refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-instantiate refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-prefetch-url refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nix-store refactor(3p/nix): Anchor local includes at src/ 2020-05-27 21:56:34 +01:00
nlohmann Add 'third_party/nix/' from commit 'be66c7a6b24e3c3c6157fd37b86c7203d14acf10' 2020-05-17 15:52:38 +01:00
proto feat(3p/nix): Add additional worker protocol actions to proto 2020-07-10 17:12:39 +00:00
CMakeLists.txt feat(3p/nix): Add protobuf & gRPC dependencies and generate sources 2020-07-05 19:17:12 +00:00