{"push_id":1048253822,"size":1000,"distinct_size":18,"ref":"refs/heads/master","head":"442207387e626d69154f942651c5fbd8d573f2c6","before":"b9700c1e51891de4d5d5d27396e936c9fd46771a","commits":[{"sha":"581c2a6547e15e63c5039010ee581e2a593d6a83","author":{"email":"35a46e17bc00e93336a001ea5a30f33595fd0d03@gmail.com","name":"Prayag Verma"},"message":"Fix a typo\n\nReplace `a` with `an`","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/581c2a6547e15e63c5039010ee581e2a593d6a83"},{"sha":"6c785f0df7fd2964c04e04eb1e0948277d994e4b","author":{"email":"acb0485d844224f71261a737461d16e1584df021@users.noreply.github.com","name":"Jon Moss"},"message":"Merge pull request #23563 from pra85/patch-2\n\nFix a typo","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/6c785f0df7fd2964c04e04eb1e0948277d994e4b"},{"sha":"98ed722039f19639b014a9d9d229e0da2926946f","author":{"email":"64b2b6d12bfe4baae7dad3d018f8cbf6b0e7a044@arthurnn.com","name":"Arthur Nogueira Neves"},"message":"Merge pull request #23534 from bronson/fix-redefined-warning\n\nfix 'method redefined' warnings","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/98ed722039f19639b014a9d9d229e0da2926946f"},{"sha":"1fddb0e622f138ea1594a00f20fe7e0adf04f783","author":{"email":"b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@jonathanmoss.me","name":"Jon Moss"},"message":"ActionCable README updates\n\n[ci skip]","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/1fddb0e622f138ea1594a00f20fe7e0adf04f783"},{"sha":"c2b9a5dbef76ae3f8363964d1c90e3da6d292b1d","author":{"email":"c9ef489314dfbd532f7864543463ac09d57c7062@gmail.com","name":"Abhishek Jain"},"message":"[ci skip] Fix grammar","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/c2b9a5dbef76ae3f8363964d1c90e3da6d292b1d"},{"sha":"e6fc78bfbd53b6426cada34ab40079b44454f708","author":{"email":"acb0485d844224f71261a737461d16e1584df021@users.noreply.github.com","name":"Jon Moss"},"message":"Merge pull request #23565 from abhishekjain16/fix_grammar\n\n[ci skip] Fix grammar","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/e6fc78bfbd53b6426cada34ab40079b44454f708"},{"sha":"02c3867882d6d23b10df262a6db5f937ca69fb53","author":{"email":"7bbcc45b0f8f88a262415b9271579a59b891be2e@gmail.com","name":"Aaron Patterson"},"message":"speed up string xor operation and reduce object allocations\n\n```\n[aaron@TC rails (master)]$ cat xor.rb\na = \"\\x14b\\\"\\xB4P8\\x05\\x8D\\xC74\\xC3\\xEC}\\xFDf\\x8E!h\\xCF^\\xBF\\xA5%\\xC6\\xF0\\xA9\\xF9x\\x04\\xFA\\xF1\\x82\"\nb = \"O.\\xF7\\x01\\xA9D\\xA3\\xE1D\\x7FU\\x85\\xFC\\x8Ak\\e\\x04\\x8A\\x97\\x91\\xD01\\x02\\xA4G\\x1EIf:Y\\x0F@\"\n\ndef xor_byte_strings(s1, s2)\n  s1.bytes.zip(s2.bytes).map { |(c1,c2)| c1 ^ c2 }.pack('c*')\nend\n\ndef xor_byte_strings2(s1, s2)\n  s2_bytes = s2.bytes\n  s1.bytes.map.with_index { |c1, i| c1 ^ s2_bytes[i] }.pack('c*')\nend\n\nrequire 'benchmark/ips'\nrequire 'allocation_tracer'\n\nBenchmark.ips do |x|\n  x.report 'xor_byte_strings' do\n    xor_byte_strings a, b\n  end\n\n  x.report 'xor_byte_strings2' do\n    xor_byte_strings2 a, b\n  end\nend\n\nObjectSpace::AllocationTracer.setup(%i{type})\nresult = ObjectSpace::AllocationTracer.trace do\n  xor_byte_strings a, b\nend\np :xor_byte_strings => result\nObjectSpace::AllocationTracer.clear\nresult = ObjectSpace::AllocationTracer.trace do\n  xor_byte_strings2 a, b\nend\np :xor_byte_strings2 => result\n[aaron@TC rails (master)]$ ruby -I~/git/allocation_tracer/lib xor.rb\nCalculating -------------------------------------\n    xor_byte_strings    10.087k i/100ms\n   xor_byte_strings2    11.339k i/100ms\n-------------------------------------------------\n    xor_byte_strings    108.386k (± 5.8%) i/s -    544.698k\n   xor_byte_strings2    122.239k (± 3.0%) i/s -    612.306k\n{:xor_byte_strings=>{[:T_ARRAY]=>[38, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}}\n{:xor_byte_strings2=>{[:T_ARRAY]=>[3, 0, 0, 0, 0, 0], [:T_DATA]=>[1, 0, 0, 0, 0, 0], [:T_IMEMO]=>[2, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}}\n```","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/02c3867882d6d23b10df262a6db5f937ca69fb53"},{"sha":"783858c8e150eb0f98d7e5d893e492ee08998662","author":{"email":"7bbcc45b0f8f88a262415b9271579a59b891be2e@gmail.com","name":"Aaron Patterson"},"message":"drop array allocations on `html_safe`\n\nFor better or worse, anonymous `*` args will allocate arrays.  Ideally,\nthe interpreter would optimize away this allocation.  However, given the\nnumber of times we call `html_safe` it seems worth the shedding idealism\nand going for performance.  This line was the top allocation spot for a\nscaffold (and presumably worse on real applications).","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/783858c8e150eb0f98d7e5d893e492ee08998662"},{"sha":"3f184cab489618aed0b2969ad7893ee3bdd7a843","author":{"email":"bca6f4261a19f75277fe4325de3272d15492eb61@gmail.com","name":"Ryuta Kamizono"},"message":"Fix typo [ci skip]","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/3f184cab489618aed0b2969ad7893ee3bdd7a843"},{"sha":"43e902a65fbdf81a09fa498e34568eb32c84fe52","author":{"email":"acb0485d844224f71261a737461d16e1584df021@users.noreply.github.com","name":"Jon Moss"},"message":"Merge pull request #23567 from kamipo/fix_typo\n\nFix typo [ci skip]","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/43e902a65fbdf81a09fa498e34568eb32c84fe52"},{"sha":"9e70daa9417d9eef875dae0e324aeea8884977ed","author":{"email":"16356534c1589fe78070f5640bedf8614007153c@gmail.com","name":"yuuji.yaginuma"},"message":"remove description of `render :nothing` from guide [ci skip]\n\n`:nothing` option was deprecated in 44781b6e9790d90b4f8b9a41d2b2c114b1a582ee","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/9e70daa9417d9eef875dae0e324aeea8884977ed"},{"sha":"0e70595acc8796c3e0854ef72df478d597243e68","author":{"email":"7d8f52fe2a5e13656d86fcf6ac2c742ec11f40b8@gmail.com","name":"Vipul A M"},"message":"Merge pull request #23571 from y-yagi/remove_deprecated_render_nothing_from_guide\n\nremove description of `render :nothing` from guide [ci skip]","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/0e70595acc8796c3e0854ef72df478d597243e68"},{"sha":"91c13624be7106e12f52799ab535302878219120","author":{"email":"39cf178cf6dad8b7e84ad1f63409d0753fd6d701@gmail.com","name":"Ryan T. Hosford"},"message":"Addresses #23568\n\n  - Corrects an incorrect exception message when using accepts_nested_attributes_for\n  - Removes rescue/reraise behavior introduced in #19077\n  - Adds has_many & has_one, nested_attributes test case specifying the message that\n    should be conveyed with an exception raised because one of the nested attributes provided is unknown","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/91c13624be7106e12f52799ab535302878219120"},{"sha":"836f6f17475279748469348f990f998f534fd439","author":{"email":"7c01f30b2c4fe570dad62a4b3813501624fbdd3c@gmail.com","name":"Dave Gynn"},"message":"Update documentation regarding initializers [ci skip]\n\n- Remove ActionController `logger` and `initialize_framework_caches`\n  which were merged into `set_configs` in fbc9d0f4\n- Rename ActiveRecord `set_reloader_hooks` changed in 283a0876\n- Add missing initializers for ActionController and ActiveRecord","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/836f6f17475279748469348f990f998f534fd439"},{"sha":"6454ee2c698b2401c1d9358252c17a9e7e8bf88b","author":{"email":"84c66fc058fe65d1bb08ca33b21bfe0fa5cb8f17@gmail.com","name":"Rafael França"},"message":"Merge pull request #23577 from dgynn/docs_initializers\n\nUpdate documentation regarding initializers","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/6454ee2c698b2401c1d9358252c17a9e7e8bf88b"},{"sha":"d5c6babd9e139deed5d43c35a41b2af5d73376ba","author":{"email":"7bbcc45b0f8f88a262415b9271579a59b891be2e@gmail.com","name":"Aaron Patterson"},"message":"AC::Request#format always returns a value, so we do not need to try","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/d5c6babd9e139deed5d43c35a41b2af5d73376ba"},{"sha":"b2a9047558e20e35681eae8d47ad7a95c3e1d19e","author":{"email":"7bbcc45b0f8f88a262415b9271579a59b891be2e@gmail.com","name":"Aaron Patterson"},"message":"Request#fullpath should not raise an exception, so remove the rescue","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/b2a9047558e20e35681eae8d47ad7a95c3e1d19e"},{"sha":"b5eb2423b6e431ba53e3836d58449e7e810096b4","author":{"email":"7bbcc45b0f8f88a262415b9271579a59b891be2e@gmail.com","name":"Aaron Patterson"},"message":"`log_process_action` will return an array, so use `empty?`\n\nWe don't need to use active support in this case because we know the\ntype that will be returned.","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/b5eb2423b6e431ba53e3836d58449e7e810096b4"},{"sha":"f1daa2be5278bee61dfa9a6dc111b556df677ad8","author":{"email":"6fd8d8b809bbfd895a3ade0de9734a474554706d@live.com","name":"Diego Silva"},"message":"UniquenessValidator exclude itself when PK changed\n\nWhen changing the PK for a record which has a uniqueness validation on\nsome other attribute, Active Record should exclude itself from the\nvalidation based on the PK value stored on the DB (id_was) instead of\nits new value (id).","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/f1daa2be5278bee61dfa9a6dc111b556df677ad8"},{"sha":"de6ad5665d2679944a9ee9407826ba88395a1003","author":{"email":"be11b38ca2a8492ea688531e4730d7fc0f6b7beb@hashref.com","name":"Xavier Noria"},"message":"enables the evented monitor in new applications","distinct":false,"url":"https://api.github.com/repos/route/rails/commits/de6ad5665d2679944a9ee9407826ba88395a1003"}]}