{"push_id":1195390816,"size":34,"distinct_size":8,"ref":"refs/heads/sharedGenerics","head":"e741f37006277d6cf2e72c8a63ac1a145b8967a3","before":"227ec037ca49c1ec49fe907148d3067ff0d2f35f","commits":[{"sha":"46b7bf41c897f8495f98e621f4b30fbe0f3649be","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1468 from dotnet/master\n\nMerge nmirror to master","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/46b7bf41c897f8495f98e621f4b30fbe0f3649be"},{"sha":"55c8e00a0ac53ffc323af33598472174a467503d","author":{"name":"Luqun Lou","email":"65763aff747ea848c265d53b4ddf690c27b21b5c@microsoft.com"},"message":"  Remove MCG statics\n\n   There is a bug in my previous checkin found by precheckin---The access modifier for McgCompilationUnit property in workitem is public and thus it can be accessed by other workitem through McgIRType. When composing app CompilationUnit during shared mode, this will allow a marshaller in app CompilationUnit to access outputdom in shared interop CompilationUnit and even to add a type into shared interop OutputDom. The fix is to change McgCompilationUnit  property access modifier from public to protected. so only workitem itself can access its own OutputDom.\n\n     With above change, another issue hit--WinRTDelegate marshaller needs to generate its calli delegate for invoke stub function into correct CompilationUnit/OutputDom.\n     For example, IReference<AsyncActionCompletedHandler> is a type in app CompilationUnit and  AsyncActionCompletedHandler is a type in shared CompilationUnit.\n     when generating IReference__AsyncActionCompletedHandler__impl's stub class in app CompilationUnit,  WinRTDelegateMarshaller will fetch AsyncActionCompletedHandler workitem and then it can get its typehandle/delegate invoke method pointer and also generate calli delegate for delegate invoke method. The calli delegate should be generated in app CompilationUnit instead of shared CompilationUnit, but all these marshaller doesn't know which CompilationUnit is working on.\n     Here are some possible solutions for this.\n     a. pass CompilationUnit into marshaller\n        con: it's hard to maintain/debug if something goes wrong.\n\n     b. add a static CurrentCompilationUnit\n        pro: close the one before my change: MCG.CompilationUnit\n        con: need to make sure CurrentCompilationUnit is correctly set.\n     c. [Current]Don't pass InvokeStub Function Pointer in McgMarshal.ComInterfaceToDelegate. Store InvokeStub function pointer into mcg data and fetch it through mcgmodulemanager.\n        pro: Delegate Stub can be shared stub and each CompilationUnit is more isolated.\n        con: during runtime, it will take more time to get delegate invoke stub function pointer.\n\n     Details:\n     1. remove MCG.CompilationUnit\n     2. remove  MCG.CompilationUnitCollection\n     3. rename mcgmodule.cs into mcgdatamodule.cs\n     4. refactor methods in McgDataModule from static to instance--avoid pass a bunch of arguments\n     5. refactor outputdom:\n          a. previous we will generate method (such as \"ConvertStringToBSTR\") dynamically\n              now just add ConvertStringToBSTR into mcghelpers.cs\n          b. remove all these exception string/replace\n          c. move some attributes into wellknown attributes\n     6.. add a private field in workitembase: m_compilationUnit and protected property to access it, each workitem instance can only access its own compilationUnit.\n     7. add a new field DelegateInvokeStub into McgInterfaceData, this will allow Delegate Stub can be shared too.\n     6. other small changes.\n\n[tfs-changeset: 1616205]","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/55c8e00a0ac53ffc323af33598472174a467503d"},{"sha":"84c0db29d5e88d3a8caf9d68091ef8caadb3abca","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1469 from dotnet-bot/from-tfs\n\nMerge changes from TFS","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/84c0db29d5e88d3a8caf9d68091ef8caadb3abca"},{"sha":"41bfc4411d16c0227081f88b52c1c0485b59e051","author":{"name":"Michal Strehovsky","email":"3e45e9df108a785a82d4056d07a3fdce0f0fe4e6@microsoft.com"},"message":"Delete RhIsString and RhGetCorElementType\n\nI didn't bother unifying CorElementType enum because this should really be fixed with https://github.com/dotnet/corert/issues/478 so that we can stop wasting bits on EEType.\n\n[tfs-changeset: 1616408]","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/41bfc4411d16c0227081f88b52c1c0485b59e051"},{"sha":"e496cf962566fb5f4bb00179fafbcd757b496c64","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1475 from dotnet-bot/from-tfs\n\nI didn't bother unifying CorElementType enum because this should really be fixed with https://github.com/dotnet/corert/issues/478 so that we can stop wasting bits on EEType.\r\n\r\n[tfs-changeset: 1616408]","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/e496cf962566fb5f4bb00179fafbcd757b496c64"},{"sha":"102a88858248aa457206b74639da7eaa087f8e1a","author":{"name":"dotnet-bot","email":"f84cdf622175726c596bcedcda3805233e2ca5f8@microsoft.com"},"message":"Fix a deadlock during BGC thread creation\n\n[tfs-changeset: 1616430]","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/102a88858248aa457206b74639da7eaa087f8e1a"},{"sha":"d9680a475088ab1c42ee31147ccfa4ad95f4068c","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1477 from dotnet-bot/from-tfs\n\nMerge changes from TFS","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/d9680a475088ab1c42ee31147ccfa4ad95f4068c"},{"sha":"96deda18b70405b73fae07ceb1626d2271e0bfa0","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Check the exception before checking CorJitResult (#1479)\n\nException is likely to contain more useful data.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/96deda18b70405b73fae07ceb1626d2271e0bfa0"},{"sha":"7d77dabb3a0a074003f6e8b89f9fda53249bf654","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Emit metadata mapping for all unconstructed EETypes (#1478)\n\nRestricting this to generic definitions is incorrect. We need this for\r\ntypeof() to work.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/7d77dabb3a0a074003f6e8b89f9fda53249bf654"},{"sha":"d7a2bca64810c38bb70081ea8059b20472ba9d9e","author":{"name":"Justin Van Patten","email":"d81206d5757d03441cc33466b1c40857c79501e3@justinvp.com"},"message":"Avoid box allocation in FormatProvider.DateTimeFormat (#1481)\n\nThe current implementation calls `string.Concat(object, object)`, which\r\nresults in an `int` box allocation.\r\n\r\nAvoid the box allocation by calling `int.ToString()`, allowing\r\n`string.Concat(string, string)` to be used.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/d7a2bca64810c38bb70081ea8059b20472ba9d9e"},{"sha":"cbd78746374926eec4f60c0e4f66ff7933cedac4","author":{"name":"Michal Strehovský","email":"3e45e9df108a785a82d4056d07a3fdce0f0fe4e6@microsoft.com"},"message":"Implement intrinsics on System.InvokeUtils\n\nThese intrinsics support functionality in:\n\n* Delegate.DynamicInvoke\n* MethodInfo.Invoke\n* Calling convention converter\n\nI had to make the DynamicInvokeParamHelper intrinsic a StubMethod\nbecause the declaration of the intrinsic can't be expressed in C#\n(needs ByRef returns). This can be converted to a real intrinsic\nwhen we switch to C# 7.\n\n.NET Native for UWP does IL rewriting to make the return type match.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/cbd78746374926eec4f60c0e4f66ff7933cedac4"},{"sha":"c8d38d38f67c99676f637574f15e6777fa9cdfdd","author":{"name":"Michal Strehovský","email":"3e45e9df108a785a82d4056d07a3fdce0f0fe4e6@microsoft.com"},"message":"Implement Delegate.DynamicInvoke\n\nThis is implemented with a new thunk that calls into InvokeUtils\nintrinsics to set up the callsite, unbox arguments, and replace default\nvalues in the signature.\n\nI'm not implementing the LoadDefaultValueString() override, so default\nvalue in the delegate signature are not supported yet. This code is\nundergoing changes on the TFS side right now.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/c8d38d38f67c99676f637574f15e6777fa9cdfdd"},{"sha":"0bdd369fc21c762f134aab4297a27f9fdc7581cf","author":{"name":"Michal Strehovský","email":"3e45e9df108a785a82d4056d07a3fdce0f0fe4e6@microsoft.com"},"message":"Add a DynamicInvoke test","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/0bdd369fc21c762f134aab4297a27f9fdc7581cf"},{"sha":"02f1c01541d0f8cbb3f598ae718920f724d52ebd","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1460 from MichalStrehovsky/dynamicInvoke\n\nThis has three logical parts (separated in three commits):\r\n\r\n* Implement `InvokeUtils` intrinsics. This is a general purpose dynamic invoke support class used by `Delegate.DynamicInvoke`, `MethodInfo.Invoke`, and the calling convention converter (not in the repo yet)\r\n* Implement the dynamic invocation delegate thunk\r\n* Add tests","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/02f1c01541d0f8cbb3f598ae718920f724d52ebd"},{"sha":"62e48db28c7fdaa8968107eb5e9b66962750671f","author":{"name":"Justin Van Patten","email":"d81206d5757d03441cc33466b1c40857c79501e3@justinvp.com"},"message":"Avoid unnecessary allocations in BlockedRuntimeTypeNameGenerator (#1482)\n\nThe current implementation calls `string.Concat(object[])`, which\r\nresults in an unnecessary `uint` box allocation along with an\r\n`object[]` array allocation.\r\n\r\nThese allocations can be avoided by calling `uint.ToString()`, allowing\r\n`string.Concat(string, string, string, string)` to be used.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/62e48db28c7fdaa8968107eb5e9b66962750671f"},{"sha":"2f679c34865fa824e0e79fc487a8450907fbd851","author":{"name":"James Ko","email":"9fef5019b483c7c523b2ae177a06c1d48693f2c2@gmail.com"},"message":"Avoid heap allocating in char.ConvertFromUtf32 (#1485)","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/2f679c34865fa824e0e79fc487a8450907fbd851"},{"sha":"5aa195f2c7d09a869cd92e4ac42c5e6da05920ad","author":{"name":"James Ko","email":"9fef5019b483c7c523b2ae177a06c1d48693f2c2@gmail.com"},"message":"Consolidate much of the duplicated code across Encoding implementations (#1486)","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/5aa195f2c7d09a869cd92e4ac42c5e6da05920ad"},{"sha":"ab91bc0a7bb969f4031366124a2eeca1f3fca2aa","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Move R2R helpers enum to ReadyToRun.cs (#1484)\n\nAlso:\r\n* Add the helpers used with generic handle lookup cases to the enum\r\n* Add `ReadyToRunFixupKind`","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/ab91bc0a7bb969f4031366124a2eeca1f3fca2aa"},{"sha":"73f65088c174ad2f1b04112f8e71634b6af65af4","author":{"name":"Justin Van Patten","email":"d81206d5757d03441cc33466b1c40857c79501e3@justinvp.com"},"message":"Encoding.EncodingName: Use ordinal comparison (#1483)\n\nPass `StringComparison.Ordinal` to `StartsWith`, otherwise the\r\ncomparison will be done using the current culture.","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/73f65088c174ad2f1b04112f8e71634b6af65af4"},{"sha":"355139143057a2541f497639838401aee6147718","author":{"name":"Michal Strehovský","email":"f064afbef322a3635f10850d209fe7ece9ffdfd6@users.noreply.github.com"},"message":"Merge pull request #1488 from dotnet/nmirror\n\nMerge nmirror to master","distinct":false,"url":"https://api.github.com/repos/MichalStrehovsky/corert/commits/355139143057a2541f497639838401aee6147718"}]}
{"actor":{"display_login":"MichalStrehovsky"}}