folly.git
13 years agoFix a typo in benchmark comments
Sherman Ye [Wed, 9 May 2012 16:26:13 +0000 (09:26 -0700)]
Fix a typo in benchmark comments

Summary: As title

Test Plan: Deployed to wormhole_apps.dragon.dev

Reviewed By: asharma@fb.com

FB internal diff: D493253

13 years agoUnbreak Ubuntu build.
Tudor Bosman [Thu, 14 Jun 2012 19:14:04 +0000 (12:14 -0700)]
Unbreak Ubuntu build.

Summary: follybenchmark and follyfingerprint need folly to work.

Test Plan: built on ubuntu

Reviewed By: andrewjcg@fb.com

FB internal diff: D494955

13 years agoFix clang narrowing error in GroupVarintTables
Andrew Gallagher [Thu, 14 Jun 2012 19:24:31 +0000 (12:24 -0700)]
Fix clang narrowing error in GroupVarintTables

Summary:
The __m128i type is a pair of 64-bit signed ints and the values
generated in generate_varint_tables.py overflow this range, which
causes clang to complain.

Test Plan:
Built and ran unittests.  Also verified that the GroupVarintTable.o
data section was identical with and w/o this change.

Reviewed By: tudorb@fb.com

FB internal diff: D494645

13 years agoClarify split / splitTo comments.
Tudor Bosman [Thu, 14 Jun 2012 01:57:34 +0000 (18:57 -0700)]
Clarify split / splitTo comments.

Test Plan: No

Reviewed By: delong.j@fb.com

FB internal diff: D494525

13 years agoMove and refactor code
Chip Turner [Fri, 8 Jun 2012 21:53:51 +0000 (14:53 -0700)]
Move and refactor code

Summary:

Moves some string manipulation code like humanify into folly

Moves hash-related functions into folly and removes some old includes
to clean up some code

Adds generic hashing for tuples, similar to pairs

Updates all of the build breakages from the above

Test Plan: run unit tests

Reviewed By: delong.j@fb.com

FB internal diff: D490478

13 years agoFix narrowing warning (if enabled).
Tudor Bosman [Wed, 13 Jun 2012 00:37:21 +0000 (17:37 -0700)]
Fix narrowing warning (if enabled).

Summary: They're (signed) long long.

Test Plan: built, folly/test

Reviewed By: andrewjcg@fb.com

FB internal diff: D493270

13 years agoFix intermittent failure in concurrent_skip_list_test
Tudor Bosman [Wed, 13 Jun 2012 00:08:04 +0000 (17:08 -0700)]
Fix intermittent failure in concurrent_skip_list_test

Summary: It creates too many threads, stop when we run out of resources.

Test Plan: by hand, in a loop, in a memory-constrained environment

Reviewed By: delong.j@fb.com

FB internal diff: D493239

13 years agoFix build and test.
Tudor Bosman [Tue, 12 Jun 2012 22:44:21 +0000 (15:44 -0700)]
Fix build and test.

Summary:
Fix bug in FBStringTest (don't reuse the same file name)

Don't use VLOG, as that requires that glog is compiled with gflags
support, which it isn't always.

Add other targets and tests, make all tests pass.

Test Plan: tests

Reviewed By: delong.j@fb.com

FB internal diff: D493018

13 years agoFix build and test.
Tudor Bosman [Tue, 12 Jun 2012 22:44:21 +0000 (15:44 -0700)]
Fix build and test.

Summary:
Fix bug in FBStringTest (don't reuse the same file name)

Don't use VLOG, as that requires that glog is compiled with gflags
support, which it isn't always.

Add other targets and tests, make all tests pass.

Test Plan: tests

Reviewed By: delong.j@fb.com

FB internal diff: D493018

13 years agoMove Rabin fingerprinting code to folly.
Tudor Bosman [Tue, 12 Jun 2012 16:20:03 +0000 (09:20 -0700)]
Move Rabin fingerprinting code to folly.

Summary:
Also generate fingerprint tables every time, so the code doesn't rot.

TODO(tudorb): move benchmark to folly
TODO(tudorb): Include the program used to generate the polynomials
(can't build as it requires NTL from http://www.shoup.net/ntl/)

Test Plan: folly/test

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D492455

13 years agoInternalBuf doesn't need capacity
Tudor Bosman [Tue, 12 Jun 2012 00:09:43 +0000 (17:09 -0700)]
InternalBuf doesn't need capacity

Summary: as it's always kMaxInternalDataSize.

Test Plan: all tests in folly/experimental/io/test, both opt and dbg

Reviewed By: brianp@fb.com

FB internal diff: D492008

13 years agoProperly align internal buffer in IOBuf.
Tudor Bosman [Mon, 11 Jun 2012 23:18:22 +0000 (16:18 -0700)]
Properly align internal buffer in IOBuf.

Summary:
Yes, it's gcc specific, because alignas and max_align_t aren't in gcc
4.6.2.

Test Plan: iobuf_test, test added

Reviewed By: brianp@fb.com

FB internal diff: D491939

13 years agoAdd IOBuf::takeOwnership(unique_ptr<T>&&).
Tudor Bosman [Mon, 11 Jun 2012 20:58:15 +0000 (13:58 -0700)]
Add IOBuf::takeOwnership(unique_ptr<T>&&).

Summary:
Useful for in-place serialization.  Dangerous, obviously, but anything
involving IOBuf usually is.

Test Plan: test added

Reviewed By: brianp@fb.com

FB internal diff: D491663

13 years agoTypos.
Tudor Bosman [Sat, 9 Jun 2012 22:32:10 +0000 (15:32 -0700)]
Typos.

Test Plan: No

Reviewed By: delong.j@fb.com

FB internal diff: D491038

13 years agoD'oh: fix size computation in ThreadLocalDetail.h
Tudor Bosman [Sat, 9 Jun 2012 04:30:50 +0000 (21:30 -0700)]
D'oh: fix size computation in ThreadLocalDetail.h

Test Plan: thread_local_test

Reviewed By: ldemailly@fb.com

FB internal diff: D490912

13 years agofolly::detail::futex should be inline
Philip Pronin [Fri, 8 Jun 2012 08:37:24 +0000 (01:37 -0700)]
folly::detail::futex should be inline

Summary: It breaks build.

Test Plan: will check *_try builds

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D489935

13 years agoAdd IOBufQueue::wrapBuffer, which handles buffers > 4GB.
Tudor Bosman [Thu, 7 Jun 2012 20:59:38 +0000 (13:59 -0700)]
Add IOBufQueue::wrapBuffer, which handles buffers > 4GB.

Test Plan: test added

Reviewed By: brianp@fb.com

FB internal diff: D489158

13 years agoAdd links to README.
Tudor Bosman [Thu, 7 Jun 2012 21:26:44 +0000 (14:26 -0700)]
Add links to README.

Test Plan: No

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D489199

13 years agoDeuglify unaligned accesses in GroupVarint.
Tudor Bosman [Thu, 7 Jun 2012 02:56:43 +0000 (19:56 -0700)]
Deuglify unaligned accesses in GroupVarint.

Test Plan: folly/test

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D488631

13 years agoEventCount: "condition variable" for lock-free algorithms
Tudor Bosman [Thu, 17 May 2012 21:31:04 +0000 (14:31 -0700)]
EventCount: "condition variable" for lock-free algorithms

Summary:
This allows you to convert non-blocking lock-free algorithms into
blocking versions.

See
http://www.1024cores.net/home/lock-free-algorithms/eventcounts,
http://software.intel.com/en-us/forums/showthread.php?t=62364,
http://www.akkadia.org/drepper/futex.pdf

Test Plan: new test

Reviewed By: delong.j@fb.com

FB internal diff: D474570

13 years agofbstring: remove reference to /home/engshare/ paths
Andrew Gallagher [Tue, 5 Jun 2012 23:13:31 +0000 (16:13 -0700)]
fbstring: remove reference to /home/engshare/ paths

Summary: Reported by https://github.com/facebook/folly/issues/8

Test Plan: no

Reviewed By: tudorb@fb.com

FB internal diff: D487572

13 years agoFix some memory_order parameters in AtomicHashMap
Jordan DeLong [Sun, 3 Jun 2012 21:58:50 +0000 (14:58 -0700)]
Fix some memory_order parameters in AtomicHashMap

Summary: Herb Sutter noticed an error in the AHM find pseudo-code at
the C++ conference, and the error is in the real implementation too.
We should be using memory_order_acquire, because we need the load of
the key to happen before any subsequent loads of the value itself.
Our implementation is conservative for a memory_order_relaxed load
(we generate the same code as if it were memory_order_acquire---i.e. a
compiler barrier but no memory barriers), so this should not change the
generated code.  Correctness is a good idea, though (when we upgrade
to gcc 4.7's atomics it might not be as conservative).  Also, erase was
doing three loads when one is enough.  ... also fixes an exception safety
bug in insert.  (Phew.)

Test Plan: Ran the AHM unit tests, debug and opt.

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D485744

13 years agoSome typos corrects, and collapsed the two descriptions of Bits.h into one.
Christopher C. Aycock [Sun, 3 Jun 2012 03:59:02 +0000 (00:59 -0300)]
Some typos corrects, and collapsed the two descriptions of Bits.h into one.

Summary: https://github.com/facebook/folly/pull/1

Test Plan: N/A.

Reviewed By: andrewjcg@fb.com

FB internal diff: D485738

13 years agoAdd #include <new> to folly/Malloc.h.
Tudor Bosman [Tue, 5 Jun 2012 07:04:29 +0000 (00:04 -0700)]
Add #include <new> to folly/Malloc.h.

Test Plan: folly tests

Reviewed By: philipp@fb.com, andrei.alexandrescu@fb.com

FB internal diff: D486884D487376

13 years agoCheck the return value from malloc / realloc.
Tudor Bosman [Tue, 5 Jun 2012 05:24:21 +0000 (22:24 -0700)]
Check the return value from malloc / realloc.

Summary:
https://github.com/facebook/folly/issues/7

Wrappers: checkedMalloc / checkedRealloc / checkedCalloc

Test Plan: all folly tests

FB internal diff: D486841

13 years agoFix error in ProducerQueue::isEmpty
Michael Curtiss [Tue, 5 Jun 2012 05:16:44 +0000 (22:16 -0700)]
Fix error in ProducerQueue::isEmpty

Summary:
Oops.

Also: documented the slightly confusing behavior w.r.t. 'size'.

Test Plan: Added a unit test.

Reviewers: tjackson, jdelong

Reviewed By: jdelong

CC: folly@lists, lr, bagashe
Differential Revision: https://phabricator.fb.com/D486832

13 years agoTypos.
Tudor Bosman [Tue, 5 Jun 2012 02:50:18 +0000 (19:50 -0700)]
Typos.

Summary:
As pointed out by orbitcowboy at
https://github.com/facebook/folly/issues/6

Test Plan: No

Reviewers: jdelong, aalexandre

Reviewed By: jdelong

CC: folly@lists, bagashe
Differential Revision: https://phabricator.fb.com/D486754

13 years agoMove LICENCE and README to top level directory
Jordan DeLong [Sun, 3 Jun 2012 22:34:03 +0000 (15:34 -0700)]
Move LICENCE and README to top level directory

Summary: For the public version of the repo.

Test Plan: N/A.

13 years agoadd a .gitignore and remove folly-config.h (generated file) from the repo
Chip Turner [Sun, 3 Jun 2012 04:23:59 +0000 (21:23 -0700)]
add a .gitignore and remove folly-config.h (generated file) from the repo

13 years agoAdding support for in-place use of ProducerConsumerQueue.
Tom Jackson [Mon, 4 Jun 2012 23:57:49 +0000 (16:57 -0700)]
Adding support for in-place use of ProducerConsumerQueue.

Summary: As it is, ProducerConsumerQueue requires that values are moved or copied on the way out of the queue. It would be nice if it was possible to get a reference to the front of the queue, use it in place, then destruct it.

Test Plan: Unit tests

FB internal diff: D484538

13 years agoAdd a LICENSE file for folly
Jordan DeLong [Sun, 3 Jun 2012 02:43:28 +0000 (19:43 -0700)]
Add a LICENSE file for folly

Summary: Adds a copy of the apache license 2.0.

Test Plan: None.

13 years agoUpdate the folly/README
Jordan DeLong [Sat, 2 Jun 2012 23:13:53 +0000 (16:13 -0700)]
Update the folly/README

Summary: Now that we have an Overview.md.

Test Plan: None.

13 years agoPull from FB rev 63ce89e2f2301e6bba44a111cc7d4218022156f6
Jordan DeLong [Sat, 2 Jun 2012 18:19:29 +0000 (11:19 -0700)]
Pull from FB rev 63ce89e2f2301e6bba44a111cc7d4218022156f6

13 years agoinitial
Jordan DeLong [Fri, 1 Jun 2012 21:00:42 +0000 (14:00 -0700)]
initial