- 20 Jul, 2017 4 commits
-
-
Subodh Iyengar authored
Summary: Add non null annotation to folly to help with linters complaining when a pointer could be null, however it never is. Reviewed By: yfeldblum Differential Revision: D5453255 fbshipit-source-id: cf7ccbcc86d171ef4f6d373b6f751f709e4587b1
-
Yedidya Feldblum authored
Summary: [Folly] Move futures helper types into `folly::futures::detail`. From `folly::detail`, where it would be easier to collide. Especially for names like `Core`. Reviewed By: WillerZ Differential Revision: D5460766 fbshipit-source-id: 3f7bff784bbb89c7c86d2f1824323d71321c7ad6
-
Benjamin Reesman authored
Summary: It is possible in certain cirucmstances for the cxxabi reflection code in `ExceptionTracer` to fail to cope with exceptions that we've seen in production and it currently aborts the process in that case. This diff switches this to `DFATAL`/`DCHECK`. Reviewed By: yfeldblum Differential Revision: D5431445 fbshipit-source-id: c3d68372c2fadbb518f78fe99e817db611953d22
-
Tom Jackson authored
Summary: The pattern `mapped([](auto&& i) { ...; return std::move(i); }` is quite common. Evidently people need some good mechanism to just observe or possibly mutate items in pipelines. Note that this is still lazy, it is only called when the pipeline is run. Reviewed By: yfeldblum Differential Revision: D5457196 fbshipit-source-id: 3a892b8895e02dd8fcd6a7fd4d3b27063d1b071f
-
- 19 Jul, 2017 5 commits
-
-
Victor Gao authored
Summary: Currently gcc does not support attributes declared using square brackets well and some builds might break because of this. Since `__attribute__((...))` works for both clang and gcc, we should switch to it for now. Reviewed By: yfeldblum Differential Revision: D5456734 fbshipit-source-id: d7a8bf1389afc5d60604f22d37c93611dc46259c
-
Dave Watson authored
Summary: Current folly version uses a single crc32c. crc32c has a latency of 3, so pipelining three in a row makes it nearly 3x faster (for data all in cache). Reviewed By: yfeldblum Differential Revision: D5418228 fbshipit-source-id: d3a250e1b4fe1f0bc99b44c660df94cf233aebd6
-
Xiangyu Bu authored
Summary: Add paths of SSLOptions.{cpp, h} to folly/Makefile.am. Reviewed By: Orvid Differential Revision: D5453343 fbshipit-source-id: ba0b8b065ed964dfff1757533db17e31aa672e83
-
Eli Lindsey authored
Summary: As written, this str() method depends on the current state of the host - if an interface disappears (as is commong with eg. mobile, ipsec, etc.) then attempting to generate a string representation of this v6 address will currently throw an exception. Instead, we're going toignore the lookup failure and append the index i; this form is interchangeable, though slightly less legible. Reviewed By: yfeldblum Differential Revision: D5443618 fbshipit-source-id: bbd3b4edaee8098671140af7400377d5e2b1937b
-
Dave Watson authored
Summary: A folly::atomic_shared_ptr version of CoreCachedSharedPtr. Reviewed By: yfeldblum Differential Revision: D5389603 fbshipit-source-id: 942700cd66f5f5219418f4c6112146dc40351aa0
-
- 18 Jul, 2017 7 commits
-
-
Christopher Dykes authored
Summary: Windows doesn't have `net/if.h` and instead needs `iphlpapi.h` included, and `ntddndis.h` is ultimately needed to get the definition of `IF_NAMESIZE`. Reviewed By: yfeldblum Differential Revision: D5438188 fbshipit-source-id: 48a786f7d10ca4b8479bb20b257ed1e857431654
-
Victor Gao authored
Summary: This adds a macro `FOLLY_MAYBE_UNUSED` in `folly/CppAttributes.h` that can be used to suppress `-Wunused` warnings. Reviewed By: yfeldblum Differential Revision: D5444742 fbshipit-source-id: b16e8efefd76282498ad6114bac9548064cf38d5
-
Xiangyu Bu authored
Summary: This diff contains some helper functions that set a `SSLContext` object with recommended lists of ciphers and signature algorithms for given scenarios. In addition, DES and CHACHA are removed from the cipher list. Reviewed By: yfeldblum Differential Revision: D5373599 fbshipit-source-id: 04de11fe90cac734caa12a80e56f70532803f94e
-
Christopher Dykes authored
Ensure the allocator types in the string keyed tests have value_types matching the value type of the collection Summary: Because MSVC's standard library implementation is now checking that this is actually the case: ``` error C2338: set<T, Compare, Allocator> requires that Allocator's value_type match T (See N4659 26.2.1 [container.requirements.general]/16 allocator_type) Either fix the allocator value_type or define _ENFORCE_MATCHING_ALLOCATORS=0 to suppress this diagnostic. ``` I've gone with the "Fix the `value_type`" approach. Reviewed By: yfeldblum Differential Revision: D5441017 fbshipit-source-id: b30403d2e48f815177cac29c4e6eec4e79583660
-
Phil Willoughby authored
Summary: 32-bit iOS environments were triggering the previous condition with LifoSem. Reviewed By: yfeldblum Differential Revision: D5442057 fbshipit-source-id: 64ee32b4ad35150c7f295a2a30bbede8fa13e79e
-
Christopher Dykes authored
Summary: Also use it to disable function_test and indexed_mem_pool_test for now while the source of their breakage is being investigated. Reviewed By: yfeldblum Differential Revision: D5440415 fbshipit-source-id: 630c884ccd2db660bfc3e4529a2d35941d3bd0d3
-
Dan Melnic authored
Summary: Lua exception handling test - start with the failing test first - code from D5431445 Reviewed By: yfeldblum Differential Revision: D5432254 fbshipit-source-id: 87f5934f28ac6ef7b55314acb3c150b9ccf6c799
-
- 17 Jul, 2017 5 commits
-
-
Christopher Dykes authored
Summary: `AsyncSignalHandler` is not currently supported on Windows, so we shouldn't be attempting to build it. Reviewed By: yfeldblum Differential Revision: D5437276 fbshipit-source-id: b3f281bfc501444bb22056860ee785a2beb9b671
-
Tommy Nguyen authored
Summary: - The __GNUC__ macro is used by other compilers like Clang and ICC, but ext/stdio_filebuf.h is a libstdc++ only extension. fixes #636 Closes https://github.com/facebook/folly/pull/637 Reviewed By: yfeldblum Differential Revision: D5434532 Pulled By: Orvid fbshipit-source-id: ce4f966a74aa9f82ae907c67807ac87ec1588173
-
Christopher Dykes authored
Summary: There is no longer anything keeping them from working on Windows. Except for that `signal(SIGPIPE, SIG_IGN)` call; that has to stay disabled. Reviewed By: simpkins Differential Revision: D5308007 fbshipit-source-id: 74a392cf484404f41a6c51e50b5a9e6fbd05b4a9
-
Yedidya Feldblum authored
Summary: [Folly] Let `exception_wrapper::handle`, when empty, show the right error message. The error message currently says that `throw_exception` cannot be called on an empty `exception_wrapper`, but should say that `handle` cannot be called on an empty `exception_wrapper`. Reviewed By: Orvid Differential Revision: D5432380 fbshipit-source-id: ffa69c7675ee332e596e861e59ea273c39fc4717
-
Yedidya Feldblum authored
Summary: CodeMod: Prefer `ADD_FAILURE()` over `EXPECT_TRUE(false)`, et cetera. The tautologically-conditioned and tautologically-contradicted boolean expectations/assertions have better alternatives: unconditional passes and failures. Reviewed By: Orvid Differential Revision: D5432398 Tags: codemod, codemod-opensource fbshipit-source-id: d16b447e8696a6feaa94b41199f5052226ef6914
-
- 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
-