1. 13 Jan, 2015 40 commits
    • Andrew Gallagher's avatar
      folly: make remaining TARGETS files auto converitble to BUCK files · f3ac5cca
      Andrew Gallagher authored
      Summary: Also add the `@buckify` tag to keep these automatically synced.
      
      Test Plan: built and tested with buck and fbconfig/fbmake
      
      Reviewed By: robbert@fb.com
      
      Subscribers: trunkagent, sdwilsh, fugalh, folly-diffs@, jsedgwick
      
      FB internal diff: D1775555
      
      Signature: t1:1775555:1420840948:e9a2e86379be71b7d953fa53a727e51d2541b011
      f3ac5cca
    • Lucian Grijincu's avatar
      folly: Bits: make bitsPerBlock 64 bit back · 1507fc0b
      Lucian Grijincu authored
      Summary: D1770613 made bitsPerBlock 32 bit. Sadpanda.
      
      Test Plan: _bin/unicorn/diskindex4/test/doc_map_test --gtest_filter=DocMap/DocMapTest.Deleted/23
      
      Reviewed By: meyering@fb.com
      
      Subscribers: net-systems@, folly-diffs@
      
      FB internal diff: D1776343
      
      Tasks: 5968993
      
      Signature: t1:1776343:1420852923:f35166dd9023a701ff16467710131f821810215a
      
      Blame Revision: D1770613
      1507fc0b
    • Jim Meyering's avatar
      folly/dynamic-inl.h: avoid -Wsign-compare error · ed281068
      Jim Meyering authored
      Summary:
      * folly/dynamic-inl.h (format): Add an explicit
      int-to-size_t cast (that is ok because we've just ensured
      it is non-negative) to avoid this error from gcc-4.9:
      
      folly/dynamic-inl.h:953:29: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: delong.j@fb.com
      
      Subscribers: trunkagent, folly-diffs@
      
      FB internal diff: D1773242
      
      Tasks: 5941250
      
      Signature: t1:1773242:1420822301:b1e3c065cd25728c77957ce9e1f52e884ba8693b
      ed281068
    • Jim Meyering's avatar
      folly: ProducerConsumerQueue: avoid many -Wsign-compare errors · 7fdf8141
      Jim Meyering authored
      Summary:
      There were many templates instantiated with signed types.
      Changing them to unsigned avoids the compilation failures
      noted below.  However, we'll have to watch arc-diff-spawned
      tests for new failures, just in case.
      
      This is by far the largest undecomposable patch of those
      I've written for this task so far.  It is possible that
      some subset of these changes accomplishes the same goal,
      but once I managed to get a successful compilation, I have
      only re-reviewed it once and did not try to shrink it.
      
      Test Plan:
      Without these changes, we would get the following 32 errors from gcc-4.9:
      https://phabricator.fb.com/P19692642
      With them, (and all of the other patches attached to the parent task,
      all of fbcode compiles and passes its tests (modulo preexisting
      failures and aborts).
      
      Reviewed By: delong.j@fb.com
      
      Subscribers: trunkagent, folly-diffs@
      
      FB internal diff: D1773461
      
      Tasks: 5941250
      
      Signature: t1:1773461:1420821964:61635f3a2efc95e8d4457c36e7a5ee3a0a50df23
      7fdf8141
    • James Sedgwick's avatar
      move wangle/futures to futures · bc374dcb
      James Sedgwick authored
      Summary:
      First step of moving futures out of wangle into folly
      
      Namespace change will be another diff
      
      This was just a straight codemod of "wangle/futures" to "futures"
      
      Test Plan: wait for contbuild
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: trunkagent, fbcode-common-diffs@, chaoyc, search-fbcode-diffs@, lars, ruibalp, hero-diffs@, zeus-diffs@, vikas, mcduff, hitesh, cold-storage-diffs@, unicorn-diffs@, ldbrandy, targeting-diff-backend@, netego-diffs@, fugalh, adamsyta, atlas2-eng@, alandau, apollo-diffs@, bmatheny, adityab, everstore-dev@, zhuohuang, sweeney, mwa, jgehring, prometheus-diffs@, smarlow, akr, bnitka, jcoens, zhguo, jying, darshan, apodsiadlo, alikhtarov, fuegen, dzhulgakov, alihussains, jeremyfein, mshneer, folly-diffs@, wch, lins, tingy, maxwellsayles, hannesr
      
      FB internal diff: D1772041
      
      Tasks: 5960242
      
      Signature: t1:1772041:1420739169:36126b1264c5d1747d241921d02b13e306c73fe1
      bc374dcb
    • Jim Meyering's avatar
      folly/Bits.h (BitIterator): avoid -Wsign-compare error · 0a9f6eef
      Jim Meyering authored
      Summary:
      * folly/Bits.h (BitIterator) [bitOffset_]: Change type of this
      member from ssize_t to "unsigned int".
      (bitsPerBlock): Change return type from size_t to "unsigned int".
      These changes avoid some -Wsign-compare-highlighted issues, e.g.,
      folly/Bits.h:456:18: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      I've also run "fbmake runtests", and it failed precisely the way it does
      without this patch.
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1770613
      
      Tasks: 5941250
      
      Signature: t1:1770613:1420757397:7ee7e5de500c8991af2597a6245d12d8f286b4b7
      0a9f6eef
    • Jim Meyering's avatar
      folly: fix many -Wsign-compare warning/errors reported by gcc-4.9 · 377e3f4c
      Jim Meyering authored
      Summary:
      With the upgrade to gcc-4.9 fbcode's default is to enable
      -Wsign-compare by default.  That exposes nontrivial technical debt.
      This is part of that clean-up.  Some of these changes fix the problem
      where there's an "int" for-loop index, yet an unsigned limit.
      The fix is to use an unsigned type when the limit is also unsigned.
      I usually choose size_t because of the general recommendation (when
      writing portable code) to avoid size-tied types like uint32_t and
      uint64_t unless you have a very good reason to require them.
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 tao/server && fbmake dbgo
      
      Also, run this, compiling and running tests with gcc-4.8.1.
      Verify that there are no more failures than without this patch:
      fbmake opt -k && fbmake runtests_opt
      Here's the tail of that process, (same with and without the patch):
      Summary (total time 47.45s):
      PASS: 1949
      FAIL: 1
      SKIP: 0
      FATAL: 9
      TIMEOUT: 0
      
      Reviewed By: hans@fb.com
      
      Subscribers: trunkagent, fugalh, njormrod, folly-diffs@
      
      FB internal diff: D1766722
      
      Tasks: 5941250
      
      Signature: t1:1766722:1420762240:a8545648ddb4fd0b2adf0d3147a84409c0f706a8
      377e3f4c
    • Hans Fugal's avatar
      (folly) Account for different vsnprintf behavior on OSX in test · 7f0c4bda
      Hans Fugal authored
      Summary: Apparently there is some dispute about the correct thing for `snprintf(buf, len, "bogus%", "foo")` to return. OSX says 5, Linux says -1. The code in `folly/String.cpp` depends on -1 to throw the exception this test was expecting.
      
      Test Plan: make check on OSX
      
      Reviewed By: chip@fb.com
      
      Subscribers: exa, folly-diffs@
      
      FB internal diff: D1770970
      
      Tasks: 5936226
      
      Signature: t1:1770970:1420680750:bafae2aa8327a52013e68af64a163323244ca03b
      7f0c4bda
    • Hans Fugal's avatar
      (folly) make check on OSX Yosemite (10.10) · 6d079c14
      Hans Fugal authored
      Summary:
      This switches from gcc-4.9 provided by Homebrew to the default g++ (clang) from Yosemite.
      
      $ g++ --version
      Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
      Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
      Target: x86_64-apple-darwin14.0.0
      Thread model: posix
      
      Absolute path for double-conversion, so make in `test/` works.
      
      gtest-1.7.0 (Using 1.6.0 causes compilation errors in Yosemite)
      
      Various portability fixes.
      
      Enhancements/fixes to `configure.ac` and associated source code for better portability.
      
      Test Plan:
      It builds and runs (yay)
      Two tests fail, not sure whether that's specific to osx. Will investigate and make any fixes in a follow-up diff
      
      Reviewed By: pgriess@fb.com
      
      Subscribers: trunkagent, folly-diffs@, exa
      
      FB internal diff: D1768669
      
      Tasks: 5936226
      
      Signature: t1:1768669:1420728580:dd6919c21e0edf30788e523b16e3a5b923e2d7f0
      6d079c14
    • Hans Fugal's avatar
      avoid std::_Hash_impl · 32f335ca
      Hans Fugal authored
      Summary:
      Default Yosemite clang has no `std::_Hash_impl`, which is an internal implementation detail anyway.
      
      @davejwatson you might have a different suggestion about how to implement this without that function, or how to test if it exists and do this only if it doesn't. This is probably not the most efficient approach, since it copies the string.
      
      Test Plan:
      builds
      inspection
      fbgs doesn't turn up many results (only recent wangle ssl code really) so I don't think this will be a big perf regression if we just go with it. But if I'm wrong, we can gate it on `#if __APPLE__` or something.
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: folly-diffs@, fugalh, exa, davejwatson
      
      FB internal diff: D1767052
      
      Signature: t1:1767052:1420738784:e219ebff7aec8682b24c15a03b47077e1559c1ab
      32f335ca
    • Andrei Alexandrescu's avatar
      Mini-refactoring prompted by https://phabricator.fb.com/D1770460 · a1942184
      Andrei Alexandrescu authored
      Summary: I got obliged into this one :o).
      
      Test Plan: runtests
      
      Reviewed By: meyering@fb.com
      
      Subscribers: njormrod, folly-diffs@
      
      FB internal diff: D1772328
      
      Signature: t1:1772328:1420744114:2b81e46d77800d247293cb667bbef86e9d6d4755
      a1942184
    • Jim Meyering's avatar
      folly/stats/Histogram-defs.h: avoid -Wsign-compare error · 2ab6db1e
      Jim Meyering authored
      Summary:
      * folly/stats/Histogram-defs.h (HistogramBuckets): Take the unusual
      approach of converting "numBuckets" to signed, because we cannot
      cast "max-min" (a known positive value) to an unsigned type --
      we don't have an unsigned variant of ValueType.
      This avoids the following error from gcc-4.9:
      
      folly/stats/Histogram-defs.h:41:31: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: ldbrandy@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1770129
      
      Tasks: 5941250
      
      Signature: t1:1770129:1420745311:c447e59f1730abafdf0b962e70f0886ae1d48db1
      2ab6db1e
    • Jim Meyering's avatar
      folly/.../FileUtilDetail.h: avoid -Wsign-compare warnings · 9d9b01ef
      Jim Meyering authored
      Summary:
      * folly/detail/FileUtilDetail.h (wrapvFull): Change type of result
      variable from ssize_t to size_t: this required changing r == -1 to
      r == (size_t)-1.
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      Also run fbmake runtests, and confirm that the results are
      the same with and without this change.
      
      Reviewed By: lucian@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1772171
      
      Tasks: 5941250
      
      Signature: t1:1772171:1420743142:1f9e02006e2d77a0c9451bae7965fb28617d95d6
      9d9b01ef
    • Jim Meyering's avatar
      folly/wangle/futures/Future-inl.h: avoid -Wsign-compare errors · 7f4d487a
      Jim Meyering authored
      Summary:
      * folly/wangle/futures/Future-inl.h (whenAll): Do not compare
      signed (std::distance) with unsigned(size_t): add an assertion
      to eliminate the possibility of negative, then assign to a new
      size_t "n".
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: jsedgwick@fb.com
      
      Subscribers: trunkagent, fugalh, folly-diffs@
      
      FB internal diff: D1770668
      
      Tasks: 5941250
      
      Signature: t1:1770668:1420736965:fc722657a2ec523052fd96c33d65d5ca24aae61c
      7f4d487a
    • Jim Meyering's avatar
      folly/FBString.h: avoid -Wsign-compare error · 5b12bbfc
      Jim Meyering authored
      Summary:
      * folly/FBString.h (operator>>): Since istream.width() is signed,
      handle the case of a negative width. This avoids risk that "n"
      will be less than 0 when compared against unsigned "extracted".
      However, to suppress the following warning, we must also explicitly
      convert "n" to size_t before comparing:
      
      folly/FBString.h:2326:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, net-systems@, njormrod, folly-diffs@
      
      FB internal diff: D1770460
      
      Tasks: 5941250
      
      Signature: t1:1770460:1420679684:b262eb31e6511b6311bebf0fbc29099471648b36
      5b12bbfc
    • James Sedgwick's avatar
      stop returning move(...) when unnecessary · 0b215436
      James Sedgwick authored
      Summary: as discussed in another diff, this might help with NRVO
      
      Test Plan: unit
      
      Reviewed By: hans@fb.com
      
      Subscribers: trunkagent, fugalh, folly-diffs@
      
      FB internal diff: D1764921
      
      Signature: t1:1764921:1420677311:c6b63d7bf04c0e17283117b3edef798c288e5fbb
      0b215436
    • James Sedgwick's avatar
      fix shadowed variables · 0e8d462a
      James Sedgwick authored
      Summary: as above, fixes builds
      
      Test Plan: compiled thrift + mcrouter
      
      Reviewed By: seanc@fb.com
      
      Subscribers: seanc, fugalh, folly-diffs@
      
      FB internal diff: D1771910
      
      Signature: t1:1771910:1420733490:7f33e57a5853395cab786e5d35d4c15c75a15c5a
      0e8d462a
    • James Sedgwick's avatar
      doxygen comments for Try · 4ea6cf43
      James Sedgwick authored
      Summary:
      One header at a time, starting with the small fry
      
      I'm allowed to drink while I do this right? Good, because I don't think I ever had a choice.
      
      Test Plan: generated doxygen and looked decent http://home.fburl.com/~jsedgwick/html/classfolly_1_1wangle_1_1Try.html
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: trunkagent, fugalh, njormrod, folly-diffs@
      
      FB internal diff: D1677730
      
      Tasks: 5480262
      
      Signature: t1:1677730:1415899240:bdd03569a82be1c8def8c13786eae39b4a2a2f94
      4ea6cf43
    • James Sedgwick's avatar
      exception_ptr -> exception_wrapper migration · 352bbea6
      James Sedgwick authored
      Summary:
      integrate exception_wrapper everywhere, and deprecate public methods that take ptrs directly to discourage their use
      note that this will break for throwing non-exceptions, which is probably fine
      
      this change opens the door to interesting optimizations for those interested, e.g. Future::then<Exn1, Exn2>(/* func throwing Exn1 and Exn2 */) that autowraps the given types into the resultant future
      
      new benchmark:
      ```
      throwAndCatch                                               23.69us   42.21K
      throwAndCatchWrapped                             119.53%    19.82us   50.45K
      throwWrappedAndCatchWrapped                      350.16%     6.77us  147.80K
      ```
      
      Test Plan: existing unit tests, suspected potential perf wins confirmed by benchmark, will wait for windtunnel to see other wins/regressions
      
      Reviewed By: hans@fb.com
      
      Subscribers: search-fbcode-diffs@, apodsiadlo, alikhtarov, andrii, trunkagent, fugalh, njormrod, folly-diffs@, bmatheny
      
      FB internal diff: D1644912
      
      Signature: t1:1644912:1420731849:3dc658dc03bfd6e75d61158808c7dad96092ecfb
      352bbea6
    • Jim Meyering's avatar
      folly/String-inl.h (humanify): avoid -Wsign-compare error · 06cee071
      Jim Meyering authored
      Summary:
      * folly/String-inl.h (humanify): Count with a signed type.
      Otherwise, gcc-4.9 fails with e.g.,
      folly/String-inl.h:596:33: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      folly/String-inl.h:601:32: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: trunkagent, folly-diffs@
      
      FB internal diff: D1770451
      
      Tasks: 5941250
      
      Signature: t1:1770451:1420704354:c841ca453a5586fbf474535ca26cef17f95427dd
      06cee071
    • Jim Meyering's avatar
      folly/AtomicHashArray: use an unsigned type for each of two counters · d6ddc282
      Jim Meyering authored
      Summary:
      * folly/AtomicHashArray.h (numEntries_, numPendingEntries_):
      Use an unsigned type for each of these.  They count things, can
      never go below 0, and are compared to unsigned values.
      Otherwise, gcc-4.9 would emit this:
      folly/AtomicHashArray-inl.h:153:38: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: trunkagent, folly-diffs@
      
      FB internal diff: D1770695
      
      Tasks: 5941250
      
      Signature: t1:1770695:1420683354:bfa4775bc2f8aab74e34772308a5c8b1779243b8
      d6ddc282
    • Jim Meyering's avatar
      folly/AtomicHashMap-inl.h: avoid -Wsign-compare warning/error (easy) · 69e1c7dc
      Jim Meyering authored
      Summary:
      * folly/AtomicHashMap-inl.h (insertInternal): Do not declare
      nextMapIdx to be signed ("int"), since we compare it against
      variables of unsigned type.  Otherwise, gcc-4.9 would give this
      diagnostic:
      folly/AtomicHashMap-inl.h:99:18: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      complaining about this comparison:
      if (nextMapIdx >= kNumSubMaps_ ||
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1770683
      
      Tasks: 5941250
      
      Signature: t1:1770683:1420683505:4452c7cb4f14f098be089601be906884036348ed
      69e1c7dc
    • Jim Meyering's avatar
      Histogram and Timeseries vs gcc-4.9 and -Wsign-compare · 29be5d6d
      Jim Meyering authored
      Summary:
      Address multiple -Werror=sign-compare issues exposed when building
      tao with gcc-4.9.
      In most of these changes I've changed the type of the index in
      a for-loop from int to size_t.  The important thing is to use
      an unsigned type when the limit is also unsigned.  I choose size_t
      because the general recommendation (when writing portable code)
      to avoid size-tied types like uint32_t and uint64_t unless you
      have a very good reason to require them.
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 tao/server && fbmake dbgo
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1766651
      
      Tasks: 5941250
      
      Signature: t1:1766651:1420594537:56ef53ca233e1649469db9570942c1d5dd47cf6d
      29be5d6d
    • Jim Meyering's avatar
      folly/test/ForeachTest.cpp: avoid -Wsign-compare error · 8cae10aa
      Jim Meyering authored
      Summary:
      * folly/test/ForeachTest.cpp: Change a "1" to "1U", so it matches
      the signedness of the size_t upper bound.
      Otherwise, gcc-4.9 fails with e.g.,
      folly/Foreach.h:194:16: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1770603
      
      Tasks: 5941250
      
      Signature: t1:1770603:1420679246:56ef62ac7fa4413a4ad6310c3381a12bdc59e64c
      8cae10aa
    • Jim Meyering's avatar
      folly/stats/BucketedTimeSeries-defs.h: avoid -Wsign-compare error · 0d98066a
      Jim Meyering authored
      Summary:
      * folly/stats/BucketedTimeSeries-defs.h (BucketedTimeSeries):
      Assume that maxDuration is never negative, and cast the signed
      duration_.count() to size_t, to avoid this error from gcc-4.9:
      
      folly/stats/BucketedTimeSeries-defs.h:38:18: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1770171
      
      Tasks: 5941250
      
      Signature: t1:1770171:1420669115:61e6b8d3248f88b25736322c7066af015209fba5
      0d98066a
    • Jim Meyering's avatar
      folly/Format-inl.h: use the correct type for fwrite return value (easy) · ab794fb6
      Jim Meyering authored
      Summary:
      * folly/Format-inl.h (folly): fwrite returns size_t, not ssize_t.
      Fixing this avoids the following diagnostic from gcc-4.9:
      folly/Format-inl.h:299:11: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1770155
      
      Tasks: 5941250
      
      Signature: t1:1770155:1420668733:62593231d35f5874521dba575f23b68891b2a4f9
      ab794fb6
    • Jim Meyering's avatar
      folly/Format-inl.h: avoid -Wsign-compare error · 453a7e48
      Jim Meyering authored
      Summary:
      * folly/Format-inl.h (IndexableTraitsSeq::at): Add an explicit
      int-to-size_t cast (ok here, since we've just confirmed
      that the value is not negative) to avoid this error from gcc-4.9:
      
      folly/Format-inl.h:947:29: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: tjackson@fb.com
      
      Subscribers: trunkagent, net-systems@, folly-diffs@
      
      FB internal diff: D1770193
      
      Tasks: 5941250
      
      Signature: t1:1770193:1420670569:83ac19c2ca8cd408d7c86d7dce49e2d4b418941a
      453a7e48
    • Jim Meyering's avatar
      folly/test/SpinLockTest.cpp: avoid -Wsign-compare error (trivial) · 3d4f7737
      Jim Meyering authored
      Summary:
      * folly/test/SpinLockTest.cpp (trylockTestThread):
      Change parameter type from int to size_t, to fix these:
      folly/test/SpinLockTest.cpp:67:25: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      folly/test/SpinLockTest.cpp:82:60: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: net-systems@, folly-diffs@
      
      FB internal diff: D1770564
      
      Tasks: 5941250
      
      Signature: t1:1770564:1420674373:fa3020398e2df66590eb71f798419b6f555d07c4
      3d4f7737
    • Dave Watson's avatar
      Fix CPUObserver test · 5227dcf2
      Dave Watson authored
      Summary: CPUObserver observe events happen in different threads than the IOThreadPool ones.
      
      Test Plan: fbconfig folly/wangle/concurrent/test && fbmake runtests --stress-runs 48
      
      Reviewed By: jsedgwick@fb.com
      
      Subscribers: doug, fugalh, folly-diffs@
      
      FB internal diff: D1769345
      
      Tasks: 5948465
      
      Signature: t1:1769345:1420654316:196121ca30c905497a0acade05b9d877c98f6eeb
      5227dcf2
    • Jim Meyering's avatar
      folly/wangle/bootstrap/ServerBootstrap.h: avoid -Wsign-compare error (trivial) · 3564b902
      Jim Meyering authored
      Summary:
      * folly/wangle/bootstrap/ServerBootstrap.h:
      Change type of a for-loop index from int to size_t.
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: jsedgwick@fb.com
      
      Subscribers: fugalh, folly-diffs@
      
      FB internal diff: D1770091
      
      Tasks: 5941250
      
      Signature: t1:1770091:1420667597:fbe9a5ba56a0e34e0480c82c8fb61128406ded95
      3564b902
    • Nicholas Ormrod's avatar
      AHM ASAN test adjustment · 98543616
      Nicholas Ormrod authored
      Summary:
      The AHA-insert-race test case (a) does a LOT of iterations, and
      (b) allocated and deallocates a lot of memory on each iteration.
      
      The long iterations, by themselves, take 8s, and should be reduced.
      Further, ASAN errors on these tests, since it needs to hold on to memory
      for a bit of time and ends up OOMing.
      
      Test Plan:
      fbconfig -r 'folly' '--platform-all=gcc-4.8.1-glibc-2.17-fb' '--sanitize=address'
      fbmake runtests Ahm.atomic_hash_array_insert_race
      
      Reviewed By: robbert@fb.com
      
      Subscribers: sdwilsh, folly-diffs@
      
      FB internal diff: D1767334
      
      Tasks: 5941888
      
      Signature: t1:1767334:1420612386:4d6f4067b30d1cb7d20bcfeb0f31fac1339ead20
      98543616
    • Jim Meyering's avatar
      folly/small_vector.h: avoid -Wsign-compare error · 67a4edad
      Jim Meyering authored
      Summary:
      * folly/small_vector.h (moveToUninitialized): Do not mix
      signed and unsigned for-loop index/limit.  Instead, eliminate
      the intermediate "count" altogether and iterate as long as
      "first" is not equal to "last". Otherwise, gcc-4.9 fails with e.g.,
      folly/small_vector.h:115:18: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: soren@fb.com
      
      Subscribers: trunkagent, folly-diffs@
      
      FB internal diff: D1767844
      
      Tasks: 5941250
      
      Signature: t1:1767844:1420601608:987fd7f7d44197ed9919910c9b559b37fbe421b6
      67a4edad
    • Jim Meyering's avatar
      folly/FBVector.h: avoid -Wsign-compare error (simple) · b6c430e1
      Jim Meyering authored
      Summary:
      * folly/FBVector.h (make_window): Declare "tail" to be
      explicitly of the same type as "n".  Otherwise, we'd
      use the type of std::distance, which is unsigned, and
      then compare that against "n" of type "size_type", which
      is unsigned, and we'd get this from gcc-4.9:
      folly/FBVector.h:1276:14: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com, andrei.alexandrescu@fb.com
      
      Subscribers: trunkagent, njormrod, folly-diffs@
      
      FB internal diff: D1768346
      
      Tasks: 5941250
      
      Signature: t1:1768346:1420594452:654dac805bb46f7c6a38b4e4102e4004720d6835
      b6c430e1
    • Jim Meyering's avatar
      folly/test/RangeTest.cpp: avoid -Wsign-compare error (trivial) · c7e25e1a
      Jim Meyering authored
      Summary:
      * folly/test/RangeTest.cpp (NeedleFinderTest): Declare for-loop
      index to be of type size_t.  OTherwise, gcc-4.9 fails:
      folly/test/RangeTest.cpp:910:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1768279
      
      Tasks: 5941250
      
      Signature: t1:1768279:1420593237:246040eebd40e313bdb19799bb11d6639f1481de
      c7e25e1a
    • Jim Meyering's avatar
      folly/experimental/test/BitsBenchmark.cpp: avoid -Wsign-compare error · 314f48cc
      Jim Meyering authored
      Summary:
      * folly/experimental/test/BitsBenchmark.cpp (benchmarkSet):
      Another s/int/size_t/ change to type of for-loop index, to match
      the type of the loop's upper bound.
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1767853
      
      Tasks: 5941250
      
      Signature: t1:1767853:1420587945:f32a0ef33f6c5fa75598ecb114a243f83b31e550
      314f48cc
    • Jim Meyering's avatar
      folly/wangle/channel/ChannelPipeline.h: avoid -Wsign-compare errors (trivial) · 042bbfeb
      Jim Meyering authored
      Summary:
      * folly/wangle/channel/ChannelPipeline.h: Declare for-loop indices
      to be of type size_t(not int), to match size of upper bound.
      Otherwise, gcc-4.9 fails with e.g.,
      folly/wangle/channel/ChannelPipeline.h:126:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: fugalh, folly-diffs@
      
      FB internal diff: D1767783
      
      Tasks: 5941250
      
      Signature: t1:1767783:1420587925:d662b75e6a62ebd5bacdde28ad6e1da22ef777ac
      042bbfeb
    • Jim Meyering's avatar
      folly/gen/Parallel-inl.h: trivial -Wsign-compare fix · 32172a24
      Jim Meyering authored
      Summary:
      [just like https://phabricator.fb.com/D1767160 --
      I don't know why I didn't see this the first time]
      * folly/gen/Parallel-inl.h (folly): Use a for-loop index of type
      size_t (not "int") to match type of upper bound.
      Otherwise, gcc-4.9 fails with this:
      folly/gen/Parallel-inl.h:242:27: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: philipp@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1767520
      
      Signature: t1:1767520:1420583501:121f7212f78774adb6ca7cf67cbab83bf604cbbe
      32172a24
    • Jim Meyering's avatar
      folly/gen/Parallel-inl.h: trivial -Wsign-compare fix · a4a48cc2
      Jim Meyering authored
      Summary:
      * folly/gen/Parallel-inl.h (folly): Use a for-loop index of type
      size_t (not "int") to match type of upper bound.
      Otherwise, gcc-4.9 fails with this:
      folly/gen/Parallel-inl.h:242:27: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      
      Test Plan:
      Run this and note there are fewer errors than before:
      fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: folly-diffs@
      
      FB internal diff: D1767160
      
      Tasks: 5941250
      
      Signature: t1:1767160:1420577886:6acfb7f6d50ed715dcf4058841aeabc39fa99cbc
      a4a48cc2
    • Peter Griess's avatar
      Fix HHWheelTimer compilation bug in libc++ build · 0af2af09
      Peter Griess authored
      Summary:
      - Manually swap bucket_ entries in HHWheelTimer to work around a bug in
      libc++
      
      Test Plan:
      - fbconfig -r folly/io/async && fbmake runtests --extended-tests
      - Sync to OS X and build there
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: trunkagent, doug, seanc, folly-diffs@
      
      FB internal diff: D1766601
      
      Signature: t1:1766601:1420566916:24a2911e997ee04f0934884bdf7b82345cb2b752
      0af2af09
    • Hans Fugal's avatar
      join · 27188837
      Hans Fugal authored
      Summary:
      Fixes T5922800
      (I think)
      
      Test Plan:
      TBH I don't know why detaching a temporary thread variable might cause the program to abort but this seems to be the most likely cause so I'm making this change and we'll see in a day or two if it fixes it.
      
      The test still passes and doesn't hang
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: fugalh, exa, folly-diffs@
      
      FB internal diff: D1764374
      
      Tasks: 5922800
      
      Signature: t1:1764374:1420485233:2e4c81776ef6b6bdae18fbf2e99f0deea37b7879
      27188837