1. 21 Oct, 2016 1 commit
    • Eric Niebler's avatar
      Reverted commit D3927397 · fbf4e10c
      Eric Niebler authored
      Summary: Someone debugged a runtime crash and traced it back to code like: `vector<fbstring>{{"this", "that"}}`. Presumably the user thought they were passing an initializer list of strings to the vector constructor. Instead, they constructed a single fbstring with two char pointers pointing into //different// strings. With the appropriate fbstring constructors, we can flag this as invalid at compile-time.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D3927397
      
      fbshipit-source-id: ab61e1e8498ec99592a2a7726eaf1cb6324f1455
      fbf4e10c
  2. 20 Oct, 2016 5 commits
    • Laurent Demailly's avatar
      improve documentation of custom singleton creation through an example · cbec2f20
      Laurent Demailly authored
      Summary:
      improve documentation of custom singleton creation through an example
      (from fbcode SIOF thread suggestion)
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4053322
      
      fbshipit-source-id: e9c2ef3d1ef43d52c0bf0a601d94c017047a23a3
      cbec2f20
    • Eric Niebler's avatar
      Prevent erroneous code like vector<fbstring>{{"this", "that"}} from compiling · d8d93ebf
      Eric Niebler authored
      Summary: Someone debugged a runtime crash and traced it back to code like: `vector<fbstring>{{"this", "that"}}`. Presumably the user thought they were passing an initializer list of strings to the vector constructor. Instead, they constructed a single fbstring with two char pointers pointing into //different// strings. With the appropriate fbstring constructors, we can flag this as invalid at compile-time.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D3927397
      
      fbshipit-source-id: a5f335073fb55bbb703a23f06874238cbdb5d91a
      d8d93ebf
    • Jim Meyering's avatar
      folly/Synchronized.h: avoid shadowing warnings · d2e50930
      Jim Meyering authored
      Summary:
      Nested uses of SYNCHRONIZED (and related) macros leads
      inevitably to shadowed variable declarations.
      There is already a use of FOLLY_GCC_DISABLE_WARNING(shadow)
      to disable -Wshadow in that code, but obviously, that cannot
      help with the new options, so do similar for them via
      the new FOLLY_GCC_DISABLE_NEW_SHADOW_WARNINGS.
      
      Depends on D4041696
      
      Reviewed By: markisaa
      
      Differential Revision: D4041728
      
      fbshipit-source-id: b85fb3452f6855d359f9b910abbd02cf8433f3f7
      d2e50930
    • Jim Meyering's avatar
      configure.ac: check for -Wshadow-local and -Wshadow-compatible-local · 9047707e
      Jim Meyering authored
      Summary:
      Add a configure-time check for whether -Wshadow-local and
      -Wshadow-compatible-local are supported.  If so, arrange to
      define HAVE_SHADOW_LOCAL_WARNINGS.
      
      In Portability.h, use that new symbol to choose whether
      to define FOLLY_GCC_DISABLE_NEW_SHADOW_WARNINGS, which
      used pragmas to disable those new warnings.
      
      Differential Revision: D4041696
      
      fbshipit-source-id: 520ee88ae55147a13d0a045aca7d86567a8da99d
      9047707e
    • Shubhanshu Agrawal's avatar
      add missing includes · 8b4722fa
      Shubhanshu Agrawal authored
      Summary: add missing includes in folly fibers.q
      
      Reviewed By: A5he
      
      Differential Revision: D4036830
      
      fbshipit-source-id: 4dcb87377979f2875ba31b4869c2637a82298957
      8b4722fa
  3. 19 Oct, 2016 16 commits
  4. 18 Oct, 2016 3 commits
    • Andrew Gallagher's avatar
      folly: fixes for use with `-fvisibility-inlines-hidden` · 1a48bcd9
      Andrew Gallagher authored
      Summary:
      - Annotate non-`const` static locals in inline functions which don't require
        a single copy be used globally at runtime.
      - Move implmentation from header file to source file (to avoid multiple
        copies at runtime).
      - Mark a non-stateful static local as `const` to it easy to ignore when
        searching for problematic static locals.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4010101
      
      fbshipit-source-id: 3be94a5dc5b7029a26e11b2145c0d41968979a5c
      1a48bcd9
    • Phil Willoughby's avatar
      Fix for ExceptionWrapperTest · b74eb888
      Phil Willoughby authored
      Summary:
      Some platforms do not output anything when `std::terminate` is called; this
      fixes the test on those platforms.
      
      Reviewed By: yfeldblum, jsedgwick
      
      Differential Revision: D4001052
      
      fbshipit-source-id: 671fbca9d6d22e372189b6554440c268c0cff60b
      b74eb888
    • Marcelo Juchem's avatar
      Getting fibers to build with boost 1.61 · 0b894c40
      Marcelo Juchem authored
      Summary: This diff adapts the fibers code to the modified `fcontext` API from Boost 1.61
      
      Reviewed By: Orvid
      
      Differential Revision: D4035769
      
      fbshipit-source-id: 54a97294d33c2901af78b8dec95baaefa085c4f5
      0b894c40
  5. 15 Oct, 2016 1 commit
    • Philip Pronin's avatar
      fall back to .debug_info scan in fatal signal handler · cb3a7e45
      Philip Pronin authored
      Summary:
      We've found clang might be generating incomplete `.debug_aranges`,
      while falling back to linear `.debug_info` scan is too expensive and shouldn't
      be used by default, we can afford doing that in fatal signal handler.
      
      Also optimize `exception_tracer::printExceptionInfo()` to avoid `LocationInfo`
      resolution if `NO_FILE_AND_LINE` is used.
      
      Reviewed By: luciang, ot
      
      Differential Revision: D4020989
      
      fbshipit-source-id: 84172208736b224c19206da48bcb3b5c0b2c67d0
      cb3a7e45
  6. 14 Oct, 2016 3 commits
    • Nicholas Ormrod's avatar
      Backed out changeset 09c1712854b3 · fc838f2b
      Nicholas Ormrod authored
      Summary: Removing COW from fbstring had adverse memory consequences when sync'd with libgcc. Revert this diff to keep folly and libgcc in sync.
      
      Reviewed By: yfeldblum, luciang
      
      Differential Revision: D4019604
      
      fbshipit-source-id: 80bd31c220098bfab37f0effc90f67876432369d
      fc838f2b
    • Shubhanshu Agrawal's avatar
      BatchDispatcher exception handling · 2c0ece4a
      Shubhanshu Agrawal authored
      Summary: error handling for batch dispatcher, for the case where dispatch function throws.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4016246
      
      fbshipit-source-id: ac61b873a425128be7839a119591fca10608210a
      2c0ece4a
    • Matthieu Martin's avatar
      noexcept CollectVariadicContext destructor · 954899b8
      Matthieu Martin authored
      Summary: To be explicit about our assumption from D4013691
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D4015816
      
      fbshipit-source-id: 24f984ac9959d0c4c0aeac34b3dce8dfcf2c1354
      954899b8
  7. 13 Oct, 2016 5 commits
  8. 12 Oct, 2016 6 commits
    • Zonr Chang's avatar
      Access SSL cipher info with a const reference. · cef27cd0
      Zonr Chang authored
      Summary:
      BoringSSL returns `const SSL_CIPHER*` from sk_SSL_CIPHER_value().
      Closes https://github.com/facebook/folly/pull/492
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4009712
      
      Pulled By: Orvid
      
      fbshipit-source-id: cca2e8cb6aab0a459dca55b8f23ef57fa5c8251f
      cef27cd0
    • Zonr Chang's avatar
      Fix call to SSL_SESSION_up_ref(). · b6dfac67
      Zonr Chang authored
      Summary:
      `SSL_SESSION_up_ref()` in both BoringSSL and OpenSSL 1.1.0 takes a
      `SSL_SESSION*`.
      Closes https://github.com/facebook/folly/pull/493
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4009706
      
      Pulled By: Orvid
      
      fbshipit-source-id: 68ea201821e7a6d5835a79b34187344ba251e239
      b6dfac67
    • Philip Pronin's avatar
      ZSTDCodec should properly handle non-shortcut levels · 339ce0bf
      Philip Pronin authored
      Summary:
      Currently only shortcut levels are properly handled, others result in
      using level 1.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4008123
      
      fbshipit-source-id: 37845eeec139007738f99e72ecfb969c6a2e5652
      339ce0bf
    • Phil Willoughby's avatar
      Print why we called std::terminate · fec7b1bc
      Phil Willoughby authored
      Summary:
      When terminating because we were told to rethrow a nonexistent exception, we
      now print that to `std::cerr` for the benefit of users on platforms which do not dump a stack trace on
      `std::terminate`
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4001087
      
      fbshipit-source-id: 5b834cfc75bf42bec06a49ac9db55789a83df180
      fec7b1bc
    • Giuseppe Ottaviano's avatar
      Add support in enumerate() for iterators with exotic pointers · 1d2f2dcf
      Giuseppe Ottaviano authored
      Summary: I thought we wouldn't need this but it turns out Thrift Frozen2 iterators return proxies (it's proxies all the way down). Thanks to ericniebler for trick.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4005700
      
      fbshipit-source-id: 1911996afa075c1d819a3aaea2ee924bc2ae2f20
      1d2f2dcf
    • Christopher Dykes's avatar
      Fix build on Mac OSX Sierra · a34e06a1
      Christopher Dykes authored
      Summary:
      There are two changes here.
      The first is to eliminate `detail::DEFAULT_CLOCK_ID` from `Benchmark.[cpp|h]` as Sierra defines `clockid_t` as an enum type, which means that calling `clock_gettime(detail::DEFAULT_CLOCK_ID` would fail, because the enums are incompatible. As this was being used as a default, but is not actually changable anywhere, I just got rid of `detail::DEFAULT_CLOCK_ID` entirely.
      The second is to move `portability/BitsFunctexcept.cpp` into `libfollybase_la_SOURCES`, because it's needed for generating the fingerprint tables.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D4004843
      
      fbshipit-source-id: b2a9c33f8e516d8eb3cdc5ab093f4946ac9ed37e
      a34e06a1