tvl-depot/absl/container/CMakeLists.txt

900 lines
15 KiB
Text
Raw Normal View History

#
# Copyright 2017 The Abseil Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
# This is deprecated and will be removed in the future. It also doesn't do
# anything anyways. Prefer to use the library associated with the API you are
# using.
absl_cc_library(
NAME
container
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
PUBLIC
)
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
absl_cc_library(
NAME
btree
HDRS
"btree_map.h"
"btree_set.h"
"internal/btree.h"
"internal/btree_container.h"
COPTS
${ABSL_DEFAULT_COPTS}
LINKOPTS
${ABSL_DEFAULT_LINKOPTS}
DEPS
absl::container_common
absl::compare
absl::compressed_tuple
absl::container_memory
absl::cord
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
absl::core_headers
absl::layout
absl::memory
absl::strings
absl::throw_delegate
absl::type_traits
absl::utility
)
absl_cc_library(
NAME
btree_test_common
hdrs
"btree_test.h"
COPTS
${ABSL_TEST_COPTS}
LINKOPTS
${ABSL_DEFAULT_LINKOPTS}
DEPS
absl::btree
absl::cord
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
absl::flat_hash_set
absl::strings
absl::time
TESTONLY
)
absl_cc_test(
NAME
btree_test
SRCS
"btree_test.cc"
COPTS
${ABSL_TEST_COPTS}
LINKOPTS
${ABSL_DEFAULT_LINKOPTS}
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
DEPS
absl::btree
absl::btree_test_common
absl::compare
absl::core_headers
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
absl::counting_allocator
absl::flags
absl::hash_testing
absl::raw_logging_internal
Export of internal Abseil changes -- 3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>: Document and workaround a known MSVC bug doing constexpr pointer arithmetic PiperOrigin-RevId: 262604652 -- b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>: Fix typo in macos_xcode_bazel.sh PiperOrigin-RevId: 262591285 -- 89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 262582747 -- 32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262569140 -- 7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 262563554 -- 314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>: Release absl::btree PiperOrigin-RevId: 262553526 -- 72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 262421185 -- 4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>: Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead. PiperOrigin-RevId: 262420758 -- 92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>: Add the ability to override the bazel version in the macos_xcode_bazel.sh test script. PiperOrigin-RevId: 262412063 GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 20:54:24 +02:00
absl::strings
absl::test_instance_tracker
absl::type_traits
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
compressed_tuple
Export of internal Abseil changes. -- cd076f55c1fa600131f6dda392533dfe61679fc0 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 224008762 -- e05f62b01286d51044ff86ec6ef565749b9faf82 by Abseil Team <absl-team@google.com>: Create a pow10() test helper function to compute guaranteed-precise double values of 10^x. Not all standard libraries ship bit-accurate pow() functions, causing tests to fail that rely on expected values generated by it. PiperOrigin-RevId: 223883762 -- fd88e5e3f7ab80f7f5df9fd1488cd58b4573be69 by Abseil Team <absl-team@google.com>: Remove some absl:: qualifications to work around inline namespace bugs on MSVC 2015. PiperOrigin-RevId: 223869642 -- 6276cfff969d596edd36a2bbaba65ee045808903 by Abseil Team <absl-team@google.com>: Update absl/memory/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 223854224 -- 359de9afc7a34c975fd3e0cbc52afd96637d97bd by Chris Kennelly <ckennelly@google.com>: Mark spinlock_benchmark_common as alwayslink = 1. PiperOrigin-RevId: 223844536 -- 450cd8cbe2789a6d54ed1eb87170259bb334f8b9 by Abseil Team <absl-team@google.com>: Support .* (pointer-to-member dereference) expressions in demangle.cc. PiperOrigin-RevId: 223826797 -- 772ca92179c3634f3e31a80bbc272ed8022e3572 by Abseil Team <absl-team@google.com>: Fix misspellings in absl::variant comments and replace a ' with a `. PiperOrigin-RevId: 223807911 -- 35dcdc2fbf299d195658aac101887f6dcad1de2f by Abseil Team <absl-team@google.com>: Bug fix in CMakeLists.txt file (SRCS --> HDRS). The compressed_tuple header-only library is being defined with the SRCS parameter instead of the HDRS parameter and this has been observed to cause some builds on some platforms to attempt to create a static library from it which fails since there are no .cc sources. PiperOrigin-RevId: 223805367 -- 4a57a3d2045bb137c0c97958e45ce425190b8d3e by Chris Kennelly <ckennelly@google.com>: Add test that absl::make_unique value initializes memory. PiperOrigin-RevId: 223801819 -- dfe8289d7f4dcc6bb568a26aaf192a89e896bdfd by Chris Kennelly <ckennelly@google.com>: SpinLock: Use exchange to avoid missing wakeups. The default fast path for SpinLock::Unlock does not use an atomic. If the SpinLock becomes contended while we are unlocking between lockword_.load and lockword_.store, we will fail to wake up the new waiter. This can cause unexpected latency spikes. PiperOrigin-RevId: 223800369 -- 9b9d35df786482f0016f77dd31691eff81503d23 by Abseil Team <absl-team@google.com>: Update absl/hash/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 223755819 -- c2014e2704b87e7cdce2d2a0287c7e2397752296 by Abseil Team <absl-team@google.com>: Update absl/debugging/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 223751986 -- d83a4e09126400e3fd80645cb03ee558f532271e by Derek Mauro <dmauro@google.com>: Cleanup synchronization benchmarks. PiperOrigin-RevId: 223589416 -- fad140b473586531b5b12843f942ec27dfcf5e93 by CJ Johnson <johnsoncj@google.com>: Makes unifies the order of forward_iterator and input_iterator overloads PiperOrigin-RevId: 223580660 -- 6cd7c96faa7cc5f79f574e35a1b13837ef187d05 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223561629 -- bd2e545356b0f548af0e3c14bb2f7f0e712e49d0 by Shaindel Schwartz <shaindel@google.com>: Remove misleading comments. try_emplace() does not exist for the hash_set containers. PiperOrigin-RevId: 223543089 -- 0cd380a53b587eb7aacc4003a4a3bbb6c78d7c10 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 223512551 -- 7156dfee599cb72e9adddfe0e6ae07a95ddf10bb by Greg Miller <jgm@google.com>: Fixes UB that would result from constructing, multiplying, or dividing a Duration with a double "NaN" value. This CL changes the absl::Duration *implementation* to return an InfiniteDuration value that has the same sign as the given NaN. PiperOrigin-RevId: 223407499 -- 196b7d18609958267951882baf7f9429e49bcafa by CJ Johnson <johnsoncj@google.com>: Addresses NVCC+MSVC compilation bug where `inlined_capacity()` was not considered valid in constexpr PiperOrigin-RevId: 223397718 GitOrigin-RevId: cd076f55c1fa600131f6dda392533dfe61679fc0 Change-Id: I5423ca6470f661a7c6f73aa8fee49990446f157f
2018-12-04 20:01:12 +01:00
HDRS
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
"internal/compressed_tuple.h"
COPTS
${ABSL_DEFAULT_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::utility
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
compressed_tuple_test
SRCS
"internal/compressed_tuple_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::any
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::compressed_tuple
Export of internal Abseil changes. -- 636137f6f0de910691a3950387fefacfa4909fb8 by Abseil Team <absl-team@google.com>: Add move semantics to absl::container_internal::CompressedTuple PiperOrigin-RevId: 225394165 -- 43da91e4f95a196b2e6b76f1c2f4158817b0ebb0 by Greg Falcon <gfalcon@google.com>: Add a constructor to allow for global absl::Mutex instances. This adds a new constexpr constructor to absl::Mutex, invoked with the absl::kConstInit tag value, which is intended to be used to construct Mutex instances with static storage duration. What's tricky about is absl::Mutex (like std::mutex) is not a trivially destructible class, so by the letter of the law, accessing a global Mutex instance after it is destroyed results in undefined behavior. Despite this, we take care in the destructor to not invalidate the memory layout of the Mutex. Using a kConstInit-constructed global Mutex after it is destroyed happens to work on the toolchains we use. Google relies heavily on this behavior internally. Code sanitizers that detect undefined behavior are able to notice use-after-free of globals, and might complain about this pattern. PiperOrigin-RevId: 225389447 -- 7b553a54bc6460cc7008b028552e66799475ca64 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 225373389 -- fd0c722d217b3b509102274765ccb1a0b596cf46 by Abseil Team <absl-team@google.com>: Update absl/time/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225246853 -- 9f8f3ba3b67a6d1ac4ecdc529c8b8eb0f02576d9 by Abseil Team <absl-team@google.com>: Update absl/synchronisation/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225237980 -- a3fdd67dad2e596f804f5e100c8d3a74d8064faa by Abseil Team <absl-team@google.com>: Internal cleanup PiperOrigin-RevId: 225226813 -- 48fab23fb8cdca45e95da14fce0de56614d09c25 by Jon Cohen <cohenjon@google.com>: Use a shim #define for wchar_t in msvc in int128. On ancient versions of msvc and with some compatibility flags on wchar_t is a typedef for unsigned short, whereas on standards-conforming versions wchar_t is a typedef for __wchar_t. The first situation causes int128 to not compile as you can't define both `operator wchar_t()` and `operator unsigned short()` because they are the same type. This CL introduces a wrapper #define in order to abstract over the different typedefs for wchar_t. We do a define instead of a typedef so that we can #undef at the end and not leak the symbol, since we need it in a header. https://docs.microsoft.com/en-us/previous-versions/dh8che7s(v=vs.140) has more detail about the underlying problem. PiperOrigin-RevId: 225223756 GitOrigin-RevId: 636137f6f0de910691a3950387fefacfa4909fb8 Change-Id: Iad94e52e9484c5acec115a2f09ef2d5ec22c2074
2018-12-13 19:30:03 +01:00
absl::memory
absl::optional
absl::test_instance_tracker
Export of internal Abseil changes. -- 636137f6f0de910691a3950387fefacfa4909fb8 by Abseil Team <absl-team@google.com>: Add move semantics to absl::container_internal::CompressedTuple PiperOrigin-RevId: 225394165 -- 43da91e4f95a196b2e6b76f1c2f4158817b0ebb0 by Greg Falcon <gfalcon@google.com>: Add a constructor to allow for global absl::Mutex instances. This adds a new constexpr constructor to absl::Mutex, invoked with the absl::kConstInit tag value, which is intended to be used to construct Mutex instances with static storage duration. What's tricky about is absl::Mutex (like std::mutex) is not a trivially destructible class, so by the letter of the law, accessing a global Mutex instance after it is destroyed results in undefined behavior. Despite this, we take care in the destructor to not invalidate the memory layout of the Mutex. Using a kConstInit-constructed global Mutex after it is destroyed happens to work on the toolchains we use. Google relies heavily on this behavior internally. Code sanitizers that detect undefined behavior are able to notice use-after-free of globals, and might complain about this pattern. PiperOrigin-RevId: 225389447 -- 7b553a54bc6460cc7008b028552e66799475ca64 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 225373389 -- fd0c722d217b3b509102274765ccb1a0b596cf46 by Abseil Team <absl-team@google.com>: Update absl/time/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225246853 -- 9f8f3ba3b67a6d1ac4ecdc529c8b8eb0f02576d9 by Abseil Team <absl-team@google.com>: Update absl/synchronisation/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225237980 -- a3fdd67dad2e596f804f5e100c8d3a74d8064faa by Abseil Team <absl-team@google.com>: Internal cleanup PiperOrigin-RevId: 225226813 -- 48fab23fb8cdca45e95da14fce0de56614d09c25 by Jon Cohen <cohenjon@google.com>: Use a shim #define for wchar_t in msvc in int128. On ancient versions of msvc and with some compatibility flags on wchar_t is a typedef for unsigned short, whereas on standards-conforming versions wchar_t is a typedef for __wchar_t. The first situation causes int128 to not compile as you can't define both `operator wchar_t()` and `operator unsigned short()` because they are the same type. This CL introduces a wrapper #define in order to abstract over the different typedefs for wchar_t. We do a define instead of a typedef so that we can #undef at the end and not leak the symbol, since we need it in a header. https://docs.microsoft.com/en-us/previous-versions/dh8che7s(v=vs.140) has more detail about the underlying problem. PiperOrigin-RevId: 225223756 GitOrigin-RevId: 636137f6f0de910691a3950387fefacfa4909fb8 Change-Id: Iad94e52e9484c5acec115a2f09ef2d5ec22c2074
2018-12-13 19:30:03 +01:00
absl::utility
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
fixed_array
HDRS
"fixed_array.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::compressed_tuple
absl::algorithm
absl::core_headers
absl::dynamic_annotations
absl::throw_delegate
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
fixed_array_test
SRCS
"fixed_array_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::fixed_array
Export of internal Abseil changes -- 79913a12f0cad4baf948430315aabf53f03b6475 by Abseil Team <absl-team@google.com>: Don't inline (Un)LockSlow. PiperOrigin-RevId: 302502344 -- 6b340e80f0690655f24799c8de6707b3a95b8579 by Derek Mauro <dmauro@google.com>: Add hardening assertions to absl::optional's dereference operators PiperOrigin-RevId: 302492862 -- a9951bf4852d8c1aec472cb4b539830411270e4c by Derek Mauro <dmauro@google.com>: Correctly add hardware AES compiler flags under Linux X86-64 Fixes #643 PiperOrigin-RevId: 302490673 -- 314c3621ee4d57b6bc8d64338a1f1d48a69741d1 by Derek Mauro <dmauro@google.com>: Upgrade to hardening assertions in absl::Span::remove_prefix and absl::Span::remove_suffix PiperOrigin-RevId: 302481191 -- a142b8c6c62705c5f0d4fe3113150f0c0b7822b9 by Derek Mauro <dmauro@google.com>: Update docker containers to Bazel 2.2.0, GCC 9.3, and new Clang snapshot PiperOrigin-RevId: 302454042 -- afedeb70a2adc87010030c9ba6f06fe35ec26407 by Derek Mauro <dmauro@google.com>: Add hardening assertions for the preconditions of absl::FixedArray PiperOrigin-RevId: 302441767 -- 44442bfbc0a9a742df32f07cee86a47712efb8b4 by Derek Mauro <dmauro@google.com>: Fix new Clang warning about SpinLock doing operations on enums of different types PiperOrigin-RevId: 302430387 -- 69eaff7f97231779f696321c2ba8b88debf6dd9e by Derek Mauro <dmauro@google.com>: Convert precondition assertions to ABSL_HARDENING_ASSERT for absl::InlinedVector PiperOrigin-RevId: 302427894 -- 26b6db906a0942fd18583dc2cdd1bab32919d964 by Gennadiy Rozental <rogeeff@google.com>: Internal change PiperOrigin-RevId: 302425283 -- e62e81422979e922505d2cd9000e1de58123c088 by Derek Mauro <dmauro@google.com>: Add an option to build Abseil in hardened mode In hardened mode, the ABSL_HARDENING_ASSERT() macro is active even when NDEBUG is defined. This allows Abseil to perform runtime checks even in release mode. This should be used to implement things like bounds checks that could otherwise lead to security vulnerabilities. Use the new assertion in absl::string_view and absl::Span to test it. PiperOrigin-RevId: 302119187 GitOrigin-RevId: 79913a12f0cad4baf948430315aabf53f03b6475 Change-Id: I0cc3341fd333a1df313167bab72dc5a759c4a048
2020-03-23 21:16:18 +01:00
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::exception_testing
absl::hash_testing
absl::memory
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
fixed_array_exception_safety_test
SRCS
"fixed_array_exception_safety_test.cc"
COPTS
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::fixed_array
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::exception_safety_testing
gmock_main
)
Export of internal Abseil changes. -- bdce7e57e9e886eff1114d0266781b443f7ec639 by Derek Mauro <dmauro@google.com>: Change {Get|Set}EnvironmentVariable to {Get|Set}EnvironmentVariableA for compatibility with /DUNICODE. PiperOrigin-RevId: 239229514 -- 2276ed502326a044a84060d34eb19d499e3a3be2 by Derek Mauro <dmauro@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 239228622 -- a462efb970ff43b08a362ef2343fb75ac1295a50 by Derek Mauro <dmauro@google.com>: Adding linking of CoreFoundation to CMakeLists in absl/time. Import https://github.com/abseil/abseil-cpp/pull/280. Fix #283 PiperOrigin-RevId: 239220785 -- fc23327b97f940c682aae1956cf7a1bf87f88c06 by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of gcc (8.3.0 today) with libstdc++ and bazel. PiperOrigin-RevId: 239220448 -- 418c08a8f6a53e63b84e39473035774417ca3aa7 by Derek Mauro <dmauro@google.com>: Disable part of the variant exeception safety test on move assignment when using versions of libstd++ that contain a bug. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87431#c7 PiperOrigin-RevId: 239062455 -- 799722217aeda79679577843c91d5be62cbcbb42 by Matt Calabrese <calabrese@google.com>: Add internal-only IsSwappable traits corresponding to std::is_swappable and std::is_nothrow_swappable, which are used with the swap implementations of optional and variant. PiperOrigin-RevId: 239049448 -- aa46a036038a3de5c68ac5e5d3b4bf76f818d2ea by CJ Johnson <johnsoncj@google.com>: Make InlinedVectorStorage constructor explicit PiperOrigin-RevId: 239044361 -- 17949715b3aa21c794701f69f2154e91b6acabc3 by CJ Johnson <johnsoncj@google.com>: Add absl namesapce to internal/inlined_vector.h PiperOrigin-RevId: 239030789 -- 834628325953078cc08ed10d23bb8890e5bec897 by Derek Mauro <dmauro@google.com>: Add test script that uses Docker to build Abseil with gcc-4.8, libstdc++, and cmake. PiperOrigin-RevId: 239028433 -- 80fe24149ed73ed2ced995ad1e372fb060c60427 by CJ Johnson <johnsoncj@google.com>: Factors data members of InlinedVector into an impl type called InlinedVectorStorage so that (in future changes) the contents of a vector can be grouped together with a single pointer. PiperOrigin-RevId: 239021086 -- 585331436d5d4d79f845e45dcf79d918a0dc6169 by Derek Mauro <dmauro@google.com>: Add -Wno-missing-field-initializers to gcc compiler flags. gcc-4.x has spurious missing field initializer warnings. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750 PiperOrigin-RevId: 239017217 -- 94602fe4e33ee3a552a7f2939c0f57a992f55075 by Abseil Team <absl-team@google.com>: Formatting fixes. PiperOrigin-RevId: 238983038 -- a1c1b63c08505574e0a8c491561840cecb2bb93e by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of clang with libc++ and bazel. PiperOrigin-RevId: 238669118 -- e525f8d20bc2f79a0d69336b902f63858f3bff9d by Derek Mauro <dmauro@google.com>: Disable the test optionalTest.InPlaceTSFINAEBug until libc++ is updated. PiperOrigin-RevId: 238661703 -- f99a2a0b5ec424a059678f7f226600f137b4c74e by Derek Mauro <dmauro@google.com>: Correct the check for the FlatHashMap-Any test bug (list conditions instead of platforms when possible) PiperOrigin-RevId: 238653344 -- 777928035dbcbf39f361eb7d10dc3696822f692f by Jon Cohen <cohenjon@google.com>: Add install rules for Abseil CMake. These are attempted to be limited to in-project installation. This serves two purposes -- first it's morally the same as using Abseil in-source, except you don't have to rebuild us every time. Second, the presence of an install rule makes life massively simpler for package manager maintainers. Currently this doesn't install absl tests or testonly libraries. This can be added in a follow-up patch. Fixes #38, Fixes #80, Closes #182 PiperOrigin-RevId: 238645836 -- ded1c6ce697c191b7a6ff14572b3e6d183117b2c by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of clang with libstdc++ and bazel. PiperOrigin-RevId: 238517815 GitOrigin-RevId: bdce7e57e9e886eff1114d0266781b443f7ec639 Change-Id: I6f745869cb8ef63851891ccac05ae9a7dd241c4f
2019-03-19 19:14:01 +01:00
absl_cc_library(
NAME
inlined_vector_internal
HDRS
"internal/inlined_vector.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
Export of internal Abseil changes. -- bc89d3221e3927d08881d75eeee0e8db862300fa by Benjamin Barenblat <bbaren@google.com>: Clean up C-style casts in `ABSL_ASSERT` PiperOrigin-RevId: 241932756 -- 17482daae4b3e2fc725b759586590ac466b72a1e by Jon Cohen <cohenjon@google.com>: Move Gtest-specific CMake code to its own directory PiperOrigin-RevId: 241920192 -- 9ae52b4f665625352c0a789cff884bde492c28f5 by CJ Johnson <johnsoncj@google.com>: Moves private data methods from InlinedVector to InlinedVector Storage in anticipation of migrating the Rep union type PiperOrigin-RevId: 241794144 -- 95315bc50a61a0aae4f171b44c2312158a43e72e by Jon Cohen <cohenjon@google.com>: Use /DNOMINMAX in Abseil tests. This offsets inlcudes of <windows.h> from gtest. PiperOrigin-RevId: 241790584 -- ee505c7f2ab99d29c165ea21a07190474f64053d by CJ Johnson <johnsoncj@google.com>: Adds inlined_vector_internal to the deps of inlined_vector in CMakeLists.txt PiperOrigin-RevId: 241775332 -- 94eb5165b49bab59ce7de143be38a4581d5658da by CJ Johnson <johnsoncj@google.com>: Migrates InlinedVector Storage to class Metadata for compatibility with the eventual member-wise migration to the new exception safe implementation PiperOrigin-RevId: 241633420 -- f99e172caad1ec8b35bf7bbabaf2833d55a6f055 by Abseil Team <absl-team@google.com>: Add MSVC specific linker flags only to MSVC builds. PiperOrigin-RevId: 241615711 -- 3ad19d2779281e945bdf56643dc5cee3f730eb4f by Abseil Team <absl-team@google.com>: Add a comment about per-process randomization of absl::Hash. PiperOrigin-RevId: 241583697 -- 8dfb02d725fee3528351b2da4ed32a7455f9858a by Tom Manshreck <shreck@google.com>: Internal change PiperOrigin-RevId: 241564734 GitOrigin-RevId: bc89d3221e3927d08881d75eeee0e8db862300fa Change-Id: Ibad3da416d08a96ec1f8313f8b519b4270b7e01a
2019-04-04 17:13:57 +02:00
absl::compressed_tuple
Export of internal Abseil changes. -- 635146be541d732fbf2e9c93c6bec89035552484 by Gennadiy Rozental <rogeeff@google.com>: Merge external PR #324 PiperOrigin-RevId: 253849839 -- 7a37f87f0f419ab535e59c7dae7961546586671a by Gennadiy Rozental <rogeeff@google.com>: Merge external PR #323 PiperOrigin-RevId: 253849558 -- 75455e93e1f3987c926f35fbe80a0ea84e4ba35b by CJ Johnson <johnsoncj@google.com>: Removes `ivi` namespace typedef to reduce reader confusion PiperOrigin-RevId: 253789534 -- 2f99d27194468129767c48ab621b952660427493 by CJ Johnson <johnsoncj@google.com>: New benchmarks the various overloads of InlinedVector::assign(...)/InlinedVector::operator=(...) PiperOrigin-RevId: 253787316 -- a0949eb100b93aae22b85b4a4820e4bf9a5a2dbb by CJ Johnson <johnsoncj@google.com>: Updates the definition of `InlinedVector::pop_back(...)` to be cleaner and more direct (hiding the is_allocated branch behind a single call to `data()`) Adds exception safety test for `InlinedVector::pop_back(...)` PiperOrigin-RevId: 253607385 -- 2dbc728ddf84835dcb6341f9a166f1c9bde103b9 by CJ Johnson <johnsoncj@google.com>: Adds the remaining constructor exception safety tests for InlinedVector PiperOrigin-RevId: 253592324 -- 40d88e0d6232c93af5e008088f69ad41cb44e4ce by CJ Johnson <johnsoncj@google.com>: Updates the constructors of InlinedVector to new, exception-safe and more-performant implementations. PiperOrigin-RevId: 253294508 GitOrigin-RevId: 635146be541d732fbf2e9c93c6bec89035552484 Change-Id: I7d37a749632084f5d7fa56d42392e622a9d0180d
2019-06-18 22:05:50 +02:00
absl::core_headers
Export of internal Abseil changes. -- 0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 250694613 -- 4e1690e492a8399da1b1450ff5f21adf435fcef5 by Greg Falcon <gfalcon@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 250684222 -- c7281b44eb005c21d45bdc0b437e47c7787275bc by Derek Mauro <dmauro@google.com>: Fix warnings on Xcode/clang. PiperOrigin-RevId: 250552120 -- 5ea3b1cfa759a7e6c70e7558f27c762baf818f7d by CJ Johnson <johnsoncj@google.com>: Minor edits to InlinedVector benchmarks: Adds DoNotOptimize to the member functions of NontrivialType, removes unused template parameter for InlVec typeder PiperOrigin-RevId: 250505482 -- 7fe9c02b49121936c5b47034f20272a916111174 by Matt Kulukundis <kfm@google.com>: Internal change. PiperOrigin-RevId: 250376825 -- ad348c9c0eb37449874648e8544c56343c1dfaef by CJ Johnson <johnsoncj@google.com>: Minor edits to InlinedVector benchmark PiperOrigin-RevId: 250361830 -- 55e8b411431e982059af73b160fa6bcef90e87f7 by CJ Johnson <johnsoncj@google.com>: Switches use of allocator_traits to the Abseil backport to leverage existing bug fixes and workarounds PiperOrigin-RevId: 250359321 -- b0edbe3218940128523e36388a31ff90df01a364 by CJ Johnson <johnsoncj@google.com>: Updates exception safety test for InlinedVector to use TYPED_TEST (with fixtures) which increases the coverage without complicating the code. PiperOrigin-RevId: 250359198 -- 8ab55c9a8c191aabcb562cf1789f360eba0b1a81 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 250281509 -- dd8a67f4f9e5e8930457203c18205183b8306b5a by Abseil Team <absl-team@google.com>: Change the suggestions for the non-strict Next/PrevWeekday() calls. Previously we suggested `PrevWeekday(d, Weekday::thursday) + 7` to get the _following_ Thursday if d is not already a Thursday, but `NextWeekday(d - 1, Weekday::thursday)` is more intuitive, and probably even a little faster. Similarly for the _previous_ Thursday if d is not already a Thursday, suggest `PrevWeekday(d + 1, Weekday::thursday)` instead of `NextWeekday(d, Weekday::thursday) - 7`. PiperOrigin-RevId: 249840844 -- 4775dce26cdb0560011a5d1ecdc8e0c20f856911 by Abseil Team <absl-team@google.com>: Change the DbgHelp lib pragma to use lowercase and an extension. This matches the conventions used in the Windows SDK. PiperOrigin-RevId: 249826229 -- cbc49e865f3715ebe1983307d4f02e50998b2958 by Abseil Team <absl-team@google.com>: Introduce Abseil prefixed thread annotation macros. PiperOrigin-RevId: 249825200 -- 8e97c8dfbadb78743c2421b494398be25f632cb1 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 249737936 -- 0d720538bc6af3e77ac19def27a4a0514c2800d2 by Abseil Team <absl-team@google.com>: Tell CMake Abseil is a C++ project. PiperOrigin-RevId: 249726509 -- 20651845edf236757b3ffb3eaeff330af81be40a by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 249726377 GitOrigin-RevId: 0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0 Change-Id: I05d18d30ad4e9ace6b60a17d2dc6fd699643fe30
2019-05-30 17:42:34 +02:00
absl::memory
Export of internal Abseil changes. -- 7a6ff16a85beb730c172d5d25cf1b5e1be885c56 by Laramie Leavitt <lar@google.com>: Internal change. PiperOrigin-RevId: 254454546 -- ff8f9bafaefc26d451f576ea4a06d150aed63f6f by Andy Soffer <asoffer@google.com>: Internal changes PiperOrigin-RevId: 254451562 -- deefc5b651b479ce36f0b4ef203e119c0c8936f2 by CJ Johnson <johnsoncj@google.com>: Account for subtracting unsigned values from the size of InlinedVector PiperOrigin-RevId: 254450625 -- 3c677316a27bcadc17e41957c809ca472d5fef14 by Andy Soffer <asoffer@google.com>: Add C++17's std::make_from_tuple to absl/utility/utility.h PiperOrigin-RevId: 254411573 -- 4ee3536a918830eeec402a28fc31a62c7c90b940 by CJ Johnson <johnsoncj@google.com>: Adds benchmark for the rest of the InlinedVector public API PiperOrigin-RevId: 254408378 -- e5a21a00700ee83498ff1efbf649169756463ee4 by CJ Johnson <johnsoncj@google.com>: Updates the definition of InlinedVector::shrink_to_fit() to be exception safe and adds exception safety tests for it. PiperOrigin-RevId: 254401387 -- 2ea82e72b86d82d78b4e4712a63a55981b53c64b by Laramie Leavitt <lar@google.com>: Use absl::InsecureBitGen in place of std::mt19937 in tests absl/random/...distribution_test.cc PiperOrigin-RevId: 254289444 -- fa099e02c413a7ffda732415e8105cad26a90337 by Andy Soffer <asoffer@google.com>: Internal changes PiperOrigin-RevId: 254286334 -- ce34b7f36933b30cfa35b9c9a5697a792b5666e4 by Andy Soffer <asoffer@google.com>: Internal changes PiperOrigin-RevId: 254273059 -- 6f9c473da7c2090c2e85a37c5f00622e8a912a89 by Jorg Brown <jorg@google.com>: Change absl::container_internal::CompressedTuple to instantiate its internal Storage class with the name of the type it's holding, rather than the name of the Tuple. This is not an externally-visible change, other than less compiler memory is used and less debug information is generated. PiperOrigin-RevId: 254269285 -- 8bd3c186bf2fc0c55d8a2dd6f28a5327502c9fba by Andy Soffer <asoffer@google.com>: Adding short-hand IntervalClosed for IntervalClosedClosed and IntervalOpen for IntervalOpenOpen. PiperOrigin-RevId: 254252419 -- ea957f99b6a04fccd42aa05605605f3b44b1ecfd by Abseil Team <absl-team@google.com>: Do not directly use __SIZEOF_INT128__. In order to avoid linker errors when building with clang-cl (__fixunsdfti, __udivti3 and __fixunssfti are undefined), this CL uses ABSL_HAVE_INTRINSIC_INT128 which is not defined for clang-cl. PiperOrigin-RevId: 254250739 -- 89ab385cd26b34d64130bce856253aaba96d2345 by Andy Soffer <asoffer@google.com>: Internal changes PiperOrigin-RevId: 254242321 -- cffc793d93eca6d6bdf7de733847b6ab4a255ae9 by CJ Johnson <johnsoncj@google.com>: Adds benchmark for InlinedVector::reserve(size_type) PiperOrigin-RevId: 254199226 -- c90c7a9fa3c8f0c9d5114036979548b055ea2f2a by Gennadiy Rozental <rogeeff@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 254072387 -- c4c388beae016c9570ab54ffa1d52660e4a85b7b by Laramie Leavitt <lar@google.com>: Internal cleanup. PiperOrigin-RevId: 254062381 -- d3c992e221cc74e5372d0c8fa410170b6a43c062 by Tom Manshreck <shreck@google.com>: Update distributions.h to Abseil standards PiperOrigin-RevId: 254054946 -- d15ad0035c34ef11b14fadc5a4a2d3ec415f5518 by CJ Johnson <johnsoncj@google.com>: Removes functions with only one caller from the implementation details of InlinedVector by manually inlining the definitions PiperOrigin-RevId: 254005427 -- 2f37e807efc3a8ef1f4b539bdd379917d4151520 by Andy Soffer <asoffer@google.com>: Initial release of Abseil Random PiperOrigin-RevId: 253999861 -- 24ed1694b6430791d781ed533a8f8ccf6cac5856 by CJ Johnson <johnsoncj@google.com>: Updates the definition of InlinedVector::assign(...)/InlinedVector::operator=(...) to new, exception-safe implementations with exception safety tests to boot PiperOrigin-RevId: 253993691 -- 5613d95f5a7e34a535cfaeadce801441e990843e by CJ Johnson <johnsoncj@google.com>: Adds benchmarks for InlinedVector::shrink_to_fit() PiperOrigin-RevId: 253989647 -- 2a96ddfdac40bbb8cb6a7f1aeab90917067c6e63 by Abseil Team <absl-team@google.com>: Initial release of Abseil Random PiperOrigin-RevId: 253927497 -- bf1aff8fc9ffa921ad74643e9525ecf25b0d8dc1 by Andy Soffer <asoffer@google.com>: Initial release of Abseil Random PiperOrigin-RevId: 253920512 -- bfc03f4a3dcda3cf3a4b84bdb84cda24e3394f41 by Laramie Leavitt <lar@google.com>: Internal change. PiperOrigin-RevId: 253886486 -- 05036cfcc078ca7c5f581a00dfb0daed568cbb69 by Eric Fiselier <ericwf@google.com>: Don't include `winsock2.h` because it drags in `windows.h` and friends, and they define awful macros like OPAQUE, ERROR, and more. This has the potential to break abseil users. Instead we only forward declare `timeval` and require Windows users include `winsock2.h` themselves. This is both inconsistent and poor QoI, but so including 'windows.h' is bad too. PiperOrigin-RevId: 253852615 GitOrigin-RevId: 7a6ff16a85beb730c172d5d25cf1b5e1be885c56 Change-Id: Icd6aff87da26f29ec8915da856f051129987cef6
2019-06-21 22:11:42 +02:00
absl::span
Export of internal Abseil changes. -- bdce7e57e9e886eff1114d0266781b443f7ec639 by Derek Mauro <dmauro@google.com>: Change {Get|Set}EnvironmentVariable to {Get|Set}EnvironmentVariableA for compatibility with /DUNICODE. PiperOrigin-RevId: 239229514 -- 2276ed502326a044a84060d34eb19d499e3a3be2 by Derek Mauro <dmauro@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 239228622 -- a462efb970ff43b08a362ef2343fb75ac1295a50 by Derek Mauro <dmauro@google.com>: Adding linking of CoreFoundation to CMakeLists in absl/time. Import https://github.com/abseil/abseil-cpp/pull/280. Fix #283 PiperOrigin-RevId: 239220785 -- fc23327b97f940c682aae1956cf7a1bf87f88c06 by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of gcc (8.3.0 today) with libstdc++ and bazel. PiperOrigin-RevId: 239220448 -- 418c08a8f6a53e63b84e39473035774417ca3aa7 by Derek Mauro <dmauro@google.com>: Disable part of the variant exeception safety test on move assignment when using versions of libstd++ that contain a bug. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87431#c7 PiperOrigin-RevId: 239062455 -- 799722217aeda79679577843c91d5be62cbcbb42 by Matt Calabrese <calabrese@google.com>: Add internal-only IsSwappable traits corresponding to std::is_swappable and std::is_nothrow_swappable, which are used with the swap implementations of optional and variant. PiperOrigin-RevId: 239049448 -- aa46a036038a3de5c68ac5e5d3b4bf76f818d2ea by CJ Johnson <johnsoncj@google.com>: Make InlinedVectorStorage constructor explicit PiperOrigin-RevId: 239044361 -- 17949715b3aa21c794701f69f2154e91b6acabc3 by CJ Johnson <johnsoncj@google.com>: Add absl namesapce to internal/inlined_vector.h PiperOrigin-RevId: 239030789 -- 834628325953078cc08ed10d23bb8890e5bec897 by Derek Mauro <dmauro@google.com>: Add test script that uses Docker to build Abseil with gcc-4.8, libstdc++, and cmake. PiperOrigin-RevId: 239028433 -- 80fe24149ed73ed2ced995ad1e372fb060c60427 by CJ Johnson <johnsoncj@google.com>: Factors data members of InlinedVector into an impl type called InlinedVectorStorage so that (in future changes) the contents of a vector can be grouped together with a single pointer. PiperOrigin-RevId: 239021086 -- 585331436d5d4d79f845e45dcf79d918a0dc6169 by Derek Mauro <dmauro@google.com>: Add -Wno-missing-field-initializers to gcc compiler flags. gcc-4.x has spurious missing field initializer warnings. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750 PiperOrigin-RevId: 239017217 -- 94602fe4e33ee3a552a7f2939c0f57a992f55075 by Abseil Team <absl-team@google.com>: Formatting fixes. PiperOrigin-RevId: 238983038 -- a1c1b63c08505574e0a8c491561840cecb2bb93e by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of clang with libc++ and bazel. PiperOrigin-RevId: 238669118 -- e525f8d20bc2f79a0d69336b902f63858f3bff9d by Derek Mauro <dmauro@google.com>: Disable the test optionalTest.InPlaceTSFINAEBug until libc++ is updated. PiperOrigin-RevId: 238661703 -- f99a2a0b5ec424a059678f7f226600f137b4c74e by Derek Mauro <dmauro@google.com>: Correct the check for the FlatHashMap-Any test bug (list conditions instead of platforms when possible) PiperOrigin-RevId: 238653344 -- 777928035dbcbf39f361eb7d10dc3696822f692f by Jon Cohen <cohenjon@google.com>: Add install rules for Abseil CMake. These are attempted to be limited to in-project installation. This serves two purposes -- first it's morally the same as using Abseil in-source, except you don't have to rebuild us every time. Second, the presence of an install rule makes life massively simpler for package manager maintainers. Currently this doesn't install absl tests or testonly libraries. This can be added in a follow-up patch. Fixes #38, Fixes #80, Closes #182 PiperOrigin-RevId: 238645836 -- ded1c6ce697c191b7a6ff14572b3e6d183117b2c by Derek Mauro <dmauro@google.com>: Add hermetic test script that uses Docker to build with a very recent version of clang with libstdc++ and bazel. PiperOrigin-RevId: 238517815 GitOrigin-RevId: bdce7e57e9e886eff1114d0266781b443f7ec639 Change-Id: I6f745869cb8ef63851891ccac05ae9a7dd241c4f
2019-03-19 19:14:01 +01:00
absl::type_traits
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
inlined_vector
HDRS
"inlined_vector.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::algorithm
absl::core_headers
Export of internal Abseil changes. -- bc89d3221e3927d08881d75eeee0e8db862300fa by Benjamin Barenblat <bbaren@google.com>: Clean up C-style casts in `ABSL_ASSERT` PiperOrigin-RevId: 241932756 -- 17482daae4b3e2fc725b759586590ac466b72a1e by Jon Cohen <cohenjon@google.com>: Move Gtest-specific CMake code to its own directory PiperOrigin-RevId: 241920192 -- 9ae52b4f665625352c0a789cff884bde492c28f5 by CJ Johnson <johnsoncj@google.com>: Moves private data methods from InlinedVector to InlinedVector Storage in anticipation of migrating the Rep union type PiperOrigin-RevId: 241794144 -- 95315bc50a61a0aae4f171b44c2312158a43e72e by Jon Cohen <cohenjon@google.com>: Use /DNOMINMAX in Abseil tests. This offsets inlcudes of <windows.h> from gtest. PiperOrigin-RevId: 241790584 -- ee505c7f2ab99d29c165ea21a07190474f64053d by CJ Johnson <johnsoncj@google.com>: Adds inlined_vector_internal to the deps of inlined_vector in CMakeLists.txt PiperOrigin-RevId: 241775332 -- 94eb5165b49bab59ce7de143be38a4581d5658da by CJ Johnson <johnsoncj@google.com>: Migrates InlinedVector Storage to class Metadata for compatibility with the eventual member-wise migration to the new exception safe implementation PiperOrigin-RevId: 241633420 -- f99e172caad1ec8b35bf7bbabaf2833d55a6f055 by Abseil Team <absl-team@google.com>: Add MSVC specific linker flags only to MSVC builds. PiperOrigin-RevId: 241615711 -- 3ad19d2779281e945bdf56643dc5cee3f730eb4f by Abseil Team <absl-team@google.com>: Add a comment about per-process randomization of absl::Hash. PiperOrigin-RevId: 241583697 -- 8dfb02d725fee3528351b2da4ed32a7455f9858a by Tom Manshreck <shreck@google.com>: Internal change PiperOrigin-RevId: 241564734 GitOrigin-RevId: bc89d3221e3927d08881d75eeee0e8db862300fa Change-Id: Ibad3da416d08a96ec1f8313f8b519b4270b7e01a
2019-04-04 17:13:57 +02:00
absl::inlined_vector_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::throw_delegate
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 by Samuel Benzaquen <sbenza@google.com>: Fix uninitialized member in the `iterator` class by using a union of the two possible states of the iterator. This silences a Wuninitialized warning in gcc>=7. PiperOrigin-RevId: 228175148 -- 98b4e3204c0ec3cfd4cb037e24d443ea4b63fc84 by CJ Johnson <johnsoncj@google.com>: Factors out the implementation of InlinedVector::swap(...) into a private member function PiperOrigin-RevId: 228173383 -- f1432ad3a8b05285c6d55bc4754cfae765485b7f by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 227891984 -- 03fc00c7a4efc6000e6d9125cb2e252bffda76fe by Andy Getzendanner <durandal@google.com>: Add a missing linebreak to a comment and markdownify two unordered lists. PiperOrigin-RevId: 227861389 -- 0d66c9afba4fc9aa52e61d9fb410e165018a7b48 by Abseil Team <absl-team@google.com>: Add an API to register a new source for the cycle clock. PiperOrigin-RevId: 227779218 -- 14d3f9b70c8818b8541e5fb2f6ca4c59d479de31 by Andy Getzendanner <durandal@google.com>: Correct a typo in a stripping marker. PiperOrigin-RevId: 227750014 -- 59df88740f4e315beb57a8772f8bcf7879440c74 by Matt Kulukundis <kfm@google.com>: Switch thread local handling to be more cross platform PiperOrigin-RevId: 227695133 -- 75deed5bfcb5c42534e933f104aa7d94e11e348d by Abseil Team <absl-team@google.com>: Rollback workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227689133 -- 54994bf0afec026e6e0e7a199df0bbb4b7d9a4aa by Derek Mauro <dmauro@google.com>: Add -pthread to linkopts where it actually belongs, on the library that uses it. Fixes https://github.com/abseil/abseil-cpp/issues/240. PiperOrigin-RevId: 227612492 -- 893875f3536b7e0a1bad993aa6b2e083abb3b25a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227582833 -- 506c9b8e9002ca3389c7040473b68d4cbf94bdcc by Matt Kulukundis <kfm@google.com>: Workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227561449 -- 29ee90d96dfe3114cf93f9bb92ea0cc9e768a407 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227054634 GitOrigin-RevId: 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 Change-Id: Ibc90566d92ee6e0ad7e150f513ec7f5d22ec0a94
2019-01-07 18:01:16 +01:00
absl_cc_library(
NAME
counting_allocator
HDRS
"internal/counting_allocator.h"
COPTS
${ABSL_DEFAULT_COPTS}
Export of internal Abseil changes -- c99f979ad34f155fbeeea69b88bdc7458d89a21c by Derek Mauro <dmauro@google.com>: Remove a floating point division by zero test. This isn't testing behavior related to the library, and MSVC warns about it in opt mode. PiperOrigin-RevId: 285220804 -- 68b015491f0dbf1ab547994673281abd1f34cd4b by Gennadiy Rozental <rogeeff@google.com>: This CL introduces following changes to the class FlagImpl: * We eliminate the CommandLineFlagLocks struct. Instead callback guard and callback function are combined into a single CallbackData struct, while primary data lock is stored separately. * CallbackData member of class FlagImpl is initially set to be nullptr and is only allocated and initialized when a flag's callback is being set. For most flags we do not pay for the extra space and extra absl::Mutex now. * Primary data guard is stored in data_guard_ data member. This is a properly aligned character buffer of necessary size. During initialization of the flag we construct absl::Mutex in this space using placement new call. * We now avoid extra value copy after successful attempt to parse value out of string. Instead we swap flag's current value with tentative value we just produced. PiperOrigin-RevId: 285132636 -- ed45d118fb818969eb13094cf7827c885dfc562c by Tom Manshreck <shreck@google.com>: Change null-term* (and nul-term*) to NUL-term* in comments PiperOrigin-RevId: 285036610 -- 729619017944db895ce8d6d29c1995aa2e5628a5 by Derek Mauro <dmauro@google.com>: Use the Posix implementation of thread identity on MinGW. Some versions of MinGW suffer from thread_local bugs. PiperOrigin-RevId: 285022920 -- 39a25493503c76885bc3254c28f66a251c5b5bb0 by Greg Falcon <gfalcon@google.com>: Implementation detail change. Add further ABSL_NAMESPACE_BEGIN and _END annotation macros to files in Abseil. PiperOrigin-RevId: 285012012 GitOrigin-RevId: c99f979ad34f155fbeeea69b88bdc7458d89a21c Change-Id: I4c85d3704e45d11a9ac50d562f39640a6adbedc1
2019-12-12 19:36:03 +01:00
DEPS
absl::config
Export of internal Abseil changes. -- 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 by Samuel Benzaquen <sbenza@google.com>: Fix uninitialized member in the `iterator` class by using a union of the two possible states of the iterator. This silences a Wuninitialized warning in gcc>=7. PiperOrigin-RevId: 228175148 -- 98b4e3204c0ec3cfd4cb037e24d443ea4b63fc84 by CJ Johnson <johnsoncj@google.com>: Factors out the implementation of InlinedVector::swap(...) into a private member function PiperOrigin-RevId: 228173383 -- f1432ad3a8b05285c6d55bc4754cfae765485b7f by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 227891984 -- 03fc00c7a4efc6000e6d9125cb2e252bffda76fe by Andy Getzendanner <durandal@google.com>: Add a missing linebreak to a comment and markdownify two unordered lists. PiperOrigin-RevId: 227861389 -- 0d66c9afba4fc9aa52e61d9fb410e165018a7b48 by Abseil Team <absl-team@google.com>: Add an API to register a new source for the cycle clock. PiperOrigin-RevId: 227779218 -- 14d3f9b70c8818b8541e5fb2f6ca4c59d479de31 by Andy Getzendanner <durandal@google.com>: Correct a typo in a stripping marker. PiperOrigin-RevId: 227750014 -- 59df88740f4e315beb57a8772f8bcf7879440c74 by Matt Kulukundis <kfm@google.com>: Switch thread local handling to be more cross platform PiperOrigin-RevId: 227695133 -- 75deed5bfcb5c42534e933f104aa7d94e11e348d by Abseil Team <absl-team@google.com>: Rollback workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227689133 -- 54994bf0afec026e6e0e7a199df0bbb4b7d9a4aa by Derek Mauro <dmauro@google.com>: Add -pthread to linkopts where it actually belongs, on the library that uses it. Fixes https://github.com/abseil/abseil-cpp/issues/240. PiperOrigin-RevId: 227612492 -- 893875f3536b7e0a1bad993aa6b2e083abb3b25a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227582833 -- 506c9b8e9002ca3389c7040473b68d4cbf94bdcc by Matt Kulukundis <kfm@google.com>: Workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227561449 -- 29ee90d96dfe3114cf93f9bb92ea0cc9e768a407 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227054634 GitOrigin-RevId: 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 Change-Id: Ibc90566d92ee6e0ad7e150f513ec7f5d22ec0a94
2019-01-07 18:01:16 +01:00
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
inlined_vector_test
SRCS
"inlined_vector_test.cc"
COPTS
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
Export of internal Abseil changes. -- 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 by Samuel Benzaquen <sbenza@google.com>: Fix uninitialized member in the `iterator` class by using a union of the two possible states of the iterator. This silences a Wuninitialized warning in gcc>=7. PiperOrigin-RevId: 228175148 -- 98b4e3204c0ec3cfd4cb037e24d443ea4b63fc84 by CJ Johnson <johnsoncj@google.com>: Factors out the implementation of InlinedVector::swap(...) into a private member function PiperOrigin-RevId: 228173383 -- f1432ad3a8b05285c6d55bc4754cfae765485b7f by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 227891984 -- 03fc00c7a4efc6000e6d9125cb2e252bffda76fe by Andy Getzendanner <durandal@google.com>: Add a missing linebreak to a comment and markdownify two unordered lists. PiperOrigin-RevId: 227861389 -- 0d66c9afba4fc9aa52e61d9fb410e165018a7b48 by Abseil Team <absl-team@google.com>: Add an API to register a new source for the cycle clock. PiperOrigin-RevId: 227779218 -- 14d3f9b70c8818b8541e5fb2f6ca4c59d479de31 by Andy Getzendanner <durandal@google.com>: Correct a typo in a stripping marker. PiperOrigin-RevId: 227750014 -- 59df88740f4e315beb57a8772f8bcf7879440c74 by Matt Kulukundis <kfm@google.com>: Switch thread local handling to be more cross platform PiperOrigin-RevId: 227695133 -- 75deed5bfcb5c42534e933f104aa7d94e11e348d by Abseil Team <absl-team@google.com>: Rollback workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227689133 -- 54994bf0afec026e6e0e7a199df0bbb4b7d9a4aa by Derek Mauro <dmauro@google.com>: Add -pthread to linkopts where it actually belongs, on the library that uses it. Fixes https://github.com/abseil/abseil-cpp/issues/240. PiperOrigin-RevId: 227612492 -- 893875f3536b7e0a1bad993aa6b2e083abb3b25a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227582833 -- 506c9b8e9002ca3389c7040473b68d4cbf94bdcc by Matt Kulukundis <kfm@google.com>: Workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227561449 -- 29ee90d96dfe3114cf93f9bb92ea0cc9e768a407 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227054634 GitOrigin-RevId: 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 Change-Id: Ibc90566d92ee6e0ad7e150f513ec7f5d22ec0a94
2019-01-07 18:01:16 +01:00
absl::counting_allocator
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::inlined_vector
absl::test_instance_tracker
Export of internal Abseil changes -- 79913a12f0cad4baf948430315aabf53f03b6475 by Abseil Team <absl-team@google.com>: Don't inline (Un)LockSlow. PiperOrigin-RevId: 302502344 -- 6b340e80f0690655f24799c8de6707b3a95b8579 by Derek Mauro <dmauro@google.com>: Add hardening assertions to absl::optional's dereference operators PiperOrigin-RevId: 302492862 -- a9951bf4852d8c1aec472cb4b539830411270e4c by Derek Mauro <dmauro@google.com>: Correctly add hardware AES compiler flags under Linux X86-64 Fixes #643 PiperOrigin-RevId: 302490673 -- 314c3621ee4d57b6bc8d64338a1f1d48a69741d1 by Derek Mauro <dmauro@google.com>: Upgrade to hardening assertions in absl::Span::remove_prefix and absl::Span::remove_suffix PiperOrigin-RevId: 302481191 -- a142b8c6c62705c5f0d4fe3113150f0c0b7822b9 by Derek Mauro <dmauro@google.com>: Update docker containers to Bazel 2.2.0, GCC 9.3, and new Clang snapshot PiperOrigin-RevId: 302454042 -- afedeb70a2adc87010030c9ba6f06fe35ec26407 by Derek Mauro <dmauro@google.com>: Add hardening assertions for the preconditions of absl::FixedArray PiperOrigin-RevId: 302441767 -- 44442bfbc0a9a742df32f07cee86a47712efb8b4 by Derek Mauro <dmauro@google.com>: Fix new Clang warning about SpinLock doing operations on enums of different types PiperOrigin-RevId: 302430387 -- 69eaff7f97231779f696321c2ba8b88debf6dd9e by Derek Mauro <dmauro@google.com>: Convert precondition assertions to ABSL_HARDENING_ASSERT for absl::InlinedVector PiperOrigin-RevId: 302427894 -- 26b6db906a0942fd18583dc2cdd1bab32919d964 by Gennadiy Rozental <rogeeff@google.com>: Internal change PiperOrigin-RevId: 302425283 -- e62e81422979e922505d2cd9000e1de58123c088 by Derek Mauro <dmauro@google.com>: Add an option to build Abseil in hardened mode In hardened mode, the ABSL_HARDENING_ASSERT() macro is active even when NDEBUG is defined. This allows Abseil to perform runtime checks even in release mode. This should be used to implement things like bounds checks that could otherwise lead to security vulnerabilities. Use the new assertion in absl::string_view and absl::Span to test it. PiperOrigin-RevId: 302119187 GitOrigin-RevId: 79913a12f0cad4baf948430315aabf53f03b6475 Change-Id: I0cc3341fd333a1df313167bab72dc5a759c4a048
2020-03-23 21:16:18 +01:00
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::core_headers
absl::exception_testing
absl::hash_testing
absl::memory
absl::raw_logging_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::strings
gmock_main
)
absl_cc_test(
NAME
inlined_vector_exception_safety_test
SRCS
"inlined_vector_exception_safety_test.cc"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::inlined_vector
absl::config
absl::exception_safety_testing
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
test_instance_tracker
HDRS
"internal/test_instance_tracker.h"
SRCS
"internal/test_instance_tracker.cc"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::compare
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
TESTONLY
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
test_instance_tracker_test
SRCS
"internal/test_instance_tracker_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::test_instance_tracker
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
flat_hash_map
HDRS
"flat_hash_map.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::container_memory
absl::hash_function_defaults
absl::raw_hash_map
absl::algorithm_container
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
flat_hash_map_test
SRCS
"flat_hash_map_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::flat_hash_map
absl::hash_generator_testing
absl::unordered_map_constructor_test
absl::unordered_map_lookup_test
absl::unordered_map_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_map_modifiers_test
absl::any
absl::raw_logging_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
flat_hash_set
HDRS
"flat_hash_set.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::container_memory
absl::hash_function_defaults
absl::raw_hash_set
absl::algorithm_container
absl::core_headers
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
flat_hash_set_test
SRCS
"flat_hash_set_test.cc"
COPTS
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
"-DUNORDERED_SET_CXX17"
DEPS
absl::flat_hash_set
absl::hash_generator_testing
absl::unordered_set_constructor_test
absl::unordered_set_lookup_test
absl::unordered_set_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_set_modifiers_test
absl::memory
absl::raw_logging_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::strings
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
node_hash_map
HDRS
"node_hash_map.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::container_memory
absl::hash_function_defaults
absl::node_hash_policy
absl::raw_hash_map
absl::algorithm_container
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
node_hash_map_test
SRCS
"node_hash_map_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::hash_generator_testing
absl::node_hash_map
absl::tracked
absl::unordered_map_constructor_test
absl::unordered_map_lookup_test
absl::unordered_map_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_map_modifiers_test
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
node_hash_set
HDRS
"node_hash_set.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::hash_function_defaults
absl::node_hash_policy
absl::raw_hash_set
absl::algorithm_container
absl::memory
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
node_hash_set_test
SRCS
"node_hash_set_test.cc"
COPTS
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
"-DUNORDERED_SET_CXX17"
DEPS
absl::hash_generator_testing
absl::node_hash_set
absl::unordered_set_constructor_test
absl::unordered_set_lookup_test
absl::unordered_set_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_set_modifiers_test
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
container_memory
HDRS
"internal/container_memory.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::memory
Export of internal Abseil changes -- 2dd5008c7b4176859e320c7c337078adb173b662 by Tom Manshreck <shreck@google.com>: Internal change PiperOrigin-RevId: 304022549 -- 6442abd78697b03cfe698b0d0dac7f1eb4b5cb38 by Andy Getzendanner <durandal@google.com>: Internal change PiperOrigin-RevId: 303890410 -- eb8b37b468b0f23da09d3de714272928ef61f942 by Gennadiy Rozental <rogeeff@google.com>: Roll changes forward with ChunkIterator templatized. This should facilitate usage of "small" chunk iterator for a regular usage and proper "big" iterator internally in Cord implementation. This way Cord users are not exposed to stack size overhead if they have a lot of chunk iterators or recursive implementation which relies on chunk iterators. PiperOrigin-RevId: 303877118 -- 9623c569e7c55b45254e95f2d14c5badf9c901aa by Gennadiy Rozental <rogeeff@google.com>: Switch Flags implementation of fast type id to use absl/base/internal/fast_type_id.h PiperOrigin-RevId: 303861019 -- e2931e8d53c86d0816da6bbc8ba58cf5a3a443bb by Matthew Brown <matthewbr@google.com>: Internal Change PiperOrigin-RevId: 303832407 -- b549ed6e441e920b8ad6f02a80b9fd543820ef86 by Tom Manshreck <shreck@google.com>: Update Cord header file comments to Abseil standards PiperOrigin-RevId: 303823232 -- fc633d4f31a2d058f2b6a7029fc7c9820cd71c92 by Evan Brown <ezb@google.com>: Remove top-level const from K/V in map_slot_type::mutable_value and map_slot_type::key. This allows us to move between `map_slot_type::mutable_value`s internally even when the key_type and/or mapped_type specified by the user are const. PiperOrigin-RevId: 303811694 -- 909b3ce7cb3583ee9c374d36ff5f82bba02a1b64 by Derek Mauro <dmauro@google.com>: Add hardening assertions to the preconditions of absl::Cord PiperOrigin-RevId: 303419537 -- 9d32f79eabd54e6cb17bcc28b53e9bcfeb3cf6f4 by Greg Falcon <gfalcon@google.com>: Don't use MSVC-specific bit manipulations when using Clang on Windows. This fixes a compiler warning. Note that we do not have continuous testing for this configuration; this CL is best-effort support. PiperOrigin-RevId: 303322582 -- f6e0a35a2b9081d2a9eef73789b7bc1b5e46e5ad by Gennadiy Rozental <rogeeff@google.com>: Introduce standlone FastTypeId utility to represent compile time unique type id. PiperOrigin-RevId: 303180545 -- 99120e9fbdb5b2d327139ab8f617533d7bc3345b by Abseil Team <absl-team@google.com>: Changed absl's import of std::string_view to using string_view = std::string_view. This should help tools (e.g. include-what-you-use) discover where absl::string_view is defined. PiperOrigin-RevId: 303169095 GitOrigin-RevId: 2dd5008c7b4176859e320c7c337078adb173b662 Change-Id: I1e18ae08e23686ac963e7ea5e5bd499e18d51048
2020-03-31 21:32:35 +02:00
absl::type_traits
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::utility
PUBLIC
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
container_memory_test
SRCS
"internal/container_memory_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::container_memory
absl::strings
Export of internal Abseil changes -- 2dd5008c7b4176859e320c7c337078adb173b662 by Tom Manshreck <shreck@google.com>: Internal change PiperOrigin-RevId: 304022549 -- 6442abd78697b03cfe698b0d0dac7f1eb4b5cb38 by Andy Getzendanner <durandal@google.com>: Internal change PiperOrigin-RevId: 303890410 -- eb8b37b468b0f23da09d3de714272928ef61f942 by Gennadiy Rozental <rogeeff@google.com>: Roll changes forward with ChunkIterator templatized. This should facilitate usage of "small" chunk iterator for a regular usage and proper "big" iterator internally in Cord implementation. This way Cord users are not exposed to stack size overhead if they have a lot of chunk iterators or recursive implementation which relies on chunk iterators. PiperOrigin-RevId: 303877118 -- 9623c569e7c55b45254e95f2d14c5badf9c901aa by Gennadiy Rozental <rogeeff@google.com>: Switch Flags implementation of fast type id to use absl/base/internal/fast_type_id.h PiperOrigin-RevId: 303861019 -- e2931e8d53c86d0816da6bbc8ba58cf5a3a443bb by Matthew Brown <matthewbr@google.com>: Internal Change PiperOrigin-RevId: 303832407 -- b549ed6e441e920b8ad6f02a80b9fd543820ef86 by Tom Manshreck <shreck@google.com>: Update Cord header file comments to Abseil standards PiperOrigin-RevId: 303823232 -- fc633d4f31a2d058f2b6a7029fc7c9820cd71c92 by Evan Brown <ezb@google.com>: Remove top-level const from K/V in map_slot_type::mutable_value and map_slot_type::key. This allows us to move between `map_slot_type::mutable_value`s internally even when the key_type and/or mapped_type specified by the user are const. PiperOrigin-RevId: 303811694 -- 909b3ce7cb3583ee9c374d36ff5f82bba02a1b64 by Derek Mauro <dmauro@google.com>: Add hardening assertions to the preconditions of absl::Cord PiperOrigin-RevId: 303419537 -- 9d32f79eabd54e6cb17bcc28b53e9bcfeb3cf6f4 by Greg Falcon <gfalcon@google.com>: Don't use MSVC-specific bit manipulations when using Clang on Windows. This fixes a compiler warning. Note that we do not have continuous testing for this configuration; this CL is best-effort support. PiperOrigin-RevId: 303322582 -- f6e0a35a2b9081d2a9eef73789b7bc1b5e46e5ad by Gennadiy Rozental <rogeeff@google.com>: Introduce standlone FastTypeId utility to represent compile time unique type id. PiperOrigin-RevId: 303180545 -- 99120e9fbdb5b2d327139ab8f617533d7bc3345b by Abseil Team <absl-team@google.com>: Changed absl's import of std::string_view to using string_view = std::string_view. This should help tools (e.g. include-what-you-use) discover where absl::string_view is defined. PiperOrigin-RevId: 303169095 GitOrigin-RevId: 2dd5008c7b4176859e320c7c337078adb173b662 Change-Id: I1e18ae08e23686ac963e7ea5e5bd499e18d51048
2020-03-31 21:32:35 +02:00
absl::test_instance_tracker
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
hash_function_defaults
HDRS
"internal/hash_function_defaults.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::config
absl::cord
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::hash
absl::strings
PUBLIC
)
absl_cc_test(
NAME
hash_function_defaults_test
SRCS
"internal/hash_function_defaults_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::cord
absl::cord_test_helpers
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::hash_function_defaults
absl::hash
absl::random_random
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::strings
gmock_main
)
absl_cc_library(
NAME
hash_generator_testing
HDRS
"internal/hash_generator_testing.h"
SRCS
"internal/hash_generator_testing.cc"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_policy_testing
absl::memory
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::meta
absl::strings
TESTONLY
)
absl_cc_library(
NAME
hash_policy_testing
HDRS
"internal/hash_policy_testing.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash
absl::strings
TESTONLY
)
absl_cc_test(
NAME
hash_policy_testing_test
SRCS
"internal/hash_policy_testing_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::hash_policy_testing
gmock_main
)
absl_cc_library(
NAME
hash_policy_traits
HDRS
"internal/hash_policy_traits.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::meta
PUBLIC
)
absl_cc_test(
NAME
hash_policy_traits_test
SRCS
"internal/hash_policy_traits_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::hash_policy_traits
gmock_main
)
Export of internal Abseil changes. -- 7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>: Harden the generic stacktrace implementation for use during early program execution PiperOrigin-RevId: 226375950 -- 079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>: Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors PiperOrigin-RevId: 226362948 -- 1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>: Switch from 64 to size_t atomics so they work on embedded platforms that do not have 64 bit atomics. PiperOrigin-RevId: 226210704 -- d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>: Develop initial documentation for API breaking changes process: PiperOrigin-RevId: 226210021 -- 7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 226195522 -- 7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>: Make Abseil LICENSE files newline terminated, with a single trailing blank line. Also remove line-ending whitespace. PiperOrigin-RevId: 226182949 -- 7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226045282 -- c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226038273 -- 8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>: Adds a global sampler which tracks a fraction of live tables for collecting telemetry data. PiperOrigin-RevId: 226032080 -- d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>: Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO. PiperOrigin-RevId: 226024779 -- 6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>: Add December 2018 LTS branch to list of LTS branches. PiperOrigin-RevId: 226011333 -- bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>: Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified. Also standardize the name of the output parameter to be `out`. PiperOrigin-RevId: 225997035 -- 46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>: Remove deprecated CMake function absl_test, absl_library and absl_header_library PiperOrigin-RevId: 225950041 GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13 Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
2018-12-20 21:29:59 +01:00
absl_cc_library(
NAME
hashtablez_sampler
HDRS
"internal/hashtablez_sampler.h"
SRCS
"internal/hashtablez_sampler.cc"
Export of internal Abseil changes. -- 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
2019-01-24 16:23:40 +01:00
"internal/hashtablez_sampler_force_weak_definition.cc"
Export of internal Abseil changes. -- 7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>: Harden the generic stacktrace implementation for use during early program execution PiperOrigin-RevId: 226375950 -- 079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>: Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors PiperOrigin-RevId: 226362948 -- 1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>: Switch from 64 to size_t atomics so they work on embedded platforms that do not have 64 bit atomics. PiperOrigin-RevId: 226210704 -- d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>: Develop initial documentation for API breaking changes process: PiperOrigin-RevId: 226210021 -- 7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 226195522 -- 7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>: Make Abseil LICENSE files newline terminated, with a single trailing blank line. Also remove line-ending whitespace. PiperOrigin-RevId: 226182949 -- 7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226045282 -- c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226038273 -- 8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>: Adds a global sampler which tracks a fraction of live tables for collecting telemetry data. PiperOrigin-RevId: 226032080 -- d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>: Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO. PiperOrigin-RevId: 226024779 -- 6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>: Add December 2018 LTS branch to list of LTS branches. PiperOrigin-RevId: 226011333 -- bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>: Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified. Also standardize the name of the output parameter to be `out`. PiperOrigin-RevId: 225997035 -- 46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>: Remove deprecated CMake function absl_test, absl_library and absl_header_library PiperOrigin-RevId: 225950041 GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13 Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
2018-12-20 21:29:59 +01:00
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
Export of internal Abseil changes. -- 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 by Samuel Benzaquen <sbenza@google.com>: Fix uninitialized member in the `iterator` class by using a union of the two possible states of the iterator. This silences a Wuninitialized warning in gcc>=7. PiperOrigin-RevId: 228175148 -- 98b4e3204c0ec3cfd4cb037e24d443ea4b63fc84 by CJ Johnson <johnsoncj@google.com>: Factors out the implementation of InlinedVector::swap(...) into a private member function PiperOrigin-RevId: 228173383 -- f1432ad3a8b05285c6d55bc4754cfae765485b7f by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 227891984 -- 03fc00c7a4efc6000e6d9125cb2e252bffda76fe by Andy Getzendanner <durandal@google.com>: Add a missing linebreak to a comment and markdownify two unordered lists. PiperOrigin-RevId: 227861389 -- 0d66c9afba4fc9aa52e61d9fb410e165018a7b48 by Abseil Team <absl-team@google.com>: Add an API to register a new source for the cycle clock. PiperOrigin-RevId: 227779218 -- 14d3f9b70c8818b8541e5fb2f6ca4c59d479de31 by Andy Getzendanner <durandal@google.com>: Correct a typo in a stripping marker. PiperOrigin-RevId: 227750014 -- 59df88740f4e315beb57a8772f8bcf7879440c74 by Matt Kulukundis <kfm@google.com>: Switch thread local handling to be more cross platform PiperOrigin-RevId: 227695133 -- 75deed5bfcb5c42534e933f104aa7d94e11e348d by Abseil Team <absl-team@google.com>: Rollback workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227689133 -- 54994bf0afec026e6e0e7a199df0bbb4b7d9a4aa by Derek Mauro <dmauro@google.com>: Add -pthread to linkopts where it actually belongs, on the library that uses it. Fixes https://github.com/abseil/abseil-cpp/issues/240. PiperOrigin-RevId: 227612492 -- 893875f3536b7e0a1bad993aa6b2e083abb3b25a by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227582833 -- 506c9b8e9002ca3389c7040473b68d4cbf94bdcc by Matt Kulukundis <kfm@google.com>: Workaround toolchain bug for incorrect handling of thread_local in inline functions PiperOrigin-RevId: 227561449 -- 29ee90d96dfe3114cf93f9bb92ea0cc9e768a407 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 227054634 GitOrigin-RevId: 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 Change-Id: Ibc90566d92ee6e0ad7e150f513ec7f5d22ec0a94
2019-01-07 18:01:16 +01:00
absl::base
Export of internal Abseil changes -- e54b9c7bbb0c58475676c268e2e19c69f4bce48a by Jorg Brown <jorg@google.com>: Tweak ABSL_PREDICT_TRUE slightly, for better code on some platforms and/or optimization levels. "false || (x)" is more verbose than "!!(x)", but ultimately more efficient. For example, given this code: void InitIfNecessary() { if (ABSL_PREDICT_TRUE(NeedsInit())) { SlowInitIfNecessary(); } } Clang with default optimization level will produce: Before this CL After this CL InitIfNecessary: InitIfNecessary: push rbp push rbp mov rbp, rsp mov rbp, rsp call NeedsInit call NeedsInit xor al, -1 xor al, -1 test al, 1 test al, 1 jne .LBB2_1 jne .LBB3_1 jmp .LBB2_2 jmp .LBB3_2 .LBB2_1: .LBB3_1: call SlowInitIfNecessary call SlowInitIfNecessary .LBB2_2: .LBB3_2: pop rbp pop rbp ret ret PiperOrigin-RevId: 276401386 -- 0a3c4dfd8342bf2b1b11a87f1c662c883f73cab7 by Abseil Team <absl-team@google.com>: Fix comment nit: sem_open => sem_init. The code calls sem_init, not sem_open, to initialize an unnamed semaphore. (sem_open creates or opens a named semaphore.) PiperOrigin-RevId: 276344072 -- b36a664e9459057509a90e83d3482e1d3a4c44c7 by Abseil Team <absl-team@google.com>: Fix typo in flat_hash_map.h: exchaged -> exchanged PiperOrigin-RevId: 276295792 -- 7bbd8d18276eb110c8335743e35fceb662ddf3d6 by Samuel Benzaquen <sbenza@google.com>: Add assertions to verify use of iterators. PiperOrigin-RevId: 276283300 -- 677398a8ffcb1f59182cffe57a4fe7ff147a0404 by Laramie Leavitt <lar@google.com>: Migrate distribution_impl.h/cc to generate_real.h/cc. Combine the methods RandU64To<Float,Double> into a single method: GenerateRealFromBits(). Remove rejection sampling from absl::uniform_real_distribution. PiperOrigin-RevId: 276158675 -- c60c9d11d24b0c546329d998e78e15a84b3153f5 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 276126962 -- 4c840cab6a8d86efa29b397cafaf7520eece68cc by Andy Soffer <asoffer@google.com>: Update CMakeLists.txt to address https://github.com/abseil/abseil-cpp/issues/365. This does not cover every platform, but it does at least address the first-order issue of assuming gcc implies x86. PiperOrigin-RevId: 276116253 -- 98da366e6b5d51afe5d7ac6722126aca23d85ee6 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 276097452 GitOrigin-RevId: e54b9c7bbb0c58475676c268e2e19c69f4bce48a Change-Id: I02d84454bb71ab21ad3d39650acf6cc6e36f58d7
2019-10-24 04:35:39 +02:00
absl::exponential_biased
Export of internal Abseil changes. -- 7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>: Harden the generic stacktrace implementation for use during early program execution PiperOrigin-RevId: 226375950 -- 079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>: Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors PiperOrigin-RevId: 226362948 -- 1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>: Switch from 64 to size_t atomics so they work on embedded platforms that do not have 64 bit atomics. PiperOrigin-RevId: 226210704 -- d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>: Develop initial documentation for API breaking changes process: PiperOrigin-RevId: 226210021 -- 7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 226195522 -- 7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>: Make Abseil LICENSE files newline terminated, with a single trailing blank line. Also remove line-ending whitespace. PiperOrigin-RevId: 226182949 -- 7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226045282 -- c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226038273 -- 8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>: Adds a global sampler which tracks a fraction of live tables for collecting telemetry data. PiperOrigin-RevId: 226032080 -- d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>: Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO. PiperOrigin-RevId: 226024779 -- 6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>: Add December 2018 LTS branch to list of LTS branches. PiperOrigin-RevId: 226011333 -- bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>: Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified. Also standardize the name of the output parameter to be `out`. PiperOrigin-RevId: 225997035 -- 46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>: Remove deprecated CMake function absl_test, absl_library and absl_header_library PiperOrigin-RevId: 225950041 GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13 Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
2018-12-20 21:29:59 +01:00
absl::have_sse
absl::synchronization
)
absl_cc_test(
NAME
hashtablez_sampler_test
SRCS
"internal/hashtablez_sampler_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>: Harden the generic stacktrace implementation for use during early program execution PiperOrigin-RevId: 226375950 -- 079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>: Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors PiperOrigin-RevId: 226362948 -- 1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>: Switch from 64 to size_t atomics so they work on embedded platforms that do not have 64 bit atomics. PiperOrigin-RevId: 226210704 -- d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>: Develop initial documentation for API breaking changes process: PiperOrigin-RevId: 226210021 -- 7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 226195522 -- 7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>: Make Abseil LICENSE files newline terminated, with a single trailing blank line. Also remove line-ending whitespace. PiperOrigin-RevId: 226182949 -- 7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226045282 -- c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226038273 -- 8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>: Adds a global sampler which tracks a fraction of live tables for collecting telemetry data. PiperOrigin-RevId: 226032080 -- d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>: Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO. PiperOrigin-RevId: 226024779 -- 6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>: Add December 2018 LTS branch to list of LTS branches. PiperOrigin-RevId: 226011333 -- bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>: Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified. Also standardize the name of the output parameter to be `out`. PiperOrigin-RevId: 225997035 -- 46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>: Remove deprecated CMake function absl_test, absl_library and absl_header_library PiperOrigin-RevId: 225950041 GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13 Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
2018-12-20 21:29:59 +01:00
DEPS
absl::hashtablez_sampler
absl::have_sse
gmock_main
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
hashtable_debug
HDRS
"internal/hashtable_debug.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::hashtable_debug_hooks
)
absl_cc_library(
NAME
hashtable_debug_hooks
HDRS
"internal/hashtable_debug_hooks.h"
COPTS
${ABSL_DEFAULT_COPTS}
Export of internal Abseil changes -- c99f979ad34f155fbeeea69b88bdc7458d89a21c by Derek Mauro <dmauro@google.com>: Remove a floating point division by zero test. This isn't testing behavior related to the library, and MSVC warns about it in opt mode. PiperOrigin-RevId: 285220804 -- 68b015491f0dbf1ab547994673281abd1f34cd4b by Gennadiy Rozental <rogeeff@google.com>: This CL introduces following changes to the class FlagImpl: * We eliminate the CommandLineFlagLocks struct. Instead callback guard and callback function are combined into a single CallbackData struct, while primary data lock is stored separately. * CallbackData member of class FlagImpl is initially set to be nullptr and is only allocated and initialized when a flag's callback is being set. For most flags we do not pay for the extra space and extra absl::Mutex now. * Primary data guard is stored in data_guard_ data member. This is a properly aligned character buffer of necessary size. During initialization of the flag we construct absl::Mutex in this space using placement new call. * We now avoid extra value copy after successful attempt to parse value out of string. Instead we swap flag's current value with tentative value we just produced. PiperOrigin-RevId: 285132636 -- ed45d118fb818969eb13094cf7827c885dfc562c by Tom Manshreck <shreck@google.com>: Change null-term* (and nul-term*) to NUL-term* in comments PiperOrigin-RevId: 285036610 -- 729619017944db895ce8d6d29c1995aa2e5628a5 by Derek Mauro <dmauro@google.com>: Use the Posix implementation of thread identity on MinGW. Some versions of MinGW suffer from thread_local bugs. PiperOrigin-RevId: 285022920 -- 39a25493503c76885bc3254c28f66a251c5b5bb0 by Greg Falcon <gfalcon@google.com>: Implementation detail change. Add further ABSL_NAMESPACE_BEGIN and _END annotation macros to files in Abseil. PiperOrigin-RevId: 285012012 GitOrigin-RevId: c99f979ad34f155fbeeea69b88bdc7458d89a21c Change-Id: I4c85d3704e45d11a9ac50d562f39640a6adbedc1
2019-12-12 19:36:03 +01:00
DEPS
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
PUBLIC
)
absl_cc_library(
NAME
have_sse
HDRS
"internal/have_sse.h"
COPTS
${ABSL_DEFAULT_COPTS}
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
node_hash_policy
HDRS
"internal/node_hash_policy.h"
COPTS
${ABSL_DEFAULT_COPTS}
Export of internal Abseil changes -- c99f979ad34f155fbeeea69b88bdc7458d89a21c by Derek Mauro <dmauro@google.com>: Remove a floating point division by zero test. This isn't testing behavior related to the library, and MSVC warns about it in opt mode. PiperOrigin-RevId: 285220804 -- 68b015491f0dbf1ab547994673281abd1f34cd4b by Gennadiy Rozental <rogeeff@google.com>: This CL introduces following changes to the class FlagImpl: * We eliminate the CommandLineFlagLocks struct. Instead callback guard and callback function are combined into a single CallbackData struct, while primary data lock is stored separately. * CallbackData member of class FlagImpl is initially set to be nullptr and is only allocated and initialized when a flag's callback is being set. For most flags we do not pay for the extra space and extra absl::Mutex now. * Primary data guard is stored in data_guard_ data member. This is a properly aligned character buffer of necessary size. During initialization of the flag we construct absl::Mutex in this space using placement new call. * We now avoid extra value copy after successful attempt to parse value out of string. Instead we swap flag's current value with tentative value we just produced. PiperOrigin-RevId: 285132636 -- ed45d118fb818969eb13094cf7827c885dfc562c by Tom Manshreck <shreck@google.com>: Change null-term* (and nul-term*) to NUL-term* in comments PiperOrigin-RevId: 285036610 -- 729619017944db895ce8d6d29c1995aa2e5628a5 by Derek Mauro <dmauro@google.com>: Use the Posix implementation of thread identity on MinGW. Some versions of MinGW suffer from thread_local bugs. PiperOrigin-RevId: 285022920 -- 39a25493503c76885bc3254c28f66a251c5b5bb0 by Greg Falcon <gfalcon@google.com>: Implementation detail change. Add further ABSL_NAMESPACE_BEGIN and _END annotation macros to files in Abseil. PiperOrigin-RevId: 285012012 GitOrigin-RevId: c99f979ad34f155fbeeea69b88bdc7458d89a21c Change-Id: I4c85d3704e45d11a9ac50d562f39640a6adbedc1
2019-12-12 19:36:03 +01:00
DEPS
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
PUBLIC
)
Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>: Work around nvcc 9.0 compiler bug for open-source Tensorflow build. With the current implementation, when I (unintentionally and transitively) include absl/types/optional.h in a CUDA compilation unit, I get the following nvcc error message: INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc: external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()': external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope data_.~T(); I've also seen similar compilation failures online, for flat_hash_map: https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/ The bug is always around unnamed template parameters. Therefore, the workaround is to make them named. PiperOrigin-RevId: 219208288 -- dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>: Adds internal macros for catching and throwing unknown exception types PiperOrigin-RevId: 219207362 -- 0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>: Fix typo in mutex.h comments. PiperOrigin-RevId: 219199397 -- 0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>: Internal change. PiperOrigin-RevId: 219185475 -- 66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>: Fix alignment conformance for VS 2017 >= 15.8 (fix #193) PiperOrigin-RevId: 219129894 -- a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>: Reapply PR #173 PiperOrigin-RevId: 219129361 -- cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>: Update .gitignore PiperOrigin-RevId: 219127495 -- 0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>: Small refactor and reformat of error messages from the exception safety test framework. PiperOrigin-RevId: 218927773 -- 4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>: Updates the inlined vector swap tests to check for number of moves that took place if available PiperOrigin-RevId: 218900777 -- dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>: Add parens around calls to std::numeric_limits<>::min and std::numeric_limits<>::max to prevent compilation errors on Windows platforms where min and max are defined as macros. PiperOrigin-RevId: 218888700 GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-29 23:53:34 +01:00
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_test(
NAME
node_hash_policy_test
SRCS
"internal/node_hash_policy_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::hash_policy_traits
absl::node_hash_policy
gmock_main
)
absl_cc_library(
NAME
raw_hash_map
HDRS
"internal/raw_hash_map.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::container_memory
absl::raw_hash_set
absl::throw_delegate
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
PUBLIC
)
absl_cc_library(
NAME
container_common
HDRS
Export of internal Abseil changes -- bffb14058bb46137d42c7a113a36b6b582997cda by Xiaoyi Zhang <zhangxy@google.com>: Add ABSL_MUST_USE_RESULT to Status. PiperOrigin-RevId: 296272498 -- b426fdd3b3f687d7a8aeb644925923bbab503778 by CJ Johnson <johnsoncj@google.com>: Optimizes absl::InlinedVector::clear() by not deallocating the data, if allocated. This allows allocations to be reused. This matches the behavior of std::vector::clear() PiperOrigin-RevId: 296197235 -- 8cb9fbfe20e749816065c1a042e84f72dac9bfc0 by CJ Johnson <johnsoncj@google.com>: Optimizes absl::InlinedVector::clear() by not deallocating the data, if allocated. This allows allocations to be reused. This matches the behavior of std::vector::clear() PiperOrigin-RevId: 296058092 -- 2558d3369a482879919155b6f46317ccafe0ca13 by Matthew Brown <matthewbr@google.com>: Internal cleanup PiperOrigin-RevId: 296025806 -- cf7ee57228534021c15ed7421df92acf6c27c9c7 by Gennadiy Rozental <rogeeff@google.com>: Make FlagOps enum class. We also add comments to all the functions used to invoke flag ops. PiperOrigin-RevId: 295975809 -- 74bbdbd12fbc54e9c4ebcb3005e727becf0e509d by Xiaoyi Zhang <zhangxy@google.com>: Release `absl::Status`. PiperOrigin-RevId: 295777662 -- 3dbc622b4e2227863525da2f7de7ecbeb3ede21f by Xiaoyi Zhang <zhangxy@google.com>: Internal change. PiperOrigin-RevId: 295733658 -- 48d74aa0ab01d611da6012b377f038d8b26c712e by Abseil Team <absl-team@google.com>: Fix typo in container/CMakeLists.txt for container_common PiperOrigin-RevId: 295491438 GitOrigin-RevId: bffb14058bb46137d42c7a113a36b6b582997cda Change-Id: Ia966857b07fa7412cd6489ac37b5fa26640e4141
2020-02-20 21:34:37 +01:00
"internal/common.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::type_traits
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
raw_hash_set
HDRS
"internal/raw_hash_set.h"
SRCS
"internal/raw_hash_set.cc"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::bits
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::compressed_tuple
absl::config
absl::container_common
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::container_memory
absl::core_headers
absl::endian
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::hash_policy_traits
absl::hashtable_debug_hooks
absl::have_sse
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::layout
absl::memory
absl::meta
absl::optional
absl::utility
Export of internal Abseil changes. -- 7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>: Harden the generic stacktrace implementation for use during early program execution PiperOrigin-RevId: 226375950 -- 079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>: Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors PiperOrigin-RevId: 226362948 -- 1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>: Switch from 64 to size_t atomics so they work on embedded platforms that do not have 64 bit atomics. PiperOrigin-RevId: 226210704 -- d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>: Develop initial documentation for API breaking changes process: PiperOrigin-RevId: 226210021 -- 7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 226195522 -- 7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>: Make Abseil LICENSE files newline terminated, with a single trailing blank line. Also remove line-ending whitespace. PiperOrigin-RevId: 226182949 -- 7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226045282 -- c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 226038273 -- 8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>: Adds a global sampler which tracks a fraction of live tables for collecting telemetry data. PiperOrigin-RevId: 226032080 -- d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>: Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO. PiperOrigin-RevId: 226024779 -- 6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>: Add December 2018 LTS branch to list of LTS branches. PiperOrigin-RevId: 226011333 -- bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>: Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified. Also standardize the name of the output parameter to be `out`. PiperOrigin-RevId: 225997035 -- 46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>: Remove deprecated CMake function absl_test, absl_library and absl_header_library PiperOrigin-RevId: 225950041 GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13 Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
2018-12-20 21:29:59 +01:00
absl::hashtablez_sampler
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
PUBLIC
)
absl_cc_test(
NAME
Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>: Work around nvcc 9.0 compiler bug for open-source Tensorflow build. With the current implementation, when I (unintentionally and transitively) include absl/types/optional.h in a CUDA compilation unit, I get the following nvcc error message: INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc: external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()': external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope data_.~T(); I've also seen similar compilation failures online, for flat_hash_map: https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/ The bug is always around unnamed template parameters. Therefore, the workaround is to make them named. PiperOrigin-RevId: 219208288 -- dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>: Adds internal macros for catching and throwing unknown exception types PiperOrigin-RevId: 219207362 -- 0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>: Fix typo in mutex.h comments. PiperOrigin-RevId: 219199397 -- 0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>: Internal change. PiperOrigin-RevId: 219185475 -- 66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>: Fix alignment conformance for VS 2017 >= 15.8 (fix #193) PiperOrigin-RevId: 219129894 -- a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>: Reapply PR #173 PiperOrigin-RevId: 219129361 -- cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>: Update .gitignore PiperOrigin-RevId: 219127495 -- 0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>: Small refactor and reformat of error messages from the exception safety test framework. PiperOrigin-RevId: 218927773 -- 4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>: Updates the inlined vector swap tests to check for number of moves that took place if available PiperOrigin-RevId: 218900777 -- dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>: Add parens around calls to std::numeric_limits<>::min and std::numeric_limits<>::max to prevent compilation errors on Windows platforms where min and max are defined as macros. PiperOrigin-RevId: 218888700 GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-29 23:53:34 +01:00
raw_hash_set_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
SRCS
Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>: Work around nvcc 9.0 compiler bug for open-source Tensorflow build. With the current implementation, when I (unintentionally and transitively) include absl/types/optional.h in a CUDA compilation unit, I get the following nvcc error message: INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc: external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()': external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope data_.~T(); I've also seen similar compilation failures online, for flat_hash_map: https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/ The bug is always around unnamed template parameters. Therefore, the workaround is to make them named. PiperOrigin-RevId: 219208288 -- dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>: Adds internal macros for catching and throwing unknown exception types PiperOrigin-RevId: 219207362 -- 0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>: Fix typo in mutex.h comments. PiperOrigin-RevId: 219199397 -- 0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>: Internal change. PiperOrigin-RevId: 219185475 -- 66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>: Fix alignment conformance for VS 2017 >= 15.8 (fix #193) PiperOrigin-RevId: 219129894 -- a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>: Reapply PR #173 PiperOrigin-RevId: 219129361 -- cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>: Update .gitignore PiperOrigin-RevId: 219127495 -- 0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>: Small refactor and reformat of error messages from the exception safety test framework. PiperOrigin-RevId: 218927773 -- 4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>: Updates the inlined vector swap tests to check for number of moves that took place if available PiperOrigin-RevId: 218900777 -- dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>: Add parens around calls to std::numeric_limits<>::min and std::numeric_limits<>::max to prevent compilation errors on Windows platforms where min and max are defined as macros. PiperOrigin-RevId: 218888700 GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-29 23:53:34 +01:00
"internal/raw_hash_set_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::container_memory
absl::hash_function_defaults
absl::hash_policy_testing
absl::hashtable_debug
absl::raw_hash_set
Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>: Work around nvcc 9.0 compiler bug for open-source Tensorflow build. With the current implementation, when I (unintentionally and transitively) include absl/types/optional.h in a CUDA compilation unit, I get the following nvcc error message: INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc: external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()': external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope data_.~T(); I've also seen similar compilation failures online, for flat_hash_map: https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/ The bug is always around unnamed template parameters. Therefore, the workaround is to make them named. PiperOrigin-RevId: 219208288 -- dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>: Adds internal macros for catching and throwing unknown exception types PiperOrigin-RevId: 219207362 -- 0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>: Fix typo in mutex.h comments. PiperOrigin-RevId: 219199397 -- 0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>: Internal change. PiperOrigin-RevId: 219185475 -- 66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>: Fix alignment conformance for VS 2017 >= 15.8 (fix #193) PiperOrigin-RevId: 219129894 -- a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>: Reapply PR #173 PiperOrigin-RevId: 219129361 -- cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>: Update .gitignore PiperOrigin-RevId: 219127495 -- 0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>: Small refactor and reformat of error messages from the exception safety test framework. PiperOrigin-RevId: 218927773 -- 4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>: Updates the inlined vector swap tests to check for number of moves that took place if available PiperOrigin-RevId: 218900777 -- dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>: Add parens around calls to std::numeric_limits<>::min and std::numeric_limits<>::max to prevent compilation errors on Windows platforms where min and max are defined as macros. PiperOrigin-RevId: 218888700 GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-29 23:53:34 +01:00
absl::base
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::core_headers
absl::raw_logging_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::strings
gmock_main
)
absl_cc_test(
NAME
raw_hash_set_allocator_test
SRCS
"internal/raw_hash_set_allocator_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::raw_hash_set
absl::tracked
absl::core_headers
gmock_main
)
absl_cc_library(
NAME
layout
HDRS
"internal/layout.h"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
absl::core_headers
absl::meta
absl::strings
absl::span
absl::utility
PUBLIC
)
absl_cc_test(
NAME
layout_test
SRCS
"internal/layout_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::layout
absl::core_headers
absl::raw_logging_internal
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::span
gmock_main
)
absl_cc_library(
NAME
tracked
HDRS
"internal/tracked.h"
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes -- c99f979ad34f155fbeeea69b88bdc7458d89a21c by Derek Mauro <dmauro@google.com>: Remove a floating point division by zero test. This isn't testing behavior related to the library, and MSVC warns about it in opt mode. PiperOrigin-RevId: 285220804 -- 68b015491f0dbf1ab547994673281abd1f34cd4b by Gennadiy Rozental <rogeeff@google.com>: This CL introduces following changes to the class FlagImpl: * We eliminate the CommandLineFlagLocks struct. Instead callback guard and callback function are combined into a single CallbackData struct, while primary data lock is stored separately. * CallbackData member of class FlagImpl is initially set to be nullptr and is only allocated and initialized when a flag's callback is being set. For most flags we do not pay for the extra space and extra absl::Mutex now. * Primary data guard is stored in data_guard_ data member. This is a properly aligned character buffer of necessary size. During initialization of the flag we construct absl::Mutex in this space using placement new call. * We now avoid extra value copy after successful attempt to parse value out of string. Instead we swap flag's current value with tentative value we just produced. PiperOrigin-RevId: 285132636 -- ed45d118fb818969eb13094cf7827c885dfc562c by Tom Manshreck <shreck@google.com>: Change null-term* (and nul-term*) to NUL-term* in comments PiperOrigin-RevId: 285036610 -- 729619017944db895ce8d6d29c1995aa2e5628a5 by Derek Mauro <dmauro@google.com>: Use the Posix implementation of thread identity on MinGW. Some versions of MinGW suffer from thread_local bugs. PiperOrigin-RevId: 285022920 -- 39a25493503c76885bc3254c28f66a251c5b5bb0 by Greg Falcon <gfalcon@google.com>: Implementation detail change. Add further ABSL_NAMESPACE_BEGIN and _END annotation macros to files in Abseil. PiperOrigin-RevId: 285012012 GitOrigin-RevId: c99f979ad34f155fbeeea69b88bdc7458d89a21c Change-Id: I4c85d3704e45d11a9ac50d562f39640a6adbedc1
2019-12-12 19:36:03 +01:00
DEPS
absl::config
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
TESTONLY
)
absl_cc_library(
NAME
unordered_map_constructor_test
HDRS
"internal/unordered_map_constructor_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_library(
NAME
unordered_map_lookup_test
HDRS
"internal/unordered_map_lookup_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_library(
NAME
unordered_map_members_test
HDRS
"internal/unordered_map_members_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::type_traits
gmock
TESTONLY
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
unordered_map_modifiers_test
HDRS
"internal/unordered_map_modifiers_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_library(
NAME
unordered_set_constructor_test
HDRS
"internal/unordered_set_constructor_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_library(
NAME
unordered_set_lookup_test
HDRS
"internal/unordered_set_lookup_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_library(
NAME
unordered_set_members_test
HDRS
"internal/unordered_set_members_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::type_traits
gmock
TESTONLY
)
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl_cc_library(
NAME
unordered_set_modifiers_test
HDRS
"internal/unordered_set_modifiers_test.h"
COPTS
${ABSL_TEST_COPTS}
DEPS
absl::hash_generator_testing
absl::hash_policy_testing
gmock
TESTONLY
)
absl_cc_test(
NAME
unordered_set_test
SRCS
"internal/unordered_set_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::unordered_set_constructor_test
absl::unordered_set_lookup_test
absl::unordered_set_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_set_modifiers_test
gmock_main
)
absl_cc_test(
NAME
unordered_map_test
SRCS
"internal/unordered_map_test.cc"
Export of internal Abseil changes. -- 5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 244898913 -- 3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>: Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior). PiperOrigin-RevId: 244859015 -- 7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>: Fix misspellings in comments in raw_hash_set.h. PiperOrigin-RevId: 244754700 -- 5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 244744239 -- 592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>: Limit the raw_hash_set prefetch test to x86-64. PiperOrigin-RevId: 244737534 -- 99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>: Workaround warning 4091 in an MSVC header. PiperOrigin-RevId: 244701744 -- 0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>: Fix comment typo. PiperOrigin-RevId: 244659371 -- c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings and support -Wundef. PiperOrigin-RevId: 244244968 -- 06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>: Fix a typo in inlined_vector.h. PiperOrigin-RevId: 244230809 -- 94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>: Fix sysinfo_test for emscripten. PiperOrigin-RevId: 244198804 -- ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>: Import of CCTZ from GitHub. Fixes #291. PiperOrigin-RevId: 244184598 -- b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>: Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available. The main observable differences here are: 1) The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents. 2) The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types. 3) The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates. 4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild. 5) Default construction (rather than value-initialization) leads to a default-constructed pointer. PiperOrigin-RevId: 244180003 -- b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>: Fix MSVC debug assertion. isprint is undefined for values not representable as unsigned char or EOF. PiperOrigin-RevId: 244083005 -- 41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>: Update config settings for Apple platforms. PiperOrigin-RevId: 244040587 -- c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 244024427 -- c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>: Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt Don't error on deprecated declarations in tests. It is completely reasonable to test that code marked deprecated still works. PiperOrigin-RevId: 244003941 -- e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 243990623 -- 90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>: Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result. PiperOrigin-RevId: 243894308 -- 317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>: Enable raw logging in Emscripten builds. PiperOrigin-RevId: 243893705 GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41 Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
2019-04-23 21:04:13 +02:00
COPTS
${ABSL_TEST_COPTS}
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
DEPS
absl::unordered_map_constructor_test
absl::unordered_map_lookup_test
absl::unordered_map_members_test
Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>: Fix miscellaneous CMake change interleaving issues for the daily release: * add back the absl::container target * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt * Add trailing newline to the end of AbseilConfigureCopts.cmake PiperOrigin-RevId: 223057096 -- baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>: Internal Cleanup. PiperOrigin-RevId: 223051579 -- 6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>: Internal Change. PiperOrigin-RevId: 223046855 -- 5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>: Workaround for gcc bug https://gcc.gnu.org/PR88115 PiperOrigin-RevId: 223041901 -- 36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>: Clarify visit() constraints PiperOrigin-RevId: 223032194 -- afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>: Fix comment typos. PiperOrigin-RevId: 223024090 -- e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>: Make absl::spinlock_test_common TESTONLY This should fix https://github.com/abseil/abseil-cpp/issues/221 PiperOrigin-RevId: 222885323 -- 5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 222877017 -- 96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>: Align CMake and Bazel compile options. This is the first step towards a single source of truth for Abseil compile options. Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier. PiperOrigin-RevId: 222858408 -- 7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>: Revert "absl: cap SpinLock backoff to 4ms" PiperOrigin-RevId: 222656230 -- 0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>: Update absl/container/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 222535766 -- 92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>: Disable header parsing for broken targets PiperOrigin-RevId: 222257218 -- 39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@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: 222196086 -- 17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>: Add benchmarks for hashing civil_times. PiperOrigin-RevId: 222152108 GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
2018-11-27 23:21:25 +01:00
absl::unordered_map_modifiers_test
gmock_main
Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>: Work around nvcc 9.0 compiler bug for open-source Tensorflow build. With the current implementation, when I (unintentionally and transitively) include absl/types/optional.h in a CUDA compilation unit, I get the following nvcc error message: INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc: external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()': external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope data_.~T(); I've also seen similar compilation failures online, for flat_hash_map: https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/ The bug is always around unnamed template parameters. Therefore, the workaround is to make them named. PiperOrigin-RevId: 219208288 -- dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>: Adds internal macros for catching and throwing unknown exception types PiperOrigin-RevId: 219207362 -- 0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>: Fix typo in mutex.h comments. PiperOrigin-RevId: 219199397 -- 0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>: Internal change. PiperOrigin-RevId: 219185475 -- 66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>: Fix alignment conformance for VS 2017 >= 15.8 (fix #193) PiperOrigin-RevId: 219129894 -- a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>: Reapply PR #173 PiperOrigin-RevId: 219129361 -- cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>: Update .gitignore PiperOrigin-RevId: 219127495 -- 0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>: Small refactor and reformat of error messages from the exception safety test framework. PiperOrigin-RevId: 218927773 -- 4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>: Updates the inlined vector swap tests to check for number of moves that took place if available PiperOrigin-RevId: 218900777 -- dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>: Add parens around calls to std::numeric_limits<>::min and std::numeric_limits<>::max to prevent compilation errors on Windows platforms where min and max are defined as macros. PiperOrigin-RevId: 218888700 GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-29 23:53:34 +01:00
)