- 28 Aug, 2013 5 commits
-
-
Josh Metzler authored
Summary: qfind(haystack, needle) is templated, but used a non-templated default comparator that cast everything to char. This works find for 8-bit types, but not for others such as the uint32_t Ranges we are using. Replace the default comparator with std::equal<> to use a working comparator for whatever type is being searched. Test Plan: Compiles, unit tests (including a new one that fails with the old code) pass. Not sure how to test other users of this, or measure performance impact. :( Reviewed By: andrei.alexandrescu@fb.com FB internal diff: D906311
-
Sean Cannella authored
Summary: - memrchr is GNU + Linux specific, it turns out Test Plan: - compiled on FreeBSD, contbuild Reviewed By: delong.j@fb.com FB internal diff: D900935
-
Sean Cannella authored
Summary: - fix folly compilation on FreeBSD Github Author: Martin Matuska <martin@matuska.org> Test Plan: - compiled Reviewed By: tudorb@fb.com FB internal diff: D896747
-
Tudor Bosman authored
Summary: A bunch of MPMCQueues linked together. Stage i produces exactly Ki (default 1) outputs for each input. Ordering is preserved, even though stages might produce (intermediate or final) results in parallel and in any order; we do this by abusing the enqueueing mechanism in MPMCQueue. (Read the code for details) Test Plan: test added, more tests to be written before commit Reviewed By: ngbronson@fb.com FB internal diff: D892388
-
Nathan Bronson authored
Summary: Like size(), sizeGuess() is allowed to return a negative value, so it should be ssize_t instead of uint64_t. Test Plan: fbmake, wait for contbuild Reviewed By: tudorb@fb.com FB internal diff: D893075
-
- 18 Jul, 2013 8 commits
-
-
Hans Fugal authored
Summary: "Wouldn't this test case still pass if the hash function didn't depend on the value? It would be nice to verify that different tuple values produce different hash values (or maybe there's another test that verifies that), especially since this is a tricky thing to get right." I think there's not much chance of this failing since it's just leveraging hash_combine and that's already tested. But it's easy to add another sanity check, so here we are. Test Plan: runtests Reviewed By: tulloch@fb.com FB internal diff: D890448 Blame Revision: D888796
-
Hans Fugal authored
Summary: Add hash support for std::tuple. See also D490478 (where a first attempt was made) and D543586 (where that attempt was deemed broken and removed). Test Plan: unit test Reviewed By: chip@fb.com FB internal diff: D888796
-
Sean Cannella authored
Summary: fix OSX compat issues Github Author: Daniel Sloof <goapsychadelic@gmail.com> Test Plan: - compiled Reviewed By: pt@fb.com FB internal diff: D877309
-
Chip Turner authored
Summary: Apparently the templates don't like to match the initlializer list, so this needed to be added. This allows for things like: auto s = join(":", {val1, val2, val3, val4, val4}); Test Plan: run tests Reviewed By: andrei.alexandrescu@fb.com FB internal diff: D878032
-
Tom Jackson authored
Summary: For handling exceptions from downstream operations. Now with cleaner build. Test Plan: Unit tests, including those outside `folly`. Reviewed By: marcelo.juchem@fb.com FB internal diff: D877795 Blame Revision: https://phabricator.fb.com/D872581
-
Chip Turner authored
Summary: Looks like D880140 left off this part when it was committed. This fixes the build. Test Plan: runtests Reviewed By: vini@fb.com FB internal diff: D881445
-
Andrei Alexandrescu authored
Summary: This should fix the build breakage in hphp caused by the latest fbstring changes (after being ported to engshare). Note that I'm flying blind here; I couldn't test with the hphp build because I don't have write access to engshare. @agallagher could you please make sure that this works after the fix? fbconfig -r hphp && fbmake dbg Test Plan: tested on folly Reviewed By: tudorb@fb.com FB internal diff: D880140
-
Andrei Alexandrescu authored
Summary: Adds the eponymous C++11 capability to fbstring. Test Plan: fbstring runtests Reviewed By: tudorb@fb.com FB internal diff: D867995
-
- 09 Jul, 2013 5 commits
-
-
Tom Jackson authored
Summary: Introduced a new serialization option, `allow_trailing_comma`, which allows trailing commas to be included in strings when they are parsed. This isn't strictly allowed by RFC 4627, but we're allowing more than that anyway. I've run into this dozens of times, especially while using SMC. Test Plan: Unit tests Reviewed By: delong.j@fb.com FB internal diff: D872581
-
Chip Turner authored
Summary: Clean revert. Please be more careful; phabricator warned you these would break the build. Test Plan: build something that wasn't working Reviewed By: myang@fb.com FB internal diff: D877526
-
Tom Jackson authored
Summary: For handling exceptions from downstream operations. Test Plan: Unit tests Reviewed By: marcelo.juchem@fb.com FB internal diff: D874344
-
Philip Pronin authored
Summary: * added move assignment operators, * fixed `operator=(const Synchronized& rhs)` (it had a typo), * fixed deadlock on self-assignment, * changed `swap` to call `swap(lhs.datum_, rhs.datum_)` instead of `lhs.datum_.swap(rhs.datum_)`. Test Plan: fbconfig -r folly/test && fbmake opt -j32 && fbmake runtests_opt Reviewed By: delong.j@fb.com FB internal diff: D875977
-
Sean Cannella authored
Summary: - conditionally compile rfind overrides - conditionally add support for timed_mutex/recursive_timed_mutex Test Plan: - compiled on OSX - unit tests Reviewed By: andrei.alexandrescu@fb.com FB internal diff: D872272
-
- 01 Jul, 2013 5 commits
-
-
Sean Cannella authored
Summary: - Noticed this due to an -fpermissive compiler warning while compiling HHVM for OSX (complaint of trying to cast int to char*) Test Plan: - Compiled - Confirmed the build warning is fixed by this on the Mac OS X build Reviewed By: tudorb@fb.com FB internal diff: D865169
-
Tom Jackson authored
Summary: It only makes sense to be able to go the other direction, too. Test Plan: Unit tests Reviewed By: delong.j@fb.com FB internal diff: D785282
-
Tom Jackson authored
Test Plan: Unit tests Reviewed By: andrei.alexandrescu@fb.com FB internal diff: D865951
-
Nathan Bronson authored
Summary: MPMCQueue<T> is a high-performance bounded concurrent queue that supports multiple producers, multiple consumers, and optional blocking. The queue has a fixed capacity, for which all memory will be allocated up front. The bulk of the work of enqueuing and dequeuing can be performed in parallel. To make an MPMCQueue<T>, T must satisfy either of two conditions: - it has been tagged FOLLY_ASSUME_FBVECTOR_COMPATIBLE; or - both the constructor used during enqueue and the move operator are marked noexcept. This diff extracts the generic component from tao/queues/ConcurrentQueue and renames identifiers to match those of existing folly queues. It also includes an extraction of Futex, which wraps the futex syscall, and DeterministicScheduler, which allows for deterministic exploration of thread interleavings for components built from std::atomic and Futex. Test Plan: new unit tests Reviewed By: tudorb@fb.com FB internal diff: D866566
-
Tom Jackson authored
Test Plan: Use it Reviewed By: tudorb@fb.com FB internal diff: D865211
-
- 26 Jun, 2013 10 commits
-
-
Louis Brandy authored
Summary: We have an off-by-one in our enable_if/sfinae logic here. We do not want to actually do the comparison in `less_than` when the rhs is exactly the minimum possible lhs. This results in a tautological comparison. I added a unit test for these traits that test all the various sfinae cases. Test Plan: See the clang tautological warnings go away. Under gcc, rerun all tests. All pass. Reviewed By: marcelo.juchem@fb.com FB internal diff: D856869
-
Tudor Bosman authored
Summary: Don't use two atomic variables when only one will suffice (otherwise, the increments in doNotify() and prepareWait() would require memory_model_seq_cst, because they need to globally order a store before a load, and no weaker model allows you to do that) Of course, this makes this 64-bit only, but I don't care. Test Plan: eventcount_test, tests outside of folly Reviewed By: delong.j@fb.com FB internal diff: D858963
-
Tudor Bosman authored
Summary: 8-bit StringPiece comparisons are broken. The reason is char_traits is magic for 'char', but not 'const char'. Test Plan: test added Reviewed By: chip@fb.com FB internal diff: D861521
-
Tudor Bosman authored
Test Plan: used it Reviewed By: soren@fb.com FB internal diff: D859244
-
Tudor Bosman authored
Test Plan: exception_tracer_test Reviewed By: bmaurer@fb.com FB internal diff: D858195
-
Stephen Chen authored
Summary: Add MultiLevelTimeSeries class which represents a timeseries which keeps several levels of data granularity (similar in principle to the loads reported by the UNIX 'uptime' command). It uses several instances (one per level) of BucketedTimeSeries as the underlying storage. This can easily be used to track sums (and thus rates or averages) over several predetermined time periods, as well as all-time sums. For example, you would use to it to track query rate or response speed over the last 5, 15, 30, and 60 minutes. Test Plan: unittest included. Reviewed By: simpkins@fb.com FB internal diff: D851444
-
Louis Brandy authored
Summary: This template is only used in folly::Conv (to avoid tautological comparisons) and as best as I can tell, the rhs/lhs names are not correct as it's currently used (and not consistent with `less_than`). Just swap rhs/lhs variable names. Test Plan: Test Results Summary: Passed: 471 100% successful Reviewed By: marcelo.juchem@fb.com FB internal diff: D856785
-
Jim Meyering authored
Summary: Without this change, any folly-using project that attempts to enable gcc's -Wshadow option will be overwhelmed by warnings about violations in folly's class definitions. Violations are often due to local variable or parameter names shadowed by a member function. Bracket offending content with directives like this: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wshadow" ... #pragma GCC diagnostic pop This set of modified files is the minimal set to allow tao to use -Wshadow with no folly-related warning. Test Plan: fbmake folly/test && fbmake opt Reviewed By: simpkins@fb.com FB internal diff: D848455
-
Adam Simpkins authored
Summary: This eliminates the CommunicateFlags argument to communicate(). It now always reads from both stdout and stderr if they were set up a pipes. If a non-empty input buffer was supplied, it always writes that to stdin. This mimics the communicate() behavior of python's subprocess.py module. This also makes it impossible to have buffering deadlocks by forgetting to call communicate() with readStderr(). Test Plan: Ran the existing subprocess tests, and also added a more complicated duplex test that requires communication on stdin, stdout, and stderr all at the same time. Also grepped for all existing users of Subprocess::communicate(), and made sure they will work correctly with the new behavior. Reviewed By: tudorb@fb.com FB internal diff: D814405
-
Todd Nowacki authored
Summary: Depends on D829162 and D830052 A few changes are needed to get folly compiling with clang. There are likely more changes to compile all of folly ---folly/Bits.cpp +++folly/folly-config.h Moved ifunc check, and added an additional check for clang, instead of hard coding it to be 1 ~~~folly/Range.cpp Moved the declaration of a function to get rid of clang's unused function warning. Test Plan: This bit of code was a dependency in another project. That code compiled as it needed to See other diff for more test details Reviewed By: oyamauchi@fb.com FB internal diff: D830075
-
- 04 Jun, 2013 2 commits
-
-
Jordan DeLong authored
Summary: The unique_ptr implementation was getting confused about how to determine the pointer type, so just tell it. Facebook: Broke the fxl build; test plan included recompiling it. Test Plan: Built. Reviewed By: marcelo.juchem@fb.com FB internal diff: D834371
-
Jordan DeLong authored
Summary: It wasn't. Test Plan: I have a case using this that now passes a static_assert that it's the same size as the default_deleter version. I didn't add a static_assert in folly's tests because right now is_simple_allocator<int,std::allocator<int>>::value is true (I think because the tested members come from a base class), which breaks easy test cases. Reviewed By: andrei.alexandrescu@fb.com FB internal diff: D833142
-
- 03 Jun, 2013 5 commits
-
-
Paul Tarjan authored
Summary: using ULL broke everything. Lets try the case @danslo originally suggested. Test Plan: will check errors for this file Reviewed By: delong.j@fb.com FB internal diff: D832165
-
Paul Tarjan authored
Summary: revert the breaking change Test Plan: none Reviewed By: delong.j@fb.com FB internal diff: D832143 Blame Revision: D830883
-
Daniel Sloof authored
Summary: A squash of https://github.com/danslo/folly/compare/master Github Author: danslo Test Plan: he said it compiles on OSX Reviewed By: oyamauchi@fb.com FB internal diff: D830883
-
Owen Yamauchi authored
Summary: Newer versions of boost fail without this. I guess mutex.hpp doesn't include lock_guard.hpp indirectly anymore, or something. Test Plan: built on OS X. This was part of what I had to do for my OS X-building attempts from a few weeks ago. Reviewed By: delong.j@fb.com FB internal diff: D830157
-
Tom Jackson authored
Summary: For parsing records. `eachToPair` might be a worthwhile specialization. Test Plan: Unit tests, benchmarks maybe? Reviewed By: antoine@fb.com FB internal diff: D827441
-