{"push_id":596674677,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"9a1676c86cecf6583e58be216a7620430da9feb2","before":"d9016de88749bc3deaaaed29f9c1028e7d5489f4","commits":[{"sha":"9a1676c86cecf6583e58be216a7620430da9feb2","author":{"email":"608a0426cfdb46c29ac39909e0d1ac78f6a14462@fb.com","name":"Brett Simmers"},"message":"Misc unwinder-related cleanup\n\nSummary: I'm working on adding catch traces to PHP calls. It's turning out to\nbe a bit more work than anticipated, so I pulled some of the related cleanup\ninto this diff:\n\n- InterpOneCF is now implemented as an exit to a stub rather than an\n  in-tracelet call. This is to make sure any necessary trace-end cleanup\n  happens before the call to interpOne*, to avoid dealing with potentially\n  running an interpOneRetC's catch block after leaving the current frame.\n- Added documentation clarifying the meaning of the CF flag in hhbc.h and\n  cleaned up existing uses of it. Added Yield, YieldK, and Await to the\n  excluded list in instrIsNonCallControl flow since they're now CF.\n- REQ_BIND_CALL and REQ_STACK_OVERFLOW have gone the way of REQ_RESUME\n  and now have dedicated helpers rather than using the generic service\n  request path. This is partially because it's simpler overall, but\n  also to ensure that the C++ functions handling the requests are\n  called by an address in the TC. If we throw an exception from code\n  called by handleSRHelper(), it doesn't look like it was called from\n  the TC so our personality function never has a chance to step in and\n  do the right thing.\n- MCGenerator::handleBindCall() now returns fcallHelperThunk if we\n  can't get the write lease, instead of backing up and interpreting\n  the FCall. This is so we don't overwrite calleeFrame->m_savedRip\n  with a return helper, which could prevent us from running a catch\n  trace attached to the bindcall we're trying to bind.\n- All ringbuffer-related tracing is now dbg-only. I started adding\n  some calls to potentially warm paths and I'd never wanted to use it\n  in a release build anyway.\n- Swap printir levels for initial generation and after code gen.\n- Print a helpful error message when unit verification fails and fix a bug that\n  was causing everything to fail.\n\nReviewed By: @jdelong\n\nDifferential Revision: D1836288","distinct":true,"url":"https://api.github.com/repos/facebook/hhvm/commits/9a1676c86cecf6583e58be216a7620430da9feb2"}]}