Update NEWS for Sausage release.

Added a few things I noticed in the git log

Reviewed By: @scannell

Differential Revision: D1009848
Get ARM disassembly printing in printir:2

I'm getting to the point where it's helpful to see the ARM code being
emitted, and this is the most natural way to hook it up.

There's a little wrinkle here in that sometimes (e.g. smashable jumps),
there's stuff in the TC that isn't executable code. In this case the
disassembly is either "Unallocated" or some nonsense instruction. We
could avoid this with sufficient metadata, but I'm not convinced it's
necessary yet. (FYI, this pattern -- data embedded in code -- is common
in ARM code, to judge by the vixl assembler's inclusion of an
abstraction to do this very thing.)

In the process I had to convert vixl's printing facilities to use
std::ostream instead of FILE*. I converted it to use folly::format
instead of fprintf as part of this.

Also added an --arm flag to hhvm_wrapper.php to make my life easier.

Reviewed By: @edwinsmith

Differential Revision: D1006435
Fix template explosion in vixl's use of folly::format

This broke the OSS build. I'm just splitting it up into multiple calls,
resulting in more, but less deep, template instantiations.

Reviewed By: @scannell

Differential Revision: D1009550
Reduce template depth back down to 120
More ARM implementations

This implement ReqBindJmp and associated machinery, and GuardRefs. It
also moves the jump-target-reading functions out of Asm and into
jump-smash.cpp.

GuardRefs is largely copied, but the codegen logic is nontrivially
different, because of differences like how ARM encodes immediates in
logical instructions, and how it can't do compares and tests with memory
operands.

Reviewed By: @jdelong

Differential Revision: D1005529
Even more ARM IR implementations

This takes care of all the quick tests that were hitting
the ##always_assert(!ni->interp)## in translator-x64.cpp. This means
that there all the IR opcodes that appear even when every bytecode is
being interped now have ARM codegen.

The remaining issues in test/quick are primarily complete codegen
failure -- i.e. translateTracelet returns Failure because no amount of
marking bytecodes as "interp" will result in successful codegen. I'll be
going after these next.

Other than that, there are a laundry list of other failures in other
parts of the system, like hhbc-translator, that I don't understand at a
glance. My guess is that interping every bytecode is stressing the
system in a way that exposes some previously-undetected fragility.

Reviewed By: @edwinsmith

Differential Revision: D1005940
Rename APC Shared* and Immutable* objects and files to APC* objects and files

Preparing for a bigger diff we are brining the APC files and objects to a common naming convention

Reviewed By: @jdelong

Differential Revision: D1007981
Use hasMultipleRefs rather than refCount > 1

Pretty much mechanical change, which will make it easier
to use the sign bit for RefCountStaticValue.

Reviewed By: @edwinsmith

Differential Revision: D1009397
stop being dumb with Phar::getPharAndFile

using a "!" and a "===" are really dumb together. I think the old code was right anyways, but this was crazy.

Reviewed By: @alexmalyshev

Differential Revision: D1008302
make RecursiveDirectoryIterator::getSubPathname correct

This was just wrong

Reviewed By: @JoelMarcey

Differential Revision: D1010913
allow PharData to get null as the second arg

Reviewed By: @JoelMarcey

Differential Revision: D1010917
Make pretty json consistent with zend

They put an empty space on empty things

Reviewed By: @JoelMarcey

Differential Revision: D1010909
Fix numa balancing issues

Specifying numa_set_membind doesn't just set the default,
it sets a thread-wide limit on which nodes can provide memory. This
meant that the numa_interleave calls were ineffective.

It turns out that most of the unbalancing occurs during startup/warmup,
so just move the point at which we enable numa.

Reviewed By: @swtaarrs

Differential Revision: D1008356
Get rid of refdata_after_decref_helper

This made it different from all the other countables,
because instead of calling Foo::release, you had to call
refdata_after_decref_helper.

But the only direct calls to release were either using
it to free the memory (so add releaseMem to do that), or were
already checking m_cow. Rewrite release to check m_cow, which
makes the decRefFoo helpers uniform.

Reviewed By: @swtaarrs

Differential Revision: D1009974
spl_autoload_call shouldn't overflow guard

Due to Symfony's use of autoload magic, the infinite recursion
detection is a bit too good and breaks their assumption of being able to
autoload circularly in what would overflow the stack if exit() wasn't
involved. Zend allows this so we probably need to as well.

Closes #1170
Closes #1175

Reviewed By: @markw65

Differential Revision: D1009853
Fix a typo in bytecode.specfication

Fixes a typo in bytecode.specification

Closes #1173

Reviewed By: @edwinsmith

Differential Revision: D1011297

Pulled By: @scannell
Wire up heap profiler to memory manager APIs

This wires up the heap tracking APIs to the actual allocation
functions being used.

Reviewed By: @jdelong

Differential Revision: D1007457
Don't crash on sorting with invalid functions

Right now we crash on the user-defined sort functions if the
function is not valid. Don't do that.

Closes #1165

Reviewed By: @markw65

Differential Revision: D1010050
Fix (non-build-blocking) rebase merge in ref-data.h

"Get rid of refdata_after_decref_helper" added a new call to
smartFreeSize that should be smartFreeSizeLogged.

Reviewed By: @markw65

Differential Revision: D1011305
make --php emulate zend

If we are going to replace zend, we need a CLI that looks like theirs. This is a start. I'll do `-d` next.

Reviewed By: @markw65

Differential Revision: D1009086