{"push_id":1214419862,"size":80,"distinct_size":2,"ref":"refs/heads/next","head":"44d2e7d980f0a3b81535eb6edea42c9e846ec1d2","before":"fc82bd9d246c28a9046e81d3bdb52c5dd57c7d1d","commits":[{"sha":"dba983689cb407adf4a0f49e12fbcb3d62eaa8a3","author":{"name":"Quentin Carbonneaux","email":"3562c9761b8f7bc1dec79fd7d549795abc560019@fb.com"},"message":"Keyset support in hhbbc.\n\nSummary:\nThe modifications are based on the dict ones.\nThe only difference is that we know for keysets\nthat the type of keys is the same as the type of\nvalues.\n\nReviewed By: paulbiss\n\nDifferential Revision: D3484937\n\nfbshipit-source-id: 83fc294088bb5ebd852e1fa8df9ba1ab1b2a625a","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/dba983689cb407adf4a0f49e12fbcb3d62eaa8a3"},{"sha":"e0977a25a4ed2f970f60e231957fdcf71a152974","author":{"name":"Eric Lippert","email":"1af45e08aa091eae577557a5f59102e51d9fa1c6@fb.com"},"message":"Suppress parameter error in anonymous function\n\nSummary: We need to suppress the \"missing type\" error for a parameter in an anonymous function.\n\nDifferential Revision: D3552271\n\nfbshipit-source-id: 3de025dbdf033cb294c37d29de65e9d2b1617fc3","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/e0977a25a4ed2f970f60e231957fdcf71a152974"},{"sha":"498a4f16717d521c972f81a9cfb06df1d0acf2f7","author":{"name":"Eric Lippert","email":"1af45e08aa091eae577557a5f59102e51d9fa1c6@fb.com"},"message":"Give error for malformed xhp attribute name.\n\nSummary: For the convenience of the lexer we use the same lexical grammar for element and attribute names, even though attribute names may not contain : or -.  We detect the error in a later pass.\n\nDifferential Revision: D3555951\n\nfbshipit-source-id: 9b91c0822e8a4fed3d43b934d7f7c531bfb42ef9","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/498a4f16717d521c972f81a9cfb06df1d0acf2f7"},{"sha":"845b86daa21e71c81d5e33dbb1c8198013df1dc8","author":{"name":"Mark Williams","email":"fd4a6f92a8a6afb6b81b9f6e4a42823acc4ed720@fb.com"},"message":"Fix local tracking across MIter* instructions\n\nSummary:\nWe were ignoring the effects, causing Assert* instructions to fail,\nresulting in TRACE_PUNTs from simplifyAssertType.\n\nReviewed By: ottoni\n\nDifferential Revision: D3543067\n\nfbshipit-source-id: 3284394b0e4f10382383e5ebd68b33cf0ff8dbdf","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/845b86daa21e71c81d5e33dbb1c8198013df1dc8"},{"sha":"f9868a351e387c791b0901cabda36c0c90010fec","author":{"name":"Mark Williams","email":"fd4a6f92a8a6afb6b81b9f6e4a42823acc4ed720@fb.com"},"message":"Don't LdStk with a type that isn't StkElem\n\nSummary:\nWe only used it when it was a constant Cctx (which doesn't happen on\nthis path), or its an Obj (which is ok anyway).\n\nThis was the cause of a lot of TRACE_PUNTs due to failing AssertTypes.\n\nReviewed By: swtaarrs, paulbiss\n\nDifferential Revision: D3549839\n\nfbshipit-source-id: 37cca8ce99808b38a14f20c8c717b65ce5340ecc","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/f9868a351e387c791b0901cabda36c0c90010fec"},{"sha":"f8922275a052a8cc91939e2ada2e18e173399983","author":{"name":"Mark Williams","email":"fd4a6f92a8a6afb6b81b9f6e4a42823acc4ed720@fb.com"},"message":"Allow Closures to be inlined\n\nSummary:\nWe didn't explicitly prevent them being inlined, but they usually\nTRACE_PUNTed because the first local was marked as Uninit, where it\nshould actually be the Closure object (and there are AssertTypes to\nthat effect). We also didn't set things up properly if we /did/ manage\nto inline them, so fix that too.\n\nAlso noticed that we put the empty Variadic Param in the wrong slot\n(the last local, rather than the last param), which also tended to\ncause functions with variadic args to not be inlined due to\nTRACE_PUNTs, so fixed that too.\n\nReviewed By: paulbiss\n\nDifferential Revision: D3552782\n\nfbshipit-source-id: d98bb914c750b4a237ac91b0af74cbabe12c49aa","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/f8922275a052a8cc91939e2ada2e18e173399983"},{"sha":"e6c4ccd51ecc27c0d59cae7df7d1fed6eba28889","author":{"name":"Eric Lippert","email":"1af45e08aa091eae577557a5f59102e51d9fa1c6@fb.com"},"message":"Give parse error when default and case appear in wrong position\n\nSummary: The parser allows default and case statements to be parsed anywhere a statement is expected, but they must be *directly* inside the block associated with a switch.\n\nDifferential Revision: D3557056\n\nfbshipit-source-id: 49517f558996b4b3b5cd4dda110ce95a61783ad1","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/e6c4ccd51ecc27c0d59cae7df7d1fed6eba28889"},{"sha":"8d176f83fb36f538a0fedc847432f8455c35987d","author":{"name":"Eric Lippert","email":"1af45e08aa091eae577557a5f59102e51d9fa1c6@fb.com"},"message":"Add error for break and continue in wrong places\n\nSummary:\nWe now detect when a break or continue statement appears in an illegal location.\n\nThe test is simple: we must find a parent that is a loop or switch (in the case of break) before we find an enclosing anonymous method.\n\nI've also done some small refactoring of the error reporting code. Error reporting for statements is consolidated, for instance.\n\nAlso, errors reported are now sorted by offset in the file; this way we can change the order in which errors are found without impacting the test case baseline.\n\nDifferential Revision: D3557575\n\nfbshipit-source-id: 20bddef3fbc213ba35bc2a608b07959ebdba02b6","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/8d176f83fb36f538a0fedc847432f8455c35987d"},{"sha":"3d21d30dc081537cedec5a15b86739dc8fe4662a","author":{"name":"Eric Lippert","email":"1af45e08aa091eae577557a5f59102e51d9fa1c6@fb.com"},"message":"Give error for missing catch / finally in try statement\n\nSummary:\nWe now give an error when a try statement has neither a catch nor a finally.\n\nAlso, some refactoring in the statement error detector, to reduce duplicated code.\n\nDifferential Revision: D3557828\n\nfbshipit-source-id: c193a67ec79f88682e841b60c3b258a5de311ed0","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/3d21d30dc081537cedec5a15b86739dc8fe4662a"},{"sha":"601f3d4a0b5cc31d7389ca4f5eff51ff28ec392e","author":{"name":"Max Wang","email":"7c2db0bd44ce1e75d861a88bee8427961fa5e3cd@fb.com"},"message":"Fix ARM build\n\nSummary: Missed this problem in a ppc64 diff.\n\nReviewed By: Orvid, ricklavoie\n\nDifferential Revision: D3562423\n\nfbshipit-source-id: 3f462f384b6b85a215072d6f12b9292bcb99cf91","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/601f3d4a0b5cc31d7389ca4f5eff51ff28ec392e"},{"sha":"255373a80a9b9c8b1b452f902e394cd9773729cd","author":{"name":"Bartosz Dziewoński","email":"c0b4cdb49fa946d1f47c2bda113e8407e76108c8@gmail.com"},"message":"ext_gd: exif_process_IFD_TAG: Use the right offset if reading from stream\n\nSummary:\nWhen the location of the data is outside of the range we have\npreloaded (for example, if it's before the beginning of the IFD\nstructure), we have to read it from the stream into a separate buffer.\nThe offset calculations in this case were incorrect, resulting in\nbogus values being read for the affected fields (sometimes parts of\nother fields, sometimes binary data).\n\nThe included test image, sourced from [1], is in the public domain.\n\n[1] https://commons.wikimedia.org/wiki/File:U.S._Marines_Prepare_to_board_an_MV-22_Osprey_160509-M-AF202-041.jpg\n\n(This is the same fix as PHP commit c794d53c0377be960a17c3279715436e405b83f4 / php/php-src#1943.)\nCloses https://github.com/facebook/hhvm/pull/7208\n\nReviewed By: Orvid\n\nDifferential Revision: D3518486\n\nfbshipit-source-id: e0560e9455177d873b9494f736fb140810b25633","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/255373a80a9b9c8b1b452f902e394cd9773729cd"},{"sha":"3b7084df6b83ebfb9ac60159ec8bc337f3082495","author":{"name":"svcscm","email":"2062cb6e5bb6a31ddc22d72e09e28ed2ac27bdb9@fb.com"},"message":"Fixed idn_to_ascii() and idn_to_utf8() for UTS #46 algorithm.\n\nSummary:\nFixed `idn_to_ascii()` and `idn_to_utf8()` for UTS 46 algorithm, now fourth parameter contains information in case of error (fix for https://github.com/facebook/hhvm/issues/7184). Added constants `U_IDNA_*`, `U_MULTIPLE_DECIMAL_SEPARATORS`.  Fixed other minor incompatibilities with PHP. Documentation.\n\nThere are still minor incompatibilities with PHP for IDN functions, but I believe that corrected implementation in HHVM is better. Here are differences which I found.\n\n**1) PHP processes empty string incorrectly.**\n\n```\n$result = idn_to_ascii(\"\", 0, INTL_IDNA_VARIANT_UTS46, $idnaInfo);\nvar_dump($result);\nvar_dump($idnaInfo);\n```\nPHP:\n```\nbool(false)\nNULL\n```\nHHVM:\n```\nbool(false)\narray(3) {\n  [\"result\"]=>\n  string(0) \"\"\n  [\"isTransitionalDifferent\"]=>\n  bool(false)\n  [\"errors\"]=>\n  int(1)\n}\n```\n\n**2) Inconsistency in PHP.**\n\n```\n$result = idn_to_ascii(str_repeat(\"a\", 2048), 0, INTL_IDNA_VARIANT_UTS46, $info);\nvar_dump($result);\nvar_dump($info);\nvar_dump(intl_error_name(intl_get_error_code()));\n```\nPHP:\n```\nbool(false)\narray(0) {\n}\nstring(23) \"U_BUFFER_OVERFLOW_ERROR\"\n```\nHHVM:\n```\nbool(false)\narray(0) {\n}\nstring(33) \"U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR\"\n```\nI choosed such behavior thinking about INTL_IDNA_VARIANT_2003. For this old algorithm results will be:\n```\n$result = idn_to_ascii(str_repeat(\"a\", 2048));\nvar_dump($result);\nvar_dump(intl_error_name(intl_get_error_code()));\n```\nPHP:\n```\nbool(false)\nstring(27) \"U_IDNA_LABEL_TOO_LONG_ERROR\"\n```\nHHVM:\n```\nbool(false)\nstring(33) \"U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR\"\n```\nThus you can see that HHVM shows consistent results for both algorithms, while PHP is not, I don't want to copy this behavior from PHP. All other things should work same way in HHVM and PHP.\n\nIdeally would be get the following results for any string length:\n```\n$result = idn_to_ascii(str_repeat(\"a\", 1000000));\nvar_dump($result);\n```\n```\nbool(false)\narray(3) {\n  [\"result\"]=>\n  string(1000000) \"aaa...\"\n  [\"isTransitionalDifferent\"]=>\n  bool(false)\n  [\"errors\"]=>\n  int(4)\n}\n```\nbut I doubt that it is possible, at least I don't know how.\n\nReviewed By: Orvid\n\nDifferential Revision: D3504172\n\nfbshipit-source-id: d6ffc609390a4a473b0aa1739addfa12c4b1e56e","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/3b7084df6b83ebfb9ac60159ec8bc337f3082495"},{"sha":"6172fbe844b3193a85fffb59245b7c74796e4a22","author":{"name":"Shiyu Wang","email":"f2588de942d3cf98f0a41af3c92346d3489f1c8f@fb.com"},"message":"fix enum parsing\n\nSummary:\nThe old parser requires that the last enumerator in the enum declaration also ends with a semicolon. Our new parser requires the opposite, i.e. the last enumerator does not end with a semicolon. This diff changes the behavior to what the old parser does.\nNew grammar:\nenumerator-list :\n\tenumerator-list enumerator\nenumerator:\n\tenumerator-constant = constant-expression ;\nThe other parts are not changed.\n\nTest cases are updated to reflect this change.\n\nReviewed By: ericlippert\n\nDifferential Revision: D3556657\n\nfbshipit-source-id: 7788dee52c2ba08e784a87abeac2231159ceecdd","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/6172fbe844b3193a85fffb59245b7c74796e4a22"},{"sha":"7d1978a063e6c8a46d334dc8e164e7be47642d6f","author":{"name":"Paul Bissonnette","email":"fff1f8de8a80cb831e5af6faa694d645dc01e056@fb.com"},"message":"Fix EnableReusableTC and add tests\n\nSummary:\n- Fix lock rank violation in reclaimTranslation\n- Ensure profData is available when running the treadmill\n- Cleanup some invalid assertions\n- Don't smashCall to nullptr, it's a relative call and that may not fit\n- Don't read frozenEnd() if it's been overridden.\n- Record all function calls to profile code so that the associated metadata can be cleaned up\n- Cleanup some comments\n- Add `hhvm.stress_unit_cache_freq` option to stress unit invalidation\n- Add `--recycle-tc #n` option to test/run which sets `hhvm.stress_unit_cache_freq` to 1 (invalidate every unit), `hhvm.enable_reusable_tc` to 1 to test TC recycling, and runs with `--count #n`\n\nFixes https://github.com/facebook/hhvm/issues/6911\n\nReviewed By: alexmalyshev\n\nDifferential Revision: D3548281\n\nfbshipit-source-id: 1774d9449e71d7caa04c47cc9065d8bf3b2eeb10","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/7d1978a063e6c8a46d334dc8e164e7be47642d6f"},{"sha":"27aa3669431edca41014d7736e5aac2d9f3a771b","author":{"name":"Orvid King","email":"731cbb2f6408ed78650b8a9a9bb4f9a222d7ec62@gmail.com"},"message":"Port ext_std_process to MSVC\n\nSummary: This adds support for MSVC to the process functions.\n\nReviewed By: alexmalyshev\n\nDifferential Revision: D2871213\n\nPulled By: Orvid\n\nfbshipit-source-id: 29f04b44e5b8f466cb972171d0998eb11332c00a","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/27aa3669431edca41014d7736e5aac2d9f3a771b"},{"sha":"2118955d3ac60c03b335abbb2b7bf10c0c336466","author":{"name":"Alex Malyshev","email":"95e8dd4f6905b6fd914a1185625523539131c789@fb.com"},"message":"Further splitting the util build\n\nSummary:\nApparently hphp/util/eh-frame.h was trying to include\nhphp/runtime/vm/debug/eh-frame-msvc.h' in msvc builds, but that file doesn't\nexist.  hphp/util/eh-frame-msvc.h does however, so switch to that.\n\nReviewed By: paulbiss\n\nDifferential Revision: D3557059\n\nfbshipit-source-id: c69f312297843daaf5a0f6b30aede9e57b3d3d39","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/2118955d3ac60c03b335abbb2b7bf10c0c336466"},{"sha":"055787250ed63481627d803d846f118956d26cc2","author":{"name":"Quentin Carbonneaux","email":"3562c9761b8f7bc1dec79fd7d549795abc560019@fb.com"},"message":"Get rid of misleading wordfill().\n\nSummary:\nThe wordfill() function is nasty, this diff gets rid of it.\nIn a context where T is a 32bits type (all its use cases),\nit will only work with -1 (if T is signed) and 0 as inputs.\n\nReviewed By: markw65\n\nDifferential Revision: D3562915\n\nfbshipit-source-id: 7b1ab27452d1b66a6f8e0293f06f0ee11df8e2a8","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/055787250ed63481627d803d846f118956d26cc2"},{"sha":"739ed7718efaef4728c2db19a685f2da65b27f94","author":{"name":"Eric Shrewsberry","email":"a7fe76d1d05efd61fbb57dcb2405f6aefcb4dddd@fb.com"},"message":"Add support for parsing trait usages\n\nSummary:\nTSIA\n\nPretty printing will be revisited later. Also I think the spec gets the distinction between names and qualified names wrong, or a qualified name is a superset of names.\n\nReviewed By: ericlippert\n\nDifferential Revision: D3548795\n\nfbshipit-source-id: 38acd153c0d0a5ec5f9ea6acd8dbc01df820eae8","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/739ed7718efaef4728c2db19a685f2da65b27f94"},{"sha":"768e1d3a8742d7234312d2ef5fadbdd506539c8e","author":{"name":"Eric Shrewsberry","email":"a7fe76d1d05efd61fbb57dcb2405f6aefcb4dddd@fb.com"},"message":"Simplify declaration parser to type parser degation code\n\nSummary: DRY\n\nReviewed By: ericlippert\n\nDifferential Revision: D3561854\n\nfbshipit-source-id: 5efef9cd6d52f1438467b55f44ff182ef250a648","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/768e1d3a8742d7234312d2ef5fadbdd506539c8e"},{"sha":"e6abf022c3b32944ba0c861ca073fbfed9fc9be8","author":{"name":"Christopher Dykes","email":"9f4831d19ed2a22cef5f174bcdf71bff5a712cec@fb.com"},"message":"Fix parsing INF/NAN floats in PHP7 mode\n\nSummary:\nPHP7 includes a large refactor of strtod, and in the process support was added for parsing INF/NAN strings as floats. I've gated this behind a runtime option.\n\nFixes https://github.com/facebook/hhvm/issues/6986\n\nReviewed By: alexmalyshev\n\nDifferential Revision: D3289627\n\nfbshipit-source-id: 962974150723b67ebb0e0401427c029da0c66fc0","distinct":false,"url":"https://api.github.com/repos/PPC64/hhvm/commits/e6abf022c3b32944ba0c861ca073fbfed9fc9be8"}]}
{"actor":{"display_login":"brunoalr"}}