Merged
Conversation
Active issue is mono/mono#16417 There seems to be some kind of System.Reflection.Emit concurrency problem here
* Add DynamicallyAccessedMembers All to TypeBuilder and EnumBuilder CreateType methods. Contributes to #45623
* Glob include files based on project extension (VS) * Update Directory.Build.targets * Update Directory.Build.targets * Update Directory.Build.targets
mono/mono#15029 was fixed by #44081, but #43407 incorrectly re-added the ActiveIssue.
* Initial sources, with banners * Run the code formatter * Fix hang in XUnit due to failing to complete all AsyncOperation-s * Remove reflection over RegistryKey * Add ref and packaging * Add tests * Add sln * Fix CS1584 * Fix CA1823 * Fix CA1834 * Unnecessary suppressions * Fix SA1028 * Fix CA1507 * Fix CA1810 * Fix CA1825 * Fix CA1825 * Unnecessary suppressions * Fix CA1805 * Fix IDE0004 * Fix IDE0090 * Remove CAS * Remove tabs and dead code * Unnecessary suppressions * Fix SA1212 * Fix SA1121 * Disable SA1129 * Fix SA1206 * Fix SA1518 * Fix SA1617 * Fix SA1001 * Fix CS0618 * Remove unnecessary comments * Remove unnecessary whitespace * Remove low value xml doc comments * Unused usings * dead files * Remove CAS * More junk * Fix obvious original bug * Remove/insert newlines * Remove reference to old design document * Fix spacing * Fix typo name * Fix file casing * Remove dead code * Add to compat pack * Remove AppDomain etc * Fix casing of .NET * Remove low value XML docs * Remove code that relies on compiling assemblies * Fix inadvertently removed padding * Use EDI to preserve stack when rethrowing * Fix misaligned resource ID's to match sperror.h * Skip SpeechRecognitionEngine tests if no installed recognizers * Fix misformatted string bug * Logging for CI error * Fix NRE trying to map phonemes for voice for culture for which we do not have phoneme map * Fix 153 spelling errors in comments using `Visual Studio Spell Checker` * Remove extraneous file * Fix spacing * Fix project reference * Reorder properties in csproj * Change from netcoreapp2.0 to netcoreapp2.1 * Update src/libraries/System.Speech/pkg/System.Speech.pkgproj Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com> * Add build error for targeting netcoreapp2.0 * Suppress new error during packaging testing * Update System.Speech.targets * Remove ref comments * Update pkgproj * Remove placeholder Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com> Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
…acking view. (#46625) * Add code to check for a backing ArrayBuffer as well as a backing SharedBuffer. - Resolves the error `"Object '...' is not a typed array"` * Add other Slice methods per documentation of JavaScript docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice * Add tests for SharedArrayBuffer. * Address review comment about unused usings * Address review comments. * Address review comments for unnecessary mod in commit * Add back whitespace * Modify comment description as per review comment * Address support for SharedArrayBuffer which fails under Firefox. * Revert "Address support for SharedArrayBuffer which fails under Firefox." This reverts commit f817638. * Address support for SharedArrayBuffer which fails under Firefox. Without all the whitespace changes.
…46737) * [browser][docs] Add testing docs for running outerloop and browser instance * Add information for GitHub interface.
Instead of having instructions that push and pop from the stack, every instruction has explicit dreg and sregs. While the purpose of this PR is mainly to make it easier to implement more advanced optimization in the future, it also has noticeable performance implications. The code is simplified because we no longer need to update and save the SP. However, the code for each instruction is bloated due to the addition of explicit source and destination offsets. This is counteracted by the reduction of the total number of instructions, since ldloc/stloc and moves become redundant and they are mostly optimized away, even in this implementation state. Here are the total number of executed opcodes as part of running the corlib test suite with the interp https://gist.github.com/BrzVlad/d62f504930b75cba4b870e6dbd947e90. Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
…7.1 (#46695) [master] Update dependencies from mono/linker
- Fix the white space in the file to keep VSC from creating noise every time the file is touched. - Does not change any functioning code.
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
This change moves macOS activation injection to the signal plan like it works on other Unix platforms. The reason is that the activation injection using thread suspension and thread redirection with helper frame can collide with signal handlers on the same thread and result in a corrupted stack frame. The issue can be reproduced by sending signals to the .NET process from some other process while the .NET process is doing a lot of GCs.
* Fix inconistent minus sign with different culture
* Assemblies compiled in debug configuration use the `System.Diagnostics.DebuggableAttribute` to indicate optimizations are disabled. * Match Crossgen 1's behavior and respect this setting if no explicit optimization arguments are passed in. * Add `-Od` switch to disable optimizations since now the default behavior of Crossgen2 is to optimize release-built assemblies. * Fix runtime assert when checking the GC ref map for multi-dimensional array's intrinsic `Address` method on x86. `Address` has a custom calling convention which always requires the extra param type in the signature. The extra shared generic check is too restrictive and doesn't match what we tell the JIT the signature is in https://github.com/dotnet/runtime/blob/4b8d10154c39b1f56424d4ba2068a3150d90d475/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs#L500.
* Adding System.Math overloads for nint/nuint * Adding a missing cast * Fixing the Clamp_NInt and Clamp_NUInt tests to work with the provided MemberData
With #46116, a copy of the actual first line of the GUID definition was added as a comment. Unfortunately, the superpmi.py GUID parser was finding that one instead of the actual GUID. Fix the parser to match from the beginning of the line.
…#46744) [master] Update dependencies from dotnet/runtime-assets dotnet/arcade
Co-authored-by: Jan Jahoda <jajahoda@.microsoft.com>
After upgrade to later msvc version on CI boots, see #45524 for details, Window x64 Release builds started to crash on libraries tests. After investigation it turns out that new msvc compiler handles an expression different compared to how it was handled in previous version. After upgrade of msvc, the expression: int _amd64_width_temp = ((guint64)(imm) == (guint64)(int)(guint64)(imm)); implemented in amd64_mov_reg_imm and then called from tramp-amd64.c@500 was transformed into an always true expression by compiler: amd64_mov_reg_imm (code, AMD64_R11, (guint8*)mono_get_rethrow_preserve_exception_addr ()); lea rcx,[rethrow_preserve_exception_func (07FFB9E33A590h)] mov word ptr [rbx+0Dh],0BB41h mov byte ptr [rbx+0Fh],cl mov rax,rcx shr eax,8 mov byte ptr [rbx+10h],al mov rax,rcx shr eax,10h shr ecx,18h mov byte ptr [rbx+11h],al lea rax,[rbx+13h] mov byte ptr [rbx+12h],cl as seen above, the condition and handling of a 64-bit imm has been dropped by compiler. This cause issues when the imm is a 64-bit value since it will always gets truncated into 32-bit imm and in this case it was a pointer to a function within coreclr.dll (mono_get_rethrow_preserve_exception_addr) loaded located at higher address (using more than 32-bit). This is most likely a regression issue in compiler for this specific construction. I tried simpler construction (using same type conversion) on both old and new compiler version and then it makes the right optimization. Fix is to switch to a macro already available in amd64-codegen (amd64_is_imm32) detecting if an imm needs a 32-bit or 64-bit sized value. This will be correctly optimized by new msvc compiler and even if this is a work around for a what seems to be a optimization bug in the compiler, it is still cleaner and better describes the intent than current code. Fix also re-enable Windows x64 Release CI test lane.
This flag is not set by default on any platforms, but long-term it should be useful on wasm with the pinvoke generator work being done by the interop team. This flag reduces around 13k in dotnet.wasm as of today (12/29/2020). However, that is a fairly low-end measurement because this PR only focused on the pinvoke marshaling rather than the full functionality. The structure of our marshaling callbacks means that even with icall linking, a lot of marshaling code will be kept around and unused, including all the string marshaling. To solve this, we can either give up on the ilgen functionality being in a separate library so it gets linked our normally or we can just have this flag cover marshaling functionality as a whole. I've split that part off into a followup PR since it's more likely to be contested, but I implemented the latter option (and also disable things like certain JIT icalls for the same reason). We also will want analyzers set up before this is useful, so hopefully this solution is fine in combination with an extra analyzer for the marshaling methods in question?
…name contains android (#47045) Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
During my work on switching over framework library crossgenning to use Crossgen2 I noticed that jitinterface is missing the file version information. This change fixes the issue. Thanks Tomas
* Improved logger for the AOT compiler. The logic is mostly taken from IL Linker where prople spent a bunch of time on it. * Bunch of other changes.
This PR intentionally does not include any of the modifications on top of them or other files that will be needed to wire them up to the build.
…eAttribute for name parameter (#47192)
* Use faster single attribute lookup for Eventsource * Update src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> * Add debug assert for type * Apply suggestions from code review Co-authored-by: Stephen Toub <stoub@microsoft.com> Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Save avx regs during SuspendThread * few more changes and comments * fix build on windows arm * fix build on Unix * Use new[] instead of malloc * fix for Unix * Use InitializeContext2 to enable context compaction. * PR feedback * Reverted CONTEXT_COMPLETE change. * Use `CopyContext` in RedirectCurrentThreadAtHandledJITCase Co-authored-by: Manish Godse <61718172+mangod9@users.noreply.github.com>
…sync lookup (#47171) * Removed dead code from SystemNative_GetHostEntryForNameAsync * Fixed loss of address-family
The real fix is a trivial fix in the linked list handling of AllocJitTempBuffer. The rest of the changes are making the code conform more to SuperPMI conventions, adding comments, and improving SPMI dumping.
build.sh supports -cmakeargs making it is possible to pass custom cmake arguments down to native cmake steps, but this feature is missing on Windows when using build.cmd. Trying to do: .\build.cmd -subset clr -c release -cmakeargs "-DFEATURE_PERFTRACING_C_LIB=1" on Windows will result in an error since -cmakeargs is not a known command in build.ps1. Commit adds support for -cmakeargs in build.cmd making sure it gets passed down to runtime build on both CoreClr as well as Mono.
move existing remote server tests in HttpClientHandlerTest.cs into a new file, HttpClientHandlerTest.RemoteServer.cs Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
…2.1 (#47332) [master] Update dependencies from mono/linker
* Delete custom FastRandom from ThreadPool - Consolidates 128/256-bit variants of Xoshiro** into the same class name - Uses that from ThreadPool instead of its custom xorshift-based algorithm Throughput stays the same (~2.5ns per next random value) and incurs just one additional object allocation per thread pool thread. * Consolidate TARGET_64/32BIT DefineConstants
* Remove excess allocations in Uri.ReCreateParts * Fix Compression offset * Revert VSB optimizations * Use noEscape.Length * Simplify TryGetUnicodeEquivalent * Remove ValueStringBuilderExtensions * Index into chars instead of dest * Remove unreachable code block * Use StackallocThreshold constant * Add comments about why MemoryMarshal is used to recreate the span
- address difference I introduced in dotnet/aspnetcore#29511 and more - conflict detected in dotnet/aspnetcore#29520 - also s|aspnet/aspnetcore|dotnet/aspnetcore|
* Remove dead code around x86 delegate interop. * Simplify GetUMEntryThunk.
* Fold casts of constants in the importer * Do not use a separate local for the cast operand * Do not try to access the operation that has been folded * Condition the call to CheckDivideByConstOptimized on success of the folding
[master] Update dependencies from mono/linker
* Fixed compilation for libicu 68. * Fixed missing include. Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Optimize Interlocked.Exchange and Interlocked.CompareExchange for IntPtr * Address feedback
<!-- Thank you for your Pull Request! If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed. Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number --> Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.