diff options
author | Abseil Team <absl-team@google.com> | 2019-02-28T17·21-0800 |
---|---|---|
committer | Derek Mauro <dmauro@google.com> | 2019-03-04T14·41-0500 |
commit | 419f3184f8ebcdb23105295eadd2a569f3351eb9 (patch) | |
tree | 6ff54227e51347066d376c1e2a5da44801077ae0 | |
parent | b312c3cb53a0aad75a85ac2bf57c4a614fbd48d4 (diff) |
Export of internal Abseil changes.
-- 92e1bd6dc9e64163659028b640427d6d8573e41c by Abseil Team <absl-team@google.com>: Don't enable ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE with MSVC when used with nvcc. With nvcc on Windows __has_trivial_assign(int) is false; that leads to a failure of the check in is_trivially_copy_assignable. A better solution would probably be to use the std-provided check in this case, but that seems like a more intrusive change. PiperOrigin-RevId: 236135209 -- 26cee4a7e647076b4e2f88375b4848d1469e55ed by Derek Mauro <dmauro@google.com>: Remove hashtablez_force_sampling from the open-source release. This should not have been released. It is internal-only and not portable. Fixes https://github.com/abseil/abseil-cpp/issues/268 PiperOrigin-RevId: 235978666 -- 935a885ec0e108963014f1bb79f00102da8f3871 by CJ Johnson <johnsoncj@google.com>: Internal change PiperOrigin-RevId: 235976027 -- 1c148c89de6064031f1ad9f2eeac0331bd77b7b0 by Tom Manshreck <shreck@google.com>: Add design note for absl::from_chars to abseil.io Fixes #165 PiperOrigin-RevId: 235975923 GitOrigin-RevId: 92e1bd6dc9e64163659028b640427d6d8573e41c Change-Id: I220b0bbb46742070ea8c2a94b06007ecae76fe0f
-rw-r--r-- | absl/base/config.h | 4 | ||||
-rw-r--r-- | absl/container/BUILD.bazel | 23 | ||||
-rw-r--r-- | absl/container/CMakeLists.txt | 24 | ||||
-rw-r--r-- | absl/container/internal/hashtablez_force_sampling.cc | 24 | ||||
-rw-r--r-- | absl/container/internal/hashtablez_force_sampling_test.cc | 60 | ||||
-rw-r--r-- | absl/strings/charconv.cc | 7 |
6 files changed, 6 insertions, 136 deletions
diff --git a/absl/base/config.h b/absl/base/config.h index db4c45390222..eb0d79dfe39f 100644 --- a/absl/base/config.h +++ b/absl/base/config.h @@ -118,7 +118,7 @@ // Checks whether `std::is_trivially_copy_assignable<T>` is supported. // Notes: Clang with libc++ supports these features, as does gcc >= 5.1 with -// either libc++ or libstdc++, and Visual Studio. +// either libc++ or libstdc++, and Visual Studio (but not NVCC). #if defined(ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE) #error ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE cannot be directly set #elif defined(ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE) @@ -127,7 +127,7 @@ (!defined(__clang__) && defined(__GNUC__) && \ (__GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ >= 1)) && \ (defined(_LIBCPP_VERSION) || defined(__GLIBCXX__))) || \ - defined(_MSC_VER) + (defined(_MSC_VER) && !defined(__NVCC__)) #define ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE 1 #define ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE 1 #endif diff --git a/absl/container/BUILD.bazel b/absl/container/BUILD.bazel index f3b3a2c0b42f..91013e04b0d0 100644 --- a/absl/container/BUILD.bazel +++ b/absl/container/BUILD.bazel @@ -447,15 +447,6 @@ cc_library( ) cc_library( - name = "hashtablez_force_sampling", - srcs = ["internal/hashtablez_force_sampling.cc"], - copts = ABSL_DEFAULT_COPTS, - deps = [ - ":hashtablez_sampler", - ], -) - -cc_library( name = "hashtablez_sampler", srcs = [ "internal/hashtablez_sampler.cc", @@ -488,20 +479,6 @@ cc_test( ], ) -cc_test( - name = "hashtablez_force_sampling_test", - srcs = ["internal/hashtablez_force_sampling_test.cc"], - tags = [ - "no_test_darwin_x86_64", - "no_test_msvc_x64", - ], - deps = [ - ":hashtablez_force_sampling", - ":hashtablez_sampler", - "@com_google_googletest//:gtest_main", - ], -) - cc_library( name = "node_hash_policy", hdrs = ["internal/node_hash_policy.h"], diff --git a/absl/container/CMakeLists.txt b/absl/container/CMakeLists.txt index 822388bd5518..c6053d745799 100644 --- a/absl/container/CMakeLists.txt +++ b/absl/container/CMakeLists.txt @@ -466,30 +466,6 @@ absl_cc_test( absl_cc_library( NAME - hashtablez_force_sampling - SRCS - "internal/hashtablez_force_sampling.cc" - COPTS - ${ABSL_DEFAULT_COPTS} - DEPS - absl::base - absl::have_sse - absl::synchronization -) - -absl_cc_test( - NAME - hashtablez_force_sampling_test - SRCS - "internal/hashtablez_force_sampling_test.cc" - DEPS - absl::hashtablez_force_sampling - absl::hashtablez_sampler - gmock_main -) - -absl_cc_library( - NAME hashtable_debug HDRS "internal/hashtable_debug.h" diff --git a/absl/container/internal/hashtablez_force_sampling.cc b/absl/container/internal/hashtablez_force_sampling.cc deleted file mode 100644 index 868976ec5240..000000000000 --- a/absl/container/internal/hashtablez_force_sampling.cc +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2018 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 -// -// http://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. - -#include "absl/container/internal/hashtablez_sampler.h" - -namespace absl { -namespace container_internal { - -// See hashtablez_sampler.h for details. -extern "C" const bool kAbslContainerInternalSampleEverything = true; - -} // namespace container_internal -} // namespace absl diff --git a/absl/container/internal/hashtablez_force_sampling_test.cc b/absl/container/internal/hashtablez_force_sampling_test.cc deleted file mode 100644 index 9ff1046a9ad3..000000000000 --- a/absl/container/internal/hashtablez_force_sampling_test.cc +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2018 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 -// -// http://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. - -#include <cstddef> - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "absl/container/internal/hashtablez_sampler.h" - -namespace absl { -namespace container_internal { - -class HashtablezInfoHandlePeer { - public: - static bool IsSampled(const HashtablezInfoHandle& h) { - return h.info_ != nullptr; - } -}; - -namespace { - -bool samples[3]{true, true, true}; - -// We do this test in a global object to test that this works even before main. -struct Global { - Global() { - // By default it is sampled. - samples[0] = HashtablezInfoHandlePeer::IsSampled(Sample()); - - // Even with a large parameter, it is sampled. - SetHashtablezSampleParameter(100); - samples[1] = HashtablezInfoHandlePeer::IsSampled(Sample()); - - // Even if we turn it off, it is still sampled. - SetHashtablezEnabled(false); - samples[2] = HashtablezInfoHandlePeer::IsSampled(Sample()); - } -} global; - -TEST(kAbslContainerInternalSampleEverything, Works) { - EXPECT_THAT(samples, testing::Each(true)); - EXPECT_TRUE(kAbslContainerInternalSampleEverything); - // One more after main() - EXPECT_TRUE(HashtablezInfoHandlePeer::IsSampled(Sample())); -} - -} // namespace -} // namespace container_internal -} // namespace absl diff --git a/absl/strings/charconv.cc b/absl/strings/charconv.cc index c7b8c98b1b44..d0aa19134aa2 100644 --- a/absl/strings/charconv.cc +++ b/absl/strings/charconv.cc @@ -551,9 +551,10 @@ CalculatedFloat CalculateFromParsedDecimal( int binary_exponent = Power10Exponent(parsed_decimal.exponent); // Discard bits that are inaccurate due to truncation error. The magic - // `mantissa_width` constants below are justified in charconv_algorithm.md. - // They represent the number of bits in `wide_binary_mantissa` that are - // guaranteed to be unaffected by error propagation. + // `mantissa_width` constants below are justified in + // https://abseil.io/about/design/charconv. They represent the number of bits + // in `wide_binary_mantissa` that are guaranteed to be unaffected by error + // propagation. bool mantissa_exact; int mantissa_width; if (parsed_decimal.subrange_begin) { |