{"push_id":1448337061,"size":16,"distinct_size":16,"ref":"refs/heads/removecritical","head":"d228bbed9144ec640e92b7553bcc86f3d94ef0c6","before":"981d76454b81f19f5d4f791dd7a56c41d4a354bb","commits":[{"sha":"d1d06e7241ce9e27067bf6f57d280ad67ca03a74","author":{"name":"sivarv","email":"73fae3b6c24de473684fcc85cbed17d3fb546409@microsoft.com"},"message":"Fix to issue 8287.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/d1d06e7241ce9e27067bf6f57d280ad67ca03a74"},{"sha":"2e475a35ac695e34a433e108c766d2200865aa13","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Port ConditionalWeakTable from CoreRT\n\nThe CoreRT ConditionalWeakTable was modified to support lock-free reads.  This ports the implementation back to coreclr.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/2e475a35ac695e34a433e108c766d2200865aa13"},{"sha":"03525a46e5d9b33e13a992d89dda3fbf36f43888","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Fix perf regression with lots of objects in a ConditionalWeakTable\n\nThe CoreRT implementation of ConditionalWeakTable that was ported back to CoreCLR uses a special scheme to make reads lock-free.  When the container needs to grow, it allocates new arrays and duplicates all of the dependency handles from the previous array, rather than just copying them.  This avoids issues stemming from a thread getting a dependency handle in an operation on the container, then having that handle destroyed, and then trying to use it; the handle won't be destroyed as long as the container is referenced.\n\nHowever, this also leads to a significant cost in a certain situation.  Every time the container grows, it allocates another N dependency handles where N is the current size of the container.  So, for example, with an initial size of 8, if 64 objects are added to the container, it'll allocate 8 dependency handles, then another 16, then another 32, and then another 64, resulting in significantly more handles than in the old implementation, which would only allocate 64 handles total.\n\nThis commit fixes that by changing the scheme slightly.  A container still frees its handles in its finalizer.  However, rather than duplicating all handles, that responsibility for freeing is transferred from one container to the next.  Then to avoid issues where, for example, the second container is released while the first is still in use, a reference is maintained from the first to the second, so that the second can't be finalized while the first is still in use.\n\nThe commit also fixes a race condition with resurrection and finalization, whereby dependency handles could be used while or after they're being freed by the finalizer. It's addressed by only freeing handles in a second finalization after clearing out state in the first finalization to guarantee no possible usage during the second.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/03525a46e5d9b33e13a992d89dda3fbf36f43888"},{"sha":"685de9132d453e08bc4ddb0c66f30d59fb4603b3","author":{"name":"SaeHie Park","email":"c67822a22c5763568604d8ca32dc33f45f6a97ef@gmail.com"},"message":"[x86/Linux] Fix getcpuid calling convention (#8552)\n\nFix getcpuid(), getextcpuid() with STDCALL\r\nFix xmmYmmStateSupport() with STDCALL","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/685de9132d453e08bc4ddb0c66f30d59fb4603b3"},{"sha":"101168c7a41058436f592bd9cb0a1a70f0f1b0ad","author":{"name":"Jan Vorlicek","email":"09bb9bc2e782fb04614d1a465f5dc8996873b58c@microsoft.com"},"message":"Fix incremental build when dummy version.cpp is generated (#8547)\n\nThis change fixes a problem with incremental build on Unix. When the\r\nversion.cpp is generated by the build.sh as a dummy one with no real\r\nversion stamp in it, it is recreated every time the build.sh is run.\r\nThat means that build needs to rebuild that file and also re-link\r\nall the components that include it.\r\nThis change tests the file presence and contents before actually\r\nregenerating it.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/101168c7a41058436f592bd9cb0a1a70f0f1b0ad"},{"sha":"13a829ee49a95f2b8f3137d5cf33dd8ff92d0eff","author":{"name":"Jonghyun Park","email":"8597e43723f6fb7eb642f8222d1eb6622ca38829@gmail.com"},"message":"[x86/Linux] Use Portable FastGetDomain (#8556)\n\nFastGetDomain function (with  __declspec(naked)) causes segmentation\r\nfault.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/13a829ee49a95f2b8f3137d5cf33dd8ff92d0eff"},{"sha":"7d17af2deeca2af47bec4fab01f8c7e23ae3f5a8","author":{"name":"Jonghyun Park","email":"8597e43723f6fb7eb642f8222d1eb6622ca38829@gmail.com"},"message":"[x86/Linux] Port ResolveWorkerAsmStub (#8557)","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/7d17af2deeca2af47bec4fab01f8c7e23ae3f5a8"},{"sha":"2e04d1356246fbc653630ee8d4b9ce36d4e4063f","author":{"name":"Alexandre Mutel","email":"9869cd8d81a0a600e4ed8b5847e036b91582bc99@live.com"},"message":"Add TPA/Trusted Platform Assemblies description to the glossary (From https://github.com/dotnet/coreclr/issues/6470#issuecomment-235161459 )","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/2e04d1356246fbc653630ee8d4b9ce36d4e4063f"},{"sha":"7e099325a7c9e853f1d71f7fa54f734648c6893a","author":{"name":"Gaurav Khanna","email":"80ee79439997d5ef552d3a15b433965545c2ec79@microsoft.com"},"message":"Merge pull request #8563 from xoofx/TPA_glossary\n\nAdd TPA/Trusted Platform Assemblies description to the glossary","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/7e099325a7c9e853f1d71f7fa54f734648c6893a"},{"sha":"37b9f18d22d45be7d3d3c6651a4cef819dfe0fdf","author":{"name":"Alexander Radchenko","email":"1569a4f110d9c0b738bc4a4e1727f0a7a9f31a43@gmail.com"},"message":"StringBuilder.AppendJoin (appending lists to StringBuilder) (#8350)\n\nAdding StringBuilder.AppendJoin","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/37b9f18d22d45be7d3d3c6651a4cef819dfe0fdf"},{"sha":"7adcc81a8adc10e3fbd47a1dcf2d1218cedaf58c","author":{"name":"Stephen Toub","email":"b60ab4ec0ae5032e51dd285ac67105c722f075d3@microsoft.com"},"message":"Merge pull request #8507 from stephentoub/portcorert_cwt\n\nMake ConditionalWeakTable reads lock-free","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/7adcc81a8adc10e3fbd47a1dcf2d1218cedaf58c"},{"sha":"bc8a09288df831a4ad02b645c4d078261d1ceb70","author":{"name":"Sivarv","email":"73fae3b6c24de473684fcc85cbed17d3fb546409@microsoft.com"},"message":"Merge pull request #8544 from sivarv/moveRegFix\n\nFix to issue 8287.","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/bc8a09288df831a4ad02b645c4d078261d1ceb70"},{"sha":"2813ef44942022911261601f458a8e2f044d220e","author":{"name":"Alexander Radchenko","email":"1569a4f110d9c0b738bc4a4e1727f0a7a9f31a43@gmail.com"},"message":"Make it easier to iterate through an ArraySegment (#8559)\n\n* Make it easier to iterate through an ArraySegment. See Make it easier to iterate through an ArraySegment","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/2813ef44942022911261601f458a8e2f044d220e"},{"sha":"d034981c78112c8703d3528e8ef8efdb36d68584","author":{"name":"John Chen","email":"c0324c926938473cb77abd4c0beb662bbb71abed@microsoft.com"},"message":"Fix path separator in CrossGen help on Linux","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/d034981c78112c8703d3528e8ef8efdb36d68584"},{"sha":"345e201f027eb35a7a01e1714afe36b831b6f1e3","author":{"name":"Jeremy Kuhne","email":"21c746d567876386edcceea0628369652afcb30c@microsoft.com"},"message":"Strip some security related attributes (#8571)\n\nStrips SecurityCritical, SecuritySafeCritical, SecurityPermission,\r\nEnvironmentPermission, and PermissionSet attributes.\r\n\r\nAlso removes empty defines these left behind.\r\n\r\nPatterns used:\r\n\r\n^.*\\[(System\\.Security\\.)?SecurityCritical\\](\\s*//.*|\\s*)$[\\r\\n]*\r\n^.*#if FEATURE_CORECLR[\\s\\r\\n]*(#else)?[\\s\\r\\n]*#endif.*[\\r\\n]*\r\n^.*\\[(System\\.Security\\.Permissions\\.)?SecurityPermission(Attribute)?\\([^)]*\\)\\](\\s*//.*|\\s*)$[\\r\\n]*","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/345e201f027eb35a7a01e1714afe36b831b6f1e3"},{"sha":"d228bbed9144ec640e92b7553bcc86f3d94ef0c6","author":{"name":"Jeremy Kuhne","email":"21c746d567876386edcceea0628369652afcb30c@microsoft.com"},"message":"Removes final FEATURE_CORECLR defines","distinct":true,"url":"https://api.github.com/repos/JeremyKuhne/coreclr/commits/d228bbed9144ec640e92b7553bcc86f3d94ef0c6"}]}
{"actor":{"display_login":"JeremyKuhne"}}