Add Makefile rules building a shared library.

This patch was necessary for packaging RE2 for Debian.
Fixes issue 16.

R=rsc
CC=re2-dev
http://codereview.appspot.com/674041
re2_arg_test: use a single int64 instead of a union in kSuccessTable.
Union only works on little-endian machines.

Fixes issue 11.

R=rsc
CC=re2-dev
http://codereview.appspot.com/851047
Add (optional) Makefile rules for regenerating generated code.
RE2 uses some code generated by Python and Perl scripts.

Patch originates in Debian, which has a policy of building all code from
source.

Fixes issue 15.

R=rsc
CC=re2-dev
http://codereview.appspot.com/644043
Modern gccs understand -pthread. It should be given to both the
pre-processor and the linker.

Fixes issue 14.

R=rsc
CC=re2-dev
http://codereview.appspot.com/912043
Link the shared library tests to the shared library, correctly.

Fixes issue 18.

R=rsc
CC=re2-dev
http://codereview.appspot.com/992042
Limit visible symbols in the shared library.

R=rsc
CC=re2-dev
http://codereview.appspot.com/674041
The comments in dfa indicate that at some point read memory barriers would
be added, as require for lax memory systems such as Alpha.
Here is a patch that adds memory barrier support on Alpha (although not
tested on an alpha).

This patch is used in Debian's re2, as we replace atomicops.h code with
inlined memory barrier functions provided by libatomic-ops. Thus we don't
need to support every architecture in RE2, but we do need read memory
barriers in the lock-free search code.

R=rsc
CC=re2-dev
http://codereview.appspot.com/1020043
re2: memory diet

Cut unnecessary fields from Regexp and order to align better.
Combine smallsub and sub into one field.
Changes sizeof(Regexp) - a single node - from 104 to 40 bytes.

Use sorted array as permanent representation
of character class, avoiding the bloat of STL set<>.

Combined with CL 1129043, cuts storage used
by a typical RE2 object by about 60%.

R=r
CC=re2-dev
http://codereview.appspot.com/1174041
re2: memory diet part 2

Change program representation from Inst* graph
with forwarding pointers to contiguous array of Inst
with forwarding indices.  Cuts sizeof(Inst) from 24 to 8 bytes,
fewer allocated objects, presumably better cache locality.

The SparseArray<Inst*> would now be SparseArray<int>
except that the instruction number was always the array index,
so the value is redundant.  Use SparseSets instead, saving 60%
of the storage footprint due to SparseArrays.

Convert all back ends to use new program representation.

Free unused storage at end of IsOnePass (good for ~30%).

Build with -DNDEBUG by default, to disable DCHECKs.
Add obj/dbg/* target to Makefile to build in debug mode.

R=r
CC=re2-dev
http://codereview.appspot.com/1129043
re2: double-checked locking to avoid contention in very parallel uses

Export of change made at Google.

R=r
CC=re2-dev
http://codereview.appspot.com/1133045
re2: minor fixes

R=r
CC=re2-dev
http://codereview.appspot.com/1176043
update tsan annotations

R=rsc
CC=re2-dev
http://codereview.appspot.com/1860042
factor common prefix strings out of alternation

R=rsc
CC=re2-dev
http://codereview.appspot.com/1665049
add experimental Set class for matching many regexps at once

R=rsc
CC=re2-dev
http://codereview.appspot.com/1843042
update FilteredRE2 documentation

Fixes issue 24.

R=rsc
CC=re2-dev
http://codereview.appspot.com/1742046
fix performance bug in tests

R=rsc
CC=re2-dev
http://codereview.appspot.com/1741052
play well with valgrind

R=rsc
CC=re2-dev
http://codereview.appspot.com/1849042
bug fix: handle alternation involving a regexp
ending in \C* (or .* in Latin-1 mode) correctly

Bug only affected calls to Match, not FullMatch or PartialMatch.

R=rsc
CC=re2-dev
http://codereview.appspot.com/1690054
factor common prefixes from alternations

Juggle code so that RE2::Set can benefit too.

R=rsc
CC=re2-dev
http://codereview.appspot.com/1740045
sparse_set.h buglet

R=rsc
CC=re2-dev
http://codereview.appspot.com/1702051