- 05 Sep, 2017 1 commit
-
-
Stella Lau authored
Summary: - Current behavior compresses empty strings to empty strings. This is undesirable as decompression using underlying decompressor (side-stepping the codec) will fail. This change passes empty strings to the underlying compressor - Decompressing empty string -> empty string was kept for backwards compatibility - Fix `getUncompressedLength` for zlib Reviewed By: terrelln, yfeldblum Differential Revision: D5740034 fbshipit-source-id: 5a747ea4963dad872103209aa4410197f6c605db
-
- 02 Sep, 2017 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix `constexpr_min` after {D5739715} (facebook/folly@6d7c6d55f0f4b7b75607608ef9037db58083368f). Add new unit-tests for `constexpr_min` and `constexpr_max` to avoid silly mistakes like this in the future. It was defined recursively in terms of `constexpr_max` rather than, as intended, in terns of `constexpr_min`. HT Mandar12. Reviewed By: Orvid Differential Revision: D5761831 fbshipit-source-id: 2dad5833e05679232b3c529d33325a0205c2e4e4
-
- 01 Sep, 2017 2 commits
-
-
Igor Sugak authored
Reviewed By: meyering Differential Revision: D5757469 fbshipit-source-id: ad70c47251993c79a502d30f312534e28c9241d4
-
Kyle Nekritz authored
Summary: Fulfilling starts destroying the evb in another thread which races with the socket closing on the evb. Reviewed By: siyengar, ngoyal Differential Revision: D5755271 fbshipit-source-id: ace37eee63e684c97ca0fe503293eee83514e0ac
-
- 31 Aug, 2017 3 commits
-
-
Aravind Anbudurai authored
Summary: title Reviewed By: yfeldblum Differential Revision: D5751299 fbshipit-source-id: d3967c2499da9a2c98c2862b9bdc9994c12edc76
-
Yedidya Feldblum authored
Summary: [Folly] Extract non-portability `constexpr` math functions to new header. This new header, `folly/ConstexprMath.h`, is specifically for compile-time-computable math functions. We start with `min`, `max`, `abs`, and `log2`. Included substantive changes: * Add new tests for `constexpr_strlen`, which remains in the portability header. * Make `constexpr_min` and `constexpr_max` variadic. * Make `constexpr_log2` tail-recursive, remove `const_log2` in `FixedString.h`, and move the related comment. Reviewed By: Orvid Differential Revision: D5739715 fbshipit-source-id: 29d3cc846ce98bb4bdddcc8b0fa80e4d32075fe0
-
Philip Jameson authored
Summary: When trying to build with targets files on OSX, I couldn't use the symbolizer because it needs StackTrace, which requires libunwind and elf. This makes it so that we only build on linux for now. This also makes it so that we set FOLLY_USE_SYMBOLIZER in autoconf, since that wasn't set before. Does a few things surrounding usage of the symbolizer library: - Introduce FOLLY_USE_SYMBOLIZER in folly-config.h and USE_SYMBOLIZER as an AM definition -- Filter some code out of init and some other random libs that optionally need the symbolizer - Fix libdwarf detection. Previously on a fresh ubuntu container, we didn't find libdwarf/dwarf.h, so we stopped trying before looking at dwarf.h Reviewed By: yfeldblum Differential Revision: D5644352 fbshipit-source-id: f0a3580c41122e5e8fdfd17a9fdbb0921be21401
-
- 30 Aug, 2017 6 commits
-
-
Michael Lee authored
Summary: <array> is sometimes necessary for using `std::array`. Fix up Reviewed By: aary Differential Revision: D5740866 fbshipit-source-id: 13bafadd26fdd0f2eff3513115b43811682e7cda
-
Aaryaman Sagar authored
Summary: Code was breaking in versions of C++ where constexpr functions are required to have one line bodies Reviewed By: yfeldblum, mzlee Differential Revision: D5739062 fbshipit-source-id: 6c509f1daf77751d33ce9c173a0d7f1d3bd2a006
-
Maged Michael authored
Dynamic MPMCQueue: Eliminate cases of enqueue indefinite blocking and failure in the extensible version that impossible under the default pre-allocated version Summary: Currently under the extensible version (Dynamic == true), some enqueue operations may block indefinitely or fail (return false) even though such outcomes are impossible under the default (Dynamic == false) pre-allocated version. This diff eliminates such cases by changing the algorithms for the extensible version. Some of the high-level changes: - The offset formula for an expansion guarantees that no enqueue operation left behind in a closed array does not have an existing dequeue operation that unblocks it. The old formula was 1 + max(head, tail). The new formula is max(head, current offset) + current capacity. - Conditional operations validate state after the success of CAS. Reviewed By: djwatson Differential Revision: D5701013 fbshipit-source-id: 4917c5b35b7e2a2fddfd2e11fb5aeb478502137c
-
Yedidya Feldblum authored
Summary: [Folly] `constexpr_log2`. Useful for anything that needs to compute log2 at compile time. Reviewed By: eduardo-elizondo Differential Revision: D5734727 fbshipit-source-id: 8eab7991eea2104570eecd8e84ede6160bb0b549
-
Yedidya Feldblum authored
Summary: [Folly] Shrink `MicroSpinLock.h` transitive includes and inline methods. Reviewed By: meyering Differential Revision: D5732693 fbshipit-source-id: 386816f0d97c145ff8a4180d41c8a682694aa6cb
-
Xiao Shi authored
Summary: This comment is outdated. Reviewed By: yfeldblum Differential Revision: D5730049 fbshipit-source-id: f6088c4354210fafb019656cdf8246abf90fbc06
-
- 29 Aug, 2017 7 commits
-
-
Richard Meng authored
Summary: Before this change, future context will not be cleaned up until timekeeper times out. These objects has been occupying memory when more shorter future tasks are registered. Switch to use weak ptr to hold context, so that context objects are deallocated as soon as the future completes (or times out) Reviewed By: yfeldblum Differential Revision: D5692040 fbshipit-source-id: b3b74a29b2ccafef6c4a06011699b069feb3a847
-
Andrew Krieger authored
Summary: Let clients choose whether to use fibers or not, but default to the same autodetected setting as prior logic. Reviewed By: yfeldblum Differential Revision: D5585605 fbshipit-source-id: 9a4bf9f9bc23b4e15601f30c40602f21798c9685
-
Andrew Krieger authored
Summary: MSVC warns this might be used but uninitialized. Force the struct to be zero initialized. Reviewed By: yfeldblum Differential Revision: D5585320 fbshipit-source-id: 9454a2a4a66c7689f42b1eb211dc57f5d3b88fea
-
Andrew Krieger authored
Summary: Off-by-one error in DIR::open() would result in paths not ending in a trailing separator to fail to open. Fix the arithmetic. Reviewed By: Orvid Differential Revision: D5579657 fbshipit-source-id: 79507bc398549033eb26b2ffa788d66241deb623
-
Andrew Krieger authored
Summary: This implementation should suffice for MSVC. _ReadWriteBarrier() generates no instructions but instructs the compiler not to reorder accesses around it, and we have to rely on MSVC not currently having any other optimizations for const members to worry about. Reviewed By: yfeldblum Differential Revision: D5723782 fbshipit-source-id: a68caa4673a5c410b326c1d2e3c0752bd945f4a6
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/experimental/exception_tracer/`. Reviewed By: Orvid Differential Revision: D5722994 fbshipit-source-id: 2e52c920119ba58d123aaffd59491d7561c37c17
-
Christopher Dykes authored
Summary: This reverts commit 1744685ff9fa8d3620aef2545c8fe3ebc481df06 bypass-lint Differential Revision: D5714883 fbshipit-source-id: 0cdb5f2cac095a9202cb1310ff8e75e75b4afd74
-
- 28 Aug, 2017 3 commits
-
-
Christopher Dykes authored
Summary: This enables the last of the magic internally. Reviewed By: yfeldblum Differential Revision: D5719795 fbshipit-source-id: fb59a0d7873e9a9f3b73f556b42b647091ca7e67
-
Yedidya Feldblum authored
Summary: [Folly] Shrink `MicroSpinLock.h` transitive includes and inline methods. Reviewed By: Orvid Differential Revision: D5714883 fbshipit-source-id: 1744685ff9fa8d3620aef2545c8fe3ebc481df06
-
Patryk Zaryjewski authored
Summary: Currently FunctionScheduler calls that cancel/restart timer for a function of particular id are O(n). By introducing hashmap that translate id to pointer of particular RepeatFunc, we make it O(1). Reviewed By: simpkins Differential Revision: D5668557 fbshipit-source-id: e5e8bf9bd75b6d5d42f0bfa398d476703e5801fa
-
- 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 3 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
-