Hphp part for floats to thrift

Going together with D909976 and D913213.

Differential Revision: D921359
Specialize SetNewElem when base is known to be array

Get rid of the switch-based dispatch on base type for
SetNewElem when we know that the base is an array.

Perflabs look like noise, except for one run that looks too awesome to
be believed:
https://our.intern.facebook.com/intern/perflab/experiment.php?diff_preview_id=2644370

Differential Revision: D927657
Include the null terminator in string's capacity

I want to store the smart allocator size class here, so we
don't need to store it at the front of the smart malloced memory.  (We
can just tell smart_free how big it was, and possibly inline dropping
it on the appropriate free list.)  This isn't necessarily required for
that, but I decided to do it independently to make the changes easier
to think about.  (It's also maybe a marginal step toward not requiring
null terminators on the strings in general.)

Differential Revision: D917550
Move increment_string() into StringData::inc()

After some changes I'm making locally, this will need to be
Mode::Malloc or Mode::Smart depending on the size of the new string,
which is easier to do from inside this same function. While at it,
let's make it reuse the buffer if it fits within the current
capacity().  (This allows small strings to stay small also; although
microbenchmarks on string increments are not particularly impressed by
it.)

Differential Revision: D920271
New StringData::append that uses reserve/escalate

Instead of having all the cases split out, this just goes
through the reserve/escalate paths.  I added geometric growth only to
the Smart mode in reserve (after the capacity check).  This makes it a
little easier to change how strings allocate (fewer allocation code
paths).

Differential Revision: D924293
Draw incision lines in translator-x64.h, delete some dead code

I deleted some dead code, but more importantly, organized the remaining
platform-specific declarations into thematic areas that I think can be
tackled (i.e. moved into explicitly platform-specific modules) as
self-contained units.

My determination of what's platform-specific was fairly loose. If it has
"emit" in the name it is for sure. Note that functionality that only
depends on the TCA type is *not* platform-specific: that was the point
of my diff to separate DataBlock and X64Assembler.

To be honest, I wasn't 100% rigorous on preserving access modifiers.
They're mostly the same, but some may have been changed in the shuffle.
I contend it doesn't matter that much since these members should be
moving to different modules soon, and also this class has so many
friends that most of its "private" members aren't really private as
such.

Because all the rearrangement makes the diff hard to read, here's the
list of declarations/definitions I found to be dead:

- emitDebugPrint, dumpStack, translatorAssert. Not used in the normal
  course of things, but it's possible people have been using them to
  debug; if so, I'll put them back.

- emitReRetransOpt (not dead, but since the definition was just a call
  to emitServiceReq and there's one callsite, I collapsed the chain)

- m_createdTime. It's declared in Translator (and only used there).

- emitIncRef*. These were moved to CodeGenerator earlier.

- toStringHelper. Unused.

- emitChainTo and emitIncCounter. No definition.

- {acquire,drop}WriteLease. We have a different abstraction for this.

- packServiceReqArg with one argument. It's not needed; that template is
  not recursive.

Differential Revision: D929657
Add source location to async functions on the debugger async stack

Add source file and line to async functions on the debugger async stack. This information is only added for async functions which are not actually being executed. Those exist on the normal stack, and their location information is visible there. The location added for async functions which are not running is that of the yield which has caused the continuation to pause.

Differential Revision: D930103
Fix limit on low mem huge pages

The limit was still a bool, so we could only specify a limit
of 0 or 1. Since 1 was working fine, I've dropped the default from 200
to 32, and will test various values to see what works best.

Differential Revision: D929190
Don't use low_malloc for preClass Funcs

They are rarely used at all, and never referenced from the
translation cache, so no need to put them in low memory.

Differential Revision: D930189
Print duration of warmup requests

Differential Revision: D927403
Always use lowercase names when tracking class aliases

I think the current situation is actually correct (we'll just
potentially have extra entries in the multimap), but this makes more
sense.

Differential Revision: D918976
Update Iterable interface, add toArray() method

This diff adds a toArray() method to the Iterable interface, as well as
adding some other methods that were missing from the interface (map(),
filter(), etc). It also deprecates IterableTrait and KeyedIterableTrait,
introduces LazyIterable and LazyKeyedIterable as replacements, and adds
strict versions of the traits called StrictIterable and StrictKeyedIterable.
Finally, it deprecates the view() method (since I want to introduce a new
method named "view" that is semantically different) and introduces lazy().

Differential Revision: D923036
add SplObserver and SplSubject interfaces

- add SplObserver and SplSubject interfaces

Closes #953
Closes #960

Differential Revision: D931324
SPL + filter extensions should report implemented

- Report that we implement SPL and filter extensions (needed for Drupal)

Closes #946

Differential Revision: D931374
Color output of = command. Update help. Implement "print r" to accompany "print v" and to provide a way of getting at old print behavior (if the old help text is to be believed).

The = command has recently been changed to use standard debugger serialization rather than to invoke a customizable function, or print_r otherwise. In the process a bug crept in that made the output not colored. This fixes that bug. It also updates the help text to make it clearer that = truncates text. While looking at that I noticed that the help text for the print command suggested that it's output is formatted with print_r. Fixed the text as well, but while I was at it introduced the "print r" flag to make it possible to invoke print_r, analogously to the already existing "print v" command. While adding test cases, I noticed that the truncation logic appears to be broken, so I fixed that as well.

Differential Revision: D931565
hphp: fix use of has_trivial_destructor

gcc-4.8 and 4.7 aren't consistent about this functions name, so use
boosts version instead (as per D923359).

Differential Revision: D925051
Fix breakpoints on generators

Setting a breakpoint on a generator would work, but it would set it on the function which simply returns the continuation. That's not super-useful, and the intention is to set it on the beginning of the generator. Changed to do that. This change also gets the $continuation off of the function name when printing it at breakpoints.

Differential Revision: D931931
Delete doc/runtime.type_system

It's mostly describing hphpc.

Differential Revision: D932386
Remove doc/coding_guideline

Outdated and stuff.

Differential Revision: D932395
Remove execute permission from ir.specification

Differential Revision: D932404