1. 22 Jan, 2024 1 commit
  2. 19 Jan, 2024 2 commits
    • Prevent brace initialization of AlphaNum · 2be67701
      This was not intended to be supported, and it has resulted in calls as `absl::StrCat({...})`, which are not supported and only work coincidentally for the first 4 arguments due to `absl::StrCat` having overloads that take `absl::AlphaNum` directly for those.
      
      The existing situation prevents modifying the implementations of such functions to alternatives that do not have such overloads for those arguments.
      
      PiperOrigin-RevId: 599872755
      Change-Id: I02c90119b2b96a922cf7e3b5d5f02affe24a272d
      Abseil Team committed
    • Remove code pieces for no longer supported MSVC versions. · 04d8afe7
      The current support policy is `_MSC_VER >= 1920`.
      
      PiperOrigin-RevId: 599833619
      Change-Id: I9cf7393a5b659d1680765e37e0328539ccb870fa
      Abseil Team committed
  3. 18 Jan, 2024 2 commits
  4. 17 Jan, 2024 1 commit
  5. 16 Jan, 2024 1 commit
  6. 13 Jan, 2024 1 commit
  7. 12 Jan, 2024 1 commit
  8. 11 Jan, 2024 3 commits
  9. 10 Jan, 2024 3 commits
  10. 09 Jan, 2024 1 commit
  11. 05 Jan, 2024 1 commit
  12. 04 Jan, 2024 2 commits
    • Optimize integer-to-string conversions · d5a2cec0
      The updated code is designed to:
      - Be branch-predictor-friendly
      - Be cache-friendly
      - Minimize the lengths of critical paths
      - Minimize slow operations (particularly multiplications)
      - Minimize binary/codegen bloat
      
      The most notable performance trick here is perhaps the precomputation & caching of the number of digits, so that we can reuse/exploit it when writing the output.
      
      This precomputation of the exact length enables 2 further performance benefits:
      - It makes `StrCat` and `StrAppend` zero-copy when only integers are passed, by avoiding intermediate `AlphaNum` entirely in those cases. If needed in the future, we can probably also make many other mixtures of non-integer types zero-copy as well.
      - It avoids over-reservation of the string buffer, allowing for more strings to fit inside SSO, which will likely have further performance benefits.
      
      There is also a side benefit of preventing `FastIntToBuffer` from writing beyond the end of the buffer, which has caused buffer overflows in the past.
      
      The new code continues to use & extend some of the existing core tricks (such as the division-by-100 trick), as those are already efficient.
      
      PiperOrigin-RevId: 595785531
      Change-Id: Id6920e7e038fec10b2c45f213de75dc7e2cbddd1
      Abseil Team committed
    • Correct nullability annotations on MakeNan · ccf0c773
      Neither GCC nor Clang's __builtin_nan(), nor glibc's nan(), accept null pointers.
      
      PiperOrigin-RevId: 595767225
      Change-Id: I4cddd1cafd0c9e83a823ec68386f10ce077c6b4c
      Abseil Team committed
  13. 03 Jan, 2024 2 commits
  14. 02 Jan, 2024 3 commits
  15. 28 Dec, 2023 2 commits
  16. 27 Dec, 2023 2 commits
  17. 26 Dec, 2023 2 commits
  18. 21 Dec, 2023 2 commits
  19. 20 Dec, 2023 6 commits
  20. 19 Dec, 2023 2 commits