{"push_id":545088098,"size":98,"distinct_size":92,"ref":"refs/heads/master","head":"0d0623c6809fc02e7d3118036ad227bcd39fcc53","before":"821d84c5860a9a26185efa19be407796422e3090","commits":[{"sha":"08753545c4b08b191234f60efe65f78ed113f0d2","author":{"email":"6963656cd5f1036a86f38d6c01e67c3f63074c58@tpip.net","name":"Andreas Schultz"},"message":"[crypto] enhance generate_key for ECC keys\n\nenhance generate_key to calculate ECC public keys from private keys","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/08753545c4b08b191234f60efe65f78ed113f0d2"},{"sha":"ddbe8a821ad57bfc2a1bcd29ed80ae8cfffe1c0e","author":{"email":"2ac05969d3fb80cc71829e1db3294b2538e587c1@erlang.org","name":"Dan Gudmundsson"},"message":"wx: Do not crash server when going down\n\nIf a connect request was made during the takedown of wx it would crash.","distinct":false,"url":"https://api.github.com/repos/erlang/otp/commits/ddbe8a821ad57bfc2a1bcd29ed80ae8cfffe1c0e"},{"sha":"a3c7b9fa731878774358fc3f23c07e684a229172","author":{"email":"2ac05969d3fb80cc71829e1db3294b2538e587c1@erlang.org","name":"Dan Gudmundsson"},"message":"debugger: Fix debugger save options on mac\n\nwxFileDialog:getPaths(FD) always return the empty list\non mac when using file dialog.","distinct":false,"url":"https://api.github.com/repos/erlang/otp/commits/a3c7b9fa731878774358fc3f23c07e684a229172"},{"sha":"b08c43e11b56149a48b4905fda6f479ed9038052","author":{"email":"1c3c8bc4c1fb174da1f42791db53b5e1512332f8@ninenines.eu","name":"Loïc Hoguin"},"message":"Fix \"irregardless\" -> \"regardless\"","distinct":false,"url":"https://api.github.com/repos/erlang/otp/commits/b08c43e11b56149a48b4905fda6f479ed9038052"},{"sha":"7b10ff77235532923558a30759ed9b5fe6d994a5","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"beam_dead: Optimize branches from relational conditionals\n\nThe BEAM compiler translates code such as:\n\n  is_hex_digit(D) when $0 =< D, D =< $9 -> true;\n  is_hex_digit(D) when $a =< D, D =< $z -> true;\n  is_hex_digit(D) when $A =< D, D =< $Z -> true;\n  is_hex_digit(_) -> false.\n\nto something like this:\n\n    L0: test is_ge L1 {x,0} 48\n        test is_ge L1 57 {x,0}\n        move true {x,0}\n        return.\n\n    L1: test is_ge L2 {x,0} 97\n        test is_ge L2 122 {x,0}\n        move true {x,0}\n        return\n\n    L2: test is_ge L3 {x,0} 65\n        test is_ge L3 90 {x,0}\n        move true {x,0}\n        return\n\n    L3: move false {x,0}\n        return\n\nWe can see that tests will be repeated even if they cannot possibly\nsucceed. For instance, if we pass in {x,0} equal to 32, the first\ntest that {x,0} is greater than or equal to 48 at L0 will fail.\nThe control will transfer to L1, where it will be tested whether\n{x,0} is greater than 97. That test will fail and control\nwill pass to L2, where again the test will fail.\n\nThe compiler can do better by short-circuiting repeating tests:\n\n    L0: test is_ge L3 {x,0} 48\n        test is_ge L1 57 {x,0}\n        move true {x,0}\n        return.\n\n    L1: test is_ge L2 {x,0} 97\n        test is_ge L3 122 {x,0}\n        move true {x,0}\n        return\n\n    L2: test is_ge L3 {x,0} 65\n        test is_ge L3 90 {x,0}\n        move true {x,0}\n        return\n\n    L3: move false {x,0}\n        return","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/7b10ff77235532923558a30759ed9b5fe6d994a5"},{"sha":"4ed58c9dead7e7857b43e5313f1337a5214ba551","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Generalize optimizations using shortcut_rel_op/4\n\nBetter optimizations with less code.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/4ed58c9dead7e7857b43e5313f1337a5214ba551"},{"sha":"c4e9c42a0a4b662d4e85fe583191267e135d5176","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"misc_SUITE: Cover the exception handling code in beam_dead\n\nAmend the test suite to call beam_dead as originally intended (and not\nbeam_block), and modify the input data so that the exception will\noccur within the try ... catch block in function/2.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/c4e9c42a0a4b662d4e85fe583191267e135d5176"},{"sha":"5e495894c82575e426a3a45b08c24e1538d75129","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Extend count_bits_matched/3 to handle the UTF instructions\n\nWhile we are, clean up the comments and rearrange the code for\nclarity. Also add a test to cover the last uncovered line in\nbeam_dead.erl.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/5e495894c82575e426a3a45b08c24e1538d75129"},{"sha":"c01e015797153b56cd6b32cab94b8b6b30975f7e","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Improve optimization of bs_start_match2","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/c01e015797153b56cd6b32cab94b8b6b30975f7e"},{"sha":"5d9aa72a69bd3fd2054558036838fab6434c20df","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Update the comments that explain what beam_dead does","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/5d9aa72a69bd3fd2054558036838fab6434c20df"},{"sha":"90f9d6b8c6277f68c75d347aff60ecc44ca22dfe","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Merge branch 'bjorn/compiler/beam_dead/OTP-12393'\n\n* bjorn/compiler/beam_dead/OTP-12393:\n  Update the comments that explain what beam_dead does\n  Improve optimization of bs_start_match2\n  Extend count_bits_matched/3 to handle the UTF instructions\n  misc_SUITE: Cover the exception handling code in beam_dead\n  Generalize optimizations using shortcut_rel_op/4\n  beam_dead: Optimize branches from relational conditionals","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/90f9d6b8c6277f68c75d347aff60ecc44ca22dfe"},{"sha":"f8c523df5caf97d5c46e9ad7b5008161b36f2c8d","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Update primary bootstrap","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/f8c523df5caf97d5c46e9ad7b5008161b36f2c8d"},{"sha":"71b35f78c12f31ae33cf51fd948c22483c77ff7c","author":{"email":"9ae9c44b775ee9b29f4f502415e02e61a9b1a6a0@erlang.org","name":"Bruce Yinhe"},"message":"Merge branch 'RoadRunnr/crypto-ecc-gen-key'\n\nOTP-12394\n\n* RoadRunnr/crypto-ecc-gen-key:\n  [crypto] enhance generate_key for ECC keys","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/71b35f78c12f31ae33cf51fd948c22483c77ff7c"},{"sha":"43d780f36fd1b687fb1739c5a81c033624ab3fd6","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Correct typo in an error message","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/43d780f36fd1b687fb1739c5a81c033624ab3fd6"},{"sha":"fcabdd0426fdf194e652a995e8407daad80c130a","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Use the #objectclass{} record instead of a tuple\n\nDon't build a record using the tuple syntax. It is bad in case\nwe would want to change the record definition later.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/fcabdd0426fdf194e652a995e8407daad80c130a"},{"sha":"6003a7c9d4319eba8eff7bfb8e4a73d3d1d38786","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Add a new test case to test values in ValueTest.asn1\n\nWe only tested that ValueTest.asn1 would compile, no that the\nvalues were correct.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/6003a7c9d4319eba8eff7bfb8e4a73d3d1d38786"},{"sha":"cb6a006acbcec5aae7cf94f163f101fb6c9d439a","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Check CLASS names for validity\n\nClass names must start with an uppercase letter and only contain\nuppercase letters, digits, or hyphens. The parser will not allow\nclass names that don't start with an uppercase letter, so we don't\nhave to check that.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/cb6a006acbcec5aae7cf94f163f101fb6c9d439a"},{"sha":"d73a835b66911935024019fd55089a1e0f7a81d2","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Check INTEGER values better\n\nThere is duplicated effort in that validate_integer() checks\nwhether the integer value is valid, and then normalize_integer()\ndoes mostly the same work in order to convert the value to an\ninteger.\n\nEliminate the validate_integer() function and incorporate\nits checks into normalize_integer(). Also produce proper\nerror messages.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/d73a835b66911935024019fd55089a1e0f7a81d2"},{"sha":"b92e491aa5bfbaefb0f938bbb245a580837cb8c8","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Refactor code involving calls to get_fieldname_element/3\n\nRefactor and clean up code. While at it, add error handling and\ntest cases. (Also add test cases for the existing values in\nValueTest.asn while we are it.)\n\nAdd support for defining INTEGER constants by extracting\nfields from objects. Example:\n\n  int-from-object INTEGER ::= object.&id\n\nWhen extracting values from objects in constraints, only one\nlevel of extraction would work. That is, the following would\nwork:\n\n  SomeName ::= INTEGER (object.&int)\n\nbut not:\n\n  SomeName ::= INTEGER (object.&obj.&int)","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/b92e491aa5bfbaefb0f938bbb245a580837cb8c8"},{"sha":"56ab55449e38de8b28df5e2b7e3e6bbebfecd1ba","author":{"email":"8a2957e0063f2abf61bd145b6236a74a3708ac54@erlang.org","name":"Björn Gustavsson"},"message":"Use object_to_check/1 in two forgotten places\n\nAn #'Externavaluereference'{} may either be a value or an object.\nIn places where objects are expected, we will need to call\nobject_to_check/1 to convert an #'Externavaluereference'{} to an\nobject. It was forgotten in two places.","distinct":true,"url":"https://api.github.com/repos/erlang/otp/commits/56ab55449e38de8b28df5e2b7e3e6bbebfecd1ba"}]}