{"push_id":718619822,"size":19,"distinct_size":0,"ref":"refs/heads/master","head":"4bddea49006ae9eb52c72756f90736a001f6754f","before":"f4f799a566d8890efb2818f9b81b9562420088eb","commits":[{"sha":"bf915151a51c25219de4d68768bf01b74bd5d05a","author":{"email":"dd49afe9cada02f4615956664416427cbff52ba1@fb.com","name":"Josh Watzman"},"message":"EHEntComp should implement a \"strict weak ordering\"\n\nSummary: Apparently, comparators passed to `std::sort` are supposed to\nimplement a \"strict weak ordering\", that is, behave like `<` does. In\nparticular, they are supposed to return `false` when comparing equal\nelements. In practice, the `std::sort` on Linux doesn't seem to ever\nactually pass equal elements into here, so it hasn't mattered. However,\nClang on OS X //does// occasionally do this, and gives an incorrect\nordering if this rule isn't followed (thankfully, it trips an assert a\ncouple of lines below, instead of something more sinister and hard to\ndebug). Explicitly checking for equal elements and making sure we return\n`false` fixes the problem.\n\nReviewed By: @jdelong\n\nDifferential Revision: D2183853","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/bf915151a51c25219de4d68768bf01b74bd5d05a"},{"sha":"ee4bdcbe5f94d05dcf374cb65cddff79cdb9bfb2","author":{"email":"176254d9906391ef7c8860fce1cf7bb88afc21a7@fb.com","name":"Jordan DeLong"},"message":"Add a missing test .opts file\n\nSummary: A test I added in a previous diff doesn't test what it was meant to\nwithout this file.  (Forgot to git add it apparently.)\n\nReviewed By: @swtaarrs\n\nDifferential Revision: D2217078","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/ee4bdcbe5f94d05dcf374cb65cddff79cdb9bfb2"},{"sha":"ab476c644f7e4458f102606b04bb489d0dc5bd76","author":{"email":"176254d9906391ef7c8860fce1cf7bb88afc21a7@fb.com","name":"Jordan DeLong"},"message":"Fix reference leak in collection initialization for Sets\n\nSummary: Sets might not add the new element because it might be a duplicate, so\nthe NZ is not correct.\n\nReviewed By: @binliu19\n\nDifferential Revision: D2217080","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/ab476c644f7e4458f102606b04bb489d0dc5bd76"},{"sha":"49527511fc7125f5637b7c7a0d7d496a3db3a36c","author":{"email":"7c7aaadbbffd562b7b08991adb058767a9461b6a@fb.com","name":"Alex Malyshev"},"message":"Add option to specify the path of the stats file\n\nSummary: Fix a FILE* leak along the way.\n\nReviewed By: @jdelong\n\nDifferential Revision: D2194625","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/49527511fc7125f5637b7c7a0d7d496a3db3a36c"},{"sha":"d126c9b19336888431697a12c40d415e86e8669c","author":{"email":"b8eeaacbfbefa77cd4cb0a961f265cafd2a8213e@fb.com","name":"Guilherme Ottoni"},"message":"Turn off CheckType hoisting\n\nSummary: It seems to be causing or exposing crashes in trunk. See attached task.\n\nReviewed By: @swtaarrs, @ricklavoie\n\nDifferential Revision: D2218084","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/d126c9b19336888431697a12c40d415e86e8669c"},{"sha":"77856731c79ac091d5778ede5047112a68e63bb8","author":{"email":"4baaee8a3e1d52ead025808fe14e6a867853d49e@fb.com","name":"mwilliams"},"message":"Don't phi SpillFrames\n\nSummary: We hit a case where an assertion fired due\nto a temporary being kept live across a call. Thats\nnot really a problem, but in this case, it had created\na phi between an Object and a Cls (the ctx fields of\nthe respective SpillFrames). We currently don't handle\nthat correctly in code gen - although again, in this case\nit didn't matter because the SpillFrame was dead at the\npoint it was inserted (which points to suboptimality in\nthe alias analysis code).\n\nThis diff adds an always_assert to catch the phi issue,\nand also prevents phi-ing of SpillFrames until we resolve\nthe remaining issues.\n\nReviewed By: @ottoni\n\nDifferential Revision: D2218534","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/77856731c79ac091d5778ede5047112a68e63bb8"},{"sha":"0c70b69081d6e1250f232a3fbd7e81afc69279f6","author":{"email":"176254d9906391ef7c8860fce1cf7bb88afc21a7@fb.com","name":"Jordan DeLong"},"message":"Likely fix for a frame-state invariant violation issue\n\nSummary: We require this invariant (assertion added to check_invariants---it's\ncurrently asserted in localValue), but it seems pretty clear that merge_into\ncan violate it.\n\nReviewed By: @ottoni\n\nDifferential Revision: D2217069","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/0c70b69081d6e1250f232a3fbd7e81afc69279f6"},{"sha":"8c86110f9b4f627df4703dbee26693d681bef7e4","author":{"email":"2b5c240e6abd88e71ffc225b0459016e4cba9bda@fb.com","name":"Edwin Smith"},"message":"Update NEWS for \"Nash\"\n\nSummary: And \"McQueen\"\n\nReviewed By: @ottoni\n\nDifferential Revision: D2218240","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/8c86110f9b4f627df4703dbee26693d681bef7e4"},{"sha":"be94e8cfed00e28a75efc518da411dbd46e7fcc4","author":{"email":"176254d9906391ef7c8860fce1cf7bb88afc21a7@fb.com","name":"Jordan DeLong"},"message":"Remove CheckReturnTypeHints in hhvm_wrapper\n\nReviewed By: @​hannesr\n\nDifferential Revision: D2220324","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/be94e8cfed00e28a75efc518da411dbd46e7fcc4"},{"sha":"428be9348ef502e76cb344a9ff2b0b6c2c081f3a","author":{"email":"c692d6a10598e0a801576fdd4ecf3c37e45bfbc4@fb.com","name":"bill fumerola"},"message":"remove unused textutils\n\nReviewed By: @jano, @elgenie\n\nDifferential Revision: D2201221","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/428be9348ef502e76cb344a9ff2b0b6c2c081f3a"},{"sha":"a264088bf94b962ae8a622919638183e857a7d82","author":{"email":"35f194896ceae88bf8aa91f57f3caae13d1229bb@fb.com","name":"Rick Lavoie"},"message":"Make ResourceData ref-count start at 1\n\nSummary: Similar to how StringData/ObjectData/ArrayData now works, initialize\nthe ResourceData ref-count to 1 instead of 0, and save pointless\ninc-refs. Unlike other patches of this nature, this change is quite trivial, as\nthere's very few bare manipulations of ResourceData reference counts.\n\nAlso mark that the AllocObj and NewInstance IR opcodes produce a ref-count\n(since the ObjectData ref-count diff).\n\nReviewed By: @​bnell\n\nDifferential Revision: D2218061","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/a264088bf94b962ae8a622919638183e857a7d82"},{"sha":"55e52c19e3b650e46deef2d029176a98a3575140","author":{"email":"97b43d69a660495408fc532b291d65f46348da6b@fb.com","name":"Herman Venter"},"message":"Deal with self, static and parent constructors\n\nSummary: Typing_hooks.new_id_hook does not currently provide a source position if the new expression is something like \"new self()\", \"new static()\" or \"new parent()\". Therefore add a parameter that provides the source position of the entire new expression.\n\nReviewed By: @joelbeales\n\nDifferential Revision: D2216217","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/55e52c19e3b650e46deef2d029176a98a3575140"},{"sha":"a3c368b895869bbdd33eae38e4350967bec0d85f","author":{"email":"bef03f20adca993bde9c88e7bbbc9b13f651bc63@fb.com","name":"Mark Hahnenberg"},"message":"Refactor FPushObjMethod irgen with exact Func\n\nSummary: Part of a larger series of refactors to simplify and improve\nthe irgen for FPushObjMethod.\n\nReviewed By: @swtaarrs\n\nDifferential Revision: D2144288","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/a3c368b895869bbdd33eae38e4350967bec0d85f"},{"sha":"7bfbb59fea1e13e2b63cbb5a195c5ee4bdfd469a","author":{"email":"bef03f20adca993bde9c88e7bbbc9b13f651bc63@fb.com","name":"Mark Hahnenberg"},"message":"Flatten out the nested control flow a bit\n\nSummary: Hoists checks higher and uses early returns to flatten out the\nhigh amount of nested control flow in fpushObjMethod irgen.\n\nReviewed By: @swtaarrs\n\nDifferential Revision: D2144302","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/7bfbb59fea1e13e2b63cbb5a195c5ee4bdfd469a"},{"sha":"5396ea2d51715d0a2390a4f054da1f354752dd89","author":{"email":"bef03f20adca993bde9c88e7bbbc9b13f651bc63@fb.com","name":"Mark Hahnenberg"},"message":"Remove uses of magicCall local where it's not possible to be true\n\nSummary: This is a pretty small diff, but it's worth being separated out\non its own. After a particular point in fpushObjMethodWithBaseClass,\nit's no longer possible for magicCall to be true. My guess is that it\nwas used as a result of copy-paste coding. So let's stop using it to\nmake it easier to continue refactoring.\n\nReviewed By: @edwinsmith\n\nDifferential Revision: D2144320","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/5396ea2d51715d0a2390a4f054da1f354752dd89"},{"sha":"13105bea330461a6bd074dc1b5990e04922e5abc","author":{"email":"bef03f20adca993bde9c88e7bbbc9b13f651bc63@fb.com","name":"Mark Hahnenberg"},"message":"FPushObjMethod - Split Func lookup from IR generation\n\nSummary: This diff splits finding which Func, if any, we're going to\ncall, from the generation of the IR to actually push the ActRec.\n\nReviewed By: @swtaarrs\n\nDifferential Revision: D2144351","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/13105bea330461a6bd074dc1b5990e04922e5abc"},{"sha":"e2a16e66d8fa68c2020c4f9bd53f2513774fac33","author":{"email":"4baaee8a3e1d52ead025808fe14e6a867853d49e@fb.com","name":"mwilliams"},"message":"Make rand/srand request local\n\nSummary: We were using the C library functions\nrand and srand, which are process global, so\ndifferent requests would interfere with each\nother's random sequences.\n\nReviewed By: @swtaarrs\n\nDifferential Revision: D2221493","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/e2a16e66d8fa68c2020c4f9bd53f2513774fac33"},{"sha":"f215ecce95fb1a2de6173ddaa71a3f22c434f2b1","author":{"email":"c692d6a10598e0a801576fdd4ecf3c37e45bfbc4@fb.com","name":"Bill Fumerola"},"message":"add WHResult HHBC\n\nSummary: WHResult bytecode for an IR implementation of WaitHandle::result()\n\ni experimented with the simplifer passes for this to avoid adding a new opcode. i don't believe it's feasible due to the side-exit blocks that need to be added to handle exceptions for unfinished waithandles exception-containing staticwaithandle.\n\nfuture improvement:\n- provide something more specific than TInitCell if HHBBC knows the inner type.\n- use `OpcodeImpl` attribute from {D2172319} after it lands\n- if possible, recognize the following pattern and and use WHResult directly\n\n  ... AssertRATStk 0 Obj<=HH\\WaitHandle\n  ... FPushObjMethodD 0 \"result\" NullThrows\n  ... FCallD 0 \"HH\\\\WaitHandle\" \"result\"\n\nReviewed By: @jdelong, @jano\n\nDifferential Revision: D2180464","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/f215ecce95fb1a2de6173ddaa71a3f22c434f2b1"},{"sha":"4bddea49006ae9eb52c72756f90736a001f6754f","author":{"email":"97b43d69a660495408fc532b291d65f46348da6b@fb.com","name":"Herman Venter"},"message":"Do --ai in parallel\n\nSummary: Pass the pool or worker processes to the ai stub.\n\nReviewed By: @phooji\n\nDifferential Revision: D2201646","distinct":false,"url":"https://api.github.com/repos/psmarshall/hhvm/commits/4bddea49006ae9eb52c72756f90736a001f6754f"}]}