Fix compatibility.cpp/.h for non-Linux

Reviewed By: @ptarjan

Differential Revision: D1119787
Add CMake support for using clang++ as the C++ compiler

There was a weird issue where CHECK_CXX_SOURCE_COMPILES wouldn't find
clock_gettime under clang++, switching to CHECK_FUNCTION_EXISTS worked
both under clang++ and g++ on Ubuntu 13.10
Merge pull request #1520 from alexmalyshev/master

Add CMake support for using clang++ as the C++ compiler
Revert "Turn on Region JIT with profile-guided traces"

This reverts commit 18da4c1a84e4678fe7d83b8272b0449c7dbbdd74.

Reviewed By: @ptarjan

Differential Revision: D1118688
Fix RDTSC calibration in ext_hotprofiler

Do a busy loop instead of usleep(5000), since usleep(5000)
causes the CPU to halt, giving meaningless results.

Originally submitted by Tim Starling as pull request #65 for
preinheimer/xhprof.

Closes #1488

Reviewed By: @mikemag

Differential Revision: D1118168

Pulled By: @scannell
AHot size is 0 if it is unallocated

Trying to get vm-tcspace from the admin port of a sandbox
server crashes the VM, because AHot isn't allocated.  Just return 0 in
this case.

Reviewed By: @ottoni

Differential Revision: D1118505
Fix ARM mode, part 3: disable PGO, SetL issues

PGO mode isn't implemented in ARM mode. It's nontrivial to implement,
and I want to get the contbuild re-enabled as soon as possible so I'm
just turning off PGO in ARM mode for now.

Additionally, a test was failing because of another interp-one problem
with SetL, where we were trying to box an Uncounted. I added the logic
that boxing an Uninit promotes to InitNull.

Reviewed By: @ottoni

Differential Revision: D1118876
Fix race in bindJmp service request

There's was an old race in the bindJmp service request, where a
translation gets invalidated while we're trying to bind a jump to it.
This was exposed by the region JIT, but it can also happen in sandbox
mode.

Reviewed By: @markw65

Differential Revision: D1118962
remove v infront of version number

It looks weird for the nightlies. I currently have

  HipHop VM vnightly-2014-01-06 (rel)
  Compiler: heads/master-0-g708d7c03f394d0fe537021161f7b5eff5497edbe
  Repo schema: 4f6cadf45ef19259e958e2796ca894f6df7b6db9

Reviewed By: @jdelong

Differential Revision: D1117594
delete some functions

`function_exists` returning false is better than throwing

Closes #1512

Reviewed By: @scannell

Differential Revision: D1118722
stop forcing some tests to bad

Our test infra has changed so much, lets see how these do

Reviewed By: @alexmalyshev

Differential Revision: D1116573
Initial hhbbc support for inferring private property types

To implement this, the member instruction support needed to
be beefed up a fair bit, and support was needed for scheduling whole
classes at a time in whole program mode.  Checking it in disabled;
it's still a work in progress.

Reviewed By: @dariorussi

Differential Revision: D1115782
idl files: use | instead of _ for namespaces

_ is the one and only non-alphanumeric character that can
 show up in valid PHP classnames. Switch to | (or another character)
 should allow idl files to define classes containing _'s. We haven't
 hit this issue yet, but only as the result of classes such as
 `PHP_Unserializable_Class` happening to be defined in systemlib.php
 as opposed to idl files

Reviewed By: @jdelong

Differential Revision: D1116701
collections: make StableMap and Map ==-comparable (using unordered Map equality)

... by forwarding $collection == $object to collectionEquals,
 even when $collection and $object are not the exact same class.

 This might set up the ability to also make Collection and
 FrozenCollection inter-comparable.

Reviewed By: @paroski

Differential Revision: D1116829
collections: add HH\FrozenMap

- parser transform for "FrozenMap" in HH\FrozenMap
 - array iterator: work in terms of BaseMap
 - fix clone to work on FrozenSet and FrozenVector
 - add Collection::is{Map|Vector|Set}Type to types.h to facilitate
   uses of Base{Map|Vector|Set}:: functionality
 - create collectionInitSet to distinguish keyed sets in literals
   (usable for FrozenMap) from keyed sets in mutations
 - add support for Frozen collections to compiler's ExpressionList::setCollectionType

Reviewed By: @paroski

Differential Revision: D1119583
collections: support frozen<collection> == <collection>

It seems like equality comparison within subtypes of
 {Vector,Set,Map} should be supported.

Reviewed By: @paroski

Differential Revision: D1117505
collections: introduce ExtCollectionObjectData

... instead of making various collection constructors set the
 object data attributes.

Reviewed By: @jdelong

Differential Revision: D1120031
collections: remove <Collection>::put(k,v) method ...

... which has been deprecated in favor of set(k,v) for some time

Reviewed By: @jdelong

Differential Revision: D1120043
collections: remove default: case from switch(CollectionType)

... to take advantage of the compiler warnings for using `switch` on
 an enum and not covering all the cases. After this diff, adding new
 collection types should now be much easier, since the compiler should
 be able to ferret out (most of) the missing functionality.

Reviewed By: @jdelong

Differential Revision: D1120079
update NEWS for recent collections + trait changes

Reviewed By: @scannell

Differential Revision: D1120107