--
2c12ae8d6cbb8cbeb3ff446393578dd0d6d0cf8c by Andy Getzendanner <durandal@google.com>:
Fix printf POSIX reference link to point at printf(3) (the C API) instead of printf(1) (the shell utility).
PiperOrigin-RevId: 231719473
--
a36b3a0e539b5ca2033bb25438aa325ac84a285a by CJ Johnson <johnsoncj@google.com>:
Fixes "correct" but poor semantics `allocator_and_tag_` initializations in InlinedVector to the proper version that gets a reference/const reference to allocator_type
PiperOrigin-RevId: 231691608
--
de5eca5c7146a1e4692a201804817d98354d20ec by CJ Johnson <johnsoncj@google.com>:
Removes pathologically deleted move constructor and assignment operator from benchmark test type
PiperOrigin-RevId: 231680297
--
b2b52859e5f0e14a25047e528c8163b12ea9ca32 by Matt Armstrong <marmstrong@google.com>:
Assert on elapsed time, not absolute time.
This is a cosmetic change that aims to make
test failures clearer. Human readers no longer
need to do as much mental math to deduce the
magnitude of the failure. It does not change the
semantics of the test assertions.
PiperOrigin-RevId: 231644805
GitOrigin-RevId: 2c12ae8d6cbb8cbeb3ff446393578dd0d6d0cf8c
Change-Id: Ic121a26a7a6bb7441da6a8c1d7797bee4f705fdc
--
6fdf24a197b964f9bacbebd0ceca305aef1654fc by Shaindel Schwartz <shaindel@google.com>:
Internal change
PiperOrigin-RevId: 231627312
--
65f7faf52bff01384171efb85fee159378dedf70 by CJ Johnson <johnsoncj@google.com>:
Relocates the definitions of the InputIterator-accepting parts of the InlinedVector API into the top-level. The removed functions had no other callers so there was no reason to keep the layer of indirection in the form of the function call.
PiperOrigin-RevId: 231527459
--
30e105b749b5ecc50fdaf26c7da589617efce425 by CJ Johnson <johnsoncj@google.com>:
Relocates closing brace for absl namespace in InlinedVector to the correct end location
PiperOrigin-RevId: 231477871
--
063c1e8b9d1f032662c46d574e20ecc357b87d0c by Eric Fiselier <ericwf@google.com>:
Cleanup std::hash probing metafunctions.
Previously there were two different ways to probe for
std::hash. One in hash.h and another in type_traits.h,
and they were both implemented differently, and neither
correctly worked around bad STL implementations.
This patch unifies the implementations into a single IsHashable trait.
It also:
* Correctly checks for old libc++ versions where this won't work.
* Avoids undefined behavior which resulted from calling std::is_constructible
incomplete types.
* Unifies the feature test macro used in the headers and the tests.
Additionally it also slightly changes the behavior of when absl::variant
is hashable. Previously we disable hashing when std::hash<T>()(key) was
formed but when std::hash<T> couldn't be destructed. This seems wrong. If a
user provides a evil specialization of std::hash, then it's OK for variant's
hash to blow up.
PiperOrigin-RevId: 231468345
--
05d75dd4b07c893de9b104731644d0d207b01253 by Abseil Team <absl-team@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 231397518
--
a0ee9032f9e04039f3410ed17fcf45ae1a3868f5 by CJ Johnson <johnsoncj@google.com>:
Remove unused EnableIfAtLeastInputIterator from InlinedVector
PiperOrigin-RevId: 231348903
--
4dcd4e9a6780a81d7a6974c7bf22a037e6482b49 by Abseil Team <absl-team@google.com>:
Remove unnecessary register keyword from absl/base/internal/endian.h.
PiperOrigin-RevId: 231316570
--
c8584836caa3a10f90a8604a85d4b831310b72ee by Abseil Team <absl-team@google.com>:
Fix hashtablez_sampler compilation on older Android NDK builds
PiperOrigin-RevId: 231283542
GitOrigin-RevId: 6fdf24a197b964f9bacbebd0ceca305aef1654fc
Change-Id: I185b12fb8347e3ad0ffcb2cbb83a53450e5eb938
--
8c420997e7a08b9e7e24afa32d6e37cb2bfa2c12 by Abseil Team <absl-team@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 231265916
--
f52b9e201698b315c23ebaa6c8ec97362048d9b8 by CJ Johnson <johnsoncj@google.com>:
inlined_capacity() => GetInlinedCapacity()
Originally I intended inlined_capacity() to be moved from the private to public part of the API eventually so I named it appropriately and punted on publicizing it until later. After it was found to cause an issue on some platforms, I decided there was no reason to grow the API of the type just for a pretty function name. Thus, this change brings its name to be of the same format as the rest of the Abseil team's naming convention.
PiperOrigin-RevId: 231248856
--
04e700ea1aad12cdb6a1ed29e183c59d97a47ccd by Abseil Team <absl-team@google.com>:
Merge https://github.com/abseil/abseil-cpp/pull/255
PiperOrigin-RevId: 231240011
--
4f2c2212c98093194c73572995e7770b58c9b9a0 by CJ Johnson <johnsoncj@google.com>:
Adds identifiers to the AbslHashValue(...) forward declaration bringing it in line with the format of the other forward declarations while keeping it on one line.
PiperOrigin-RevId: 231231932
--
68923d6c9289eb523126638f25d95916456125cf by CJ Johnson <johnsoncj@google.com>:
Remove bad calls to assert(...) that do not make sense
PiperOrigin-RevId: 231214093
--
a2a0b59b7dc2c39aca979ff6e474b9e170ab96b6 by CJ Johnson <johnsoncj@google.com>:
Switch to trailing return type syntax for non-member functions of InlinedVector
PiperOrigin-RevId: 230975981
GitOrigin-RevId: 8c420997e7a08b9e7e24afa32d6e37cb2bfa2c12
Change-Id: Ibbad7f27b596801bc770b440afed8d5e9e89ff8d
--
a9115ecdf91183528f677fbbd9294652ab68c35f by CJ Johnson <johnsoncj@google.com>:
Shorten the names of the args of the public InlinedVector member functions
PiperOrigin-RevId: 230963027
--
93eaa2e3826901bafd16b088c8b5b272a2650fbb by CJ Johnson <johnsoncj@google.com>:
Elevates input/forward iterator type checking to the top level of the InlinedVector API
PiperOrigin-RevId: 230771558
GitOrigin-RevId: a9115ecdf91183528f677fbbd9294652ab68c35f
Change-Id: I30524e1a2a6260c6947a7ad756caade9b0b2c82f
--
5804cc13b413412988248835459b90cd15ec43d9 by Abseil Team <absl-team@google.com>:
Mark raw_hash_set::clear() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.
This prevents false positives in the clang-tidy check bugprone-use-after-move;
it allows reset() to be called on a moved-from raw_hash_set without any
warnings, and the raw_hash_set will thereafter be regarded as initialized again.
PiperOrigin-RevId: 230717196
--
ff5961a5600ae19b69a9cba6912126cdf2858f38 by CJ Johnson <johnsoncj@google.com>:
Swaps DisableIfIntegral<> for EnableIfInputIterator<> for Iterator member functions of InlinedVector
PiperOrigin-RevId: 230559521
--
3f9754ccbeecbd40f235c6f2465279e045ff51d9 by Derek Mauro <dmauro@google.com>:
Import GitHub PR 254
https://github.com/abseil/abseil-cpp/pull/254
Fixes warnings from -Wclass-memaccess (base_internal::ThreadIdentity?
with no trivial copy-assignment).
PiperOrigin-RevId: 230536048
--
8af03a654ce9a4a7f55384bc7eb1ed64878ac2ec by Chris Kennelly <ckennelly@google.com>:
absl: cap SpinLock backoff to 4ms
The current backoff logic has 3 problems:
1. It can produce too high values (up to 256ms), which can negatively
affect tail latency. The value was chosen long time ago and now it's
a good idea to reconsider it.
2. It does not have low bound, so on any iteration it can produce
a very small value that will lead to unnecessary cpu consumption.
3. It does not increase low bound with the number of iterations.
So if the SpinLock is actually somehow locked for a very prolonged time,
a waiter can still wake periodically.
Rework the logic to solve these problems.
Add lower bound of 128us, no code should rely on absence of episodic
delays in this range as they can occur everywhere.
Lower upper bound to 4ms. A thread sleeping for 4ms does not consume
significant cpu time (see below).
Grow lower bound with the number of iterations.
This is cpu consumption of a process doing usleep(x) in a loop
(sampled with ps):
64us -> 4.0%
128us -> 2.7%
256us -> 3.5%
512us -> 2.8%
1024us -> 1.6%
2048us -> 0.6%
4096us -> 0.3%
8192us -> 0.0%
Few millisecond sleeps do not consume significant time.
PiperOrigin-RevId: 230534015
--
37ebba92289ca556cb2412cd8b3cb4c1ead3def7 by Samuel Benzaquen <sbenza@google.com>:
Add override and dispose hooks to the hashtable sampler.
PiperOrigin-RevId: 230353438
--
89c8f90175233ce9964eb3412df04e8a3cff0c0f by Andy Getzendanner <durandal@google.com>:
Fix a comment typo.
PiperOrigin-RevId: 229986838
GitOrigin-RevId: 5804cc13b413412988248835459b90cd15ec43d9
Change-Id: Iedb5e2cc9c0b924635c1c87b537780ab6b5b899f
Inside a derivation, exportReferencesGraph already provides a way to
dump the Nix database for a specific closure. On the command line,
--dump-db gave us the same information, but only for the entire Nix
database at once.
With this change, one can now pass a list of paths to --dump-db to get
the Nix database dumped for just those paths. (The user is responsible
for ensuring this is a closure, like for --export).
Among other things, this is useful for deploying a closure to a new
host without using --import/--export; one can use tar to transfer the
store paths, and --dump-db/--load-db to transfer the validity
information. This is useful if the new host doesn't actually have Nix
yet, and the closure that is being deployed itself contains Nix.
Updates a few build dependencies, most notably Go to 1.11. The chosen
commit is the current stable `nixos-18.09` tag in nixpkgs-channels.
While doing this I also checked whether it is now possible to remove
the exception for allowing references, but it's not.
Go may in the future gain support for fully reproducible builds, see
for example issue #16860 on their compiler. At that point maybe we can
drop a few settings here.
CI builds for `master` track unstable nixpkgs releases, in which
parallel is no longer part of the standard build environment.
However, this tool is required for executing some of the tests.
--
461c1b6eb19490429db3bc6dd10ee32df9429cd7 by Samuel Benzaquen <sbenza@google.com>:
Group all the capacity/growth calculation in one place.
This helps remove the unnecessary floating point operations.
PiperOrigin-RevId: 229928140
GitOrigin-RevId: 461c1b6eb19490429db3bc6dd10ee32df9429cd7
Change-Id: Ib00f85a6033fcd06a1d38a5987670b1524a80f93
- The instructions for using nix-shell as an interpreter has a Haskell script
example that doesn't work on more recent versions of Nix. Update the
instructions with a working command
--
b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 by CJ Johnson <johnsoncj@google.com>:
`Hash` -> `H` for AbslHashValue in InlinedVector
PiperOrigin-RevId: 229765535
--
ecceb8dc7eb9fe576dd0b8f0e95b5d3c3e92795d by Abseil Team <absl-team@google.com>:
fix ubsan error in Mutex on arm32
PiperOrigin-RevId: 229744897
GitOrigin-RevId: b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5
Change-Id: Ic0fd2252f9838d5fceffc808d05a09a8bc872efc
--
4a492de32dd1e02c5c3600bfdb36da7af7855210 by Samuel Benzaquen <sbenza@google.com>:
Fix potential intergral overflow in the parser.
PiperOrigin-RevId: 229378698
--
c5d5385eff879a65582138febb44c79725baf582 by CJ Johnson <johnsoncj@google.com>:
Adds an explanatory comment over AbslHashValue(...) for InlinedVector
PiperOrigin-RevId: 229237373
GitOrigin-RevId: 4a492de32dd1e02c5c3600bfdb36da7af7855210
Change-Id: Iad9edfde23ab5af9001ce80e3d00a34be3d73815
--
70b243f160a2f0f222066f62e06cc4346aea683d by Gennadiy Civil <misterg@google.com>:
Replace tests with new googletest Test Suite APIs
PiperOrigin-RevId: 228901526
--
28fe449f416c3d3fe882ef3dfa4289b94be5f8af by CJ Johnson <johnsoncj@google.com>:
Changes the style of enable_if on InlinedVector::insert(...) to match all others
PiperOrigin-RevId: 228878640
--
5b4732f783d16cfb19c8c42962201aafe12b3c0f by Abseil Team <absl-team@google.com>:
Update the absl::FromDateTime() deprecation message to refer to
absl::FromCivil(), the recommended replacement despite a slight
change in behavior for skipped civil times.
PiperOrigin-RevId: 228820837
--
ee77056d753bb8665236a173064af85d935acfc4 by Gennadiy Civil <misterg@google.com>:
Bump googletest to the latest
PiperOrigin-RevId: 228792994
--
aebc04f76b83a26432dba8e6199c971d5b69df0f by CJ Johnson <johnsoncj@google.com>:
Switches InlinedVector input/forward iterator tagged dispatch from callsite to template decorator
PiperOrigin-RevId: 228771063
GitOrigin-RevId: 70b243f160a2f0f222066f62e06cc4346aea683d
Change-Id: I5f8cd05685ff642eff81187b8e207a0bdbcf073a
Previously, plain derivation paths in the string context (e.g. those
that arose from builtins.storePath on a drv file, not those that arose
from accessing .drvPath of a derivation) were treated somewhat like
derivaiton paths derived from .drvPath, except their dependencies
weren't recursively added to the input set. With this change, such
plain derivation paths are simply treated as paths and added to the
source inputs set accordingly, simplifying context handling code and
removing the inconsistency. If drvPath-like behavior is desired, the
.drv file can be imported and then .drvPath can be accessed.
This is a backwards-incompatibility, but storePath is never used on
drv files within nixpkgs and almost never used elsewhere.
--
da7b6d9d43b2951a3487bbfd41aa2ee96b2813ef by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 228757155
--
2789fc170bed4b671a01a4106e3ba5059ff225fb by CJ Johnson <johnsoncj@google.com>:
`Other<X>` => `The<X>` for AbslHashValue of InlinedVector
PiperOrigin-RevId: 228558678
GitOrigin-RevId: da7b6d9d43b2951a3487bbfd41aa2ee96b2813ef
Change-Id: Iaeb33ae791f093d94ad9f893b3455d5403429089
--
fd86c60bac6c41f1629ce1ab7dc1c8edff398a59 by Alex Strelnikov <strel@google.com>:
Import PR: https://github.com/abseil/abseil-cpp/pull/243
Fix Windows ARM64 intrinsic use.
PiperOrigin-RevId: 228535649
--
a0ca663f606a3b31493683e405be2b1cff450894 by CJ Johnson <johnsoncj@google.com>:
Fixes issue of mixed signedness comparison
PiperOrigin-RevId: 228535623
--
d71aaa1705d7303b43fe02088fe07b153e647796 by Shaindel Schwartz <shaindel@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 228534365
--
c1b49d361aa880198e071f93997724bddbcd4760 by Samuel Benzaquen <sbenza@google.com>:
Internal cleanup
PiperOrigin-RevId: 228406627
--
0c4b1c2bed107698e209055b3431771d7a1bdba1 by Dave Walker <dawalker@google.com>:
Add comments about the purpose of container_internal::slot_type.
PiperOrigin-RevId: 228264537
--
060aa6077d2f3a0a129149e0644d19f2f521b241 by Abseil Team <absl-team@google.com>:
#include <cmath> in hashtablez_sampler.cc
Expected to fix the android build.
PiperOrigin-RevId: 228222550
GitOrigin-RevId: fd86c60bac6c41f1629ce1ab7dc1c8edff398a59
Change-Id: I26339fd4548c1a81b037cb52c26910d1bd850ea8