- 11 Aug, 2018 3 commits
-
-
Victor Zverovich authored
Summary: This fixes various include and dependency issues found when building `folly/compression/test/facebook:compression_fuzz_test.so` with modules. Reviewed By: yfeldblum Differential Revision: D9271280 fbshipit-source-id: e0ae46c2a6d95c8f4d0a66e3dc20e1d045ffc6a4
-
Matthieu Martin authored
Summary: This reverts my previous change "RequestContext: replace F14FastMap by std::unordred_map" Reviewed By: ot Differential Revision: D9280469 fbshipit-source-id: ad3f4d5f520e88ab0e0fab0506d87bab2cd10d41
-
Yedidya Feldblum authored
Summary: [Folly] Epochs for `BufferedRandomDevice`. To maintain the security property that the thread-local object is reset after fork in the child process, but in an async-signal-safe way. This approach has the downside that it makes the fast path larger by 3 instruction (`mov`, `cmp`, `jne`). Reviewed By: djwatson, ot Differential Revision: D9256536 fbshipit-source-id: dc34e1aeb75e1009610d47fe4ef7030a4a0e2a90
-
- 10 Aug, 2018 11 commits
-
-
Yin Qiu authored
Summary: The following code won't compile with g++ 8.2 when `-Wall -Werror` is turned on (`-Werror=class-memaccess` implied): std::memcpy(dst, src, n * sizeof(Value)) where in `VectorContainerPolicy`'s case, `Value` is typically an `std::pair`, which indeed has no trivial copy-assignment. Pull Request resolved: https://github.com/facebook/folly/pull/907 Reviewed By: yfeldblum Differential Revision: D9244951 Pulled By: Orvid fbshipit-source-id: 26787d43dab7d4212c5975a509dfd8703b0a157c
-
Lee Howes authored
Summary: Overall plan to modify Future<T>::then to be r-value qualified and use Future<T>::thenTry or Future<T>::thenValue. The goal is to disambiguate folly::Future and to improve type and lifetime safety of Future and its methods. Reviewed By: yfeldblum Differential Revision: D9273440 fbshipit-source-id: f1e1b91fd8fe02020a5919b9193644e256413982
-
Yedidya Feldblum authored
Summary: [Folly] Cut `FOLLY_HAS_INCLUDE` now that all supported platforms have it. MSVC2015 and gcc4.9.1 don't support it, but folly no longer targets them. Reviewed By: simpkins, Orvid Differential Revision: D9262258 fbshipit-source-id: e518492acd7c11374ab971b26adb642bce7b19c3
-
Victor Zverovich authored
Summary: Fix various dependency issues in folly for modular build. Reviewed By: yfeldblum Differential Revision: D9246772 fbshipit-source-id: 32afa48db3222b906077376c54e1301c8366d97d
-
Ajanthan Asogamoorthy authored
Summary: Move Password in file from wangle to folly Reviewed By: ngoyal, yfeldblum Differential Revision: D9192652 fbshipit-source-id: b883ddaf2d815b37677d9c5e924b3dd06aa0ec6b
-
Victor Zverovich authored
Summary: Move the definition of `HAZPTR_DEBUG` from code to the target to fix modular build. This is needed because `HAZPTR_DEBUG` is effectively a configuration macro affecting the API. Reviewed By: magedm Differential Revision: D9256127 fbshipit-source-id: 44deb0e915373ea88206098544b03fa335b31a22
-
Nathan Bronson authored
Summary: F14 varies its inline code according to the flags passed to the compiler. This can cause problems if libraries override compilation flags on their own, since it won't be safe to exchange F14 instances between compilation domains. This diff introduces a template specialization that varies according to the intrinsics mode and that has only a single definition (in F14Table.cpp). The member is called on a couple of cold paths (exception handling for copy construction and rehash). This makes it very likely that a compilation unit that uses F14 and is compiled with different compiler flags than F14Table.cpp will get a linker error. Reviewed By: yfeldblum Differential Revision: D9200315 fbshipit-source-id: 9cbca18eef0ddd6efcf6d9d6057eda2400f8653c
-
Andrew Gallagher authored
Summary: As indicated at https://github.com/krb5/krb5/blob/master/src/include/krb5.h, this header is deprecated, so update to use the new location (and fix lint). Reviewed By: luciang Differential Revision: D9259770 fbshipit-source-id: 6832206b8c890184f5d3369b0305048ae9c377d9
-
Tingzhe Zhou authored
Summary: Make the file name consistent with its class name Add benchmark code Attach performance data Reviewed By: magedm Differential Revision: D9250954 fbshipit-source-id: b9f9b90cb83ca319d91fe65667d0072511be5e26
-
Adam Simpkins authored
Summary: Update the CMake build files to install a libfolly.pc file so downstream projects can use pkg-config to more easily depend on folly. Reviewed By: yfeldblum Differential Revision: D9213429 fbshipit-source-id: 849c0fce01d4903d3f8a7b6d196037bf950e5921
-
Adam Simpkins authored
Summary: folly, and therefore most of our other open source projects, no longer support gcc-4.9. Drop Ubuntu 14.04 and Debian 8.6 from our CI platforms list, since the these images only support gcc 4.9. We should ideally add support for Ubuntu 18.04 soon, but I'll leave that for a later diff. Removing the older platforms is somewhat higher priority for now to get our Travis CI builds green again. Reviewed By: snarkmaster Differential Revision: D9258797 fbshipit-source-id: 3cab47a6c51b2dbe63214034240f844c85963c3d
-
- 09 Aug, 2018 15 commits
-
-
Dave Watson authored
Summary: Fork test tries to test that we don't reuse the SecureRandom buffer on fork, but it only tests one byte. This gives us probability one in 256*256 (or something like that) that we spuriously fail. Check the whole buffer instead before failing. Reviewed By: fredemmott Differential Revision: D9242788 fbshipit-source-id: b9fb809518797c439d7fe16084a04f9964a1f597
-
Adam Simpkins authored
Summary: experimental/symbolizer/ElfUtil.cpp was deleted in D9218592 so it no longer needs to be explicitly excluded in CMakeLists.txt Reviewed By: Orvid, calebmarchent Differential Revision: D9229945 fbshipit-source-id: 7d708b265573e70e4e6de88edefa2fa5b41af200
-
Adam Simpkins authored
Summary: The code in folly/experimental/symbolizer/* is already included in the main libfolly library if it is supported by the build configuration. Remove the separate libfolly_symbolizer target added in D9216312 that includes a second copy of these objects. This change effectively reverts D9216312. Reviewed By: Orvid, calebmarchent Differential Revision: D9229946 fbshipit-source-id: d8e6874eeab8c9c1aa519441bd29ae107aef03ac
-
Orvid King authored
Summary: Previously it was only capable of handling 512 byte strings under MSVC due to the constexpr recursion depth limit being 512 by default under MSVC. In the future once we have C++14 constexpr everywhere, this should just be a for loop, which should remove the limit. Reviewed By: yfeldblum Differential Revision: D9230717 fbshipit-source-id: 88bcf0ef94b200301eb41392482e910b2e8de008
-
Lee Howes authored
Summary: Separates l-value and r-value versions of parameterless then. Deprecates l-value version. Reviewed By: yfeldblum Differential Revision: D9222345 fbshipit-source-id: 3dd95b3e35bf1b06d426334c30150b049a5e0b70
-
Mikhail Karasikov authored
Summary: Bug fix: call `reserve()` trying to allocate more memory than available Pull Request resolved: https://github.com/facebook/folly/pull/888 Reviewed By: ot Differential Revision: D9234444 Pulled By: yfeldblum fbshipit-source-id: 4d12236aee745ad663d95a370d273f619f92b1bd
-
Adam Simpkins authored
Summary: Update all of the RequestContext tests to use a test fixture that helps ensure they all start from a consistent state. Otherwise tests can end up running with RequestContxt settings left over from previous test functions, which can affect their results. In particular, several tests leave behind data for the "test" key. This causes subsequent calls to `setContextData()` to not actually set new data for this key, but to instead reset its value to null. This would cause many tests to segfault since they did not check if `getContextData()` returned null before dereferencing the result. Reviewed By: yfeldblum, A5he Differential Revision: D9233617 fbshipit-source-id: ce7a7c738592305f01b16fec7796505ea192ede4
-
Adam Simpkins authored
Summary: - Fix the variable name passed to FIND_PACKAGE_HANDLE_STANDARD_ARGS() so that it matches the module name (`FindGMock.cmake`). This makes sure that the failure is detected correctly if GMock is not found. - googletest depends on pthreads, so use `find_package(Threads)` and add `Threads::Threads` to the list of required library dependencies. Reviewed By: yfeldblum Differential Revision: D9212536 fbshipit-source-id: eae6220a2dbfe777bff1ac0ee0fb4df53de16955
-
Adam Simpkins authored
Summary: Use CMake's built-in FindThreads module rather than having our own custom FindPThread.cmake module. Reviewed By: yfeldblum Differential Revision: D9212535 fbshipit-source-id: 9a652c510cb310c18547d31bd8215dedd8532a4c
-
Adam Simpkins authored
Summary: Ubuntu 18.04 (and presumably other Debian-based distributions) install dwarf.h at /usr/include/libdwarf/dwarf.h. However other platforms like Mac typically install dwarf.h directly inside include/ without a libdwarf subdirectory. Commit e66fb34c previously changed the code to look only for "dwarf.h" to support Homebrew installations of dwarfutils on Mac, but accidentally broke finding dwarf.h on Ubuntu in the process. This change should hopefully work on both platforms. Fixes: #905 Reviewed By: yfeldblum Differential Revision: D9212428 fbshipit-source-id: a4520a47718a2da25e597ac7350344931ba21634
-
Yedidya Feldblum authored
Summary: [Folly] Import `Policy` members into `F14Table` to deduplicate repeated uses of `Policy::`. Reviewed By: shixiao Differential Revision: D9176546 fbshipit-source-id: bbd32a17cca7d38b3e5d55c1840353821f4e2ddc
-
Dan Melnic authored
Summary: Add thread cached ints benchmark Reviewed By: yfeldblum Differential Revision: D9212949 fbshipit-source-id: 552aab15e7421f74b5cec3ce4abd211ab3141153
-
Eric Niebler authored
Summary: Given an exception_wrapper `ew` holding a `std::runtime_error`, the following assertion fails: ``` try { ew.handle(); } catch( std::runtime_error const & ) { } catch( std::exception const & ) { assert(false); } ``` Reviewed By: simpkins Differential Revision: D9199924 fbshipit-source-id: b6f90ccf269a1b58f0dd07723451ff34cde1d529
-
Victor Zverovich authored
Summary: Move the definition of the `ZSTD_STATIC_LINKING_ONLY` and `ZDICT_STATIC_LINKING_ONLY` macros from code to the target to fix the modular build. It is needed because these macros affect the public API of `zstd.h`. Reviewed By: terrelln Differential Revision: D9189720 fbshipit-source-id: efacc1456803900fd65159a43cf1fba2daf15673
-
Fred Emmott authored
Summary: On fork, flush the secureRandom buffer, so that we don't share entropy between the parent and child. Reviewed By: ricklavoie Differential Revision: D9196474 fbshipit-source-id: 12ff8488d814466186df61328a5f1d4000beb27f
-
- 08 Aug, 2018 11 commits
-
-
Aaryaman Sagar authored
Summary: Print benchmark results as and when they complete instead of outputting the whole thing once at the end Reviewed By: djwatson, ot Differential Revision: D9177038 fbshipit-source-id: 54898b303771f214c21163cd87b11f8e2083cdf4
-
Sven Over authored
Summary: When passing a callable to `folly::via` that returns a SemiFuture, via should return a Future. The implementation does the correct thing but the declaration's return type is not correct. This diff fixes that. Reviewed By: yfeldblum Differential Revision: D9219041 fbshipit-source-id: e61544231e7846c713ff43394c3bf5d1aae18233
-
Lee Howes authored
Summary: Late change in D9175807 removed necessary temporaries. This caused a lifetime management problem for GCC. Reviewed By: Orvid Differential Revision: D9227937 fbshipit-source-id: d5fea8a98855c6302189a7dee8cd5862d13a63a3
-
Marshall Cline authored
Summary: folly::Future's map() functions create a std::vector<Future<...>>, then use push_back to populate that vector. This could result in reallocations. Avoid that by reserving proper space ahead of the push_backs. Reviewed By: yfeldblum Differential Revision: D9204713 fbshipit-source-id: 51d9154f483a47c6196a4d4d9d4af14e4eeab6e0
-
Caleb Marchent authored
Summary: autotools-based builds are being deprecated, but they lack the symbolizer library target. Reviewed By: yfeldblum Differential Revision: D9216312 fbshipit-source-id: 585ce3c43a0800823c7de4ece99b56a1af82bae4
-
Lee Howes authored
Summary: Overall plan to modify Future<T>::then to be r-value qualified and use Future<T>::thenTry or Future<T>::thenValue. The goal is to disambiguate folly::Future and to improve type and lifetime safety of Future and its methods. * Deprecate l-value qualified calls to Future<T>::then. * Make appropriate changes to folly to make this correct without local deprecation warnings. Reviewed By: yfeldblum Differential Revision: D9175807 fbshipit-source-id: 9dc9812270ca3fb800f3a56d3aef8ef3d1d209e6
-
Yedidya Feldblum authored
Summary: [Folly] Dead Code: `folly/experimental/symbolizer/ElfUtil.cpp`. Reviewed By: calebmarchent Differential Revision: D9218592 fbshipit-source-id: e231852c068eb797c7c3a4a3955fefc38e4be2fc
-
Caleb Marchent authored
Summary: Original commit changeset: 6b5faf000e5f Breaks builds on Ubuntu Bionic, effectivly undoing the work of D3878961. Note: both autotools and CMake builds incorrect on Bionic, its just that autotools build fails explicitly where CMake fails silently; failing to detect a correctly installed libdwarf headers. The difference being that CMake does not build symbolizer. Reviewed By: yfeldblum Differential Revision: D9194639 fbshipit-source-id: c6798a0672195a70ced4898535f2f932018224d5
-
Marc Celani authored
Summary: When merging centroids together, we recalculate the mean and weight. This can sometimes lead to inaccuracy due to floating point arithmetic. In a bad scenario, this can actually lead to the digest being unsorted, which triggers assertions in the code. To fix this, sort the digest at the end of merge. Since this is bounded to 100 elements that are mostly sorted, this appears to be cheap according to benchmarks. Reviewed By: yfeldblum Differential Revision: D9213936 fbshipit-source-id: 5a2978a1b759b70206aef57245bef193aed65efd
-
Tingzhe Zhou authored
Summary: Blocking algorithm: Push: 1. push 2. increase the PTicket number 3. put (PTicket << 1) to the corresponding place in futex array. 4. if the original futex value & 1 == 1, wake up () Pop: 1. increase the CTicket number 2. spin if the corresponding CTicket futex is not ready 3. set the right bit of the CTicket futex to 1, wait on it. 4. pop Add additional control to improve the accuracy: For the top several levels (top 0 - 3 levels by default), it does not arbitrarily insert any node in the middle of the list. Thus guaranteeing no later coming lower priorities can be insert at the top levels (pruning strategy still valid for the top four levels). For the bottom levels (start from level 7 by default), if insertion requires to hold parent + child locks, it traverses the parent list to check whether the parent list has lower priority nodes than the new node. If the condition holds, insert the new node to the parent and get the last node in the parent list and insert it to the child list. Reviewed By: magedm Differential Revision: D9094903 fbshipit-source-id: fa4d31fb0c21da746570029e0e3b4b3fbeaa2024
-
Matthieu Martin authored
Summary: This code is hot enough that this might matter. Though likely over-optimization. Reviewed By: djwatson Differential Revision: D9197636 fbshipit-source-id: d9e2a90410c03a73d1754d99c72967f5dcd96c0f
-