1. 16 Mar, 2019 4 commits
  2. 15 Mar, 2019 4 commits
    • Joe Loser's avatar
      Remove unnecessary typename in F14Table.h (#1056) · 2284a6db
      Joe Loser authored
      Summary:
      - Remove unneeded typename for a using alias in `F14Table.h`.
      Pull Request resolved: https://github.com/facebook/folly/pull/1056
      
      Reviewed By: nbronson
      
      Differential Revision: D14473219
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: a6ac26c42dbca219ce123aff00b1ee7079068007
      2284a6db
    • James Gill's avatar
      Implement c++20 contains method on F14Map and F14Set · 94a77ab3
      James Gill authored
      Summary:
      contains() is part of the c++20 spec.  This implements it, and
      refactors count() to use contains().
      
      Reviewed By: nbronson
      
      Differential Revision: D14426805
      
      fbshipit-source-id: 2435124e9c0a8eeb4e53109f0ddac884c227c781
      94a77ab3
    • James Gill's avatar
      Replace std::size_t return types in F14 to size_type · e57833b0
      James Gill authored
      Summary:
      The heterogenous count() method currently returns size_type, unlike
      similar methods (normal count(), F14Map.count() methods).  This
      standardizes it.
      
      Reviewed By: nbronson
      
      Differential Revision: D14426807
      
      fbshipit-source-id: 140be39fcda99c9f82ced3962ddcbdd1d5f53ba6
      e57833b0
    • Fuat Geleri's avatar
      Folly/Benchmark: Make user counters readable · cd62e86f
      Fuat Geleri authored
      Summary:
      When a user counter is added to benchmarks, the counter's value is written as a bare integer.
      This change gives chance to user to either still keep it reported as bare integer, a time value or a metric value.
      
      Differential Revision: D14451341
      
      fbshipit-source-id: 95e64a89c201bb385d9a403f3442fa70c2ac7e2a
      cd62e86f
  3. 14 Mar, 2019 1 commit
    • Ilya Maykov's avatar
      fix cmake rule for AsyncIOTest · fdf4feab
      Ilya Maykov authored
      Summary: Make AsyncIOTest.cpp conditionally depend on $LIBAIO_FOUND in CMakeLists.txt.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14365682
      
      fbshipit-source-id: 5ac7dc25174ab48ed1de8846956e69c7759fc9bd
      fdf4feab
  4. 13 Mar, 2019 3 commits
    • Kirk Shoop's avatar
      change definition of Executor · 19d7960b
      Kirk Shoop authored
      Summary: convert all executors in pushmi and all executor concepts and usage in pushmi to use `schedule()`
      
      Reviewed By: ericniebler
      
      Differential Revision: D13463902
      
      fbshipit-source-id: 01eac4fe0b5cd49afbd95118db769db59a3b968c
      19d7960b
    • Orvid King's avatar
      Remove AsyncUDPSocket->getFD · ce0fd826
      Orvid King authored
      Summary: It's dead.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14425042
      
      fbshipit-source-id: 098de614955eedd7ccc733858db85b997d01d9e0
      ce0fd826
    • Orvid King's avatar
      Add a SemiFuture variant of collect · f8dbfe77
      Orvid King authored
      Summary: At least make it possible to do things correctly.
      
      Reviewed By: yfeldblum, LeeHowes
      
      Differential Revision: D14426753
      
      fbshipit-source-id: 63b3572175224dbbda828981a5c9f067a5e35f33
      f8dbfe77
  5. 12 Mar, 2019 9 commits
    • Dan Melnic's avatar
      Fix typo · 7ecfb621
      Dan Melnic authored
      Summary: Fix typo
      
      Reviewed By: aary
      
      Differential Revision: D14411090
      
      fbshipit-source-id: 4ca0273201facebc815db26d23662d0d192c831f
      7ecfb621
    • Yedidya Feldblum's avatar
      Move FOLLY_DEFINE_CPO to folly/lang/CustomizationPoint.h · ca91b0ed
      Yedidya Feldblum authored
      Summary:
      [Folly] Move `FOLLY_DEFINE_CPO` to `folly/lang/CustomizationPoint.h`.
      
      And move `StaticConst` to top-level `folly` namespace and into `folly/lang/`.
      
      And Americanize the spellings of words in the comments.
      
      Reviewed By: ericniebler, lewissbaker
      
      Differential Revision: D14402315
      
      fbshipit-source-id: e13dbc9d471ee73ba0a289d375c235734334b920
      ca91b0ed
    • Jacob Lacouture's avatar
      Future<Try<T>> -> Future<T> · 4008ab21
      Jacob Lacouture authored
      Summary:
      future.then([] -> T)  currently returns Future<T>
      future.then([] -> Try<T>)  currently returns Future<Try<T>>
      
      This changes that behavior, such that future.then([] -> Try<T>) will
      return Future<T>.
      
      This is a more desirable interface for futures. It also simplifies
      implementation of a separate task (propagating exceptions more
      efficiently through chained callbacks) because it enables us to internally
      substitute lambdas returning T with lambdas returning Try<T>.
      
      Reviewed By: yfeldblum, ryantimwilson
      
      Differential Revision: D14318624
      
      fbshipit-source-id: 51363e82ceb86bfecf87ae661188be9ca3dd8002
      4008ab21
    • Orvid King's avatar
      Remove the fd overload of AsyncUDPServerSocket->getFD() · d10d3f04
      Orvid King authored
      Summary: Instead prefer the NetworkSocket version
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14371075
      
      fbshipit-source-id: 5dfa34e21b360cae987b1ffb1dd5f5ee7b105623
      d10d3f04
    • Joe Loser's avatar
      Use common IsNothrowSwappable in F14Policy.h (#1049) · 5c000f05
      Joe Loser authored
      Summary:
      - Instead of defining our own version of whether a type is nothrow
        swappable, reuse the existing definition from `folly/Traits.h` which
        is spelled `IsNothrowSwappable`.
      Pull Request resolved: https://github.com/facebook/folly/pull/1049
      
      Reviewed By: Orvid
      
      Differential Revision: D14402098
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 5b61bd6d43db939b4499e908b26a3eb61f8929a3
      5c000f05
    • Joe Loser's avatar
      Cut remove_cvref_t from pushmi/traits.h (#1048) · 4e39e4da
      Joe Loser authored
      Summary:
      - Remove `remove_cvref_t` alias template from `pusmhi/traits.h` in favor of
        `folly::remove_cvref_t` from `folly/Traits.h` which is the same
        definition.
      Pull Request resolved: https://github.com/facebook/folly/pull/1048
      
      Reviewed By: ericniebler
      
      Differential Revision: D14402040
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: baba640e5fa410e0c48e666ea004de61b7f12a12
      4e39e4da
    • Joe Loser's avatar
      Replace Not with folly::Negation in PolyDetail.h (#1045) · f52d7dc8
      Joe Loser authored
      Summary:
      - Replace `Not` template alias from `PolyDetail.h` with `folly::Negation` from
       `folly/Traits.h` which does the same thing.
      Pull Request resolved: https://github.com/facebook/folly/pull/1045
      
      Reviewed By: ericniebler
      
      Differential Revision: D14402105
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 100347dbdc159c5217c7452b202650d58d80850c
      f52d7dc8
    • Dan Melnic's avatar
      Add timerfd based timers · ac744ab3
      Dan Melnic authored
      Summary: Add timerfd based timers
      
      Reviewed By: djwatson
      
      Differential Revision: D13809490
      
      fbshipit-source-id: 9ae70d9cc4d481245623efbc3e74ce5ff8c8f3ca
      ac744ab3
    • Yunus Rahbar's avatar
      Fix ShipIt sync · 9f5c7e1e
      Yunus Rahbar authored
      fbshipit-source-id: 4c8ab4cdad047a4311c84b302b28160dd2bc9ed4
      9f5c7e1e
  6. 11 Mar, 2019 5 commits
    • Joe Loser's avatar
      Remove extraneous libfolly.pc.in pkg-config file (#1050) · 3129c365
      Joe Loser authored
      Summary:
      - In `c2e51a8e`, i.e.
        Differential Revision: D9213429
        fbshipit-source-id: 849c0fce01d4903d3f8a7b6d196037bf950e5921
        a `libfolly.pc.in` file was placed in the `CMake` directory so that
        the `libfolly.pc` file is installed during CMake configure time.
      - Note that the `libfolly.pc.in` in the `folly` directory is not
        referenced anywhere in the build tree, and it has been superseded with
        the one in the `CMake` directory. As such, remove it.
      Pull Request resolved: https://github.com/facebook/folly/pull/1050
      
      Reviewed By: calebmarchent
      
      Differential Revision: D14400016
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 4c8ab4cdad047a4311c84b302b28160dd2bc9ed4
      3129c365
    • Yedidya Feldblum's avatar
      Cut glog include in folly/Range.h · 34592733
      Yedidya Feldblum authored
      Summary: [Folly] Cut glog include in `folly/Range.h`.
      
      Reviewed By: meyering
      
      Differential Revision: D14402324
      
      fbshipit-source-id: ed37939d69b2de4016483e7a2564d73892a64b3b
      34592733
    • Matthew Glazar's avatar
      Add missing gflags #include in tests (#1051) · 3e23fe15
      Matthew Glazar authored
      Summary:
      Some tests fail to compile because gflags.h is not included:
      
          .../folly/test/FormatOtherTest.cpp: In function 'int main(int, char**)':
          .../folly/test/FormatOtherTest.cpp:113:3: error: 'gflags' has not been declared
             gflags::ParseCommandLineFlags(&argc, &argv, true);
             ^~~~~~
      
      The tests compile without issue on Travis CI without this patch, but I
      don't see how that's possible.
      
      Include gflags.h explicitly to fix the compilation of these tests.
      Pull Request resolved: https://github.com/facebook/folly/pull/1051
      
      Reviewed By: aary
      
      Differential Revision: D14400709
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 73999a940f45511373d3922ea8eb782a27af0008
      3e23fe15
    • Brandon Schlinker's avatar
      Verify socket open when handling err messages · 45cf4bf2
      Brandon Schlinker authored
      Summary:
      When a socket is configured to read from `MSG_ERRQUEUE`, the corresponding callback handler for `errMessageCallback_->errMessage(*cmsg)` may close the socket when processing a message.
      
      If this happens, `fd_` will be set to -1 (reinitialized) and subsequent calls to `netops::recvmsg(fd_, &msg, MSG_ERRQUEUE)` will fail. On the read failure, an error will be propagated via `failErrMessageRead(__func__, ex)`. This quickly becomes confusing -- you end up with an error message `::recvmsg exited with code 9` (EBADF) with little context.
      
      This diff adds logic to check if the socket is still open before each call to `netops::recvmsg(fd_, &msg, MSG_ERRQUEUE)`. If not, we exit out.
      
      It's arguable that the application is at fault in this scenario instead of the library. However, I've found this problem and given the complexity, it seems like a scenario worth guarding against in the library.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14354115
      
      fbshipit-source-id: 49e1efbbf6cecbe3bf6db7ee6bdfcac4c8aaa8c2
      45cf4bf2
    • Yedidya Feldblum's avatar
      Migrate gdb/scripts/ to platform007 · 9c1133ff
      Yedidya Feldblum authored
      Summary: [GDB] Migrate `gdb/scripts/` to `platform007`.
      
      Reviewed By: pixelb
      
      Differential Revision: D14400956
      
      fbshipit-source-id: 59f800c8770fae78ffd51d33161bb56dc6c9ff12
      9c1133ff
  7. 10 Mar, 2019 2 commits
  8. 09 Mar, 2019 3 commits
  9. 08 Mar, 2019 5 commits
    • Matthew Glazar's avatar
      Don't clobber CXXFLAGS/CMAKE_CXX_FLAGS (#1046) · 15fff7c1
      Matthew Glazar authored
      Summary:
      CMake allows the user to add additional compilation options using
      CXXFLAGS= or -DCMAKE_CXX_FLAGS=. For example, each of the following
      commands would enable GCC security features in generated code:
      
          $ CXXFLAGS=-fstack-protector-strong cmake .
          $ cmake -DCMAKE_CXX_FLAGS=-fstack-protector-strong .
      
      Unfortunately, this doesn't work with folly's build system; CXXFLAGS and
      CMAKE_CXX_FLAGS are ignored. This makes it harder for package managers
      to tweak folly's compilation.
      
      Teach folly to respect user-supplied compiler flags instead of
      overriding them.
      Pull Request resolved: https://github.com/facebook/folly/pull/1046
      
      Reviewed By: wez
      
      Differential Revision: D14383310
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: a6c527fa1659b93bb88a4e0be617a5d9022489dd
      15fff7c1
    • Matt Joras's avatar
      Print si_code even if there's no string decoding available. · 2d22dfe3
      Matt Joras authored
      Summary: We are getting SIGILLs that end up not printing a code because it's not in the cases in `signal_reason`, which isn't particularly helpful. Additionally, the check for kernel-sourced si_codes is incorrect. Any code > 0 is from the kernel. This causes folly to log nonsense PIDs and UIDs.
      
      Differential Revision: D14388102
      
      fbshipit-source-id: 3201a16bbe9eb9038ebc5601044406f5333ec9e9
      2d22dfe3
    • Tyler John Smith's avatar
      Fix ordering issue with folly dynamic subtraction and division · 01323e31
      Tyler John Smith authored
      Summary:
      folly dynamic "double / int" (division, same goes for subtraction) results in the operands switching places (always becomes "int / double") due to int and non-int checking logic.
      
      Same applies to addition and multiplication, but order doesn't matter for those.
      
      If both dynamics are doubles or both are ints, then the problematic logic is bypassed.
      
      So this is only when you have one int and one double, and the int comes second, and the operand is subtraction or division.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14379896
      
      fbshipit-source-id: e76f1fe677fc4ea69856649ab046a5080a902b0d
      01323e31
    • Phil Willoughby's avatar
      expose share count of IOBuf · 3a0d4ce4
      Phil Willoughby authored
      Summary: Exposing this counter allows us to fairly divide the memory usage of shared IOBuf buffers among all the owners in memory-usage tracking code.
      
      Reviewed By: simpkins
      
      Differential Revision: D14361976
      
      fbshipit-source-id: 73c63c473b117198786143b421c6fcb8aed684d5
      3a0d4ce4
    • Orvid King's avatar
      AsyncUDPSocket->getFD to AsyncUDPSocket->getNetworkSocket() · f988642d
      Orvid King authored
      Summary: The file descriptor backed version will be going away.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14235700
      
      fbshipit-source-id: 990b0276b085e6bb88bf3bdb83cdeba332f75ac6
      f988642d
  10. 07 Mar, 2019 2 commits
    • Ilya Maykov's avatar
      add missing experimental/crypto tests to CMakeLists.txt · c0fc7af5
      Ilya Maykov authored
      Summary: The tests were accidentally checked in without the cmake build rules to build them.
      
      Reviewed By: kevinlewi
      
      Differential Revision: D14277667
      
      fbshipit-source-id: 5e0ff305341772232579bbde2dfc60477b4f1937
      c0fc7af5
    • Chad Austin's avatar
      build folly/experimental/symbolizer:stack_trace on mac · 6eb906e6
      Chad Austin authored
      Summary:
      ssize_t is not standard, so include <sys/types.h>. (I considered
      switching to intptr_t but decided against it.)
      
      Also, on macOS, the function appears to be called backtrace, not
      unw_backtrace.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14307252
      
      fbshipit-source-id: d919bd37fea8f68b5d610e771e577c8ce385f6ec
      6eb906e6
  11. 06 Mar, 2019 2 commits
    • Orvid King's avatar
      Remove the fd overloads of AsyncSSLSocket::AsyncSSLSocket() · 7a5aa125
      Orvid King authored
      Summary: They are dead.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D14192072
      
      fbshipit-source-id: dcb95be39614d9968db9d63cd9f06396f4779a0a
      7a5aa125
    • Joe Loser's avatar
      Update Ubuntu build scripts to work with CMake build (#1042) · 82336a72
      Joe Loser authored
      Summary:
      - Update Ubuntu 14.04 build script to use CMake instead of Autotools.
      - Rename Ubuntu 14.04 build script to use hyphens rather than underscores to match POSIX standard for bash scripts.
      - The Ubuntu 14.04 build script is now meant to be run from the top-level rather than from inside the `folly` source tree.
      - Remove the Ubuntu 12.04 build scripts. It was previously only needed for Travis CI, but Travis CI isn't using it anymore.
      Pull Request resolved: https://github.com/facebook/folly/pull/1042
      
      Reviewed By: Orvid
      
      Differential Revision: D14298995
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: e3151620c0f0fa73147ab258b8750480c868c44a
      82336a72