Optimize small lists
The value pointers of lists with 1 or 2 elements are now stored in the list value itself. In particular, this makes the "concatMap (x: if cond then [(f x)] else [])" idiom cheaper.
Showing
- src/libexpr/attr-path.cc 3 additions, 3 deletionssrc/libexpr/attr-path.cc
- src/libexpr/eval-inline.hh 2 additions, 2 deletionssrc/libexpr/eval-inline.hh
- src/libexpr/eval.cc 46 additions, 33 deletionssrc/libexpr/eval.cc
- src/libexpr/get-drvs.cc 9 additions, 9 deletionssrc/libexpr/get-drvs.cc
- src/libexpr/json-to-value.cc 1 addition, 1 deletionsrc/libexpr/json-to-value.cc
- src/libexpr/primops.cc 58 additions, 58 deletionssrc/libexpr/primops.cc
- src/libexpr/value-to-json.cc 3 additions, 3 deletionssrc/libexpr/value-to-json.cc
- src/libexpr/value-to-xml.cc 3 additions, 3 deletionssrc/libexpr/value-to-xml.cc
- src/libexpr/value.hh 26 additions, 3 deletionssrc/libexpr/value.hh
- src/nix-env/nix-env.cc 4 additions, 4 deletionssrc/nix-env/nix-env.cc
- src/nix-env/user-env.cc 2 additions, 2 deletionssrc/nix-env/user-env.cc
Loading
Please register or sign in to comment