Change directory structure

H4sICNwgJ1MAA0hhY2tMb2dvLnR4dACtW8uS2zgM
vO8v5KKLrqzxONnRSBf+gy6qyjfMzf9fa1sWCTQa
gCZZ71Y8tiQSBBqNB+kfv9+W68fy82O5vH18Df/z
68fvt69/fsAU5fF/cd63x92X5fq2fL7dH/lqX3ws
n48xvjYYLhwN3qk4jyvPF3kHYUb1+e1rm56DPf6+
D/b2tX/8+bg0P/+8HlduetbZndG+c6FfC7PvTT/7
xCgySjzhkiqsQSyfqv6l3vCdrsFfNJtWiFjZEnaJ
R30Jn1z7nQuxnFSDFnYVmI6N5mOMGUsLsWa2qlut
yT3Pj5e2wsx62oT0s+vEdlXovGCpilqevmnpOpn1
1wlt2oQcYfTyvPzrGG330H+PjwCIupK7cWmClqoB
TJHgaPAQGGdeDaBi3MdM+pK5qYK7/po5/4T22l9d
w7sK3087kIZ212bpQ940UQ76xgGsK2dYI+9JLdRw
W7qlDhy7iG/3InJXInbkyUb1K44I2N/uxhBYF84u
3QOnxYCkrlWQ+cVelD7aWK7BJz3aqKE5aW1W4NPm
FrFfFHSImaElEbHD+6HTO6NklDrVWO3TRDRPAtGu
19mMTn0DNCesZGfP1klZ9V+ttKbtrSVNzT7FjWvN
c064g+IVKhIN4dOuXwb92MGqZ5U+jUkNklDlh4ON
WqmJu+ZGo1kNCmigb1JC9JCpoGTG3qHjvdxTYxJl
SRIXYd1bcwSSoF1fenIu23y7ThQXyrseHm6RYAB3
0aZiIe4AYdPlwhxJaLrkIE1xTOX+QAW1BGHDpGfY
NmQQQ+wiLUaRV+rxcUoIEtwKCJmtGQwg4NHynStA
45JCTgbSw5AXcpkFURP6qG9mcYex2ysjaxC6Acss
Jckk8pTgm8HBpNNdSSa7o3e5i9mXftUfvZsXfTOL
8ybcmNTOobQG4Shb3Ey+5AIMCERgK80seJgy2hX2
rDUnDZFt4POTn4gj24Uh/Emsu/wnGErpf17mWdZG
LpcUZFCTw096LpvfnWCasPw5oWx+nXoNhvgkdGUz
V9d2E0aqh57z7gIJkz7dYEtrG+SrpLk8+BumKaNZ
UbdGoDOXaasfEdaN4dht7QXQYS5nsgYDapZadmJE
s5meSqaTBIRodFsoHwVa6024Hiuiv0oNeccgt2Z6
nZOP75xbEIrdesEvpEzRgLbGMgGSdkQCkDOaHnoq
T4cNSqnAQyDOyr60sLbb/DtuAfHTXvPhxNZwG9E0
zc8q9dUE86xuiHN5SDgKu3rlViYoDKI80HmUeg+i
3nZbiI4b+rGi7jDS7SWjdVyhX7Cv56zDq3Bsm1Te
8/LrclqSYRDQd3+P83Vu/e3sAI3aG19Rs72ZFWez
8ZmQWI2y9SC0n82TbMF02t7o9s/s1qFht0gCFt7I
3SEpVbavQAmJ5T29RZaGx0KyMJzHKrNK+x2raWkT
aRPjDHSXMuiFBAHwaaAsKINLQqEH3EmvCjLpXvbn
mTLp/PckNXE603IeXTfZkKt4Sgk5rsGCEAHiK3NL
v8kaByUjG1LJtvfNKKNoE2LqDlJDKAUL15f/6fAD
vYLB2EY3qINQSEp9VDuu3O6MaIyamlkKpp+8sSc9
VVC/0bQWNKzrng36bW9oTvvN6ySdOVGF3UXAHoRs
SVJ3LI1Gvb7NcT1xdrP6TUvLmnXuRpVNcjFt0xYW
+5XAbGJLwDjyK/3at6PQWAPaQ4QD3ALdR+D2p5RF
HEtvWUeeVRDuya5HfTkWkL/QFnoSkl+QKoIdV2aX
ZxmaNPb+rBXwndpD6wwEndFWZ/eURclkM/wkEmUe
T5++SGXq6Ij5bQu04cEH6dzHeKbxfEc4S838KLql
SGJtuTPWt9ns1nIV3aI0hdilQ54NbI46MFP7gRLc
u5c7OC7GkD4uRmnbxQITJlgVi6PbQfQUTHocY5BH
3liWKtyhHwuirX9kLTe7GXAHHgi7lHmGhIFvV3hF
KrK1edCztmEAqJjeiWEhNm79RiQRziFJdirMPLCZ
QMuKUtzNHXlSJz4zcoQycGFeg1GXruRJN8BhNGXW
gn1mLzVMYXZch8DRW4ucmSEzTSheq5PBFPjAgyZ2
acqA0AbdzZQc2bEw3PCGYk81rtOUpiWhMGhhttDH
FKy7660NDQuDvncWEfThO9wiFWd9j+4tCzaWhhkr
2kIpO8OX7SchXkFJpgqIQxcQUwRVdSQ1SDnUuT+/
UjxFDKZ2PZM8nWuynjltKWocOqrkfuLUUHO+swWv
OE5wXsRLlU2EgrILyEzc+N4m279NNoYHadkTR1Zk
xVOGA2HNgYdhrVFIf6R+7kr/rplawQltxTaUCsrA
7B5abpSbn6IG1MTLL3pSlLoGFGbkRwS9C+7G8+bX
yqx97qvJOsxsyJAT+jw0tyCTKoUdz5RABLZfxVbZ
Y1QC1cpklqFxKnjLhqSnTpdniC9Sm/sfxzIuy+el
6ZGV49flk62ilA1EhDY5OZp4Qz4qvaWgznjpFNIE
0nYicmOLwMaTGx7xTBkWikwpsr5Nzxyh2u1pZoQG
8tCCSkdYKCNdsRqfMCdkCat4HOxTD3TFUFgmGMbs
WYBaK1j84SaX+1CXL+E1UzypSN+6H/iUb6yBAL9i
fjStiQDGmgs8AOhB2y1jPMFcXqhhwxLQ4/XmRKN+
4D74tZPeB25Z6mtgaegVRod+hI+oiEt5h0023RSL
Jm2WxR+X9TwFqhXZBGoCmp9O3E4vf6iPwnCk7u3B
r3tiWMpAzGQULSCPhUrrrQipkJPbQc19EYcWfy2f
v8giDgwjiDUmRRDeR6W1grTVjANusRyLZIHStRP9
9ATROzJtKkYqTtRs/EZ/RRDw8yEF3jfrYU0vfZqW
W+lNWIGgIEcAd5WRzi4MfxGAkUqGwCcAVFBsNghN
YIKokGsUpK44SfhCEzysA/Qk4osiVq+uFHWrp1QJ
NjUbzA2rUAbo79kqmqgMvXR5BuIn3EErWmgHJ8Gv
Xv8k6CtNuzr0tc7xVHFvcbndX+N4O/57vLCcmysG
jxl0USIzGiO1u4MaTPyyTtSHYmus/uX17PH+iu/U
YsMxfN45N7WcUGXys7FB2Ld/gdXObVxvy21Zloc9
71YdR6DzWmaCtIjUu+9qH2giMZib0QOcKILTbFdw
gDahccxjwucU/wFxvUs5q0EAAA==

Reviewed By: @gabelevi

Differential Revision: D1229961
Differential Revision: D1230222
mediawiki at 100%

- Update our branch to have another test fix (incorrect usage of group Database)
- Re-record
- Modify suite.xml instead of trying to pass --excluded-group

Will PR the changes to mediawiki once Travis has HHVM 3, as they'd currently introduce failures.

Reviewed By: @JoelMarcey

Differential Revision: D1226556
Assert property repoAuthTypes in debug builds

This asserts the types hhbbc has inferred for properties
whenever they are read from, if it's a debug build.  It caught that
I'm leaving Closure use var properties as Uninit (harmless, but
technically not so cool).  We could also assert them on sets, but for
now just doing gets.  (Sets are slightly more painful, since the
places that actually do the set are a lot more spread out.)

Reviewed By: @dariorussi

Differential Revision: D1226026
Remove ObjectData:: and Object:: iter functions

They are only used in two places, and we're trying to phase
out MutableArrayIter.  There was one fairly new use in collections---I
think it can just be ArrayIter (tests pass at least).

Reviewed By: @elgenie

Differential Revision: D1223352
Fix incorrect MIterInit code gen to punt

It claims it works on BoxedCell, but if you pass it a
BoxedCell that dynamically contained an array it's going to do a no-op
instead of iterating the array (new_miter_other only contains a TODO
about raising warnings and then returns 0).

Reviewed By: @jasone

Differential Revision: D1223386
Remove RefData::refDataFromVariantIfYouDare

We used to not have a RefData.  But now this is weird.  (And
also implies unnecessary KindOfRef checks.)

Reviewed By: @jasone

Differential Revision: D1223398
Remove the only use of MutableArrayIter

Reviewed By: @ptarjan

Differential Revision: D1223420
Combine MArrayIter and FullPos into one class

Now that MutableArrayIter is dead, no need for the two
things.  Also delete the copy constructor and copy assignment
operator.

Reviewed By: @edwinsmith

Differential Revision: D1223447
Genericize HHBBC::SStringOr into a Either<L,R> class

This is a fairly common idiom.  I thought I might use it in
FullPos, so I genericized it, but I'm not 100% sure if I'll use it
there yet.  (Also, uses in things like iterators probably would
justify an API that gets the thing without a type check.)  Seemed
worth committing for now anyway.

Reviewed By: @alexmalyshev

Differential Revision: D1223461
Remove a few dead function prototypes

These are gone.

Reviewed By: @edwinsmith

Differential Revision: D1223466
Resume async functions quickly

Avoid execution of Continuation's send() and raise() methods when
resuming async functions. Reenter directly into the inner continuation
function.

Reviewed By: @jdelong

Differential Revision: D1222242
Don't template SetOpElem and IncDecElem on op

It just ends up being an argument to another function. I did the same
thing for SetOpProp and IncDecProp a while ago in D801633 but must've forgotten
about these at the time.

Reviewed By: @edwinsmith

Differential Revision: D1223432
A few minor tweaks/fixes

- Clear the SimpleXml error at the beginning of each request
- More detailed logging when we fail to bind our listening socket
- Fix a spelling mistake in Transport::setCookie

Reviewed By: @jdelong

Differential Revision: D1225962
Fix hhvm --php -d - bad temporary filename, parsed as hdf

- breaks phpunit runInSeparateProcess
 - '-c' and filename need to be two args - this was interpreted as adding an extra space, leading to file not found
 - temporary ones don't end in .ini

refs facebook/hhvm#1904

Reviewed By: @ptarjan

Differential Revision: D1224939
add better hhbbc asserts

Reviewed By: @jdelong

Differential Revision: D1226118
Constify the interface to Simplifier

Since Simplifier can now easily return instructions without dests, it's
practical to have it stop mutating instructions in-place and start
always returning newly gen'ed instructions all the time.

This is kind of a big diff, so here's a rundown of the major points:

- optimizeInst and optimizeWork are consolidated into a mostly-sane,
  unified interface to simplifier/cse.

- The weird hack to block cse in optimizeWork is gone; we can tell
  exactly when cse should and shouldn't be done.

- IRBuilder's calling directly into simplifyAssertTypeOp was pretty
  sketchy; I moved it up to the "preOptimize" family of function in
  IRBuilder. (Adapting it to stop modifying its input would have gotten
  quite messy.)

- In-place modification in simplifier is gone, and for the most part
  they're pretty trivial to change.

Reviewed By: @swtaarrs

Differential Revision: D1227121
Add exception barriers before jumps to retain spillstacks

This fixes a subtle bug that was breaking a flib test.  The bug manifested like this:

- before jumping to a merge point, the stack pointer has to be sync'ed using a SpillStack;
- at a merge point we insert a DefSP to prevent any future instructions from walking the SP chain back into one of the conditionals;
- because the DefSP redefines the SP, the earlier SpillStack was being DCE'ed.

The solution here is to just put an exception barrier after any spill associated with a jump.  At first, this seems kind of heavy handed,
but (a) it's conditional on using HHBC control flow, and (b) SpillStacks don't really tend to get DCE'ed anyways.

Reviewed By: @edwinsmith

Differential Revision: D1221048
add a few funtions to the language

These are functions that are baked into the typechecker to help express things that we don't have syntax for. E.g. we can't annotate a function that guarantees its first parameter is true after it has executed, so we need `invariant`, etc.

Reviewed By: @jwatzman

Differential Revision: D1210453
Reenable inlining in tracelet region selector

It was accidentally disabled by D1223119.

Reviewed By: @jdelong

Differential Revision: D1227282
Move frame-state-mutating stuff out of Simplifier

Simplifier shouldn't be mutating frame state by way of constrain() calls
to IRBuilder. IRBuilder's preOptimize functions seem to be where that
stuff should live. (It maybe should be a separate module.) Move it out
there.

DecRefLoc in Simplifier was unreachable (there's already a
preOptimizeDecRefLoc), so just delete it.

To make sure that Simplifier isn't being sneaky, I made its reference to
IRBuilder const.

Reviewed By: @swtaarrs

Differential Revision: D1227771