- 15 Jul, 2017 1 commit
-
-
Christopher Dykes authored
Summary: Because these are always 64-bit values. This hasn't actually been an issue but is the correct thing to do. Reviewed By: yfeldblum Differential Revision: D5425658 fbshipit-source-id: 5bc204b3d1af2c710bd8b1665211d2971ccf7be7
-
- 14 Jul, 2017 8 commits
-
-
Christopher Dykes authored
Summary: It is a non-portable include as it is include-order sensitive. Reviewed By: yfeldblum Differential Revision: D5427885 fbshipit-source-id: 50850064fc8fa3ed6f8fc235f31edbda4144663c
-
Christopher Dykes authored
Summary: MSVC has issues with the way it was written, so just use the standard version instead. Upstream bug report: https://developercommunity.visualstudio.com/content/problem/80433/incorrect-error-c2462-cannot-define-a-type-in-a-ne.html Reviewed By: yfeldblum Differential Revision: D5427029 fbshipit-source-id: ae3737175d5b8e9738ed6b9573412d1d566b0e1c
-
Christopher Dykes authored
Summary: `__gnu_cxx::sfmt19937` is 3.5x faster than `std::mt19937` according to the benchmark. Reviewed By: yfeldblum Differential Revision: D5410705 fbshipit-source-id: d503544a0b9b1b0c614a27466a297a4e6902fc15
-
Phil Willoughby authored
Summary: Previously it generated a warning if compiled with -Wover-align because its alignment exceeded alignof(std::max_align_t). This also meant that heap-allocated LifoSem objects were not guaranteed to be on their own cache-line, potentially degrading performance. This change adds padding before the important part of the LifoSem (to match the existing after-padding) and reduces its alignment requirement. Reviewed By: yfeldblum Differential Revision: D5380700 fbshipit-source-id: 7fdd593a58a2e0c7b03df11152ee4bb66f57e717
-
Christopher Dykes authored
Summary: It was shadowing locals. Reviewed By: yfeldblum Differential Revision: D5422356 fbshipit-source-id: 91da6fcf0b2ea3821394068e9847976e04f43ca9
-
Eli Lindsey authored
Summary: Some implementations of getnameinfo are triggering reverse DNS lookups despite us specifying NI_NUMERICHOST. Avoid all that by instead producing our string representations of v6 addresses manually via inet_ntop and if_indextoname. Reviewed By: yangchi Differential Revision: D5415477 fbshipit-source-id: 67853a85db6517d374d94c8261e56400f4c00fc5
-
Phil Willoughby authored
Summary: The C++ standard doesn't guarantee alignment of things bigger than std::max_align_t which is typically 16 bytes. This means that to ensure something is the only thing on a cache-line we need padding on each side of it to exclude anything else. CachelinePadded<T> will now be larger than it was before, and reinterpret_cast to/from T is no longer valid. Reviewed By: yfeldblum Differential Revision: D5380849 fbshipit-source-id: 20f275c875eb4bede4aef19ac7224913ce9b6d51
-
Xiangyu Bu authored
Summary: Break a few long lines in folly::SSLContext. Reviewed By: yfeldblum Differential Revision: D5418517 fbshipit-source-id: fc2ac310d1f931a1f8a4af077aa5cde347b1042d
-
- 13 Jul, 2017 6 commits
-
-
Christopher Dykes authored
Summary: There were references to things that don't exist or have an equivalent on Windows. Reviewed By: yfeldblum Differential Revision: D5099802 fbshipit-source-id: 9a5a2d0e5cb3a33ecad00bf8a2e1c13315a015cc
-
Christopher Dykes authored
Summary: The file itself will still get removed when `TemporaryFile` is destroyed, but closing it before then allows it to be read when on Windows, because `TemporaryFile` opens the temporary file with `O_EXCL`, so Windows denies read access of the file to everything else. This is needed to fix one of the AsyncFileWriter tests on Windows. Reviewed By: simpkins Differential Revision: D5307719 fbshipit-source-id: bd65962cc3d34f382cc7b0b55dbf2659ed5ebfce
-
Christopher Dykes authored
Summary: There are bugs in MSVC's codegen that causes `StringPiece`'s evaluated in a `constexpr` context to have the start pointer point to one copy of the string and the end pointer point to another. Using the `StringPiece` at compile-time is perfectly fine, it just has the wrong values at runtime. We can work around this issue by enabling string pooling in all modes. Original bug report: https://developercommunity.visualstudio.com/content/problem/3216/c-incorrect-data-duplication-in-constexpr-context.html Reviewed By: yfeldblum Differential Revision: D5409753 fbshipit-source-id: 24e2b343209ba7c86d0dd39a1358d0abe9ee6d4d
-
Ankit Shah authored
Summary: Added getters and setters for ECDSA_SIG to allow for compatibility between OpenSSL 1.1.0 and 1.0.2 Reviewed By: knekritz Differential Revision: D5408934 fbshipit-source-id: 7a3d9df774728c81270cc4da34c75202018e430d
-
Yedidya Feldblum authored
Summary: [Folly] Sort `#include` lines, as required by `clang-format`. Reviewed By: igorsugak, Orvid Differential Revision: D5405153 fbshipit-source-id: 3bb1c2b84271bcf7a195e07680777dbfdd499823
-
Eli Lindsey authored
Summary: This reverts commit 69b0171a9a54738045f9041381aea5512b17eb13 Differential Revision: D5408572 fbshipit-source-id: 3ec8ce96575b632fb134be99cc0d2538a01a7d85
-
- 12 Jul, 2017 4 commits
-
-
Eli Lindsey authored
Summary: Some implementations of getnameinfo are triggering reverse DNS lookups despite us specifying NI_NUMERICHOST. Avoid all that by instead producing our string representations of v6 addresses manually via inet_ntop and if_indextoname. Differential Revision: D5408572 fbshipit-source-id: 69b0171a9a54738045f9041381aea5512b17eb13
-
Mickey Phoenix authored
Summary: The documentation for folly::to<double>()'s handling of unparseable inputs (including "") is incorrect. Additionally, the documentation does not document to<double>()'s handling of the inputs "NaN", "-NaN", "inf", "infinity", "-inf", and "-infinity". This corrects the documentation. See https://github.com/facebook/folly/blob/3272dfdbe243e0ac02acca1dd82bc391d1da079a/folly/docs/Conv.md under the heading "Parsing floating-point types" for the incorrect documentation as rendered. Reviewed By: yfeldblum Differential Revision: D5367656 fbshipit-source-id: 22b38e2bb85d2e647975798360ead39eed6caae8
-
Tom Jackson authored
Summary: This avoids having exceptions occur while constructing hashtables. Reviewed By: ot, yfeldblum Differential Revision: D5384419 fbshipit-source-id: ba2de8cffa46df550bdc62abbe529801249e45cd
-
Phil Willoughby authored
Summary: Should now work on GCC-compatible compilers, and all other compilers which don't attempt any inter-TU optimizations. Moved out of Utility.h because it now requires a supporting .cpp file and some clients presume that Utility.h can be used header-only. Reviewed By: ot Differential Revision: D5381042 fbshipit-source-id: 7e954fed47de4386c85d46a61d56a8fe7fc516f4
-
- 11 Jul, 2017 8 commits
-
-
Christopher Dykes authored
Summary: This reverts commit bc725838dc7f62d030c7e68bc6d229042df2b46c Differential Revision: D5393697 fbshipit-source-id: 4b9ef1e733b0ad73e6deea7ac8a52dfe785b4f2b
-
Benjamin Renard authored
Summary: This revision adds a helper method in folly/Checksum.h, that returns the same crc32 value as php's built-in implementationa and boost::crc_32_type. folly's default implementation only differs from the final xor (with 0xFFFFFFFF for boost and php, 0 for folly), which is added here. Reviewed By: djwatson Differential Revision: D5396671 fbshipit-source-id: 14874af2d5a80408c772875142de6e340ce01038
-
Christopher Dykes authored
Summary: `__gnu_cxx::sfmt19937` is 3.5x faster than `std::mt19937` according to the benchmark. Reviewed By: yfeldblum Differential Revision: D5393697 fbshipit-source-id: bc725838dc7f62d030c7e68bc6d229042df2b46c
-
Peter DeLong authored
Summary: The fiber command can now be run on a value of type folly::fibers::Fiber or a value of type folly::fibers::Fiber* Reviewed By: andriigrynenko Differential Revision: D5393491 fbshipit-source-id: 1f48e08288f75c59852c939062db616eb06cea73
-
Giuseppe Ottaviano authored
Summary: `Baton` is more lightweight than a mutex+condition variable, and the code is much simpler. This was actually the original implementation, but the dependency had to be dropped because `Baton` was unsupported on some architectures. That is not a problem anymore. Also reorganize the includes to follow the conventions. Reviewed By: andriigrynenko, yfeldblum Differential Revision: D5396631 fbshipit-source-id: d782cf271eb35723aaeb3c372e1c1dafeaaf0f0a
-
Xiangyu Bu authored
Summary: The function `setCipherList` seems to forget to update the data member `providedCipherString_`. This diff updates `providedCiphersString_` at a single place `setCiphersOrThrow()`, and adds two test cases to make sure the derived `SSL*` uses the desired set of ciphers. Reviewed By: yfeldblum Differential Revision: D5372758 fbshipit-source-id: 8144ab3bc518b2b9fa8090af62f3bd6475bbbece
-
Yedidya Feldblum authored
Summary: [Folly] Compute masks in `IPAddressV6`. At runtime, instead of storing a 2Kb masks array in the binary. Reviewed By: WillerZ, ot Differential Revision: D5369901 fbshipit-source-id: 031a4eeda1670021236d8ab97f6e85e753675ae5
-
Peter DeLong authored
Summary: Add a fiber_address(fiberManager, index) function so that you can programatically get the address of a given fiber in a fiberManager Reviewed By: andriigrynenko Differential Revision: D5377605 fbshipit-source-id: b9504f7d253e8f702e9329c6f08ff406d4296a6e
-
- 10 Jul, 2017 2 commits
-
-
Fred Emmott authored
Summary: refs hhvm/packaging#128 Reviewed By: anirudhvr Differential Revision: D5380271 fbshipit-source-id: 1cc206d9970b843c3582556096f3ceabeb8d01f6
-
Eli Lindsey authored
Summary: Making the exception text more useful by adding getnameinfo's error code and the v6 scope id Reviewed By: yangchi Differential Revision: D5389137 fbshipit-source-id: e6b9b4edd7dd1859e0ed4d784b2f89a60a701955
-
- 09 Jul, 2017 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] In-place construction for `Future`. Using `in_place` as the first argument. Avoid constructing a contained object and then moving it into the `Future`, which may be more expensive, by providing an unambiguous way to specify perfect forwarding. And a matching overload of `makeFuture` for no particularly good reason. Differential Revision: D5362324 fbshipit-source-id: e612965f34ed0fae5fac17db631f7eab9984c696
-
- 08 Jul, 2017 1 commit
-
-
Alan Frindell authored
Summary: as in title Reviewed By: yfeldblum Differential Revision: D5382995 fbshipit-source-id: 87534e6092f167399943287182ec61ae21e608c6
-
- 07 Jul, 2017 3 commits
-
-
Eric Niebler authored
Summary: `constexpr` All The Things! Although only very recent versions of modern compilers support this, FunctionRef can and should be `constexpr` (demonstration here: https://godbolt.org/g/NJ72RG). This change also changes the `FunctionRef` constructor such that it no longer participates in overload resolution if the argument is not callable with the specified arguments. In addition, it perfectly forwards the callable object such that if it was an rvalue when it was passed to the constructor, it will be invoked as an rvalue in `operator()`. Reviewed By: yfeldblum Differential Revision: D5366720 fbshipit-source-id: bc64053213478aab5a5bd5950c7b2d6f364d86bd
-
Jiahao Li authored
Summary: Provides a `make_mock` interface to `folly::LeakySingleton` for unit test mocking. Reviewed By: andriigrynenko Differential Revision: D5382003 fbshipit-source-id: 9ab81dd64703f4f02772bfb8c85e020680abcc85
-
Christopher Dykes authored
Summary: Because MSVC is not happy about how it's written now. Reviewed By: yfeldblum Differential Revision: D5378740 fbshipit-source-id: 8b77d1a05da75b331e0cb72bd0ad859b89e54b36
-
- 06 Jul, 2017 2 commits
-
-
Christopher Dykes authored
Summary: OpenSSL 1.1.0 drops support for SSLv2, and in doing so also removes the define that user-code used to guard on whether SSLv2 was supported. This adds the define to the portability header to indicate SSLv2 is not supported. Reviewed By: anirudhvr Differential Revision: D5376869 fbshipit-source-id: 04708db138dc13e7747cfff582f4cfed291648b3
-
Phil Willoughby authored
Summary: Backport C++17's `std::launder`. Reviewed By: yfeldblum, ot Differential Revision: D5370531 fbshipit-source-id: b7cc6701d082b6c4855fa77bb644e151ce882deb
-
- 05 Jul, 2017 4 commits
-
-
Adam Simpkins authored
Summary: The TestDoubleWidthTooBig test was performing an exact equality check on two double values. This equality check fails when run on 32-bit platforms. Replace the EXPECT_EQ() check with EXPECT_NEAR(), and simply check that the two values do not differ by more than 1e-14. Reviewed By: Orvid Differential Revision: D652767 fbshipit-source-id: 7bf7ed560a4180a2e2d07a6050d1df18e18d1eea
-
Adam Simpkins authored
Summary: Update LogLevel's operator+() to consist only of a single return statement. This is required for pre-C++14 compiler support. Reviewed By: yfeldblum Differential Revision: D5368256 fbshipit-source-id: 9ecbcde5edd1d0b3e7580d6263ad926e44908219
-
Yedidya Feldblum authored
Summary: [Folly] `Promise<T>::makeEmpty()` and `Future<T>::makeEmpty()`. These can currently be done by creating, and then moving away from, regular promises and futures. But that allocates; this is semantically equivalent but more efficient. Differential Revision: D5368339 fbshipit-source-id: de054cfc75c701c5d39aac64d9a2949cd34b1896
-
Jim Meyering authored
Summary: Avoid this false positive from clang: folly/futures/detail/Core.h:369:15: error: variable 'priority' may be uninitialized when used here [-Werror,-Wconditional-uninitialized] Reviewed By: yfeldblum Differential Revision: D5369916 fbshipit-source-id: 49649417d1b799cc3945cba456b42ab438ad2ddc
-