- 24 Jan, 2018 5 commits
-
-
Petr Lapukhov authored
Summary: Merge patch is simple method of editing JSON documents. This implementation uses the recursive version documented in the RFC. Reviewed By: yfeldblum Differential Revision: D6777104 fbshipit-source-id: 554f801fe793a6fe004a8321ca41510b48225aa9
-
Aaryaman Sagar authored
Summary: as title Reviewed By: yfeldblum Differential Revision: D6565911 fbshipit-source-id: 5bed8f44520f6c1d7d6e685bf2a38cf97f734205
-
Lee Howes authored
Summary: Variable shadowing warning under specific compiler flags. This works around that by renaming. Reviewed By: yfeldblum Differential Revision: D6782706 fbshipit-source-id: 60f379f301a88ab370b056469693a198439d1b11
-
Lee Howes authored
Summary: The original code provided an unsupported alignment for 32-bit ARM builds. This change makes use of hardware_destructive_interference_size, which represents exactly what the alignment field is used for. Reviewed By: yfeldblum Differential Revision: D6782366 fbshipit-source-id: b8e2cdf6a0bafdba96d40d729535646b1f6660df
-
Yedidya Feldblum authored
Summary: [Folly] An `unsorted` tag. For contexts in which it is desired explicitly to allow, as an optimization, the passing of unsorted containers, where such would ordinarily be assumed to be a pessimization or assumed to be incorrect. Reviewed By: igorsugak Differential Revision: D6782860 fbshipit-source-id: 0bc7002306497e8bb0a62c4589d4f243da062ff8
-
- 23 Jan, 2018 9 commits
-
-
Adam Simpkins authored
Summary: Always use the `-std=gnu++14` compiler flag when performing configure-time checks on Unix-based platforms. On older versions of gcc (e.g. 5.x) some of the configuration checks incorrectly fail without this option. Reviewed By: meyering Differential Revision: D6788847 fbshipit-source-id: 6e182ff9930a42b01c23f9a0cceda0108052224b
-
Adam Simpkins authored
Summary: Use the `use -Wshadow-compatible-local` flag if the compiler supports it. This also required marking the gmock include directory as a system include directory, to prevent the compiler from warning about existing name shadowing in gmock's header files. Reviewed By: yfeldblum Differential Revision: D6787806 fbshipit-source-id: f0e5f6de543a47b19a09440c58ee2961dab23054
-
Adam Simpkins authored
Summary: On unix platforms, check to see if the compiler supports the `-faligned-new` and `-Wno-noexcept-type` flags before adding them to the compiler command line flags. Reviewed By: yfeldblum Differential Revision: D6787808 fbshipit-source-id: d34af5ae4251ad3639fdaa1a8d5cb2df4b10e986
-
Michael Lee authored
Summary: A lot of shadowed variables in tests. Simple renaming should suffice. Reviewed By: yfeldblum Differential Revision: D6786138 fbshipit-source-id: 22c1c4d7cac13b367ed534a3f1d20714150b39f9
-
Pádraig Brady authored
Summary: This clashes with std::make_optional with -std=gnu++17 giving: call of overloaded 'make_optional(std::__cxx11::basic_string<char>)' is ambiguous Reviewed By: yfeldblum Differential Revision: D6780579 fbshipit-source-id: fea8c76869e4d9b744fc3182379328a91879b1d2
-
Nick Terrell authored
Summary: This reverts commit 1249d203df610cb29c16e03f7a06ea90aea80418 bypass-lint An infra SEV is better than not reverting this diff. If you copy this password, see you in SEV Review! cause_a_sev_many_files Differential Revision: D6745720 fbshipit-source-id: b357d0d8c42388d6f322cbb8f6d8958f7f02df54
-
Nick Terrell authored
Summary: Log bytes before/after (de)compression to the logging backend. Use the codec name in the key, and for lz4/zstd also include the library version and compression level. I chose the keys such that each individual piece as <= 15 characters, to be inlined. However, I chose readability of the keys over trying to squeeze the entire key in 15 characters. Reviewed By: yfeldblum Differential Revision: D6745720 fbshipit-source-id: 1249d203df610cb29c16e03f7a06ea90aea80418
-
Nick Terrell authored
Summary: Adds an open source counters interface. Reviewed By: yfeldblum Differential Revision: D6609118 fbshipit-source-id: cc326443339b88acdd11e4184eb0c82d786732c2
-
Pádraig Brady authored
Summary: Move the coarse_steady_clock definition outside the c++ < 17 specific defines, as otherwise it's not defined when using -std=gnu++17. Reviewed By: yfeldblum Differential Revision: D6780601 fbshipit-source-id: 35cc5aa10db7d890e17bf03cc5e80803a9356d7a
-
- 20 Jan, 2018 2 commits
-
-
Maged Michael authored
Summary: Keeping all variables that interact with hazptr_domain::rcount_ signed int to avoid conversion errors. Reviewed By: yfeldblum Differential Revision: D6754593 fbshipit-source-id: e283f127a112a529a0e98eb82b6061b44aa9d2ca
-
Yedidya Feldblum authored
Summary: [Folly] Remove `unsafe` tag and add `presorted` tag. There are varieties of unsafety, so let us be more explicit about which variety of unsafety is invoked in each case. Differential Revision: D6758520 fbshipit-source-id: d198a3c7601971460f91acc7787c9da02ae283c0
-
- 19 Jan, 2018 14 commits
-
-
Adam Simpkins authored
Summary: folly/memory/Malloc.h was included but not needed. Reviewed By: yfeldblum Differential Revision: D6757598 fbshipit-source-id: 241b939724b21a94739e14335ddfaadfcd00dda3
-
Nathan Bronson authored
Summary: Somebody reported compilation issues with the closure in post()'s assert, resulting in "error: lambda-expression in unevaluated context". While I haven't been able to reproduce the problem locally, it is easy enough to work around in this case. Reviewed By: djwatson, mcallahan Differential Revision: D6759739 fbshipit-source-id: 9f8082a1e20cd9ddf626cb176542e4e861a7e702
-
Yedidya Feldblum authored
Summary: [Folly] Use `MemoryIdler` in `SaturatingSemaphore`. As is used in `Baton`. And merge the two invocations of `futexWait` and `futexWaitUntil` - `futexWaitUntil` also tests for the max-deadline internally. Reviewed By: djwatson Differential Revision: D6720045 fbshipit-source-id: a48187a6c866dbf99bb5c7283e0288b939bef2e5
-
Yedidya Feldblum authored
Summary: [Folly] Handle max deadlines in `Futex`. Some of the synchronization code internally treats deadlines which are equivalent to `time_point::max()` for the same clock as a sentinel value indicating a deadline at infinity, or equivalently the lack of a deadline. Care must be taken when converting between clocks to translate a deadline at infinity for one clock to the deadline at infinity for the other clock. Reviewed By: nbronson Differential Revision: D6720021 fbshipit-source-id: cfc230dd2d8db55297385a4afcb6d87ae4221840
-
Lee Howes authored
Summary: Adds a TimedDrivableExecutor implementation of DrivableExecutor that adds a driveUntil method. driveUntil is as drive, except that it takes a timepoint and will stop driving after that time to allow callers to time out more easily. Reviewed By: yfeldblum Differential Revision: D6658320 fbshipit-source-id: a75145748e78497ce107ae152f25729547883835
-
Yedidya Feldblum authored
Summary: [Folly] Fix copyright line in `folly/synchronization/test/ParkingLotBenchmark.cpp`. Reviewed By: andrewjcg Differential Revision: D6758502 fbshipit-source-id: cae2a79940c7c9cc58c29977141199ab1e902081
-
Adam Simpkins authored
Summary: I believe the CMake build scripts have a similar level of functionality to the autoconf-based build scripts even on Linux these days. This lets users use CMake on Linux and Mac, rather than directing them to autoconf instead. Reviewed By: meyering Differential Revision: D6745366 fbshipit-source-id: 0361eecead55ee06269192eee8d2e7286eb182b8
-
Adam Simpkins authored
Summary: The compression test code has a large number of parameterized tests that run with a large number of parameter combinations. These tests take many minutes to run. Reviewed By: meyering Differential Revision: D6745364 fbshipit-source-id: dac5d5eb4a786da7be453742fac5f92a9740e468
-
Adam Simpkins authored
Summary: CMake 3.9+ includes built-in support for gtest. This updates the CMake build scripts to make use of this if the GoogleTest module is available. Reviewed By: meyering Differential Revision: D6745369 fbshipit-source-id: 1ef978874b9a0ef2cc5f48ab1c7a0b55d0f1155e
-
Adam Simpkins authored
Summary: The CMakeLists.txt file finds the sources and headers for the main folly library by finding all *.cpp and *.h files, and then excluding specific ones. The CMakeLists.txt file was originally written for Windows builds, and it was hard-coded to exclude a number of files that do not build on Windows. This updates the file to properly check for the dependencies, and build these files if their required third-party dependencies are available. Reviewed By: meyering Differential Revision: D6745368 fbshipit-source-id: 3ee04d54147a68c482aab50d30bc9fe2a4134eef
-
Adam Simpkins authored
Summary: Update the CMake build files to perform additional checks to set configuration macros in folly-config.h I believe this should largely bring the CMake build on-par with (or even better than) the autoconf build scripts. I believe that the CMake build scripts now perform all of the checks necessary to set macros in folly-config.h correctly. The autoconf-based configure script also appears to have a number of bugs: in several places it accidentally uses different macro names than the ones checked in the source code. Some of it's checks are also broken, and fail to detect features correctly due to compilation errors in the check. Reviewed By: yfeldblum Differential Revision: D6735699 fbshipit-source-id: 5ce48f1deddd63c9d52fcccd5d5ccf6ca35e9a0d
-
Adam Simpkins authored
Summary: Both the autoconf and cmake build scripts check for `cplus_demangle_v3_callback()` and define `FOLLY_HAVE_CPLUS_DEMANGLE_V3_CALLBACK` appropriately. Reviewed By: meyering Differential Revision: D6745365 fbshipit-source-id: 3020593c60a21568781b835490b8d64913366cb9
-
Wez Furlong authored
Summary: Following on from D6755842; we don't have to repeat as much of the internals of `readFixedString`, so... don't! Reviewed By: yfeldblum Differential Revision: D6756062 fbshipit-source-id: db3e4fd62e48bf155a656ee57df84274021027f7
-
Wez Furlong authored
Summary: D6635325 exposed a long standing issue with the way that we were consuming Cursor::length, so let's fix it up! More details are in the new unit test for this! Reviewed By: spalamarchuk Differential Revision: D6755842 fbshipit-source-id: f8b20406c32682892791e7375be577d54d52e0ad
-
- 18 Jan, 2018 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Improve `SingletonThreadLocal` performance. By explicitly controlling inlining behavior. The ctor is definitionally cold - once per process - so outline. `get` is hot so inline. Uncached `get` is cold - once per thread - so outline uncached. Reviewed By: djwatson Differential Revision: D6736662 fbshipit-source-id: 4cd77c7772b46e2e3c6b2a3dc071b2b06522979e
-
- 17 Jan, 2018 9 commits
-
-
Adam Simpkins authored
Summary: - Fix the locations of some tests that have been moved. - Remove some tests that have been deleted. - Comment out some tests that depend on parts of folly that are not currently built by the CMake build scripts. - Fix a build error in CompressionTest.cpp if FOLLY_HAVE_LIBZ is not defined. Reviewed By: yfeldblum Differential Revision: D6735700 fbshipit-source-id: 89f60751fa7079b2c609d23d85fbed2a0f317b55
-
Adam Simpkins authored
Summary: DeterministicScheduleTest.cpp contained several single-line C++ comments that ended in a trailing backslash. This makes the preprocessor treat the following line as a comment as well, even if it does not start with `//`. Newer versions of gcc emit warnings about this. This changes the comment in DeterministicScheduleTest.cpp to use `/* */` to avoid this issue. Reviewed By: siyengar Differential Revision: D6735672 fbshipit-source-id: 162c735507a643ce0dbee58f1f054865237e1eba
-
Adam Simpkins authored
Summary: A couple of the test functions in AsyncSSLSocketTest maintained two EventBase objects and alternated looping between them. In some cases it would call EventBase::loopOnce() even when there was no work to do. This call normally blocks until an event is ready. This happened to work when using libevent1, but this appears mostly accidental: with libevent1 EVLOOP_ONCE causes the loop to break out even after an "internal" I/O event; in libevent2 EVLOOP_ONCE only breaks out after a non-internal event has occurred: https://github.com/libevent/libevent/commit/0617a818204397790e5e4c9bcb9e91ae5ea7817a In these tests it turns out that the internal EventBase NotificationQueue always gets triggered the very first time loopOnce() is called, preventing these tests from hanging when using libevent1. This fixes the hang when using libevent2 by removing the initial loopOnce() calls that potentially have nothing to do. This also consolidates the 2 EventBase objects into one to avoid having to alternate loopOnce() calls between them without knowing which one actually has work to do. This also fixes an issue where the code never checked the return value of `recv()` Reviewed By: yfeldblum, siyengar Differential Revision: D6735669 fbshipit-source-id: 5f36106a08866aa8908e82263f83a606399cdf79
-
Adam Simpkins authored
Summary: Update ShellTest and PromiseTest to suppress warnings about using deprecated functions in the tests for those functions. Reviewed By: yfeldblum Differential Revision: D6735670 fbshipit-source-id: 89edcb49d1eff3132398aaef88f5a5cae82e3557
-
Stepan Palamarchuk authored
Summary: Appending/prepending to IOBuf while iterating over it with Cursor is unsafe. This diff adds DCHECKs to catch such cases. Reviewed By: yfeldblum Differential Revision: D6735060 fbshipit-source-id: 7799facc52c53fabd83756ecb26a18c4ebd69677
-
Dave Watson authored
Summary: Only do the exponential loop smoothing once every 10ms. If we need it before then, do it linearly. Also, remove one of the now()s by only calling it once. Reviewed By: bmaurer, yfeldblum Differential Revision: D6690047 fbshipit-source-id: 8267c01064aabc17cb8e86eb888e6120c99a129f
-
Stepan Palamarchuk authored
Summary: Currently appending to the tail of the chain would cause the cursor advancing to the beginning of the chain, which is not correct, instead we should advance to the tail. Reviewed By: yfeldblum Differential Revision: D6734999 fbshipit-source-id: b8b2585e0475b656f7b6bf4ed39686e2ccb2e432
-
Petr Lapukhov authored
Summary: Add non-throwing version of createNetwork(), and rework existing code to throw exceptions based on error codes returned by non-throwing version. Reviewed By: yfeldblum Differential Revision: D6705425 fbshipit-source-id: 268ff64c36e7cceeea3463248d18b7b2cb81390e
-
Yedidya Feldblum authored
Summary: [Folly] Fix Build: `folly/synchronization/test/ParkingLotBenchmark.cpp` (`sign-compare`, `unused-variable`). Reviewed By: djwatson Differential Revision: D6733586 fbshipit-source-id: 04b82110e8e0b655e6b3994dbca3bd0b4bd57eef
-