about summary refs log tree commit diff
path: root/third_party (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-05-23 r/824 chore(3p/nix/tests): Remove leftover '__overrides' testsVincent Ambo2-5/+0
2020-05-23 r/823 fix(3p/nix/libexpr): Fix attrNames/attrValues builtins for btree_mapVincent Ambo1-21/+9
Replaces the previous implementations which performed sorting with one that instead walks through the map (which is already sorted) and yields values from it. This fixes a handful of language tests because the previous implementation did not actually yield useful values on the new implementation.
2020-05-23 r/822 fix(3p/nix/libexpr): Ensure symbols are compared by valueVincent Ambo1-1/+1
2020-05-23 r/821 fix(3p/nix/libexpr): Remove the global empty attribute setVincent Ambo3-10/+0
In the change to the backing structure of attribute sets, the requirement to manually balance the capacity of the structure went away. This is a) because Abseil's data structures manage this on their own, and b) because the new Bindings class is allocated using `new (GC)` rather than writing into a predefined memory area. As part of this change functions related to the capacity were deprecated and set to 0 values, which in turn caused the creation of new attribute sets to return the same (mutable!) default value in various cases, leading to "side effects" that caused evaluation failures. FWIW, I'm not sure if this optimisation had noticeable performance impact, but while untangling libexpr it definitely doesn't help trying to follow what it's doing - so bye, bye!
2020-05-23 r/820 chore(3p/nix/libexpr): Minor readability improvements in eval/valueVincent Ambo4-19/+7
2020-05-23 r/819 chore(3p/nix/libexpr): Remove unused __overrides featureVincent Ambo3-57/+11
This feature does not appear in nixpkgs, so I don't care about it. My only goal is evaluating nixpkgs.
2020-05-23 r/818 chore(3p/nix/libexpr): Expose separate insert & "upsert" methodsVincent Ambo2-3/+10
Reading more through the old code, it seems like the intention /sometimes/ is to replace values.
2020-05-22 r/817 fix(3p/nix/libexpr): Use gc_allocator<T> as the btree_map allocatorVincent Ambo1-1/+8
This will make all Attr values visible to the GC.
2020-05-22 r/816 feat(3p/nix): Add a derivation to launch clangdVincent Ambo2-1/+31
This wrapper derivation (which assumes that the depot is available at ~/depot) can be used to actually get clangd working with //third_party/nix. In my setup I can launch this with M-x eglot, followed by env CLANGD_FLAGS='--compile-commands-dir=/home/tazjin/projects/nix-build' nix-shell -A third_party.nix --run 'nix-clangd' /home/tazjin/depot
2020-05-22 r/815 feat(third_party): Switch to LLVM 10 by defaultVincent Ambo1-1/+3
2020-05-22 r/814 fix(ops/nixos): Pin systems to stable channelVincent Ambo1-3/+3
NixOS unstable has some software I want when building things, but it's also broken. This pins systems to the stable channel for now.
2020-05-22 r/813 fix(3p/nix/libexpr): Do not allow duplicate attribute insertionVincent Ambo1-3/+17
This is closer to bug-for-bug compatibility with the previous version, which would put new elements at the end of the array and (due to the linear scan) return previous ones.
2020-05-22 r/811 fix(third_party): Pick Emacs from stable NixOS channelVincent Ambo1-6/+17
Emacs is currently subtly broken on nixos-unstable, but I don't care about debugging that. To work around it, this reintroduces the NixOS stable channel (20.03) but as a separate attribute set from which attributes like Emacs can be picked into //third_party.
2020-05-22 r/810 chore: Update from Clang 9 to Clang 10 for all projectsVincent Ambo3-3/+3
2020-05-22 r/808 merge(3p/git): Merge git upstream at v2.26.2Vincent Ambo1006-57858/+146045
2020-05-22 r/807 chore(ops/nixos/nugget): Use upstream Chromium againVincent Ambo1-6/+0
Ostensibly there is also a new way to enable VAAPI, need to look into that.
2020-05-22 r/806 refactor(3p/nix/libexpr): Use gc_cpp to allocate Value instancesVincent Ambo1-20/+4
2020-05-22 r/805 refactor(3p/nix/libexpr): state->allocBindings -> Bindings::NewGCVincent Ambo10-15/+14
EvalState::allocBindings had little to do with Bindings, other than returning them, and didn't belong in that class.
2020-05-22 r/804 fix(3p/nix/libexpr): Make new Bindings class visible to GCVincent Ambo2-6/+9
2020-05-22 r/803 chore(3p/nix/libexpr): Delete Bindings::sortVincent Ambo14-54/+6
This function does nothing anymore since the attributes are always in-order.
2020-05-22 r/802 fix(3p/nix): Update for usage of new attribute set APIVincent Ambo14-176/+187
The new attribute set API uses the iterators of the btree_map directly. This requires changes in various files because the internals of libexpr are very entangled. This code runs and compiles, but there is a bug causing empty attribute sets to be assigned incorrectly.
2020-05-22 r/801 refactor(3p/nix/libexpr): Use absl::btree_map::iterator typeVincent Ambo3-5/+11
Instead of using a custom Args* iterator, use the one belonging to the map type directly.
2020-05-22 r/800 refactor(3p/nix/libexpr): Use absl::btree_map::merge for '//'Vincent Ambo3-22/+14
Instead of doing some sort of inline merge-sort of the two attribute sets, use the attribute sets merge function. This commit alone does not build and is not supposed to.
2020-05-21 r/799 refactor(3p/nix/libexpr): Use absl::btree_map for AttrSetsVincent Ambo6-68/+85
This is the first step towards replacing the implementation of attribute sets with an absl::btree_map. Currently many access are done using array offsets and pointer arithmetic, so this change is currently causing Nix to fail in various ways.
2020-05-21 r/797 refactor(3p/nix/libexpr): Use std::string as qualified typeVincent Ambo26-184/+196
Replaces most uses of `string` with `std::string`. This came up because I removed the "types.hh" import from "symbol-table.hh", which percolated through a bunch of files where `string` was suddenly no longer defined ... *sigh*
2020-05-21 r/796 docs(3p/nix/libexpr): Add clarifying comments to SymbolTableVincent Ambo1-7/+19
2020-05-21 r/795 fix(3p/nix): Compatibility with updated SymbolTableVincent Ambo21-137/+141
The functions in SymbolTable have been renamed to match the Google Style guide, and some debug-only functions have been removed.
2020-05-21 r/794 refactor(3p/nix/libexpr): Use absl::node_hash_set in SymbolTableVincent Ambo3-32/+39
This replaces the previous use of std::unordered_set with absl::node_hash_set. This type was chosen because the current implementation requires pointer stability. This does not yet touch the 'Attr' struct. As a bonus, the implementation of the SymbolTable struct is now consolidated into a single header/implementation file pair.
2020-05-21 r/793 feat(3p/nix): Wrangle Meson/Nix/CMake into (temporary) submissionVincent Ambo2-11/+45
Meson is unable to use CMake in Nix to determine the internal structure of the Abseil libraries. This commit adds an explicit list of most of the Abseil targets that are relevant (so far) and bundles them into a list that is linked together.
2020-05-21 r/792 chore(third_party): Bump nixpkgs to nixpkgs-unstableVincent Ambo1-3/+3
2020-05-21 r/791 chore(3p/nix): Minor fixes to get rid of warningsVincent Ambo3-7/+3
2020-05-21 r/790 fix(3p/nix): Fix build of derivation if cmake is presentVincent Ambo1-0/+8
cmake automatically runs a configure hook which breaks the build, since this isn't actually a cmake project. This hook is now disabled. Additionally Abseil's sources are linked to an absolute derivation path when the build launches, as opposed to the relative path used for development builds.
2020-05-20 r/789 refactor(3p/nix): Apply clang-tidy's performance-* fixesVincent Ambo60-166/+189
This applies the performance fixes listed here: https://clang.llvm.org/extra/clang-tidy/checks/list.html
2020-05-20 r/788 refactor(3p/nix): Apply clang-tidy's readability-* fixesVincent Ambo78-787/+858
This applies the readability fixes listed here: https://clang.llvm.org/extra/clang-tidy/checks/list.html
2020-05-20 r/787 refactor(3p/nix): Apply clang-tidy's modernize-* fixesVincent Ambo59-321/+349
This applies the modernization fixes listed here: https://clang.llvm.org/extra/clang-tidy/checks/list.html The 'modernize-use-trailing-return-type' fix was excluded due to my personal preference (more specifically, I think the 'auto' keyword is misleading in that position).
2020-05-20 r/786 feat(3p/nix): Add some initial Abseil build targetsVincent Ambo3-10/+13
These make it possible to link to Abseil strings.
2020-05-20 r/785 fix(3p/abseil): Create position independent codeVincent Ambo1-0/+3
This makes it possible to link Abseil into shared libraries, e.g. the various Nix libraries.
2020-05-20 r/784 feat(3p/nix): Add Abseil as a CMAKE subproject to MesonVincent Ambo3-0/+7
Yep. This is accomplished by symlinking the sources into the location expected by Meson for subprojects.
2020-05-20 r/782 chore(3p/abseil_cpp): Move build derivation into the correct placeVincent Ambo2-12/+6
2020-05-20 r/781 Add 'third_party/abseil_cpp/' from commit ↵Vincent Ambo1276-0/+208196
'768eb2ca2857342673fcd462792ce04b8bac3fa3' git-subtree-dir: third_party/abseil_cpp git-subtree-mainline: ffb2ae54beb5796cd408fbe15d2d2da09ff37adf git-subtree-split: 768eb2ca2857342673fcd462792ce04b8bac3fa3
2020-05-20 r/780 chore(third_party/nix): Dump of minor accumulated changesVincent Ambo5-25/+5
None of these are worthy of a specific commit, or even have a real reason behind them, but I didn't want to lose them.
2020-05-19 r/778 refactor(3p/nix): Make all single-argument constructors explicitVincent Ambo12-31/+31
Implicit constructors can be confusing, especially in a codebase that is already as unintentionally obfuscated as this one. https://google.github.io/styleguide/cppguide.html#Explicit_Constructors
2020-05-19 r/777 style(3p/nix): Final act in the brace-wrapping sagaVincent Ambo84-1556/+2603
This last change set was generated by a full clang-tidy run (including compilation): clang-tidy -p ~/projects/nix-build/ \ -checks=-*,readability-braces-around-statements -fix src/*/*.cc Actually running clang-tidy requires some massaging to make it play nice with Nix + meson, I'll be adding a wrapper or something for that soon.
2020-05-19 r/776 chore(3p/nix): Remove OSX only 'resolve-system-dependencies' toolVincent Ambo4-268/+0
2020-05-19 r/775 style(3p/nix/libstore): Additional if/for bracing fixesVincent Ambo1-7/+11
2020-05-19 r/774 chore(3p/abseil-cpp): Bump version to 20200519-768eb2caVincent Ambo1-3/+3
2020-05-19 r/773 fix(3p/nix/libstore): Fix mistake introduced by bracing changesVincent Ambo1-1/+1
This statement got included in a loop when it shouldn't have been. At least it led to some funny derivation files!
2020-05-19 r/772 style(3p/nix): Add braces around single-line for-loopsVincent Ambo45-142/+426
These were not caught by the previous clang-tidy invocation, but were instead sorted out using amber[0] as such: ambr --regex 'for (\(.+\))\s([a-z].*;)' 'for $1 { $2 }' [0]: https://github.com/dalance/amber
2020-05-19 r/771 style(3p/nix): Add braces around single-line conditionalsVincent Ambo97-753/+2223
These were not caught by the previous clang-tidy invocation, but were instead sorted out using amber[0] as such: ambr --regex 'if (\(.+\))\s([a-z].*;)' 'if $1 { $2 }' [0]: https://github.com/dalance/amber
2020-05-19 r/770 fix(3p/nix/libexpr): Declare value union types explicitlyVincent Ambo1-43/+59
Previously these structs were declared anonymously inside of the - anonymous - union. This is not actually supported by the C++ standard, but is merely a compiler-specific extension. Unfortunately untangling this required a forward-declaration of the Value type.