- 25 Aug, 2017 5 commits
-
-
Aaryaman Sagar authored
Summary: The current definition of void_t was leading to errors because unused template parameters are ignored and SFINAE SFIAEs Reviewed By: yfeldblum Differential Revision: D5700825 fbshipit-source-id: d23336070c217e8594980d6db710cb417b014236
-
Marko Novakovic authored
Summary: The flag FOLLY_FORCE_EXCEPTION_COUNT_USE_STD forces the usage of std:uncaught_exceptions() for folly's implementation of uncaught_exceptions() Reviewed By: yfeldblum Differential Revision: D5542302 fbshipit-source-id: 2c2f507ab9dde916a160a9c370a267cdcfd7203a
-
Stella Lau authored
Summary: - Throw exception if no forward progress was made with `StreamCodec.compress()` and `StreamCodec.uncompress()` - Prevents infinite looping behavior when no forward progress was made - Update tests Reviewed By: terrelln Differential Revision: D5685690 fbshipit-source-id: 969393896b74f51250f0e0ce3af0cd4fedcab49a
-
Qinfan Wu authored
Summary: [Folly] Fix typo in `Function.h`. Reviewed By: yfeldblum Differential Revision: D5703550 fbshipit-source-id: 9dc09697fd09db6c65b1a4f2d8bdf44451b4aab2
-
Greg Nisbet authored
Summary: add public kSlotSize to IndexedMemPool, needed to support getting the approximate memory footprint of the pool (since a Slot has two atomic uint32_t's more than a bare Elem) Reviewed By: yfeldblum Differential Revision: D5690225 fbshipit-source-id: 667da6b67b339038b92b0e5acde17219fe1c85c5
-
- 24 Aug, 2017 9 commits
-
-
Aaryaman Sagar authored
Summary: Try was missing some important-ish overloads that help it behave well in rvalue contexts Reviewed By: yfeldblum Differential Revision: D5692021 fbshipit-source-id: c34627b56eb52dceaeb1f00ae930ee3bc6e00306
-
Aaryaman Sagar authored
Summary: unwrapTryTuple only accepted rvalue tuple types, this diff fixes that to work with forwarding reference tuple types. Also reduces the number of template instantiations Reviewed By: yfeldblum Differential Revision: D5682996 fbshipit-source-id: ee6dd2c20d8dfca33e769a98a6ca56fa96c73b72
-
Andrii Kryzhyk authored
Summary: Link local is not the only type of address that is based on mac address, therefore create generic function to extract mac address from EUI-64 autoconfigured addresses using the same logic as for getMacAddressFromLinkLocal Reviewed By: pallotron Differential Revision: D5697781 fbshipit-source-id: 4d69085a1d8f08e06496b8a9b638ac7ff31c6c3a
-
Peter DeLong authored
Summary: Reformatted the scripts and test files to look better and also to avoid lint warnings in the future Reviewed By: andriigrynenko Differential Revision: D5673856 fbshipit-source-id: 5818625ec14d18ef3b9b804df53949afefc3b98f
-
Stella Lau authored
Summary: - Replace LZMA2Codec with LZMA2StreamCodec - Update tests to reflect LZMA2_VARINT_SIZE requiring data length Reviewed By: terrelln Differential Revision: D5625388 fbshipit-source-id: 3303c6dda5d41f40615c87504a46923815b0b716
-
Yedidya Feldblum authored
Summary: [Folly] `Try::exception` overload for `Try&&`. For consistency with `Try::value`. Reviewed By: WillerZ Differential Revision: D5691758 fbshipit-source-id: 9904b2a5c90f4575a3c09dc012658d359d11fdd9
-
Christopher Dykes authored
Summary: `FOLLY_AARCH64` is more descriptive. (searching for A64 tells you nothing, searching for aarch64 tells you a lot) Reviewed By: yfeldblum, andrewjcg Differential Revision: D5663075 fbshipit-source-id: 8f31fde4aa394f5452305929541af6d38e4d8a37
-
shane authored
Summary: the README didn't have explicit instructions for ubuntu 16.04 LTS... now it does. i also added a section for how to handle building folly w/a custom boost installation. Closes https://github.com/facebook/folly/pull/664 Reviewed By: eduardo-elizondo Differential Revision: D5694143 Pulled By: yfeldblum fbshipit-source-id: e2786d045c3459cac49c8b052d90ca24d10f7922
-
Alison Tsai authored
Summary: Add a macro to enable optional scoped trace section functionality (user-defined). This macro will have no effect unless configured to do so. This change means that if proxygen is being upgraded, folly must also be updated. Reviewed By: mzlee Differential Revision: D5635123 fbshipit-source-id: 7db17f6ae8c0d1484cf9fad043eb42717279bd0a
-
- 22 Aug, 2017 5 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Use simple `exception_wrapper` ctor in the `Promise::setException` test. And add a new case testing with `exception_ptr`. Reviewed By: andrewjcg Differential Revision: D5683035 fbshipit-source-id: e8276166dacbe09a9a745271d636db44c593058c
-
Aaryaman Sagar authored
Summary: Adding a for_each function that allows generalized indexed and breakable iteration through ranges, these can either be runtime ranges (i.e. entities for which std::begin and std::end work) or compile time ranges (as deemed by the presence of a std::tuple_length<>, get<> (ADL resolved) functions) The function is made to provide a convenient library based solution to the proposal p0589r0, which aims to generalize the range based for loop even further to work with compile time ranges A drawback of using range based for loops is that sometimes you do not have access to the index within the range. This provides easy access to that, even with compile time ranges. Further this also provides a good way to break out of a loop without any overhead when that is not used. A simple use case would be when using futures, if the user was doing calls to n servers then they would accept the callback with the futures like this auto vec = std::vector<std::future<int>>{request_one(), ...}; when_all(vec.begin(), vec.end()).then([](auto futures) { folly::for_each(futures, [](auto& fut) { ... }); }); Now when this code switches to use tuples instead of the runtime std::vector, then the loop does not need to change, the code will still work just fine when_all(future_one, future_two, future_three).then([](auto futures) { folly::for_each(futures, [](auto& fut) { ... }); }); Reviewed By: yfeldblum Differential Revision: D5557336 fbshipit-source-id: 79fcbafa7e1671f8856f0dcb7bf7996435dadeaa
-
Mingtao Yang authored
Summary: Even though MockAsyncSSLSocket's initializes AsyncSSLSocket, which should initialize AsyncSocket, this does not actually happen because AsyncSSLSocket virtually inherits from AsyncSocket. Because of this, prior to this diff, the MockAsyncSSLSocket was not properly setting its EventBase. Reviewed By: knekritz Differential Revision: D5676596 fbshipit-source-id: 5f3c0e848179cb5eb4d2dc4921a11e7c04d7c0e0
-
Yedidya Feldblum authored
Summary: [Folly] Use `exception_wrapper::from_exception_ptr` in `Try` and `Promise`. It does just what we need; DRY. Reviewed By: andrewjcg Differential Revision: D5674663 fbshipit-source-id: 73e46df62c06736c4eaf013d05dfea819cbec515
-
Stella Lau authored
Summary: - Create interface to initialize zlib codec using specific parameters - This enables the raw inflate/deflate and auto inflate options - Add tests for option initialization Reviewed By: terrelln, yfeldblum Differential Revision: D5649980 fbshipit-source-id: fd36e8edc0e8c528cd6c9d8f39e8ef839b6acfef
-
- 21 Aug, 2017 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] `exception_wrapper::from_exception_ptr`. A handry helper for converting from `std::exception_ptr` to `folly::exception_wrapper`. Reviewed By: ericniebler Differential Revision: D5668179 fbshipit-source-id: a81a60cb22a2a697714268e027af62dd8825d2c3
-
Phil Willoughby authored
Summary: Fairly minimal API to start with. Refer to the comments for the rationale/usage. Reviewed By: yfeldblum Differential Revision: D5554854 fbshipit-source-id: 173bf7c40e70b55bf6afb8c4bc9e83d48f90b6ee
-
- 19 Aug, 2017 1 commit
-
-
Xiangyu Bu authored
Summary: A SSLOptions recommended for cipher use. Reviewed By: yfeldblum Differential Revision: D5614280 fbshipit-source-id: a6b1adfa8d168f35c7bc7d4088c4073c3f4084a5
-
- 18 Aug, 2017 4 commits
-
-
Xiangyu Bu authored
Summary: Make SSLContext::setCipherList() and SSLContext::setSignatureAlgorithms() accept std::array besides std::vector so that cipher lists in SSLOptions can be initialized POD. Reviewed By: yfeldblum Differential Revision: D5578758 fbshipit-source-id: 7e5c2e9a75600e93c89e7b13a9042434a4189384
-
Dave Watson authored
Summary: This was added several jemalloc versions ago, and is no longer a win. From microbenches in folly/test, this codepath is successful less than .5% of the time. There are a handful of other places directly using this (fbvector, IOBuf, ThreadLocal), but should probably change them individually. Reviewed By: interwq Differential Revision: D5596678 fbshipit-source-id: 354d7204f61df0eace4d98d930d0f6e06a90ffde
-
David Lam authored
Summary: TAsyncSSLServerSocket was deleted in D1806807, so we should remove these comments. Reviewed By: yfeldblum Differential Revision: D5657431 fbshipit-source-id: ca875293737ad8ba0a8c028c9bfa5651f4a6065f
-
darrenl authored
Summary: The format is incorrect in [Overview.md](https://github.com/facebook/folly/blob/master/folly/docs/Overview.md) Closes https://github.com/facebook/folly/pull/661 Reviewed By: eduardo-elizondo Differential Revision: D5657083 Pulled By: yfeldblum fbshipit-source-id: a9cedb413cbb3d455f4c1e5f785d05a33f8182c8
-
- 17 Aug, 2017 6 commits
-
-
Stella Lau authored
Summary: Left shifting `0x7f` by `63` is undefined behavior (i.e. when decoding `0xFFFF...`) Reviewed By: yfeldblum, terrelln Differential Revision: D5653353 fbshipit-source-id: c74c9f43a9bc82d15a2223df853dc533cea1478b
-
Mingtao Yang authored
Reviewed By: knekritz Differential Revision: D5632201 fbshipit-source-id: 5db380379ab6cb608922c77dd716bfc4410b2cd8
-
Neel Goyal authored
Summary: Return empty string for `getSecurityProtocol` if the socket is good and the handshake failed, otherwise "TLS" Reviewed By: knekritz Differential Revision: D5647637 fbshipit-source-id: b95cbf39e4bb7f89b1ebcbc0238c2becba7ad42a
-
Phil Willoughby authored
Summary: Specifically, the constructor `implicit Range(Iter)` is now declared and defined for all `Range` specializations. It is an error to use it, and we `static_assert`, unless `Iter` is `char const *` or `char *`. Performance effect --- Measuring compilation-time on a file that just make ~40k StringPieces, compiled with -O3. All compilers produced identical code before/after this change. * clang-trunk: 4% improvement * gcc-5: no change * gcc-4.9: 11% improvement * gcc-7.1: 5% improvement Could this possibly break any existing code? --- Yes. If you have a function that's overloaded for both `Range<char const*>` and `Range<X>` and your input object is not `char const*` and is implicitly convertible to both `char const*` and `X`: that is now ambiguous whereas before it would unambiguously pick the `Range<char const*>` overload. I don't consider this scenario likely. Why should this work? --- Using SFINAE is more expensive at compile time (with some compilation environments) than not using it. It's necessary to use SFINAE when there is an alternative function which will be used in preference when the substitution fails, but when that is not the case it is on average cheaper to make the function always exist and use static_assert to disallow the bad uses of it. A bonus is that the caller gets a more comprehensible error message. Reviewed By: nbronson Differential Revision: D5639502 fbshipit-source-id: 13469f2995a487398734f86108087fdc8e32ad71
-
Philip Jameson authored
Summary: This makes it so that the //folly:config rule can run autoconf to create folly-config - Uses cxx_genrule get compiler settings and paths to dependent libraries - Goes around a couple of oddities in the way that buck exports some of its macros - While it uses buck_cxx_library, that's okay to use outside of facebook's internal repos. Reviewed By: meyering Differential Revision: D5620729 fbshipit-source-id: 0d2d8e3bda92182dcdcd3e80cb12a3756b3816ac
-
Rushy Panchal authored
Summary: `prepareSkipTo(x`) allows the client of EliasFanoReader to "hint" that `skipTo(x)` will be called in the near future. The primary benefit of doing so is that memory which is needed for `skipTo(x)` can be prefetched to minimize cache misses incurred when calling `skipTo(x)`. Reviewed By: ot, philippv Differential Revision: D5508995 fbshipit-source-id: 4876b566256849f76193db3dc0404768aeeeb30d
-
- 16 Aug, 2017 3 commits
-
-
Shu Zhang authored
Summary: ConcurrentHashMap is a newly added feature and we wanted to test it in our enviornment, making it installable. Built & Installed on ubuntu 14 env. Closes https://github.com/facebook/folly/pull/659 Reviewed By: djwatson Differential Revision: D5629159 Pulled By: yfeldblum fbshipit-source-id: 8a40e768f3db7918a3b284059f2efa0b7ecb9aca
-
Mirek Klimos authored
Summary: Adding iterateProgramHeaders, similar to iterateSections, just iterates over program headers instead of section headers. I want this to get the size of the first PT_LOAD header. Differential Revision: D5602575 fbshipit-source-id: f73989cade20214f884571c1099761ecaa4841f7
-
Maged Michael authored
Summary: - Added `hazptr.cpp` and `memory_resource.cpp`. Moved singleton code to source. - Changed the singleton for the default `hazptr_domain` to a global. - Changed hazptr_stats singleton to a global. - Moved the thread caching calls from the hazptr_domain functions to the constructor/destructor of hazptr_holder. - Changed the TLS singletons to TLS globals. - Changed some inlining directives. - Leak the hazptr_rec-s in the default domain Reviewed By: davidtgoldblatt, djwatson Differential Revision: D5553753 fbshipit-source-id: da69eecec55c0f78fb8ef5591f9aeffee99ff3fa
-
- 15 Aug, 2017 1 commit
-
-
Alexey Spiridonov authored
Summary: add missing source files to Makefile Reviewed By: andriigrynenko Differential Revision: D5630758 fbshipit-source-id: 0f04c11b65fd3a6f4f33e34ae57c0fcba8671e97
-
- 14 Aug, 2017 3 commits
-
-
Peter DeLong authored
Summary: Keep track of which threads belong to which thread pools for use when debugging. This will be paired with a gdb script that associates threads with their thread pools Reviewed By: andriigrynenko Differential Revision: D5514729 fbshipit-source-id: 57ada4dd1aaaec5d7026e4eee05b0ec4e7434c77
-
Nick Wolchko authored
Summary: `std::optional` supports comparing with `std::nullopt`, so `folly::Optional` should do the same with `folly::none`. This also involves marking hasValue() noexcept to be the same as `std::optional`. Reviewed By: yfeldblum, WillerZ Differential Revision: D5617825 fbshipit-source-id: a4b863dd61c3a86223fb21a5b7759e7c295fd272
-
Xiangyu Bu authored
Summary: The added API will be used for storing and retrieving validation result of client cert. At some point we may change "client" to "peer" to make it generic. Reviewed By: anirudhvr Differential Revision: D5610404 fbshipit-source-id: 2feb03abc0594af4c68db33d8885ea214867148a
-
- 10 Aug, 2017 1 commit
-
-
Nathan Bronson authored
Summary: Containers should not tag their default constructor explicit, because it means that you can't return an empty one with "return {};". This diff removes the explicit tag from small_vector's default constructor. Reviewed By: meyering Differential Revision: D5602749 fbshipit-source-id: 2a4a356134c69d01e3b040719dc6ffca0fe97e75
-