| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 572575394
Change-Id: Ic1c5ac2423b1634e50c43bad6daa14e82a8f3e2c
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The layering_check feature ensures that rules that include a header
explicitly depend on a rule that exports that header. Compiler support
is required, and currently only Clang 16+ supports diagnoses
layering_check failures.
The parse_headers feature ensures headers are self-contained by
compiling them with -fsyntax-only on supported compilers.
PiperOrigin-RevId: 572350144
Change-Id: I37297f761566d686d9dd58d318979d688b7e36d1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
afa44fa0245a1cfb1824ef9697b3fa77fa9615c9 by Laramie Leavitt <lar@google.com>:
Comment CMakeLists.txt about internal absl_cc_library() targets.
From what I can tell, these are the CMake targets that are public:
absl::algorithm
absl::algorithm_container
absl::base
absl::core_headers
absl::dynamic_annotations
absl::log_severity
absl::cleanup
absl::btree
absl::fixed_array
absl::flat_hash_map
absl::flat_hash_set
absl::inlined_vector
absl::node_hash_map
absl::node_hash_set
absl::debugging
absl::failure_signal_handler
absl::leak_check
absl::leak_check_disable
absl::stacktrace
absl::symbolize
absl::flags
absl::flags_commandlineflag
absl::flags_config
absl::flags_marshalling
absl::flags_parse
absl::flags_reflection
absl::flags_usage
absl::bind_front
absl::function_ref
absl::hash
absl::hash_testing
absl::memory
absl::meta
absl::type_traits
absl::bits
absl::int128
absl::numeric
absl::numeric_representation
absl::exponential_biased
absl::periodic_sampler
absl::sample_recorder
absl::random_bit_gen_ref
absl::random_distributions
absl::random_mocking_bit_gen
absl::random_random
absl::random_seed_gen_exception
absl::random_seed_sequences
absl::status
absl::statusor
absl::cord
absl::cord_test_helpers
absl::str_format
absl::strings
absl::synchronization
absl::civil_time
absl::time
absl::time_zone
absl::any
absl::bad_any_cast
absl::bad_optional_access
absl::bad_variant_access
absl::compare
absl::optional
absl::span
absl::variant
absl::utility
PiperOrigin-RevId: 438702788
Change-Id: Icf611c35e88f03cd2493a95f61617605305d4e8e
--
a99f60847578e6c0df6befadb29a01c86def0d21 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 438647928
Change-Id: I141eadd17d6e8607df25ebc893aecefa0239a72f
--
b23e77e8f62a77023188594390c9e491c507d22c by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 438628502
Change-Id: I40c4297716c8c1621ba8b02a22393bfcbefb5b5e
GitOrigin-RevId: afa44fa0245a1cfb1824ef9697b3fa77fa9615c9
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
77cd6291781bc39e8472c706163d6951fe2ae573 by Derek Mauro <dmauro@google.com>:
absl::uint128: Use intrinsics for more operations when available
This change also inlines the division and modulus operators when
intrinsics are available for better code generation.
Fixes #987
PiperOrigin-RevId: 389895706
--
fa23339584599e07ebcb4d0a857e2553b017757c by Abseil Team <absl-team@google.com>:
only hide retired flags if human-readable output is requested
PiperOrigin-RevId: 389835452
--
f1111f2b88359d4b253d4d81681c8a488458a36e by Martijn Vels <mvels@google.com>:
Add helpers IsFlat(), IsExternal(), etc to improve readability
PiperOrigin-RevId: 389779333
--
785b8712261e41695ebeeb64b4317f93b37adc11 by Martijn Vels <mvels@google.com>:
Split off 'concat' and 'btree' RepMemoryUsageLeaf and RepMemoryUsageDataEdge
PiperOrigin-RevId: 389701120
--
5264bffebffc2b377bf7e18f0ce69a3ed38c6629 by CJ Johnson <johnsoncj@google.com>:
Eagerly destroy `Callback` in `absl::Cleanup`
PiperOrigin-RevId: 389678813
--
a05312f0668458e97c50ca932c8f974c1508ebf2 by Abseil Team <absl-team@google.com>:
Have one instance of empty_group per program, rather than one per translation unit.
https://stackoverflow.com/questions/185624/static-variables-in-an-inlined-function
PiperOrigin-RevId: 389185845
GitOrigin-RevId: 77cd6291781bc39e8472c706163d6951fe2ae573
Change-Id: Iac8d9cb27707a9562c831c77a552d1fb4bb0405f
|
|
|
| |
As of this change, you can use `-DABSL_USE_EXTERNAL_GOOGLETEST=ON -DABSL_FIND_GOOGLETEST=ON` to have Abseil use the standard CMake find_package(GTest) mechanism.
|
|
|
|
|
|
|
|
|
|
|
| |
--
32b444c0540e8255cc216171aba57639903edc22 by CJ Johnson <johnsoncj@google.com>:
Add missing `final` to `absl::Cleanup` since it is not an interface type and should never be used as a base class.
PiperOrigin-RevId: 359045692
GitOrigin-RevId: 32b444c0540e8255cc216171aba57639903edc22
Change-Id: I4f72714cd6f2e101709f31958af28b358f15646b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
4ff721439234e91caf6f7b772e5f554e7dd423c8 by Benjamin Barenblat <bbaren@google.com>:
Remove endian-sensitivity from hash slow path
Prior to this commit, the Abseil hash fast path was endian-agnostic, but
the slow path assumed a little-endian platform. Change the slow path to
be endian-correct, ensuring that values produced by the fast and slow
paths are equal even on big-endian systems.
PiperOrigin-RevId: 355424258
--
7f4fe1aa4de46ad0a2ef19fa9c061fc12a7391ed by Abseil Team <absl-team@google.com>:
Directly store CordzInfo in the InlineData data contents of InlineRep
This greatly reduces the cost of coping and moving cords. Especially the move constructor and move assignment are now back to lean loads and stores without needing any CordzInfo lookups for tracked cords.
PiperOrigin-RevId: 355409161
--
3ca4ca84ed6d98f1e383ffd8d12c28876e905bb3 by Abseil Team <absl-team@google.com>:
Add #include <unordered_map>
PiperOrigin-RevId: 355386114
--
30b0ffad0621971b3135148fcc9e183b0dd2a6bb by Abseil Team <absl-team@google.com>:
Optimize Cord copy constructor
This change avoids double stores of the Cord copy constructor from the zero init of the InlineData / InlineRep contents followed by the assignment and inlines the copy constructor.
PiperOrigin-RevId: 355287939
--
0c043fa7b6e41ca7cefc5edc1e17ad46223e4e77 by CJ Johnson <johnsoncj@google.com>:
Now that the absl::Cleanup example returns absl::Status, since we decided on absl::FailedPreconditionError, the precondition should be a positive statement and then the check should be failure to adhere to that positive statement
PiperOrigin-RevId: 355216923
--
9ed922ca5d28fe8790ec6bc0837cf39fbcc92896 by Gennadiy Rozental <rogeeff@google.com>:
Do not set mvsc linker flags for clang-cl (fixes #874)
Import of https://github.com/abseil/abseil-cpp/pull/891
PiperOrigin-RevId: 355199380
GitOrigin-RevId: 4ff721439234e91caf6f7b772e5f554e7dd423c8
Change-Id: I3d9d2383549720d7a91f9108dfcd979ad6632fce
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
cea62ebc5d31c62aabcb94c066d9be506f34baf6 by Abseil Team <absl-team@google.com>:
Fix typo in `Cord::EndsWith()` docs
PiperOrigin-RevId: 355023067
--
f89225a55476478ec167be50dea543f5414836f9 by Abseil Team <absl-team@google.com>:
Add set_cordz_info() and get_cordz_info() methods to InlineData
This change has preparations for future (optional) integration of CordzInfo sampling data into Cord's InlineData for non inlined cords.
PiperOrigin-RevId: 354965340
--
324057574aeb697bd3327cb905eb5bca16ade768 by Abseil Team <absl-team@google.com>:
Fix two comment typos.
PiperOrigin-RevId: 354952568
--
5bb93ca3d57ead3633e1efde4aa28718987ef64f by CJ Johnson <johnsoncj@google.com>:
Clarify doc comment for absl::Cleanup by using absl::Status return type and clarify the engaged state by surfacing the initial value in the public header.
PiperOrigin-RevId: 354935253
--
ec95424594b24a1aec9bf7972b2355f37285506a by Abseil Team <absl-team@google.com>:
Remove `preserve_most` attribute from CordRep::Destroy()
PiperOrigin-RevId: 354921927
GitOrigin-RevId: cea62ebc5d31c62aabcb94c066d9be506f34baf6
Change-Id: Ibe1d66197db7ce9554594e07b1c6e7c6dea3c9da
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
8c77b14bdee3f4cafb8ba520d4d050b15a949fd4 by Derek Mauro <dmauro@google.com>:
Fix absl::Cleanup usage example
PiperOrigin-RevId: 354702001
--
10365da7a0aacaa0c4774a4b618a76dff328611b by CJ Johnson <johnsoncj@google.com>:
Swap the order of the C++11 and C++17 interfaces for absl::Cleanup to mirror the order used in the comment example
PiperOrigin-RevId: 354675180
GitOrigin-RevId: 8c77b14bdee3f4cafb8ba520d4d050b15a949fd4
Change-Id: Ia2054b725ed737ff9e557cb3d973de7c34bc51b0
|
|
--
c68f1886f5e8fd90eb0c2d2e68feaf00a7cdacda by CJ Johnson <johnsoncj@google.com>:
Introduce absl::Cleanup to the OSS repo
PiperOrigin-RevId: 354583156
--
17030cf388e10f7eb959e3e566326d1072ce392e by Abseil Team <absl-team@google.com>:
Internal change only
PiperOrigin-RevId: 354574953
--
e979d7236d4f3252e79ddda6739b67a9a326bf6d by CJ Johnson <johnsoncj@google.com>:
Internal change
PiperOrigin-RevId: 354545297
--
7ea02b3783f7f49ef97d86a8f6580a19cc57df14 by Abseil Team <absl-team@google.com>:
Pre-allocate memory for vectors where the size is known.
PiperOrigin-RevId: 354344576
--
9246c7cb11f1d6444f79ebe25acc69a8a9b870e0 by Matt Kulukundis <kfm@google.com>:
Add support for Elbrus 2000 (e2k)
Import of https://github.com/abseil/abseil-cpp/pull/889
PiperOrigin-RevId: 354344013
--
0fc93d359cc1fb307552e917b37b7b2e7eed822f by Abseil Team <absl-team@google.com>:
Integrate CordRepRing logic into cord (but do not enable it)
PiperOrigin-RevId: 354312238
--
eda05622f7da71466723acb33403f783529df24b by Abseil Team <absl-team@google.com>:
Protect ignore diagnostic with "__has_warning".
PiperOrigin-RevId: 354112334
--
47716c5d8fb10efa4fdd801d28bac414c6f8ec32 by Abseil Team <absl-team@google.com>:
Rearrange InlinedVector copy constructor and destructor to treat
a few special cases inline and then tail-call a non-inlined routine
for the rest. In particular, we optimize for empty vectors in both
cases.
Added a couple of benchmarks that copy either an InlVec<int64> or
an InlVec<InlVec<int64>>.
Speed difference:
```
BM_CopyTrivial/0 0.92ns +- 0% 0.47ns +- 0% -48.91% (p=0.000 n=11+12)
BM_CopyTrivial/1 0.92ns +- 0% 1.15ns +- 0% +25.00% (p=0.000 n=10+9)
BM_CopyTrivial/8 8.57ns +- 0% 10.72ns +- 1% +25.16% (p=0.000 n=10+12)
BM_CopyNonTrivial/0 3.21ns +- 0% 0.70ns +- 0% -78.23% (p=0.000 n=12+10)
BM_CopyNonTrivial/1 5.88ns +- 1% 5.51ns +- 0% -6.28% (p=0.000 n=10+8)
BM_CopyNonTrivial/8 21.5ns +- 1% 15.2ns +- 2% -29.23% (p=0.000 n=12+12)
```
Note: the slowdowns are a few cycles which is expected given the procedure
call added in that case. We decided this is a good tradeoff given the code
size reductions and the more significant speedups for empty vectors.
Size difference (as measured by nm):
```
BM_CopyTrivial from 1048 bytes to 326 bytes.
BM_CopyNonTrivial from 749 bytes to 470 bytes.
```
Code size for a large binary drops by ~500KB (from 349415719 to 348906015 348906191).
All of the benchmarks that showed a significant difference:
Ones that improve with this CL:
```
BM_CopyNonTrivial/0 3.21ns +- 0% 0.70ns +- 0% -78.23% (p=0.000 n=12+10)
BM_InlinedVectorFillString/0 0.93ns +- 0% 0.24ns +- 0% -74.19% (p=0.000 n=12+10)
BM_InlinedVectorAssignments/1 10.5ns +- 0% 4.1ns +- 0% -60.64% (p=0.000 n=11+10)
BM_InlinedVectorAssignments/2 10.7ns +- 0% 4.4ns +- 0% -59.08% (p=0.000 n=11+11)
BM_CopyTrivial/0 0.92ns +- 0% 0.47ns +- 0% -48.91% (p=0.000 n=11+12)
BM_CopyNonTrivial/8 21.5ns +- 1% 15.2ns +- 2% -29.23% (p=0.000 n=12+12)
BM_StdVectorEmpty 0.47ns +- 1% 0.35ns +- 0% -24.73% (p=0.000 n=12+12)
BM_StdVectorSize 0.46ns +- 2% 0.35ns +- 0% -24.32% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableOnly>/0 3.44ns +- 0% 2.76ns +- 1% -19.83% (p=0.000 n=11+11)
BM_InlinedVectorFillRange/256 20.7ns +- 1% 17.8ns +- 0% -14.08% (p=0.000 n=12+9)
BM_CopyNonTrivial/1 5.88ns +- 1% 5.51ns +- 0% -6.28% (p=0.000 n=10+8)
BM_SwapElements<LargeCopyableMovable>/1 4.19ns +- 0% 3.95ns +- 1% -5.63% (p=0.000 n=11+12)
BM_SwapElements<LargeCopyableMovableSwappable>/1 4.18ns +- 0% 3.99ns +- 0% -4.70% (p=0.000 n=9+11)
BM_SwapElements<LargeCopyableMovable>/0 2.41ns +- 0% 2.31ns +- 0% -4.45% (p=0.000 n=12+12)
BM_InlinedVectorFillRange/64 8.25ns +- 0% 8.04ns +- 0% -2.51% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableOnly>/1 82.4ns +- 0% 81.5ns +- 0% -1.06% (p=0.000 n=12+12)
```
Ones that get worse with this CL:
```
BM_CopyTrivial/1 0.92ns +- 0% 1.15ns +- 0% +25.00% (p=0.000 n=10+9)
BM_CopyTrivial/8 8.57ns +- 0% 10.72ns +- 1% +25.16% (p=0.000 n=10+12)
BM_SwapElements<LargeCopyableMovableSwappable>/512 1.48ns +- 1% 1.66ns +- 1% +11.88% (p=0.000 n=12+12)
BM_InlinedVectorFillString/1 11.5ns +- 0% 12.8ns +- 1% +11.62% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableMovableSwappable>/64 1.48ns +- 2% 1.66ns +- 1% +11.66% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableMovableSwappable>/1k 1.48ns +- 1% 1.65ns +- 2% +11.32% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableMovable>/512 1.48ns +- 2% 1.58ns +- 4% +6.62% (p=0.000 n=11+12)
BM_SwapElements<LargeCopyableMovable>/1k 1.49ns +- 2% 1.58ns +- 3% +6.05% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableMovable>/64 1.48ns +- 2% 1.57ns +- 4% +6.04% (p=0.000 n=11+12)
BM_InlinedVectorFillRange/1 4.81ns +- 0% 5.05ns +- 0% +4.83% (p=0.000 n=11+11)
BM_InlinedVectorFillString/8 79.4ns +- 1% 83.1ns +- 1% +4.64% (p=0.000 n=10+12)
BM_StdVectorFillString/1 16.3ns +- 0% 16.6ns +- 0% +2.13% (p=0.000 n=11+8)
```
PiperOrigin-RevId: 353906786
--
8e26518b3cec9c598e5e9573c46c3bd1b03a67ef by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 353737330
--
f206ae0983e58c9904ed8b8f05f9caf564a446be by Matt Kulukundis <kfm@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 353682256
GitOrigin-RevId: c68f1886f5e8fd90eb0c2d2e68feaf00a7cdacda
Change-Id: I5790c1036c4f543c701d1039848fabf7ae881ad8
|