Skip to content
Snippets Groups Projects
  1. Sep 01, 2018
  2. Aug 31, 2018
  3. Aug 30, 2018
  4. Aug 29, 2018
  5. Aug 28, 2018
    • aszlig's avatar
      libexpr: Use int64_t for NixInt · 0ad643ed
      aszlig authored
      Using a 64bit integer on 32bit systems will come with a bit of a
      performance overhead, but given that Nix doesn't use a lot of integers
      compared to other types, I think the overhead is negligible also
      considering that 32bit systems are in decline.
      
      The biggest advantage however is that when we use a consistent integer
      size across all platforms it's less likely that we miss things that we
      break due to that. One example would be:
      
      https://github.com/NixOS/nixpkgs/pull/44233
      
      On Hydra it will evaluate, because the evaluator runs on a 64bit
      machine, but when evaluating the same on a 32bit machine it will fail,
      so using 64bit integers should make that consistent.
      
      While the change of the type in value.hh is rather easy to do, we have a
      few more options available for doing the conversion in the lexer:
      
        * Via an #ifdef on the architecture and using strtol() or strtoll()
          accordingly depending on which architecture we are. For the #ifdef
          we would need another AX_COMPILE_CHECK_SIZEOF in configure.ac.
        * Using istringstream, which would involve copying the value.
        * As we're already using boost, lexical_cast might be a good idea.
      
      Spoiler: I went for the latter, first of all because lexical_cast does
      have an overload for const char* and second of all, because it doesn't
      involve copying around the input string. Also, because istringstream
      seems to come with a bigger overhead than boost::lexical_cast:
      
      https://www.boost.org/doc/libs/release/doc/html/boost_lexical_cast/performance.html
      
      
      
      The first method (still using strtol/strtoll) also wasn't something I
      pursued further, because it is also locale-aware which I doubt is what
      we want, given that the regex for int is [0-9]+.
      
      Signed-off-by: default avataraszlig <aszlig@nix.build>
      Fixes: #2339
      0ad643ed
  6. Aug 25, 2018
    • Daiderd Jordan's avatar
      upgrade-nix: resolve profile symlinks · d85bb481
      Daiderd Jordan authored
      The profile present in PATH is not necessarily the actual profile
      location. User profiles are generally added as $HOME/.nix-profile
      in which case the indirect profile link needs to be resolved first.
      
      /home/user/.nix-profile -> /nix/var/nix/profiles/per-user/user/profile
      /nix/var/nix/profiles/per-user/user/profile -> profile-15-link
      /nix/var/nix/profiles/per-user/user/profile-14-link -> /nix/store/hyi4kkjh3bwi2z3wfljrkfymz9904h62-user-environment
      /nix/var/nix/profiles/per-user/user/profile-15-link -> /nix/store/6njpl3qvihz46vj911pwx7hfcvwhifl9-user-environment
      
      To upgrade nix here we want /nix/var/nix/profiles/per-user/user/profile-16-link
      instead of /home/user/.nix-profile-1-link. The latter is not a gcroot
      and would be garbage collected, resulting in a broken profile.
      
      Fixes #2175
      d85bb481
    • Daiderd Jordan's avatar
      upgrade-nix: add --dry-run · 41439775
      Daiderd Jordan authored
      41439775
  7. Aug 22, 2018
  8. Aug 21, 2018
Loading