--
9c9eb300c95024ea4242bbb4835595f555cb1eed by Derek Mauro <dmauro@google.com>:
Sync string_view comments from the internal copy
PiperOrigin-RevId: 328582796
--
c0bc4e77a46889430a1a40d836a5ff426a4a5bc9 by Xiaoyi Zhang <zhangxy@google.com>:
Make `absl::allocator_traits` an alias to `std::allocator_traits` for C++17 or
above. `std::allocator_traits` should have all its members since C++17 so we
don't need a backport.
PiperOrigin-RevId: 328258154
--
5599a3c0f2d865128057b5e267a397011cd032d0 by Derek Mauro <dmauro@google.com>:
Fix an #endif comment
Reported at https://groups.google.com/g/abseil-io/c/GRUdB0bBrG8/m/852HrgchCQAJ
PiperOrigin-RevId: 328247093
--
abd7e98088267f436e6c10779e574153ece015be by Abseil Team <absl-team@google.com>:
Don't call win32 APIs for UWP builds
symbolize.cc is including symbolize_win32.inc for all Windows builds,
including UWP builds. However, UWP doesn't have access to win32 APIs, so
it should instead include symbolize_unimplemented.inc.
This allows the necessary functions to still exist and be called, but
the win32 calls are not made.
This is part of the effort to enable Abseil in ANGLE:
https://anglebug.com/4873
PiperOrigin-RevId: 328226766
--
f622d3dfb804a6f427c1fd86ee69f47785b49483 by Greg Falcon <gfalcon@google.com>:
Remove incorrect claims of HASH_NAMESPACE support in Abseil hash.
The documentation presently claims that absl::Hash will look for legacy hashers (e.g, in the __gnu_cxx namespace) as controlled by the HASH_NAMESPACE preprocessor define, but this has never been true.
(Vestigial support for this appears in the form `ABSL_INTERNAL_LEGACY_HASH_NAMESPACE`, but this is not a supported extension point, as indicated by the use of `INTERNAL` in the name.)
PiperOrigin-RevId: 328154123
--
32b40a25efe1f7f7da98ce8faf3482c825464ed4 by Abseil Team <absl-team@google.com>:
Switch ABSL_INTERNAL_IGNORE_READS_ATTRIBUTE_ENABLED checks to defined().
PiperOrigin-RevId: 328151556
GitOrigin-RevId: 9c9eb300c95024ea4242bbb4835595f555cb1eed
Change-Id: Ib0686286f7889a976311e8cd2b35655765a8d033
--
9f746b79e16d36dba908ed9e2a586d890fe54acc by Derek Mauro <dmauro@google.com>:
Remove the Bazel mirror URL that we use in our WORKSPACE file
This doesn't appear to be supported. We use --distdir caching in our tests.
PiperOrigin-RevId: 327634738
--
e1f6f54830c415fc8bb8dc14483fae4cf9713d75 by Abseil Team <absl-team@google.com>:
Removing comments following license() rules as they are rarely useful, redundant with LICENSE files, and tend to fall out of date.
PiperOrigin-RevId: 327504063
--
b59c076638a57a74a3f8475f1dee8b536e32a15f by Gennadiy Rozental <rogeeff@google.com>:
Change GetAllFlags API to return a collection of mutable flag handles.
This will make this interface on par with FindCommandLineFlag and allow to call
CommandLineFlag::ParseFrom on the handle returned by GetAllFlags.
PiperOrigin-RevId: 327499084
--
bbf56b3c4a1d908d95e5a52aba38b1984151efff by Gennadiy Rozental <rogeeff@google.com>:
Make raw_hash_set compile when AllocTraits::propagate_on_container_swap is false.
PiperOrigin-RevId: 327371107
--
837f62c85ea65c1d6b847a75816198c625fe62ff by Abseil Team <absl-team@google.com>:
On macOS, `mem_alloc` is defined like this:
rpc/types.h:86:#define mem_alloc(bsize) calloc(1, bsize)
So if that file is included before container_memory.h, the variable mem_alloc
may never get defined. This is fixed by using a different name.
PiperOrigin-RevId: 327360224
--
aa8f5528382c0d01239ce75b645723aaf7e1ef46 by Gennadiy Rozental <rogeeff@google.com>:
Release of absl::GetAllFlags API.
PiperOrigin-RevId: 327275943
GitOrigin-RevId: 9f746b79e16d36dba908ed9e2a586d890fe54acc
Change-Id: I99c5c87dd1712bf8df9a52397b0c1e400a3c3447
--
0c8282d75798c77733eee6167870bcc6acc0bfc1 by Evan Brown <ezb@google.com>:
Provide mutable access to the key in node handles using std::launder when compiled with C++17 or later.
Also, document why we can't provide mutable access to the key without C++17.
Note: we use Policy::mutable_key() because btree already uses Policy::key() internally to get const key access, and we want to avoid calling std::launder unless we need mutable access to the key.
PiperOrigin-RevId: 326519000
--
8018d0c3044400f0a731b0d2d00b606742c98818 by Xiaoyi Zhang <zhangxy@google.com>:
Move `Status` internal symbols from the public header into an internal header file.
PiperOrigin-RevId: 326471847
--
87a7644864ba7c003b0611898aaba1b71c840376 by Abseil Team <absl-team@google.com>:
Avoid a costly divide (the division accounts for 10% of the time spent in the function).
When the division is signed, the compiler has to generate a div. When it is unsigned, it can generate a shift: https://godbolt.org/z/vGfTv4. As per the test above the div, we know that the value is unsigned.
PiperOrigin-RevId: 326453275
GitOrigin-RevId: 0c8282d75798c77733eee6167870bcc6acc0bfc1
Change-Id: I0a953558358055ab3dc6a533d8930698509b1195
--
240f86077dabaa58210e6b1a35cc442902409bf5 by Gennadiy Rozental <rogeeff@google.com>:
Fix the link to the Allocator concept description.
PiperOrigin-RevId: 326292363
--
d023337da5c7c23ec5f316c4e03efc4d8404ad63 by Gennadiy Rozental <rogeeff@google.com>:
Add -DNOMINMAX to gcc/clang build command line in case they are used to build Abseil on Windows.
Fixes#761
PiperOrigin-RevId: 326255039
GitOrigin-RevId: 240f86077dabaa58210e6b1a35cc442902409bf5
Change-Id: If8a40a9b2be9c0c1e652347e2f22e2fff6bbeaa1
--
c12db0cff0f0cb0c10731cdf4bf1663e99ecb82e by Samuel Benzaquen <sbenza@google.com>:
Fix incompatibility of retired flags and AddressSanitizer.
PiperOrigin-RevId: 325028944
--
20119dce82503c6ac22f3ec479d0eaea6acc7ba0 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 324939694
--
bb1ab1a4e1a551469ad110bdfce3210aeb9bf4b8 by Abseil Team <absl-team@google.com>:
Teach Abseil stack consumption utilities about AArch64.
PiperOrigin-RevId: 324935395
--
987043ffc960f38457478b01c04b47dfaf7ae006 by Evan Brown <ezb@google.com>:
Cleanup: simplify the slot transfer methods a bit.
PiperOrigin-RevId: 324834817
--
ed7081130d3ab93a2c3c916e30fe4367d8e96954 by Abseil Team <absl-team@google.com>:
Pass __FILE__ as const char* instead of as array of chars to internal_log_function
to allow deterministic symbols for AtomicHook wrapper of the InternalLogFunction
PiperOrigin-RevId: 324800499
GitOrigin-RevId: c12db0cff0f0cb0c10731cdf4bf1663e99ecb82e
Change-Id: Ibb92b1cab465e45abc86281f0fba894c82a662df
--
587e6db882749fa7faa12815e614afab04d218b9 by Derek Mauro <dmauro@google.com>:
Use attribute detection for other sanitizer related attributes
PiperOrigin-RevId: 324077073
--
3ee55e4935b4235516b1fcac3c55945e510f7afc by Evan Brown <ezb@google.com>:
Simplify CordRepExternal allocation/deallocation.
I think this can save some memory when `Releaser` is empty and when on platforms where alignof(CordRepExternal) < (default `::operator new` alignment).
We no longer need the API requirement that alignof(Releaser) <= (default `::operator new` alignment).
Also remove another static_assert from a TODO in cord_internal.h and fix some warnings about calling std::move on a forwarding reference.
PiperOrigin-RevId: 324053720
--
9fc78436565eb3b204d4aa425ee3773354392f45 by Derek Mauro <dmauro@google.com>:
Use auto-detected sanitizer attributes for ASAN, MSAN, and TSAN builds
PiperOrigin-RevId: 323831461
GitOrigin-RevId: 587e6db882749fa7faa12815e614afab04d218b9
Change-Id: Ie0e4a2846d7f66988a2d81a5e50721b62fdb3d6d
--
873b52b0a691e759413c5db27dafc541a5da5263 by Andy Getzendanner <durandal@google.com>:
Introduce an internal-only thread-local caching wrapper around GetTID.
PiperOrigin-RevId: 323055682
--
091a4537f1ef6e158acbf4261cfae1af7a3bdb7f by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 322864497
--
c80ccfff2a825819f31826a30f48cca3297699f8 by Evan Brown <ezb@google.com>:
Roll forward b-tree changes simplifying deletion and getting rid of recursion in clear_and_delete().
We also change clear_and_delete() to avoid some unnecessary comparisons by restructuring the loops.
PiperOrigin-RevId: 322658938
--
81464c0fb9c8c6268dca2e530aba99e75e1e59ae by Gennadiy Rozental <rogeeff@google.com>:
Eliminate definition of RunningOnValgrind inside the library.
Fixes#674Fixes#657
PiperOrigin-RevId: 322508440
GitOrigin-RevId: 873b52b0a691e759413c5db27dafc541a5da5263
Change-Id: I20b40c9e8fc62edcf981caab467cca33cf6fd2ba
--
dcd4d95f6201dc5781a3a374be8eb10c812fd98a by Derek Mauro <dmauro@google.com>:
Add -Wundef to GCC warnings
PiperOrigin-RevId: 322388155
--
b030746368262aff6bc487f5525bcd9b32d18ebb by Abseil Team <absl-team@google.com>:
Google internal clean-up.
PiperOrigin-RevId: 322381901
--
18e4cfcd50730c493cfc0cf1e127e57c186ce90b by Evan Brown <ezb@google.com>:
Rollback b-tree erase simplification change.
PiperOrigin-RevId: 322368252
--
d15431c52fa7ccb25ffbd967fd11f8f58246d48a by Abseil Team <absl-team@google.com>:
Update MOCK_METHOD (new format) in memory/memory_test.cc
PiperOrigin-RevId: 322208282
GitOrigin-RevId: dcd4d95f6201dc5781a3a374be8eb10c812fd98a
Change-Id: I3a900b4993f86bdd1c9597819c7a0e6e1759eda3
--
763b4755cc65db94fb1d6c09655f77deee685698 by Evan Brown <ezb@google.com>:
Rollback change getting rid of recursion in clear_and_delete().
PiperOrigin-RevId: 322156175
--
e430ae6970ae2e76357876449878033e3c72e734 by Greg Falcon <gfalcon@google.com>:
fix build on P9
Import of https://github.com/abseil/abseil-cpp/pull/739
PiperOrigin-RevId: 321855200
--
3076c5bf811a950e7f7914023434d4aa9c0fbbb0 by Derek Mauro <dmauro@google.com>:
Check for the existence of CMake policies before using them
Fixes#742
PiperOrigin-RevId: 321798698
GitOrigin-RevId: 763b4755cc65db94fb1d6c09655f77deee685698
Change-Id: I641e42f8bebe236b75f1bf1116a129c2ad9b2571
--
d2b7a83bafb90d35b2b7d8eb4177e9d712e8d62c by Gennadiy Rozental <rogeeff@google.com>:
Introduce ABSL specific macros for detecting the usage of sanitizers.
PiperOrigin-RevId: 321687443
--
a41342cc04b1088087dda12d7272aa3835f8e36a by Evan Brown <ezb@google.com>:
Get rid of recursion in clear_and_delete().
PiperOrigin-RevId: 321583786
--
99c6d300b17f186c28867b08cc79f1e55077e88a by Evan Brown <ezb@google.com>:
Code simplification: consolidate methods to erase values/nodes.
Motivation: this will make floating storage work simpler.
- Delete erase_same_node/erase_from_leaf_node/remove_value/remove_values_ignore_children.
- Move node deletion methods inside btree_node.
- Delete three-argument move() and use transfer_n() instead.
- Note: there's still one usage of move (in btree::erase(iterator)) that could use transfer, but I think doing so would add more complexity than it's worth.
PiperOrigin-RevId: 321407673
--
c3efed6c1763190c6b3bccbede9b2989ab21b258 by Evan Brown <ezb@google.com>:
Support heterogeneous insert_or_assign, try_emplace, operator[] for btree_map.
Also do a bit of cleanup:
- Add _impl methods for insert_or_assign/try_emplace.
- Rename some hint iterator params from `position` to `hint`.
PiperOrigin-RevId: 321399557
GitOrigin-RevId: d2b7a83bafb90d35b2b7d8eb4177e9d712e8d62c
Change-Id: Ie2d0c7c3ed197c2b53d475248941392cbad20e59
--
739f9fb80212c21c015fec473e9e29803a156ef9 by Derek Mauro <dmauro@google.com>:
Define FlagStateInterface::~FlagStateInterface() in the translation
unit in which it is actually declared
Fixes#717
PiperOrigin-RevId: 319083605
--
913ef1f23113268b22d636d3ae3b992862efdb1a by Derek Mauro <dmauro@google.com>:
Fix ABSL_LOCK_RETURNED statement
PiperOrigin-RevId: 319078667
--
a43b1413da1770d638147c73e7e1693cfaf869c7 by Derek Mauro <dmauro@google.com>:
Fix redeclaration ‘absl::Cord::InlineRep::kMaxInline’, which differs in ‘constexpr’
Fixes#725
PiperOrigin-RevId: 319060910
--
1ad7d491a80f6c9de78a6fc20f09b7765d224503 by Abseil Team <absl-team@google.com>:
Make absl SpinLock trivially destructible when possible
PiperOrigin-RevId: 319049456
--
659ecad3578dfa669854a82279fa590002bdb37f by Derek Mauro <dmauro@google.com>:
Remove the static initialization of global variables used by absl::Mutex
as requested by Chromium
PiperOrigin-RevId: 319031204
--
609c491d8bb4f8bb3b44c5a4c0bee51c583df24c by Abseil Team <absl-team@google.com>:
Add implementation of %a and %A to absl::StrFormat.
Prior to this it just fell back to sprintf.
PiperOrigin-RevId: 318888039
--
5e8ae6392bcd135248aac14c4b9f2a5116868678 by Abseil Team <absl-team@google.com>:
Google-internal changes only.
PiperOrigin-RevId: 318857077
--
4a2578e33e8442954e29e5f0380ddfcf0f033f0d by Greg Falcon <gfalcon@google.com>:
Change of enum constants to accommodate internal change.
PiperOrigin-RevId: 318844716
--
4b578b102816260c213675759f4c15911735578a by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 318704453
--
0ee82fd24d548b260c9229fa1f54571dae1dfa24 by Gennadiy Rozental <rogeeff@google.com>:
Allow lookup of retired flags.
At the moment we issue warning on attempt to find a retired flag. This way we can't even check if flag is retired without issuing the warning.
With this change we will only issue the warning if one tries to access any functionality of retired flag but it's name "is retired" status, and type.
PiperOrigin-RevId: 318605017
--
3e35fe9b4c79f636fa328c59e2aabb93e29b7c99 by Abseil Team <absl-team@google.com>:
Fix error return from InstallSymbolDecorator().
PiperOrigin-RevId: 318490405
--
ae46063f3eb2998cb961f62a359d932e5908a4bc by Abseil Team <absl-team@google.com>:
Do not make copies of iterated collection elements into the loop variable.
PiperOrigin-RevId: 318423139
--
d06a075a12aab5f6ab98474677ce50d588b21de3 by Abseil Team <absl-team@google.com>:
add missing word making the error code better English
PiperOrigin-RevId: 318335052
GitOrigin-RevId: 739f9fb80212c21c015fec473e9e29803a156ef9
Change-Id: Id77a0a4b1959036b00555deef40e82d51884fbc1
--
34c0d521b11ed4191ea3e071a864a84e5e5941b7 by Matthew Brown <matthewbr@google.com>:
Release absl::StrFormat custom type extensions
- Allows StrFormat methods to be extended to accept types which implement
AbslFormatConvert()
- NOLINTNEXTLINE(readability-redundant-declaration) used, declarations are
required in some compilers.
PiperOrigin-RevId: 316963065
--
4d475b5ad02d41057447d722ad35573fc4f48d1f by Evan Brown <ezb@google.com>:
Small fix to previous change: the first overload of insert_iterator_unique wasn't actually being selected. Fix that issue and add tests to verify that it actually works.
Note: couldn't use TestInstanceTracker here because that counts instances (and decrements in destructor) rather than counting all constructor calls.
PiperOrigin-RevId: 316927690
GitOrigin-RevId: 34c0d521b11ed4191ea3e071a864a84e5e5941b7
Change-Id: If8bbb8317b93af4084ac4cc55b752b99b1581b58
--
1f80d4f1cb8847545627a2d0b18f697c4a763292 by Samuel Benzaquen <sbenza@google.com>:
Add a hint message to the assertions for easier debugging.
Also, move it out of the template to avoid printing the whole template
instantiation as part of the assertion. It is not relevant and can
significantly bloat the error message and hide the important bits.
PiperOrigin-RevId: 316736140
--
223e97a90150de5b7206be2e45c62a9b70ac02df by Tom Manshreck <shreck@google.com>:
Update Span description to remove "view" terminology, in light of recent clarification of the differences between a view and a span type.
PiperOrigin-RevId: 316734382
--
361b87d55b1809a5da3f72a996686f27b3d630c2 by Evan Brown <ezb@google.com>:
Allow for explicit conversion of values in btree range constructor/insert.
PiperOrigin-RevId: 316725951
GitOrigin-RevId: 1f80d4f1cb8847545627a2d0b18f697c4a763292
Change-Id: I74e2b095bc24710b27ed63ed94a50ef8f0fc897f
--
9e8b4a286d70df9487bff080816bd07ae38af5f8 by Evan Brown <ezb@google.com>:
Add btree_node::transfer_n/transfer_n_backward and replace usage of uninitialized_move_n and value_destroy_n.
PiperOrigin-RevId: 314600027
--
6c452aa1ee7e46ab941ba7d1fa636da8ea3d7370 by Laramie Leavitt <lar@google.com>:
Remove the MockingBitGenBase base class in favor of type-erasure in BitGenRef.
In Abseil random, mocking was split across two different classes,
MockingBitGenBase and MockingBitGen. This split existed because Google Mock is a
test-only library that we don't link into production, so MockingBitGenBase
provided a low-overhead scaffold used to lookup mocks when in test code, but
which is unused in production code.
That has been replaced by type-erasure which looks for a method named
CallImpl with the correct signature.
Weaken the coupling between MockingBitGen, DistributionCaller, and MockOverloadSet.
Rename CallImpl to InvokeMock()
Previously, the implementation of DistributionCaller was also split across different files using explicit instantiation of the DistributionCaller struct and some details in the Mocking classes. Now Distribution caller uses the presence of the InvokeMock() method to choose whether to use the mockable call path or the default call path.
PiperOrigin-RevId: 314584095
--
07853c47dc98698d67d65a3b9b662a65ab9def0a by Abseil Team <absl-team@google.com>:
Add PC / backtrace / symbolization support for Apple platforms.
Full backtrace support requires iOS 9+
PiperOrigin-RevId: 314415072
--
43889f17a132b31f6558c6482721cbbc776128fd by Gennadiy Rozental <rogeeff@google.com>:
Consolidate all reflection interface in the new module 'reflection' and expose interface to locate reflection handle by name.
PiperOrigin-RevId: 314390358
GitOrigin-RevId: 9e8b4a286d70df9487bff080816bd07ae38af5f8
Change-Id: I8e0910437740cf9ea9da5000adddfcef127e1158
--
cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d by Derek Mauro <dmauro@google.com>:
Update GoogleTest dependency and use it to mark a parameterized test
as possibly unused.
PiperOrigin-RevId: 313643136
--
24f61fe25e943e78f8a1fd014c89516776943170 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 313636155
--
36c453ddf04791f8cf3d14673bacd7bbd98911fd by Gennadiy Rozental <rogeeff@google.com>:
Address sanitizer should not use DYNAMIC_ANNOTATIONS_ENABLED=1
PiperOrigin-RevId: 313635651
--
7a7a3e3888ac8ae366572ea0a2a1c62dc669cec7 by Abseil Team <absl-team@google.com>:
CMake: don't attempt to use googletest unless ABSL_RUN_TESTS==true.
Fixes: https://github.com/abseil/abseil-cpp/issues/690
PiperOrigin-RevId: 313477705
GitOrigin-RevId: cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d
Change-Id: Ief7b31b53cdf3f79518b767d882960c1636aad23
--
f012012ef78234a6a4585321b67d7b7c92ebc266 by Laramie Leavitt <lar@google.com>:
Slight restructuring of absl/random/internal randen implementation.
Convert round-keys.inc into randen_round_keys.cc file.
Consistently use a 128-bit pointer type for internal method parameters. This allows simpler pointer arithmetic in C++ & permits removal of some constants and casts.
Remove some redundancy in comments & constexpr variables. Specifically, all references to Randen algorithm parameters use RandenTraits; duplication in RandenSlow removed.
PiperOrigin-RevId: 312190313
--
dc8b42e054046741e9ed65335bfdface997c6063 by Abseil Team <absl-team@google.com>:
Internal change.
PiperOrigin-RevId: 312167304
--
f13d248fafaf206492c1362c3574031aea3abaf7 by Matthew Brown <matthewbr@google.com>:
Cleanup StrFormat extensions a little.
PiperOrigin-RevId: 312166336
--
9d9117589667afe2332bb7ad42bc967ca7c54502 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 312105213
--
9a12b9b3aa0e59b8ee6cf9408ed0029045543a9b by Abseil Team <absl-team@google.com>:
Complete IGNORE_TYPE macro renaming.
PiperOrigin-RevId: 311999699
--
64756f20d61021d999bd0d4c15e9ad3857382f57 by Gennadiy Rozental <rogeeff@google.com>:
Switch to fixed bytes specific default value.
This fixes the Abseil Flags for big endian platforms.
PiperOrigin-RevId: 311844448
--
bdbe6b5b29791dbc3816ada1828458b3010ff1e9 by Laramie Leavitt <lar@google.com>:
Change many distribution tests to use pcg_engine as a deterministic source of entropy.
It's reasonable to test that the BitGen itself has good entropy, however when testing the cross product of all random distributions x all the architecture variations x all submitted changes results in a large number of tests. In order to account for these failures while still using good entropy requires that our allowed sigma need to account for all of these independent tests.
Our current sigma values are too restrictive, and we see a lot of failures, so we have to either relax the sigma values or convert some of the statistical tests to use deterministic values.
This changelist does the latter.
PiperOrigin-RevId: 311840096
GitOrigin-RevId: f012012ef78234a6a4585321b67d7b7c92ebc266
Change-Id: Ic84886f38ff30d7d72c126e9b63c9a61eb729a1a