summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Unify std type detection now that older compilers are no longer supportedGravatar Derek Mauro2023-04-19
| | | | | PiperOrigin-RevId: 525462751 Change-Id: Ibd6202cb95e79a48a6b39ccc4b74ead04128eb91
* Add ABSL_RAW_DLOG and ABSL_RAW_DCHECK macrosGravatar Martijn Vels2023-04-18
| | | | | PiperOrigin-RevId: 525241200 Change-Id: I8d1536cb813da8b80a978340343b0243a49928f7
* Add configurability of the log Tag value on AndroidGravatar Abseil Team2023-04-18
| | | | | PiperOrigin-RevId: 525178448 Change-Id: I0f35a38f23316b25621148b7fe59becf72bafeff
* Add an API to clear the saved LogBacktraceAt location, and call it when ↵Gravatar Andy Getzendanner2023-04-18
| | | | | | | setting an empty or invalid flag value. PiperOrigin-RevId: 525065479 Change-Id: I3c0822db8301e0999b0669394b415df82edd445f
* Optional: Remove workaround for lack of support for inheriting constructorsGravatar Derek Mauro2023-04-14
| | | | | PiperOrigin-RevId: 524368346 Change-Id: I68b57a1abc8d805aa5cb4b45c5d7449ade231579
* Span: Remove MSVC 2015 workaroundGravatar Derek Mauro2023-04-14
| | | | | PiperOrigin-RevId: 524347923 Change-Id: I4538eb8d5d6e8befbeb8ab992b0ad44dd8f4f00c
* Reland "Get rid of tail padding within `absl::Duration`. This reduces memory ↵Gravatar Abseil Team2023-04-14
| | | | | | | usage needs when storing duration in containers (e.g. `vector<absl::Duration>` uses 25% less memory), and allows classes with `absl::Duration` fields to fit other stuff in memory previously used by tail padding (e.g. `std::optional<absl::Duration>` is now 16 bytes instead of 24)." PiperOrigin-RevId: 524256689 Change-Id: Ibf40d9e5411020179fa34c972349c7b58aa9d908
* Spell out the meaning of non-reentrant/non-recursive.Gravatar Thomas Köppe2023-04-13
| | | | | PiperOrigin-RevId: 524112966 Change-Id: I197f98f95b1c4de7f53295a6a01db9b0379b4f55
* Don't override clock_gettime in the KernelTimeout and WaiterGravatar Derek Mauro2023-04-13
| | | | | | | tests under sanitizers. The overrides break the sanitizers. PiperOrigin-RevId: 524037272 Change-Id: I85b87d3870c488cb316505e94b394c6f98e9f60f
* Synchronization: Consolidate the logic for whether steady clocks are supportedGravatar Derek Mauro2023-04-12
| | | | | | | for relative timeouts PiperOrigin-RevId: 523789416 Change-Id: Ide4cfdcae9ea7bffca3355c80ea9c8833a9536e6
* Set executable bit to the *.bat filesGravatar Abseil Team2023-04-12
| | | | | PiperOrigin-RevId: 523745259 Change-Id: Ia2be4ee672a4c1b72c6ecc035ed9c2e401b56d1e
* In debug mode, detect cases of btree comparators that violate transitivity, ↵Gravatar Evan Brown2023-04-12
| | | | | | | | | i.e. comp(A,B) && comp(B,C) -> comp(A,C). When inserting a new element, we verify that the key is ordered correctly with respect to all the other values on the node, which can be done in constant time. PiperOrigin-RevId: 523729309 Change-Id: Idb5a5912a9aa5411d086cb9fa76791523046778a
* Replace absl::type_traits_internal::is_trivially_copyable withGravatar Derek Mauro2023-04-12
| | | | | | | std::is_trivially_copyable PiperOrigin-RevId: 523724345 Change-Id: Id68c79c3bbb253d892bdef4659ac8a926e023d12
* Name anonymous memory allocations on Linux.Gravatar Abseil Team2023-04-12
| | | | | | | | | | | | | | | | | | | Use Linux's prctl(PR_SET_VMA) system call to name memory arenas being allocated using mmap(MAP_ANONYMOUS). This change allows Abseil's memory arena(s) to be distinguished from other uses of anonymous memory within a process, which in turn helps investigations into the memory usage of applications. The change adds a new prctl() system call to the code paths that call mmap(). This is not expected to add significant overhead to applications. The call to prctl(PR_SET_VMA, ...) can fail if the Linux kernel in use was not configured with the CONFIG_ANON_VMA_NAME kernel option. This should be OK since the naming memory regions is primarily a debugging aid. PiperOrigin-RevId: 523687348 Change-Id: Ie404e5eeef0a6da53330b3a56149c4f3bc6bf5c7
* inlined_vector: fix incorrect restrictions on the copy constructor fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy assignment or with destruction. PiperOrigin-RevId: 523576913 Change-Id: Iddb6ab73bcfd8b01a29880cdf4db4bc2b5aead8a
* inlined_vector: fix incorrect restrictions on the swap fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy construction or copy assignment. PiperOrigin-RevId: 523571907 Change-Id: I338b5a40616594406ca8c80b747540c8935798e9
* inlined_vector: fix incorrect restrictions on the move-assignment fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy construction or copy assignment. PiperOrigin-RevId: 523557887 Change-Id: I332d6ceaf738305157605f1271cb577a83d198c5
* inlined_vector: relax the requirements on the move-construction fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | | | Don't require a trivial move constructor and trivial destructor. This excludes types that have declared themselves trivially relocatable by another means, like std::unique_ptr. Instead use "is trivially relocatable" directly, which includes all previous types as well as those that have opted in. PiperOrigin-RevId: 523557136 Change-Id: Icea2dbb8f36f99623308155f2e5b1edd8e5bd36b
* Extend ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS to support HWASANGravatar Abseil Team2023-04-10
| | | | | PiperOrigin-RevId: 523220096 Change-Id: Iaffea2c9c4d112839ca8c2c7f130f72c3d7cc35b
* Add a pull request templateGravatar Derek Mauro2023-04-10
| | | | | | | | This is to highlight contributing guidelines and in particular call out that Googlers must send us Piper CLs. PiperOrigin-RevId: 523127713 Change-Id: I38e219d811adc5f14c7aeaa952d5f25de75198f5
* Synchronization: Support true relative timeouts using the POSIXGravatar Derek Mauro2023-04-08
| | | | | | | | | | | proposed standard pthread_cond_clockwait() and sem_clockwait(). These are currently implemented in glibc >= 2.30. These methods take a clock and use an absolute time with reference to that clock, so KernelTimeout now can produce these values. PiperOrigin-RevId: 522824226 Change-Id: Ife98713f6f95d800b1f8e52d5364a3dbebc4f8a6
* Document that wrapping an empty `std::function` creates a non-empty ↵Gravatar Dino Radakovic2023-04-06
| | | | | | | `AnyInvocable` PiperOrigin-RevId: 522411202 Change-Id: Ifc99f5f6a227efd697039344ea75f53c6f282e53
* Use stdout for help output even in case of errors.Gravatar Gennadiy Rozental2023-04-06
| | | | | PiperOrigin-RevId: 522393331 Change-Id: Ia5f4ad6a2d16c033ea97f3c7e27e8eb7ee429242
* Fix typo in commentGravatar Dino Radakovic2023-04-06
| | | | | PiperOrigin-RevId: 522392902 Change-Id: I5764edbe85612e90d02caae49bbf629dcb8879e3
* Synchronization: Support true relative timeouts on Apple platformsGravatar Derek Mauro2023-04-06
| | | | | | | using the non-portable pthread_cond_timedwait_relative_np() PiperOrigin-RevId: 522340555 Change-Id: I08682f74d8d94965330f12274c7a92632b1a29f1
* Add commentary for universal time scaleGravatar Abseil Team2023-04-04
| | | | | PiperOrigin-RevId: 521932692 Change-Id: If637de6501a4ac41f0078d581049d23aad3480a4
* Raise the MSVC floor to MSVC 2019 (16.0) in accordance withGravatar Derek Mauro2023-04-03
| | | | | | | https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md PiperOrigin-RevId: 521573177 Change-Id: I1f12ddbd8516314ee2ed7f8ba6a6895b03c6c270
* Add heterogeneous lookup support for wstring/u16string/u32string.Gravatar Abseil Team2023-04-03
| | | | | PiperOrigin-RevId: 521556211 Change-Id: I1e1812eb11bfc5772abbf38ce348580c3afa5612
* Remove ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT. These testsGravatar Derek Mauro2023-04-03
| | | | | | | were broken on MSVC 2017, but MSVC 2017 is no longer supported PiperOrigin-RevId: 521527454 Change-Id: I7203708bdc9aa03c9764c9c36db7ce5777e43c3c
* Internal cleanupGravatar Abseil Team2023-04-03
| | | | | PiperOrigin-RevId: 521525676 Change-Id: I40083f534c6904b4823138666deac18ffe6deab6
* Release the batch files used to test Abseil with MSVCGravatar Derek Mauro2023-04-03
| | | | | PiperOrigin-RevId: 521450545 Change-Id: Ia4fe02a57d23411f0a80443c0ad89dfaf4117a37
* Change OnlyLiteralZero to not trigger modernize-use-nullptrGravatar Abseil Team2023-04-01
| | | | | PiperOrigin-RevId: 521133781 Change-Id: I1334ea683bc01ef9b1b9800d6681e29dd2a1ec55
* inlined_vector: optimize the move-assignment fast path.Gravatar Aaron Jacobs2023-03-31
| | | | | | | | We know that the elements are trivially destructible if this path is used, so there is no need to call their destructors one by one. PiperOrigin-RevId: 521088624 Change-Id: I3edff97a073770f99031eefa7a34968fad5d7880
* inlined_vector: stop sharing the memcpy-based move-assignment path.Gravatar Aaron Jacobs2023-03-31
| | | | | | | | | The fact that this is called from paths where the element type may not have a trivial destructor is preventing an optimization (see the TODO). Stop calling from those paths so that the optimization can be made in an upcoming CL. PiperOrigin-RevId: 521087730 Change-Id: Id2b66d8f36bb0d294784d0793fdd8f07e315739f
* inlined_vector: remove excess restrictions on copy constructor fast path.Gravatar Aaron Jacobs2023-03-31
| | | | | | | | The copy constructor isn't doing or simulating copy assignment; nor is it destroying anything. We don't need to require that those operations be trivial. PiperOrigin-RevId: 521020499 Change-Id: I0f36a720384b333ea15e6c8275872fd4fd9a738f
* Add clang-cl buildGravatar Derek Mauro2023-03-31
| | | | | PiperOrigin-RevId: 520955097 Change-Id: I50a19305aed2b60dea0293b1a2106673e4cb7756
* Add a clang-cl buildGravatar Derek Mauro2023-03-31
| | | | | PiperOrigin-RevId: 520925224 Change-Id: I8b7eb8b4d4b99d72b860aec532516b428fb2be23
* Clarify code comment to avoid confusion.Gravatar Abseil Team2023-03-30
| | | | | PiperOrigin-RevId: 520724148 Change-Id: Ia90c4a711649e89454bc2ca0a9d0d771d56e79c0
* Changes necessary to support clang-clGravatar Derek Mauro2023-03-30
| | | | | | | | This change fixes -Wimplicit-const-int-float-conversion warnings by making the conversions explicit. PiperOrigin-RevId: 520707623 Change-Id: Ib6917469120cd7458257195cbf39beb3fd397543
* Properly calculate frame sizes on Aarch64Gravatar Abseil Team2023-03-30
| | | | | | | | For function N in the stack, the current code reports the size of frame N - 1. Fix that. PiperOrigin-RevId: 520688072 Change-Id: I984729f72f79aebae1b6997cb51d3ddef9199d1e
* inlined_vector: fix incorrect conditions for move constructor fast paths.Gravatar Aaron Jacobs2023-03-29
| | | | | | | | | These have nothing to do with copy construction or copy assignment, and using "is trivially copy constructible" can in theory even give the wrong result if the copy constructor is trivial but the move constructor is not. PiperOrigin-RevId: 520488816 Change-Id: I6da4d57f3ce23b03044e0bf9aa70a14b51651fa3
* Import of CCTZ from GitHub.Gravatar Abseil Team2023-03-28
| | | | | PiperOrigin-RevId: 520197681 Change-Id: I96d0253b61bb683bf30060a9b4c19e2c9dce629b
* Fix flakiness issues in timing tests.Gravatar Evan Brown2023-03-27
| | | | | PiperOrigin-RevId: 519939158 Change-Id: I9b049fa55167ed4064f3909887eec7bc52601677
* type_traits: don't use __is_trivially_relocatable with Clang on Windows.Gravatar Aaron Jacobs2023-03-27
| | | | | | | | | | | | | It currently gives the wrong result for types with a user-provided destructor: struct S { ~S(); }; static_assert(!__is_trivially_relocatable(S)); PiperOrigin-RevId: 519855600 Change-Id: I5f0659ad0831974805a5ed4b615e3b6250d23154
* inlined_vector: destroy all types with trivial destructors efficiently.Gravatar Aaron Jacobs2023-03-27
| | | | | | | | | There's no reason to require the type to be trivially copy-constructible/assignable in order to avoid running destructors—those traits have nothing to do with destruction. PiperOrigin-RevId: 519822201 Change-Id: I2ed7bbb53f0c1a512017115ff29fb27a24c6b11a
* absl int128: avoid shifting signed integer by a number of bits greater than ↵Gravatar Abseil Team2023-03-27
| | | | | | | or equal to the precision of the operand PiperOrigin-RevId: 519808237 Change-Id: I9123b167b606d609b8f3924d6f4fd298fa866a90
* Import of CCTZ from GitHub.Gravatar Abseil Team2023-03-27
| | | | | PiperOrigin-RevId: 519786979 Change-Id: Ic5b69c1ac37b47db01d613edca5504e6611657b5
* type_traits: provide a better fallback for is_trivially_relocatable.Gravatar Abseil Team2023-03-24
| | | | | | | | | | We can do a lot better than always saying "no" on platforms without the __is_trivially_relocatable builtin. This will allow using this type trait from the move constructors of InlinedVector in a future CL, without needing to open code the fallback logic. PiperOrigin-RevId: 519281125 Change-Id: I0d55f019331966f58074850d6f77c7eab49f2c53
* inlined_vector: get rid of IsMemcpyOk.Gravatar Abseil Team2023-03-24
| | | | | | | | | | | | | | This type trait had no precise definition, and indeed not even any documentation at all. Giving the ill-defined concept a name was harmful, because it obscured several places where the concept was used too conservatively, or even flat-out incorrectly. This CL has no behavior change: it simply expands IsMemcpyOk to the same conditions it previously had. It leaves TODOs for each place where this was too conservative or incorrect. PiperOrigin-RevId: 519278325 Change-Id: I25bc89f299f6e40b5c3bce7370ed90f33a95612f
* type_traits: touch up the docs for is_trivially_relocatable.Gravatar Abseil Team2023-03-24
| | | | | | | | | | | Clarify that the trait is conservative: it's safe to act on if it's true, but false doesn't necessarily mean anything. Of course this is the only reasonable way to use it, but I think it's helpful to be explicit, especially because currently this trait *always* returns false on some platforms even for a type like int. PiperOrigin-RevId: 519272294 Change-Id: Ic63a48dcf18efc0756046b3d6f51d11cbb46a469