aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2019-02-28 09:21:10 -0800
committerGravatar Derek Mauro <dmauro@google.com>2019-03-04 09:41:52 -0500
commit419f3184f8ebcdb23105295eadd2a569f3351eb9 (patch)
tree6ff54227e51347066d376c1e2a5da44801077ae0
parentb312c3cb53a0aad75a85ac2bf57c4a614fbd48d4 (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.h4
-rw-r--r--absl/container/BUILD.bazel23
-rw-r--r--absl/container/CMakeLists.txt24
-rw-r--r--absl/container/internal/hashtablez_force_sampling.cc24
-rw-r--r--absl/container/internal/hashtablez_force_sampling_test.cc60
-rw-r--r--absl/strings/charconv.cc7
6 files changed, 6 insertions, 136 deletions
diff --git a/absl/base/config.h b/absl/base/config.h
index db4c453..eb0d79d 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 f3b3a2c..91013e0 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 822388b..c6053d7 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 868976e..0000000
--- 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 9ff1046..0000000
--- 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 c7b8c98..d0aa191 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) {