{"push_id":1442628189,"size":41,"distinct_size":41,"ref":"refs/heads/master","head":"c04f05ad489a7035e5d98d7bedb817a1f6e475d2","before":"0038e24caf223b0f4aaa7d1bbf64aec7351ea566","commits":[{"sha":"6a895ecabeae23ba2f551113b10b1abd57da65d0","author":{"name":"Matt Galbraith","email":"6057e20d4cacf3473ffeb7de47647c7fbeb2be94@microsoft.com"},"message":"Work around this crash from VSO Build Agents:\n\n2016-12-06T00:46:19.0959402Z 'build.clean=All'\n2016-12-06T00:46:19.0959402Z Checking if build directory exists: D:\\A\\_work\\36\n2016-12-06T00:46:19.0959402Z Deleting build directory.\n2016-12-06T00:46:31.2505525Z ##[error]System.ComponentModel.Win32Exception (0x80004005): The directory is not empty\n2016-12-06T00:46:31.2505525Z ##[error]   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints)\n2016-12-06T00:46:31.2661693Z ##[error]   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints)\n2016-12-06T00:46:31.2661693Z ##[error]   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints)","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/6a895ecabeae23ba2f551113b10b1abd57da65d0"},{"sha":"071afc6b7019e52fe232aa045fffb4f286984b24","author":{"name":"Matt Galbraith","email":"6057e20d4cacf3473ffeb7de47647c7fbeb2be94@microsoft.com"},"message":"Revert \"Temporarily disable package publishing\"\n\nThis reverts commit 4617b94842c078e4ba2561edfc4d51c5bbc0c829.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/071afc6b7019e52fe232aa045fffb4f286984b24"},{"sha":"ffad917707331dcb7aeec7839e9fd3f45b610d3a","author":{"name":"Shin Mao","email":"a05e0ccc6ff450e48bba848de0d89f43e482f6cc@microsoft.com"},"message":"Call FormatterServices.GetUninitializedObject Directly.\n\nFix #13677","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/ffad917707331dcb7aeec7839e9fd3f45b610d3a"},{"sha":"75faedd032529ef4b599e5752dac4cf248c2c25f","author":{"name":"Bart De Smet","email":"1dbd4e5507e42fc0a5c7c3e1825caf0c9a94df86@microsoft.com"},"message":"Removing unnecessary casts in interpreter instructions.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/75faedd032529ef4b599e5752dac4cf248c2c25f"},{"sha":"7d7ec9e74f3304237495f226f962bfbc285efa0f","author":{"name":"Bart De Smet","email":"1dbd4e5507e42fc0a5c7c3e1825caf0c9a94df86@microsoft.com"},"message":"Removing unncessary parentheses in instructions.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/7d7ec9e74f3304237495f226f962bfbc285efa0f"},{"sha":"1c55925c66ae2f96a4dee89bc53bb625ed021460","author":{"name":"Bart De Smet","email":"1dbd4e5507e42fc0a5c7c3e1825caf0c9a94df86@microsoft.com"},"message":"Change static field names in NotInstruction","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/1c55925c66ae2f96a4dee89bc53bb625ed021460"},{"sha":"ec7edb504bede89297e4648c02c905b166c969bb","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Refactor ConcurrentBag/Queue/Stack tests\n\n- Added a base IProducerConsumerCollectionTests tests class.\n- Moved common tests from ConcurrentBag/Queue/StackTests down to IProducerConsumerCollectionTests, with each class' test class deriving from the shared class, such that all of these tests now operate against each of ConcurrentBag/Queue/Stack.\n- Added a few additional tests.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/ec7edb504bede89297e4648c02c905b166c969bb"},{"sha":"5ac350d20b6f6885ff44b70e5ba5d5444ae82c7a","author":{"name":"Bart De Smet","email":"1dbd4e5507e42fc0a5c7c3e1825caf0c9a94df86@microsoft.com"},"message":"Fixing ToString of DefaultValueInstruction.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/5ac350d20b6f6885ff44b70e5ba5d5444ae82c7a"},{"sha":"29737669d68efffda3080f2fe5248957e38fba9f","author":{"name":"dotnet-bot","email":"f84cdf622175726c596bcedcda3805233e2ca5f8@microsoft.com"},"message":"Update ProjectNTfs to beta-24806-00","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/29737669d68efffda3080f2fe5248957e38fba9f"},{"sha":"d032b4487664ca45d74007aeca49028155c41967","author":{"name":"Matt Galbraith","email":"7c0a29ae6f1ced802af3cb98fab42e95fce7a86e@users.noreply.github.com"},"message":"Merge pull request #14222 from MattGal/Remove_remaining_Build.clean\n\nRemove build.clean=All from build pipeline settings","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/d032b4487664ca45d74007aeca49028155c41967"},{"sha":"238382f974f46e291d3735b81682df3d9fa42dd1","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14232 from dotnet-bot/master-UpdateDependencies\n\nUpdate ProjectNTfs to beta-24806-00 (master)","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/238382f974f46e291d3735b81682df3d9fa42dd1"},{"sha":"a3c8e2e54845ee4dd2aabc40257124a1cbb6be84","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14221 from stephentoub/ipcc_tests\n\nRefactor ConcurrentBag/Queue/Stack tests","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/a3c8e2e54845ee4dd2aabc40257124a1cbb6be84"},{"sha":"0d5573c3fb6e621e9112f0ee12e7c76c7298ebb8","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14233 from bartdesmet/DefaultValueToString\n\nFixing ToString of DefaultValueInstruction","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/0d5573c3fb6e621e9112f0ee12e7c76c7298ebb8"},{"sha":"bb292e55f8c7cdfd04139a7ac0796275aff48da4","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14227 from bartdesmet/RemoveUnnecessaryParens\n\nRemoving unncessary parentheses in instructions","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/bb292e55f8c7cdfd04139a7ac0796275aff48da4"},{"sha":"db960e18f415675826324578b3e1c6a9432d96ef","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14226 from bartdesmet/RemoveUnnecessaryCasts\n\nRemoving unnecessary casts in interpreter instructions","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/db960e18f415675826324578b3e1c6a9432d96ef"},{"sha":"ec222e8459b0ffac5cb74e6fe16d1437738db6f4","author":{"name":"Bart J.F. De Smet","email":"203458563853509e64289f92ca34bce4e1234192@hotmail.com"},"message":"Remove unnecessary explicit boxing of Int32 in interpreter (#14225)\n\n* Remove unnecessary explicit boxing of Int32.\r\n\r\n* Removing a few more explicit boxes.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/ec222e8459b0ffac5cb74e6fe16d1437738db6f4"},{"sha":"9b6231e598150177ebb3cf1b1b13c78ee8ab7cfe","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #14229 from bartdesmet/StaticFieldsInNot\n\nChange static field names in NotInstruction","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/9b6231e598150177ebb3cf1b1b13c78ee8ab7cfe"},{"sha":"e2a40a19c4dac7b67db061fae5ddbe99393bcca3","author":{"name":"Wes Haggard","email":"c47fb0f8a7dd8a9b87c808b567e88a32c65bd1c9@users.noreply.github.com"},"message":"Merge pull request #14223 from MattGal/Reenable_Publish\n\nRevert \"Temporarily disable package publishing\"","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/e2a40a19c4dac7b67db061fae5ddbe99393bcca3"},{"sha":"19f2995338522fa5bb11e8e488d43e815032c906","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Improve ConcurrentBag.ToArray/GetEnumerator/CopyTo/IsEmpty performance\n\nToArray and CopyTo take a moment-in-time snapshot of the bag by freezing it, copying the contents to an array, and unfreezing.  However, that copy is done via an intermediate List, which results in potentially many unnecessary allocations and copies.\n\nChanges:\n- This commit fixes that by first counting how many items there are in the bag and either presizing the array (in the case of ToArray) or comparing the length (in the case of CopyTo) and then copying directly into the target, eliminating the extra allocations.\n- There is still an intermediate allocation for the non-generic ICollection.CopyTo(Array, int) method, but to avoid that in common cases, it now special-cases T[] and uses the more efficient CopyTo(T[], int) implementation for that common case.\n- GetEnumerator was similarly implemented to first copy to a list and then get its enumerator.  It now uses the ToArray implementation instead.  This also means that for empty bags, we end up returning Array.Empty, which means the returned enumerator from it is also a singleton.\n- Additional fast paths were added to IsEmpty.  It also had a fast path to check to see if the bag was void of any queues, in which case we know the bag is empty.  I've also added checks for the local queue.  If the local queue isn't empty, then we know the bag isn't empty and we can avoid freezing/unfreezing.  If the local queue is empty and it's the only one in the bag, then we can similarly avoid freezing/unfreezing, as we know the whole bag is empty.\n- Added some additional tests.\n\nNote: There are two small technically breaking changes here:\n- ((ICollection)bag).CopyTo when passed a T[] with a bad index would previously throw an ArgumentOutOfRangeException with the name \"dstIndex\".  That's because that's what Array's CopyTo implementation uses as the parameter name, even though this makes very little sense: the name of that property in both ICollection.CopyTo and in ConcurrentBag.CopyTo is \"index\".  As a side-effect of the CopyTo(Array, int) optimization that checks for T[] and forwards it to CopyTo(T[], int), we end up using \"index\" instead of \"dstIndex\" for the argument name in the exception.\n- GetEnumerator used to return the result of calling GetEnumerator on the generated ```List<T>```; now it calls GetEnumerator on the generated ```T[]```.  ```List<T>``` and ```T[]``` have different implemented behaviors for the undefined situation of calling Current on an enumerator after MoveNext has returned false: for ```List<T>``` it returns default(T) and for array it throws an exception.  By switching from using a ```List<T>``` to a ```T[]```, this behavior has also switched.  If we wanted to deal with this, we could by writing a custom enumerator implementation, but it seemed unnecessary.","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/19f2995338522fa5bb11e8e488d43e815032c906"},{"sha":"246d94e94d51bae3b571042b439baf06361d45f5","author":{"name":"Bart J.F. De Smet","email":"203458563853509e64289f92ca34bce4e1234192@hotmail.com"},"message":"Use TypeCode for CastReferenceToEnumInstruction. (#14231)","distinct":true,"url":"https://api.github.com/repos/AlexRadch/corefx/commits/246d94e94d51bae3b571042b439baf06361d45f5"}]}
{"actor":{"display_login":"AlexRadch"}}