about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2020-07-16 r/1325 refactor(3p/nix/libexpr): Use Abseil collection types for parser stateVincent Ambo2-2/+13
Replaces the previous uses of the (ordered!) std::map and std::set with absl::flat_hash_{map|set}. After some careful reading it seems that there is actually no ordering dependency on these types, and the (drop-in) replacements perform slightly better. Overall this is not fixing a bottleneck, just a driveby thing. Change-Id: Ided695dc75676bd58515aa9382df0be0a09c565e Reviewed-on: https://cl.tvl.fyi/c/depot/+/1220 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: isomer <isomer@tvl.fyi> Tested-by: BuildkiteCI
2020-07-16 r/1324 feat(gs/shell): Add "nix build local" aliasGriffin Smith1-0/+1
For when I'm building stuff I don't want to build on whitby. Change-Id: Ic377fe0d68436a81ee479ff4aa029a51e0a5babf Reviewed-on: https://cl.tvl.fyi/c/depot/+/1215 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-16 r/1323 refactor(3p/nix/libexpr): Move EvalState:* implementations out of parser.yVincent Ambo3-150/+156
Several definitions of functions declared in eval.hh were previously implemented in parser.y, this moves them over to parser.cc. While this still isn't a reasonable place to keep them, the long-term fix is more likely to be that eval.hh needs to be split up. Before we get to that point however, this already gives us the ability to use tooling with this code. Change-Id: If06fb655325fe281564047ffab0a0a640428a0ee Reviewed-on: https://cl.tvl.fyi/c/depot/+/1219 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-16 r/1322 refactor(3p/nix/libexpr): Extract static helpers out of parser.yVincent Ambo4-185/+202
Moves several of the static helper functions into a new parser.cc file. Once the rest of the code is usefully extracted, these will be moved to a private namespace. Change-Id: I0d7b53dcefe31bb5c6bad3ad7f5fcb48276bf799 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1218 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-16 r/1321 refactor(3p/nix/libexpr): Extract parser header out of Yacc fileVincent Ambo3-54/+49
First step (of many?) towards extracting all the inline code from the Yacc file and keeping it somewhere more accessible instead. Note that none of this code has previously been touched by a linter or formatter, pretty much ever, so as it is extracted it also undergoes similar changes to the whole codebase after the initial fork. Change-Id: If3b7181f22e3b3fd8c58dfa9befa7ee2896ea06d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1217 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-16 r/1320 refactor(3p/nix/libexpr): Use range insertion to merge nix::BindingsVincent Ambo3-18/+25
Instead of manually iterating over the two bindings to be combined, this adds a new static method on the Bindings class which merges two attribute sets by calling the range insertion operator over them. In some anecdotal tests, this can lead to a ~10% speed bump - depending on the specific operation. Change-Id: I5dea03b0589a83a789d3a8a0fc81d0d9e6598371 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1216 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1319 feat(tazjin/emacs): Rotate left screen counterclockwiseVincent Ambo1-2/+2
Change-Id: I0318e394b32c341a04471f687ee4c6d5beb29cd1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1214 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-16 r/1318 feat(gws.fyi): Reimport cert after renewingGriffin Smith1-1/+9
Change-Id: Iebd5c9bc3a62838a862cc4b37b2f43f62ad8018e Reviewed-on: https://cl.tvl.fyi/c/depot/+/1213 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-16 r/1317 style(3p/nix): Rename the project to tvixVincent Ambo2-4/+5
Changes the derivation name & README overview to say "Tvix" instead of "tazjix". The previous name was mostly intended as a joke, and a way for me to distinguish output paths. It's certainly not the intention to have a portmanteau with my name here, especially now that several people are contributing to the fork. Change-Id: Icface5484d52355111eca23b2f6bd3b9e5567275 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1212 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-16 r/1316 fix(gs/emacs): Prevent accidentally sending :qGriffin Smith1-1/+5
If I try to send a message containing :q to ERC, just drop it. Change-Id: I563044f0b837e2dbf4d5db94f9e906196ca91b49 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1211 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1315 feat(3p/nix/proto): Add QueryDerivationOutputNamesGriffin Smith1-0/+7
Change-Id: I5452d0f76441a61d70031f567c9cb75249569c2a Reviewed-on: https://cl.tvl.fyi/c/depot/+/1201 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-07-16 r/1314 feat(3p/nix): Add proto for QueryPathInfoGriffin Smith1-0/+18
Change-Id: I10ec338ef2d5360954abdc5bb3d4789f34b031fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/1200 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-07-16 r/1313 chore(3p/nix): {query,clear}FailedPaths are obsoleteGriffin Smith1-2/+2
They're not mentioned anywhere on the client or the server. Change-Id: Ia78c8bde49326f6bf69b4aeded083cfd3235131f Reviewed-on: https://cl.tvl.fyi/c/depot/+/1188 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-16 r/1312 feat(3p/nix/worker.proto): Add QueryAllValidPathsGriffin Smith1-0/+3
takes nothing, returns paths Change-Id: I4087b9b5a25d9edc76b97d0a0f553259693cca3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/1187 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-16 r/1311 feat(3p/nix/proto): Add additional worker-protocol operationsVincent Ambo1-48/+43
On the chopping block this time: * requests/responses that return one or more store paths, and contain nothing else, have been changed to use the same types (StorePath and StorePaths, respectively) * QuerySubstitutablePathInfos has been added. It should be noted that legacy Nix has two versions of this call, one that only queries a single info (deprecated) and one that queries multiple. We have only implemented the latter. * QueryDerivationOutputs has been added. Change-Id: Iccc9041e7064e141cf593467ecdcc327581c4056 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1186 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1310 fix(tools/perf-flamegraph): Get rid of most 'unknown'sVincent Ambo1-1/+1
This makes two main changes: 1) It disables profiling of things that aren't part of the invoked process (-a). This isn't particularly useful in most cases because it will show things like Chrome's VP9 decoding while you're profiling something else. 2) It tells perf about the debug symbol format, which for some reason isn't DWARF2 by default. Change-Id: Ida6a54b74f1ec635fec930db7e2a2aa039dd1443 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1185 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-16 r/1309 refactor(3p/libstore): Optimise nix::printStringVincent Ambo1-12/+37
Slight performance optimisation of nix::printString by copying chunks of the input string which do not need escaping as contiguous blocks. Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I48bad90c8f2831ae4524c814a12b1982989922f9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1184 Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1308 chore(tazjin/frog): Lower 'kernel.perf_event_paranoid' to -1Vincent Ambo1-1/+1
This allows access to profiling events by (almost?) all users. Change-Id: I10e31ea9978f0b552a3973c29e98b43a6db45d1d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1183 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-07-16 r/1307 style(3p/nix): Minor style fix in DrvInfo::setMetaVincent Ambo1-3/+2
Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I0655ecc675239b3d90e5adc305c3f37c1a904cf5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1181 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1306 refactor(3p/nix): Compare attribute sets by pointer equalityVincent Ambo1-0/+6
Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I418e9127c5d9d31559c59e461f17726ddbc051c4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1180 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-16 r/1305 refactor(3p/nix): Use a static empty Bindings for 0-element attrsVincent Ambo1-2/+11
A significant fraction of all created attribute sets are empty; hence this is an easy optimisation to make. Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I0884194d04c1ee95b2b239a253515f2152bc0856 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1179 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-15 r/1304 feat(tools): Add script to flamegraph a commandGriffin Smith4-0/+18
Add tools.perf-flamegraph, which collects the base case execution of perf piped through stackcollapse-perf and flamegraph to flamegraph the execution of an external command via perf. Change-Id: I671fe254dc374b6cd7deca2d3bdea266164de025 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1176 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-07-15 r/1303 chore(3p/immer): Amend derivation to work in depotVincent Ambo1-5/+5
Change-Id: If580b76b7b7170ce7840d3a97c3a547c29405a6f Reviewed-on: https://cl.tvl.fyi/c/depot/+/1174 Tested-by: BuildkiteCI Reviewed-by: Kane York <rikingcoding@gmail.com>
2020-07-15 r/1302 feat(gs/home): Install hyperfineGriffin Smith1-0/+1
Change-Id: Ia29e6c2c73d222496b7315d5a640e055fe908c25 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1178 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-15 r/1301 feat(gs/home): Add config for email notificationsGriffin Smith2-39/+127
This uses the notifymuch package pulled from https://github.com/NixOS/nixpkgs/pull/92797 right now, but eventually I would like to pull from a vendored version since there are some changes I would like to make to how the notifications are rendered and it looks like upstream is unmaintained. Change-Id: I3d1d355a09171a33677f095aa068f2499d50b37b Reviewed-on: https://cl.tvl.fyi/c/depot/+/1177 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-15 r/1300 chore(bin): Alphabetize dispatch scriptGriffin Smith1-25/+25
Change-Id: Ia45d8a9de09a09d7399def6ce80dc8356c53c8fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/1175 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-15 r/1299 merge(3p/immer): Subtree merge at 'ad3e3556d' as 'third_party/immer'Vincent Ambo311-0/+74221
Change-Id: I9636a41ad44b4218293833fd3e9456d9b07c731b
2020-07-15 Squashed 'third_party/immer/' content from commit ad3e3556dVincent Ambo311-0/+74221
git-subtree-dir: third_party/immer git-subtree-split: ad3e3556d38bb75966dd24c61a774970a7c7957e
2020-07-15 r/1298 refactor(3p/nix): Revert VectorBindings implementationVincent Ambo3-237/+30
This reverts parts of the CLs splitting the backing implementation for Bindings and moves back to only the BTreeMap-backed implementation. Our evaluation has indicated that the Vector-backed implementation does not match the performance of the plain array used upstream, and in my view the complexity introduced by it is not worth the relatively small (single-digit percentage) performance increase with a pivot-point close to the number of attributes yielded by stdenv.mkDerivation. Going forward we will trial implementations of attribute sets backed by HAMTs, and investigate other mechanisms of speeding up the language. Some changes from the previous CLs are retained, for example the removal of insert_or_assign and the passing of capacity. Change-Id: I6eb4b075b453949583360755055c21a29d7ff642 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1172 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-14 r/1297 fix(gs/i3): remove implicit dependency on picom+peekGriffin Smith1-4/+4
This was done originally to make the snippet shareable, but is nice regardless. Change-Id: Ie51302a020cbb262b1e802e94786ebb8a9f843c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1170 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-14 r/1296 feat(gs/i3): Add volume to i3statusGriffin Smith1-6/+7
Change-Id: I1d3081653b0e69bce88673a4d4edf16cb483f681 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1169 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-14 r/1295 feat(gs/system): configure whitby as a remote builderGriffin Smith1-0/+13
big cores wow Change-Id: I0fa14834365202f1c9a8ff69243f129c8acfe13d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1168 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-14 r/1294 chore(gs/system): reformat tvl.nixGriffin Smith1-4/+12
Change-Id: Icc2f953450956a01b32872e6575976e49f1be0b4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1167 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-14 r/1293 feat(gs/emacs): Configure for C++ developmentGriffin Smith4-0/+185
Vendor the google-c-style module, and configure lsp-mode to run the clangd wrapper script for hacking on tvlnix Change-Id: I8d1ac2f30c9708501e0840ef3d53fe479bc39fa7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1166 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-14 r/1292 fix(tvldb): unbreak quote grabbingeta1-3/+4
Change-Id: Ib03561bbcc154aeee50a592332a2763ff784bb1d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1165 Tested-by: BuildkiteCI Reviewed-by: eta <eta@theta.eu.org> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-14 r/1291 feat(owothia): make more things configurable, bettereta1-20/+29
- You can now configure server, port, password, nickserv password, and nick. - eta doing haskell: https://theta.eu.org/lx/selif/8pu34rll.jpg - (props to grfn for basically writing half this CL) Change-Id: I128ae01f5879df730a6404402ef16bf1f3429f98 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1164 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-13 r/1290 feat(gs/home): Install C++ development toolsGriffin Smith1-0/+5
Change-Id: I959e257e4c2f7c640bedfe5f8385f33ff02215d4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1136 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-13 r/1289 refactor(3p/nix/libexpr): Backport upstream VectorBindings merge sortVincent Ambo1-17/+28
Since one of the two implementations essentially uses the same shape as the upstream Bindings, we backport their merge sort implementation to ensure that we're doing the same thing semantically. Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I0d865897991eec0c4dd84d9bd0415cd1ca437792 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1162 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-13 r/1288 fix(3p/nix/libexpr): Remove default & copy constructors for VectorBindingsVincent Ambo1-1/+2
Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: Ief2e59d461452ce599abc63f6ebcfa07a7062491 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1161 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-13 r/1287 fix(3p/nix/libexpr): Fix post-increment operator in BindingsIteratorVincent Ambo1-1/+2
We accidentally returned the incremented iterator in the post-increment, this fixes it. Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I36c79eb56359bb12a78ad3489e7d7d2eb2053510 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1140 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-13 r/1286 refactor(3p/nix): Remove unused insert_or_assignGriffin Smith2-26/+0
This function in never called, so let's just remove it Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Change-Id: I79125866254d90dd0842bc86830d2103ac313cb6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1125 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-13 r/1285 feat(3p/nix): Statically pass bindings capacity where possibleGriffin Smith5-31/+39
To aid in making the decision of where to (currently just statically) use a vector or btree as the backing implementation, add an extra constructor argument to Bindings::NewGC for a capacity, and use a (currently hardcoded at 32, for no good reason other than it felt like a reasonable number) pivot to switch between our possible backing implementations. Then, update all the call sites where it feels reasonable that we know the capacity statically to *pass* that capacity to the constructor. Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I1858c161301a1cd0e83aeeb9a58839378869e71d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1124 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-13 r/1284 feat(3p/nix): Add vector-backed impl for BindingsGriffin Smith2-16/+150
Add an alternative impl of the now-abstract Bindings base class that is backed by a std::vector, somewhat similar but stylistically a little superior to the array-backed implementation in upstream nix. The underlying iterator type in BindingsIterator is now backed by a std::variant that we std::visit an overload over in order to implement the various bits of the iterator interface. Paired-With: Luke Granger-Brown <git@lukegb.com> Paired-With: Vincent Ambo <mail@tazj.in> Paired-With: Perry Lorier <isomer@tvl.fyi> Change-Id: I7fbd1f4d5c449e2f9b82102a701b0bacd5e80672 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1123 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-13 r/1283 refactor(3p/nix): Abstract away concrete bindings implGriffin Smith2-24/+94
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 r/1282 feat(gs/home): Integrate home-manager with depotGriffin Smith14-42/+67
Essentially the same as for nixos, so I can get whitby to compile stuff for me. Eventually I'll generalize this so things aren't as hardcoded to my particular setup, but for now I'm the only one in the depot who's using home-manager so this should be fine. Change-Id: I1cb0344f5a11eea68bddc98976999c0928dfa84e Reviewed-on: https://cl.tvl.fyi/c/depot/+/937 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-13 r/1281 docs(3p/nix): Minor semantic correction to a commentVincent Ambo1-1/+1
Change-Id: I1cfbb7e933da54198115b28ac509b0d04870fd8f Reviewed-on: https://cl.tvl.fyi/c/depot/+/1127 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-13 r/1280 refactor(3p/nix/libexpr): Remove the nix::Symbol default constructorVincent Ambo10-37/+50
Having a default constructor for this causes a variety of annoying situations across the codebase in which this is initialised to an unexpected value, leading to constant guarding against those conditions. It turns out there's actually no intrinsic reason that this default constructor needs to exist. The biggest one was addressed in CL/1138 and this commit cleans up the remaining bits. Change-Id: I4a847f50bc90e72f028598196592a7d8730a4e01 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1139 Reviewed-by: isomer <isomer@tvl.fyi> Tested-by: BuildkiteCI
2020-07-13 r/1279 fix(nix-channel): Actually strip whitespace.isomer1-1/+1
This has been providing a warning and it's been bothering me. Change-Id: I0548059950ec4250d7cf0938f9deae09eafe593c Reviewed-on: https://cl.tvl.fyi/c/depot/+/1141 Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: isomer <isomer@tvl.fyi> Tested-by: BuildkiteCI
2020-07-13 r/1278 refactor(3p/nix/libexpr): Make nix::AttrName a std::variantVincent Ambo7-53/+67
nix:AttrName was one of the few classes that relied on the default constructor of nix::Symbol (which I am trying to remove in a separate change). The class essentially represents the name of an attribute in a set, which is either just a string expression or a dynamically evaluated expression (e.g. string interpolation). Previously it would be constructed by only setting one of the fields and defaulting the other, now it is an explicit std::variant. Note that there are several code paths where not all eventualities are handled and this code is bug-for-bug compatible with those, except that unknown conditions (which should never work) are now throwing instead of silently doing ... something. The language tests pass with this change, and the depot derivations that I tested with evaluated successfully. Change-Id: Icf1ee60a5f8308f4ab18a82749e00cf37a938a8f Reviewed-on: https://cl.tvl.fyi/c/depot/+/1138 Reviewed-by: edef <edef@edef.eu> Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-07-13 r/1277 feat(3p/nix/libutil): Add util::overloaded class for std::visitorVincent Ambo2-0/+20
Implements the fairly common lambda overload class used for std::visit over variants and other things that require groups of callables. Change-Id: Ia7448b7e1bd349b4909974758e6e6303a80d86d7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1137 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: edef <edef@edef.eu>