Fix build with boost 1.49

Summary: Debian Wheezy (and a couple other platforms) have this even
more ancient version of boost, which doesn't have
`error_with_option_name`. Adjust the ifdef.

Reviewed By: @JoelMarcey

Differential Revision: D1714258

Signature: t1:1714258:1417565551:b9ec04add2eb0a0ab8a39318cc35d18b990c27aa
Use a different HeaderKind for big malloc vs size-tracked objects

Summary: They both need a BigNode, however size-tracked allocations also
include their own headers. We need to tell them apart in order
to do anything with the payload, other than skip over it. For
example, a large object looks like this in memory:

  [BigNode][ObjectData][props...]

Reviewed By: @bertmaher

Differential Revision: D1711525

Signature: t1:1711525:1417544209:5a88f64c7ac53ed2b9c0abb2673c6020350f03f1
static_assert size of BuiltinFile matches PlainFile

Summary: since it inherits heapSize(), it better be the right answer.

Reviewed By: @markw65

Differential Revision: D1714352

Signature: t1:1714352:1417568641:7ded3a5e3a399e38eefa533f4e74a2a57cfb9041
use newobj to allocate c_Vector and c_Map

Summary: copypasta mistake

Reviewed By: @mxw

Differential Revision: D1714116

Signature: t1:1714116:1417618073:586d443cdf6435a1ecd096743d393721b91b963a
Smarter path checking in out2expectf

Summary: The old method assumed that file paths would contain /hphp, and
stripped everything from the leading / to the hphp. Some tests end up
with the path to the repo in them, which probably doesn't contain hphp,
or might contain things like hphp-1, hphp-2 etc. In either case,
out2expectf produces expectf files that work locally, but probably not
anywhere else.

This finds the path to the root of the repo, and strips it explicitly,
along with a /hphp if its there, replacing the whole lot with %s.

Reviewed By: @swtaarrs

Differential Revision: D1713663

Signature: t1:1713663:1417626839:d95ef223421ebd9ec6cb0ddd70ef19421f772c62
Better implementation of DOMPropertyAccessorMap

Summary: Base the property order on the input table, use a set instead of
a map, and get rid of the duplicate map.

Reviewed By: @bertmaher

Differential Revision: D1712866

Signature: t1:1712866:1417547052:aca10c82ce8595f72c4aff549630163e0872b6bf
Fix #2517,Add pid support for persistent connection in Redis

Summary: pfsockopen does not supports id. So I changed it stream_socket_client, to handles ids as well.
Closes https://github.com/facebook/hhvm/pull/4291

Reviewed By: @fredemmott

Differential Revision: D1693997

Signature: t1:1693997:1417632135:c2b2b2648ee77d911d00e1da801c8698e591c784
Use LLVM's experimental location records.

Summary: Replace the usage of LLVM's stackmaps with locrecs as locrecs require
less help from HHVM disassembler and do not prevent any
of LLVM optimizations.

Reviewed By: @swtaarrs

Differential Revision: D1711966
Ordering in get_defined_var()

Summary: We want the order to be independent of the internal hash function.
Now try ksort().

Reviewed By: @markw65

Differential Revision: D1710163

Signature: t1:1710163:1417632293:f1612631a5653c479d4dbfa5a6f66b3a25c635a4
Codemod "const Cell&" to "const Cell"

Summary: Cell is small, and meant to be passed around by value.

Reviewed By: @edwinsmith, @jano

Differential Revision: D1702693

Signature: t1:1702693:1416938815:5f9f5b17b238bd1f576f7c3273517ecd95ce04a6
Embed HNI in hhbbc_test

Summary: No HNI is loaded in hhbbc_test. This is blocking D1668045, and potentially other conversions to HNI.

Reviewed By: @markw65

Differential Revision: D1705542

Signature: t1:1705542:1417028326:f40af9af166e91e5c1501dab2293eb1537378d60
Convert ext/spl to HNI

Summary: Fixes #3947
This was a missing clone in the assignment.
Closes https://github.com/facebook/hhvm/pull/4037

Reviewed By: @ptarjan

Differential Revision: D1631910

Signature: t1:1631910:1414743838:638a61df535bbea4177c91b6adf1e9817a90e478

Pulled By: @nigelchanyk
Only escape spaces in find command

Summary: A previous refactor broke this

Reviewed By: @bhosmer

Differential Revision: D1717674

Signature: t1:1717674:1417653252:de533bf9600c453525b6d2f05e932b4f794eea67
Automatically constrain psuedomain local guards

Summary: We're already doing a guard in the LdLocPseudoMain, but since we
weren't constraining the actual guard, guard relaxation takes it away, and then
when reflowing the types with reoptimize we'd lose our local type prediction
and end up punting.  This would happen O(N^2) times.

Reviewed By: @alexmalyshev

Differential Revision: D1708551
Add WaitHandle::result() method

Summary: Similar to join(), however if the handle is
still pending, result() will throw an exception rather
than block until the handle is done.

Reviewed By: @jano

Differential Revision: D1716446

Signature: t1:1716446:1417642842:987cf32a898a274275ed5793ea37fcc31e14500a
Use make_shared instead of shared_ptr constructor in getLocation

Summary: With ASAN enabled hphp dies trying to build www, with the error:
```
The process has exhausted 8192MB for size class 48.
```

The culprit turns out to be shared_ptr control blocks, since we have a ton of
shared_ptrs. Using make_shared allocates the object and control block in a
single allocation, so it spreads the size classes around.  This is probably a
good change to make everywhere, but getLocation by itself accounts for like 40%
of the shared_ptrs.

Reviewed By: @edwinsmith

Differential Revision: D1716116
PersistentResourceStore only stores SweepableResourceData

Summary: Tighten up the API, remove dead size() method, pass std::strings
instead of c-strings.

Reviewed By: @markw65

Differential Revision: D1715896