- 26 Feb, 2019 2 commits
-
-
Joe Loser authored
Summary: - Existing code disables `-Warray-bounds` warning for GCC due to a bug in GCC 4.9. - As seen in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124, the bug has been resolved for GCC 5.1. - Since the bug has been resolved, we no longer need to disable the warning. yfeldblum I suspect that we have to hold off on this PR until the internal use cases relying on GCC 4.9 upgrade, but I figured it is better to have some of these cleanup opportunities ready for when the time arises. Pull Request resolved: https://github.com/facebook/folly/pull/999 Reviewed By: ot, Orvid Differential Revision: D13729723 Pulled By: yfeldblum fbshipit-source-id: da33704c2e2022c2dad0681e4d6152105a1cf54d
-
Yedidya Feldblum authored
Summary: [Folly] Address MSVC C4686 in `folly/lang/Pretty.h`. Resolves: ``` folly\lang\pretty.h(119): warning C4686: 'folly::detail::pretty_name_zarray<T>::zarray_': possible change in behavior, change in UDT return calling convention ``` Reviewed By: Orvid Differential Revision: D14214290 fbshipit-source-id: c5e0ebd7c100413737bdcba157ec8b5ce42895de
-
- 25 Feb, 2019 8 commits
-
-
Marc Berenbach authored
Summary: Infer AL has reported valid warnings on some folly and thrift code: ``` fbcode/folly/io/async/AsyncUDPServerSocket.h:228:19: WARNING Extra Copy: Potentially unnecessary to copy var `client` at line 228, column 19. Use 'const auto&' or 'auto&' if possible. fbcode/folly/io/async/AsyncUDPServerSocket.h:230:19: WARNING Extra Copy: Potentially unnecessary to copy var `socket` at line 230, column 19. Use 'const auto&' or 'auto&' if possible. fbcode/thrift/lib/cpp/TProcessorEventHandler.h:148:15: WARNING Extra Copy: Potentially unnecessary to copy var `ew` at line 148, column 15. Use 'const auto&' or 'auto&' if possible. fbcode/thrift/lib/cpp2/server/ThriftServer.h:705:20: WARNING Extra Copy: Potentially unnecessary to copy var `sockets` at line 705, column 20. Use 'const auto&' or 'auto&' if possible. ``` As these are transitively included in many services, they are fairly prevalent/annoying warnings. Let's fix them. Reviewed By: yfeldblum Differential Revision: D14168260 fbshipit-source-id: 12e537fe5aa73e653c15c4fef01ac618e51cd4d0
-
Joe Loser authored
Summary: - `F14Table.h`'s fallback when SIMD isn't used has template specializations to track which `std::hash` implementations are considered worth caching by `std::unordered_map`. This included `std::string` but was missing support for `std::string_view`. This commit adds support for marking `std::string_view` as not fast. Pull Request resolved: https://github.com/facebook/folly/pull/1031 Reviewed By: nbronson Differential Revision: D14197661 Pulled By: yfeldblum fbshipit-source-id: bd634b5755e2794891200c7f71e9d6874a60cc38
-
Joe Loser authored
Summary: - `FOLLY_USE_CPP14_CONSTEXPR` macro is not needed as Folly requires a recent enough version of MSVC where its constexpr support is "good enough". For Clang and GCC, the min compiler versions supported would both evaluate the prior implementation of this macro to true in both cases. This is potentially slightly behavior changing since `FOLLY_USE_CPP14_CONSTEXPR` would be `inline` for ICC and I am not sure if its constexpr support is "good enough" for a min version of ICC we claim support for. - Replace `FOLLY_CPP14_CONSTEXPR` with `constexpr` in all call sites and remove the `FOLLY_CPP14_CONSTEXPR` macro. - Simplify how we define `FOLLY_STORAGE_CONSTEXPR` and `FOLLY_STORAGE_CPP14_CONSTEXPR` after cutting `FOLLY_USE_CPP14_CONSTEXPR`. Pull Request resolved: https://github.com/facebook/folly/pull/1029 Reviewed By: Orvid Differential Revision: D14199538 Pulled By: yfeldblum fbshipit-source-id: 99daecf7d7ad0c4bf6735e74247112a78923602a
-
Yedidya Feldblum authored
Summary: [Folly] Use `pretty_name` in `F14TableStats`, which may not be exact in edge cases (e.g. function-local policy types) but which works without RTTI. Reviewed By: nbronson Differential Revision: D14129242 fbshipit-source-id: 6f7a8e0b3af4d6b16673770228e98cd989ab0c3f
-
Lee Howes authored
Summary: Update to use thenError rather than onError. Reviewed By: yfeldblum Differential Revision: D14209634 fbshipit-source-id: 5cbb66146b148654641a7a0a58717a31608a4ac7
-
Yedidya Feldblum authored
Summary: [Folly] Omit excess landing pads with `StaticSingletonManager` when the type of the global is nothrow-default-constructible. This changes behavior for nothrow-default-constructible types to terminate immediately if the process is out of memory while performing the bookkeeping around attempting to instantiate a global. Reviewed By: andriigrynenko Differential Revision: D14203826 fbshipit-source-id: 8c9becde3b245d6b027c97bd8541c48745727dff
-
Joe Loser authored
Summary: - It is verbose at the call sites to cast an enum or enum class to its underlying type. - Introduce `to_underlying_type`, which, given an enum or enum class, returns the value from static casting to the underlying type. Pull Request resolved: https://github.com/facebook/folly/pull/1028 Reviewed By: stevegury Differential Revision: D14199619 Pulled By: yfeldblum fbshipit-source-id: fde85b9be50945a390b18ba1448a0137f3d7b63e
-
Orvid King authored
Summary: Remove all uses and remove the overload. Reviewed By: yfeldblum Differential Revision: D14194039 fbshipit-source-id: c3b271747200b9219b734e5a0f19c6d5d4d135a2
-
- 24 Feb, 2019 1 commit
-
-
Aaryaman Sagar authored
Summary: Fix namespace in folly::copy comments Reviewed By: yfeldblum Differential Revision: D14202488 fbshipit-source-id: 14ebc5a58bfd3b62e4d6ecd03e1ceffa796f4b1f
-
- 23 Feb, 2019 6 commits
-
-
Orvid King authored
Summary: The codemod tooling has demonstrated issues distinguishing between integer and bool overloads, so add a safety net just in case. Reviewed By: yfeldblum Differential Revision: D13995489 fbshipit-source-id: 2a853f8c961953d4cdd24256420ecc29cb13c677
-
Orvid King authored
Summary: The file descriptor overload will be going away. Reviewed By: yfeldblum Differential Revision: D14070240 fbshipit-source-id: 20a0248fd9840629e31a3274032b889b6bb5f8de
-
Orvid King authored
Summary: They are dead. Reviewed By: yfeldblum Differential Revision: D14191874 fbshipit-source-id: 80e6b9c51aa7d29ccc01148ccb1fd1014688c764
-
Yedidya Feldblum authored
Summary: [Folly] Shrink `StaticSingletonManager` inline slow path by passing only one argument to the outline slow path, rather than passing three arguments. In optimized builds, the argument is an immediate loaded into a register. Reviewed By: andriigrynenko Differential Revision: D14121341 fbshipit-source-id: f715225d0dc94df9bf2bef440ffeb08bb7a88fba
-
Yedidya Feldblum authored
Summary: [Folly] Cut outdated comment in `FOR_EACH_RANGE` implementation details. It refers to a shortcoming in a specific version of boost which is no longer supported in folly. (Note: this ignores all push blocking failures!) Reviewed By: Orvid Differential Revision: D14197473 fbshipit-source-id: 3379af1cc69ab96fcb77be0a56ea7a5762ff7db5
-
Murali Vilayannur authored
Summary: When adjusting nextBucketStart by rounding down, we should also check if that causes it to not overlap with the user-specified [start, end) time interval. If it does not overlap, then return an empty return type since this bucket does not contribute anything to the specified time-range. Reviewed By: simpkins Differential Revision: D14121401 fbshipit-source-id: bbfb1d6a71c9fb99244cdff887a7a9ee18741f25
-
- 22 Feb, 2019 5 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Revert `StaticMeta` deleted dtor, which does not work well with standard constructibility tests like `std::is_constructible<StaticMeta<...>, ...>`. Reviewed By: andriigrynenko Differential Revision: D14181902 fbshipit-source-id: de75fe2fc864c9a32a74b8058532ef49412ac838
-
Yedidya Feldblum authored
Summary: [Folly] `FOLLY_TYPE_INFO_OF` for cases where `folly::type_info_of` is insufficient. Reviewed By: andriigrynenko Differential Revision: D14181350 fbshipit-source-id: 65d63424a5feaa6597eaddb670f760f0223717ae
-
Adam Simpkins authored
Summary: Add XCHECK_EQ(), XCHECK_NE(), XCHECK_LT(), XCHECK_LE(), XCHECK_GT(), and XCHECK_GE(), plus corresponding XDCHECK_*() versions that only fail in debug buildk. These are similar to XCHECK()/XDCHECK(), but on failure they also log the values of the two expressions being compared. Reviewed By: therealgymmy Differential Revision: D14016494 fbshipit-source-id: dba02d748f78d306227ec734d9e52ef0bc73919b
-
Adam Simpkins authored
Summary: Fix an `invalid-shift-base` UndefinedBehaviorSanitizer failure. Previously all of the DistributedMutex-inl.h tests would fail with the following message on my system: runtime error: left shift of 94500093116194837 by 8 places cannot be represented in type 'long' It might be slightly nicer in the long run to change this code to use `std::chrono::duration<std::uint64_t, std::nano>` throughout rather than `std::chrono::nanoseconds`. Currently the `time()` function casts the `uint64_t` value returned by `folly::hardware_timestamp()` into a signed value. Reviewed By: yfeldblum, aary Differential Revision: D14180336 fbshipit-source-id: b199ae22d951162dc6f31d7f1c41a7d67cbcc935
-
Yedidya Feldblum authored
Summary: [Folly] Better constrain `EvictingCacheMap` iterator conversions. Reviewed By: shixiao Differential Revision: D14162009 fbshipit-source-id: 8a3011450620fcf1ee6a137834ebbd1e5953e0ed
-
- 21 Feb, 2019 8 commits
-
-
Gisle Dankel authored
Summary: We observed some RSS regression for certain use cases - setting decay time to 0 should fix this as freed regions will be released back to the kernel immediately instead of delayed. The risk is that we lose regions before we can reallocate them and thus over time end up with holes in the huge page region. If we see this becoming an issue for some use cases, we can add a parameter to control the decay time. Releasing immediately should be OK for huge pages in most cases. For cases with frequent allocation and deallocation of large areas there can be a perf impact however. Reviewed By: interwq Differential Revision: D13853171 fbshipit-source-id: 83fb95ed9c9bcb6ebdd1f80d78347e5eec61c084
-
Joe Loser authored
Summary: - When Folly supported autotools builds, a different include for `dwarf.h` was required in `folly/experimental/symbolizer/Dwarf.cpp`. - Since Folly does not support autotools builds as of `1d58fd57`, cut this include and just assume `<dwarf.h>` works. Pull Request resolved: https://github.com/facebook/folly/pull/1023 Reviewed By: simpkins Differential Revision: D14119901 Pulled By: yfeldblum fbshipit-source-id: f676f72ec91e25390cb3bbbe544de7cbc68e1d73
-
Yedidya Feldblum authored
Summary: [Folly] `type_info_of`, which returns `typeid` when RTTI is available, otherwise `nullptr`. Reviewed By: swolchok Differential Revision: D14159675 fbshipit-source-id: b64ab770f12c7385bb286f658627d085e561def6
-
Yedidya Feldblum authored
Summary: [Folly] Simplify `is_negative`. Reviewed By: stevegury Differential Revision: D14141289 fbshipit-source-id: 88bfd5923d90c5ac23d431110c0f2dc6c476d868
-
Chad Austin authored
Summary: demangle.h isn't available on macOS, so only include it on Linux. Reviewed By: andrewjcg Differential Revision: D14114593 fbshipit-source-id: 59b12bfb4a52ada636b3648115dec1383f58c22f
-
Yedidya Feldblum authored
Summary: [Folly] Avoid unary negation of unsigned in `FormatValue`, which some compilers may warn against. ``` folly\format-inl.h(452): error C4146: unary minus operator applied to unsigned type, result still unsigned ``` Reviewed By: Orvid Differential Revision: D14141989 fbshipit-source-id: 3bff06fe09fd4ec22d93b72a74f086ad9c576692
-
Yedidya Feldblum authored
Summary: [Folly] Remove a legacy guard around an `exceptionStr` overload protecting against platforms lacking `std::exception_ptr`. Reviewed By: mzlee Differential Revision: D14129260 fbshipit-source-id: 2947c5b00d901ccaf58aefeef51e442121777eba
-
Yedidya Feldblum authored
Summary: [Folly] Use `bit_cast` in `Endian`. Requires moving `bit_cast` to the top of the header. Reviewed By: aary Differential Revision: D14080604 fbshipit-source-id: cae28003895f1326138459c3a951d38e27e27506
-
- 20 Feb, 2019 5 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Cut unnecessary `assume_unreachable` in `exceptionStr`. Reviewed By: meyering Differential Revision: D14129281 fbshipit-source-id: a7ae13188bb19d829a6c977243719285186dbfec
-
Alex Guzman authored
Summary: Removes references to custom patches to OpenSSL 1.0.2 for async from AsyncSSLSocket. Reviewed By: anirudhvr Differential Revision: D13908917 fbshipit-source-id: a01c1a8a7523dd7b4b95a7f701cc6b356c645332
-
Joe Loser authored
Summary: - Backporting `std::index_sequence`, `std::integer_sequence`, and other associated template aliases such as `index_sequence_for` and `make_index_sequence` is not needed as Folly requires C++14. These functions and template aliases are available in C++14 standard libraries, including GCC 4.9. Pull Request resolved: https://github.com/facebook/folly/pull/1022 Reviewed By: Orvid Differential Revision: D14119891 Pulled By: yfeldblum fbshipit-source-id: 5ba55cc91495cf488cebfa1ebe82c0ff919e9840
-
Michael Liu authored
Summary: getKeepAlive can get a KeepAlive object and return a copy of itself Reviewed By: yfeldblum Differential Revision: D14095402 fbshipit-source-id: 9d00ebecddc938e8cf02bcb7cee0642a666db349
-
Andrew Gallagher authored
Summary: I'm not entirely sure the original motivation for this, but for the current executable, we've been normalizing addresses from the virtual address referenced by the first "LOAD" program header instead of 0. This appears to be a bug, as it forms invalid addresses into the ELF file. In the case of the signal handler test, this happens to work with gold, as the initial section lookup just happens to hit in the `.debug_str` section (as opposed to the expected `.text` section), and the following name translation then undoes the base address normalization to get a correct lookup. While this works for gold, it breaks for LLD and meant we had to opt-out folly out (D13279459). Reviewed By: yfeldblum Differential Revision: D14119804 fbshipit-source-id: 53dcaeb72ed75e58f9a46b15799ce1af5ff80531
-
- 19 Feb, 2019 5 commits
-
-
Mingtao Yang authored
Summary: OpenSSL 1.1.1 adds TLSv1.3 support, but changes several semantics (e.g. assumptions on SSL_get_session() returning resumable sessions) that require some work to address. A lot of our AsyncSocket tests fail (e.g. tests for resumption will automatically fail, since TLSv1.3 has no resumption support), and would need to be updated to explicitly disable TLSv1.3. The plan is to eventually remove this after these items are addressed. Reviewed By: yfeldblum Differential Revision: D14073093 fbshipit-source-id: 181b05395ed35aaa7deb00b8968ff4d371b683f4
-
Joe Loser authored
Summary: - Backporting `std:exchange` is no longer needed as Folly requires C++14 support and C++14-compliant vendors have `std::exchange` in their standard library, notably including GCC 4.9. - Cut backport of `std::exchange` and fix call sites to explicitly use `std::exchange` where they were previously relying on `exchange` being found in the `folly` namespace. Pull Request resolved: https://github.com/facebook/folly/pull/1021 Reviewed By: Orvid Differential Revision: D14119875 Pulled By: yfeldblum fbshipit-source-id: 686a8e812f6728281b432eae1586de28d21da9dd
-
Paul Jewell authored
Summary: A specialization for reading into enums from serialized form was added a while back. Unfortunately, no corresponding change to serialize from enums into a dynamic was added. This change adds the corresponding DynamicConstructor specialization for enums to allow serializing enums and objects containing enums. Reviewed By: ot, shixiao Differential Revision: D14091417 fbshipit-source-id: 15ef8bc46843cd668b4b2c991e84167dabaf69fa
-
Yedidya Feldblum authored
Summary: [Folly] `kHasRtti` to parallel `FOLLY_HAS_RTTI`. Reviewed By: Orvid Differential Revision: D14129217 fbshipit-source-id: ce60fd0b47c64c19b515d21db55aa88ba37ca637
-
Greg McGary authored
Summary: The current predicate yields false positive for NDK r17. NDK r18 has launder without defining `__cpp_lib_launder`. NDK r19 finally gets it right by defining `__cpp_lib_launder`. r17: launder? no, `__cpp_lib_launder` undefined, `_LIBCPP_VERSION == 6000` r18: launder? yes, `__cpp_lib_launder` undefined, `_LIBCPP_VERSION == 7000` r19: launder? yes, `__cpp_lib_launder == 201606L`, `_LIBCPP_VERSION == 8000` Reviewed By: yfeldblum Differential Revision: D14098189 fbshipit-source-id: 315dba44c6474407a8f4c1d25c81fff057d5f7db
-