Ahson Khan [Fri, 14 Feb 2020 04:42:10 +0000 (20:42 -0800)]
Rename JsonPropertyInfo<TConverter> to JsonPropertyInfo<TTypeToConvert>. (#32209)
David Wrighton [Thu, 13 Feb 2020 23:44:41 +0000 (15:44 -0800)]
Vector abi tests and reverse pinvoke fixes (#32034)
- Fix issues noted in returning structures from reverse p/invokes
* Add tests for marshalling Vector2/3/4
- Anticipated work on Windows Amd64 calling conventions may affect this, so this needs testing
* Updates to add return struct marshalling tests/fixes
- Adjust some reverse p/invoke struct marshalling tests to add coverage for returning structures
- Coverage includes a 3 byte, 4 byte struct, 8 byte struct, and a large struct
- Note: There is a code in mlinfo.cpp which explicitly makes support for returning 3, 5, 6, and 7 on X86 follow the wrong calling convention by rounding the size to a 4 byte boundary. I've left this unfortunate detail in place.
* Re-encode ReversePInvokeTest.cs to utf8 to reduce future diffing burden
Chris Ross [Thu, 13 Feb 2020 23:29:41 +0000 (15:29 -0800)]
Update CODEOWNERS and scripts (#32251)
Tomas Weinfurt [Thu, 13 Feb 2020 23:07:49 +0000 (15:07 -0800)]
use proper IO in ssl handshake (#32013)
* use proper IO in ssl handshake
* fix UnitTests/Fakes
* feedback from review
* rename adapters to SyncSslIOAdapter and AsyncSslIOAdapter
* feedback from review
Steve Harter [Thu, 13 Feb 2020 21:50:44 +0000 (15:50 -0600)]
Merge pull request #32184 from steveharter/FileCleanup
System.Text.Json file and converter name clean-up (no functional changes)
Viktor Hofer [Thu, 13 Feb 2020 21:27:01 +0000 (22:27 +0100)]
Remove dead code in S.R.S.Formatters.Tests (#32229)
Viktor Hofer [Thu, 13 Feb 2020 21:24:07 +0000 (22:24 +0100)]
Skip res. intensive BinaryFormatter tests on chk (#32245)
* Skip res. intensive BinaryFormatter tests on chk
Those tests are taking too long for our default timeout on Checked
configurations and that configuration doesn't provide much value there.
* Update BinaryFormatterTests.cs
monojenkins [Thu, 13 Feb 2020 21:20:38 +0000 (16:20 -0500)]
[runtime] Disable assertion messages for g_assertf as well if DISABLE_ASSERT_MESSAGES is used. (#32018)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Ryan Lucia [Thu, 13 Feb 2020 20:36:18 +0000 (15:36 -0500)]
[mini] Move netcore hosting functionality into separate file (#32136)
* [mini] Move netcore hosting functionality into separate file
* [loader] Don't crash in the preload hook if the TPA paths aren't set
* [loader] Never request a refonly load in netcore preload hook
* Assert not refonly in netcore preload hook
* Add new files to msvc build
Carol Eidt [Thu, 13 Feb 2020 18:56:30 +0000 (10:56 -0800)]
Fix handling of non-reg-passed HFA (#32180)
Fix #31673
Viktor Hofer [Thu, 13 Feb 2020 18:21:02 +0000 (19:21 +0100)]
Disabling x86 Win7&8.1 helix test runs (#32233)
These runs are failing frequently based on Client are fully patched.
Steve Harter [Wed, 12 Feb 2020 17:33:07 +0000 (11:33 -0600)]
Additional renaming and csproj changes
Steve Harter [Wed, 12 Feb 2020 17:30:20 +0000 (11:30 -0600)]
Rename converter types
Steve Harter [Wed, 12 Feb 2020 16:30:38 +0000 (10:30 -0600)]
Rename and move converter files
Levi Broderick [Thu, 13 Feb 2020 17:40:34 +0000 (09:40 -0800)]
Clean up improper usage of linguistic string functions (#31968)
- Optimize ToUpperInvariant/ToLowerInvariant
- Also optimize static field TextInfo.Invariant
- Rewrite ToUpper/Lower(Invariant) call sites to use optimized method
- Fix some uses of culture-aware ToUpper / ToLower to use invariant culture
- Replace Trim().Length with IsNullOrWhiteSpace where appropriate
- Use ordinal StartsWith / EndsWith where appropriate
- Avoid calling CultureInfo.InvariantCulture where possible
Viktor Hofer [Thu, 13 Feb 2020 17:17:30 +0000 (18:17 +0100)]
Further removal of old framework aliases in docs
Viktor Hofer [Thu, 13 Feb 2020 17:15:14 +0000 (18:15 +0100)]
Remove old frameworks and use dotnet build in docs
dotnet-maestro[bot] [Thu, 13 Feb 2020 16:46:18 +0000 (17:46 +0100)]
Update dependencies from https://github.com/dotnet/arcade build
20200212.7 (#32224)
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20112.7
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20112.7
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20112.7
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20112.7
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20112.7
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20112.7
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20112.7
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20112.7
Ahson Khan [Thu, 13 Feb 2020 16:42:36 +0000 (08:42 -0800)]
Update to the latest available Intellisense transport package. (#32218)
Youssef Victor [Thu, 13 Feb 2020 13:10:04 +0000 (15:10 +0200)]
Remove unused variables and follow coding style (#677)
* Remove unused variables and follow coding style
* Update BuildFolderSet.cs
* Use StartNew method based on stephen feedback
monojenkins [Thu, 13 Feb 2020 12:50:05 +0000 (07:50 -0500)]
[tests] Disable bug-10127.exe runtime test on Windows x64 (#32222)
It hangs: https://github.com/mono/mono/issues/18827
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
monojenkins [Thu, 13 Feb 2020 12:00:51 +0000 (07:00 -0500)]
[interp] Always init locals (#32193)
Storing uninitialized locals in a managed object shouldn't crash the runtime, so they should be zeroed. This doesn't seem to regress performance on wasm since the initlocals flag is always set, currently. We should be able to remove it most of the time, once we add some multi basic block support to the cprop phase. This will enable us to further reduce call overhead.
Fixes https://github.com/mono/mono/issues/18527
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
monojenkins [Thu, 13 Feb 2020 11:58:51 +0000 (06:58 -0500)]
[interp] Add missing conversion opcodes from r4 (#32196)
Fixes tests from System.Linq.Expressions suite
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
monojenkins [Thu, 13 Feb 2020 11:55:21 +0000 (06:55 -0500)]
[runtime] Add --enable-minimal=processes,config options to disable support for processes and .config files. (#32217)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
monojenkins [Thu, 13 Feb 2020 08:37:09 +0000 (03:37 -0500)]
[llvm] Remove a wasm limitation which no longer exists. (#32163)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
monojenkins [Thu, 13 Feb 2020 08:14:18 +0000 (03:14 -0500)]
[interp][wasm] Make newobj_fast not recursive, cleanup, fix EXCEPTION_CHECKPOINT. (#31856)
Make newobj_fast not recursive.
This contributes significantly to https://github.com/mono/mono/issues/18646,
and against master might even fix it.
Much recursion remains in the interpreter/transform.
This also cleans up redundant code, i.e. method_entry,
and places EXCEPTION_CHECKPOINT more correctly,
i.e. when transform occurs but does not return an exception.
EXCEPTION_CHECKPOINT fix is necessary so that non-recursive newobj_fast does not break one test.
One more item, could be separate PR:
Making call_vararg added the following to all calls:
storing is_void in a larger scoped local
save is_void
restore is_void
check is_void, along with preexisting check of retval == null
Because retval must be set even for void call_varargs, because the arglist is found from it.
This removes the check of retval == null, it should be redundant with is_void.
Since there was complaint about call_vararg inefficiency, this fixes part of it.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Jo Shields [Thu, 13 Feb 2020 06:15:20 +0000 (01:15 -0500)]
Enable Mono ARM & ARM64 Linux builds (#32181)
* Enable cross-compiling for ARM{64} with ./mono.sh --arch arm{64}
* Add Mono ARM/ARM64 builds to CI
* Ensure we don't use win-arm64 RID on `./mono --pack`
* Don't replace prof_ldflags on non-Linux
Stephen Toub [Thu, 13 Feb 2020 06:01:42 +0000 (22:01 -0800)]
Fix nullability warnings in System.Diagnostics.Process (#32211)
Ryan Lucia [Thu, 13 Feb 2020 04:11:06 +0000 (23:11 -0500)]
Add initial mono CODEOWNERS file (#32198)
* Add initial mono CODEOWNERS file
* Add Alexis to a few more dirs
* Add Egor to LLVM dirs
Santiago Fernandez Madero [Thu, 13 Feb 2020 03:01:26 +0000 (19:01 -0800)]
Disable System.Reflection.Emit.Tests in mono (#32201)
Stephen Toub [Thu, 13 Feb 2020 02:43:16 +0000 (18:43 -0800)]
Add span-based methods to Decimal (#32155)
* Add span-based methods to Decimal
* Address PR feedback
Add missing tests
* Address PR feedback
Matt Kotsenas [Thu, 13 Feb 2020 02:16:21 +0000 (21:16 -0500)]
Implement WaitForExitAsync for System.Diagnostics.Process (#1278)
* Add Process.WaitForExitAsync() and associated unit tests
Add a task-based `WaitForExitAsync()` for the `Process` class, and
duplicate existing `WaitForExit()` tests to add async versions.
In order to ensure that the `Exited` event is never lost, it is the
callers responsibility to ensure that `EnableRaisingEvents` is `true`
_prior_ to calling `WaitForExitAsync()`. A new
`InvalidOperationException` is introduced to enforce those semantics.
* Review feedback: Change WaitForExitAsync to return Task
Per review feedback, change `WaitForExitAsync` to return a `Task`
instead of `Task<bool>`. Now, to determine if the process has exited,
callers should check `HasExited` after the await, and cancellation
follows the async pattern of setting canceled on the task.
* Remove asserts on Task properties
Per code review feedback, remove the asserts that verify that the Task
returned by WaitForExitAsync is completed successfully / canceled, as
they're essentially Task tests and not relevant to WaitForExitAsync.
* Fix unit test to not create async void
Per code review feedback, fix the
MultipleProcesses_ParallelStartKillWaitAsync test to make work a
`Func<Task>` instead of an `Action` since we're await-ing it.
* Remove implicit delegate creation for ExitHandler
Per code review feedback, converting ExitHandler from a local function
to an `EventHandler` to avoid the extra delegate allocation to convert
between the types.
* Flow CancellationToken to OperationCanceledExceptions
Per code review, register the `TaskCompletionSource` with the
`CancellationToken` so that if an `OperationCanceledException` is thrown
the relevant token is available on
`OperationCanceledException.CancellationToken`.
To accomplish that the `TaskCompletionSourceWithCancellation` class
that's internal to `System.Net.Http` is moved to Common and consumed in
both places.
Unit tests are also updated to verify that the cancellation token passed
in is the same one returned from
`OperationCanceledException.CancellationToken`.
* Do not require EnableRaisingEvents to already be true
Per code review feedback, update `WaitForExitAsync` to not require the
user to call `EnableRaisingEvents` first.
Setting `EnableRaisingEvents` ourselves introduces the chance for an
exception in the case where the process has already exited, so I've
added a comment to the top of the method to detail the possible paths
through the code and added comment annotations for each case.
Lastly, I updated the unit tests to remove `EnableRaisingEvents` calls.
* Follow style guidelines in ProcessWaitingTests
Per code review feedback, update the new unit tests in
ProcessWaitingTests to follow style guidelines.
* Update tests to follow coding guidelines
Per code review feedback, update tests to follow coding guidelines,
simplify creating cancellation tokens, and verify synchronous completion
of tasks in the exited / canceled case.
* Update WaitForExitAsync to early out in canceled case
Per code review feedback, add an early out for a non-exited process when
canceled.
* Add a test for completion without a cancellation token
Per code review feedback, add a test for a process that completes
normally and doesn't use a canellation token.
* Address PR feedback in xmldocs
Per code review feedback, update the xmldocs for `WaitForExitAsync` to
specify the language keyword for "true", and add a `<returns>` element.
* Update xmldocs per code review feedback
Per code review feedback, update xmldocs to list other conditions that
can cause the function to return.
* Update function guards per code review feedback
Per code review feedback, update the method guards to span multiple
lines to adhere to style guidelines.
* Refactor test to verify async as well as sync cancellation
Per code review feedback, update
SingleProcess_TryWaitAsyncMultipleTimesBeforeCompleting to test both the
case where the token is canceled before creating the Task as well as
after the task is already created.
John Salem [Thu, 13 Feb 2020 02:14:46 +0000 (18:14 -0800)]
modify integral tryparse to use memcpy (#2295)
Stephen Toub [Thu, 13 Feb 2020 01:44:17 +0000 (17:44 -0800)]
Annotate System.Net.Ping for nullable reference types (#32131)
Justin Kotalik [Thu, 13 Feb 2020 01:29:54 +0000 (17:29 -0800)]
Call start earlier in System.Net.Quic (#32143)
Sergey Andreenko [Thu, 13 Feb 2020 00:23:56 +0000 (16:23 -0800)]
Implement the JIT part of the dynamic dictionary expansion feature. (#31957)
* Implement the JIT part of the dynamic dictionary expansion feature.
* review response.
* response review
Jan Vorlicek [Thu, 13 Feb 2020 00:05:52 +0000 (01:05 +0100)]
Display stack trace at stack overflow (#32167)
This is a fixed version of the reverted commit.
This change enables printing stack trace at stack overflow to the
console. In case multiple threads fail with stack overflow in parallel,
only the trace of the first thread is printed.
There are couple of interesting details:
The stack trace is printed in a compressed form. The algorithm finds the
largest sequence of frames starting from the top of the stack that is
repeated and prints it just once with the repeat count.
Only the first thread that hits stack overflow gets its stack printed.
On Linux, others threads that hit stack overflow are held spinning until
the process exits. This enables having a single preallocated stack for
handling stack overflow. On Windows, we just don't print the stack
trace, as it would be messy anyways due to the interleaving of output
from multiple threads and the value of getting stack overflow traces of
multiple threads is questionable.
On debug / checked builds for Windows, I had to bump the stack guarantee
by two pages and also enable setting the stack guarantee for all threads
in these build flavors.
At couple of places in the runtime, there were debug checks comparing
explicit frame and some other struct addresses to the current SP. These
were firing on Linux when we are running on an extra stack overflow
handling stack. I've fixed it by adding a flag to the Thread that
indicates that we are running on an alternate stack and these checks
should be skipped.
I've fixed the x86 Windows JIT_StackProbe to first probe at SP-4 and
then move the SP to leave more stack space for the handler.
I've fixed stack overflow check on Linux for some glibc / distros. The
stack limit returned by the pthread_attr_getstack returns the address of
the guard page in some of the glibc / distros and address of the last
accessible page before the guard page on others. So I've relaxed the
check to consider +/- 1 page around the stack limit to recognize sigsegv
as stack overflow.
Tomas Weinfurt [Wed, 12 Feb 2020 22:51:29 +0000 (14:51 -0800)]
remove dead code from SslStream (#32065)
* remove dead code from SslStream
* add equivalent ThrowIfExceptionalOrNotAuthenticated
Ryan Lucia [Wed, 12 Feb 2020 22:14:21 +0000 (17:14 -0500)]
[threading] Switch to a native implementation of LowLevelLifoSemaphore (#2098)
This change is motivated on two main fronts. The first is maintainability - the current managed implementation is difficult to understand and I worry diagnosing any potential issues would be a massive time sink. The second is performance - the current implementation appears to suffer from significant lock contention when running the TechEmpower plaintext benchmark. My hope is that the simpler, cleaner native implementation here will avoid both problems, but I don't want to merge it until we have benchmarking data. However, even if the numbers are similar, I still think it's worth merging just from a maintainability perspective.
The native LifoSemaphore implementation has only ever been tested on posix-like platforms, so Windows behavior is unknown. Currently the Windows implementation of LowLevelLifoSemaphore is very different, so unless we have need for the LifoSemaphore elsewhere in the runtime this isn't a concern.
Many thanks to @filipnavara for the initial implementation.
dotnet-maestro[bot] [Wed, 12 Feb 2020 20:09:11 +0000 (20:09 +0000)]
[master] Update dependencies from dotnet/arcade (#32115)
* Update dependencies from https://github.com/dotnet/arcade build
20200210.11
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20110.11
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20110.11
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20110.11
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20110.11
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20110.11
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20110.11
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20110.11
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20110.11
* Update dependencies from https://github.com/dotnet/arcade build
20200211.3
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.3
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.3
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.3
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.3
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.3
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.3
* Update dependencies from https://github.com/dotnet/arcade build
20200211.5
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.5
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.5
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.5
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.5
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.5
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.5
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.5
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.5
* React to changes from https://github.com/dotnet/arcade/pull/4799
* Downgrade compiler version
* Update dependencies from https://github.com/dotnet/arcade build
20200211.11
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.11
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.11
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.11
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.11
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.11
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.11
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.11
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.11
* Disable serialization test on Mono
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Tomáš Rylek [Wed, 12 Feb 2020 19:55:03 +0000 (20:55 +0100)]
Minor R2RDump improvements (#32178)
Based on JanV's suggestions and based on my own composite R2R work
I have made a few small improvements in R2RDump:
1) When normalization is on, we newly also normalize transition
records for a particular IP address.
2) New option --hide-transitions suppresses transition information
in the disassembly completely.
3) Logic for parsing the new OwnerCompositeExecutable R2R section.
Thanks
Tomas
Stephen Toub [Wed, 12 Feb 2020 19:38:36 +0000 (11:38 -0800)]
Fix ActiveIssue issue number to use full Url (#32182)
This is the only one in the repo still using a number.
Anirudh Agnihotry [Wed, 12 Feb 2020 18:27:26 +0000 (10:27 -0800)]
adding outerBuild\InnerBuild structure for generate reference source (#31892)
* Using new custom target from arcade
* removing the outerbuild directory
Marek Safar [Wed, 12 Feb 2020 18:00:10 +0000 (19:00 +0100)]
Add basic RIDs for ios and tvos (#31953)
Viktor Hofer [Wed, 12 Feb 2020 17:04:52 +0000 (18:04 +0100)]
Bring back T4 templating service for tt files (#32172)
Viktor Hofer [Wed, 12 Feb 2020 17:04:22 +0000 (18:04 +0100)]
Disable constantly failing NetworkInformation test (#32176)
Matt Mitchell [Wed, 12 Feb 2020 16:56:29 +0000 (08:56 -0800)]
Update to preview branding (#31744)
Chris Ross [Wed, 12 Feb 2020 16:49:27 +0000 (08:49 -0800)]
Restructure shared http code (#32141)
Marco Rossignoli [Wed, 12 Feb 2020 16:25:10 +0000 (17:25 +0100)]
Fix AppDomain.SetPrincipalPolicy bug for new threads (#32104)
* fix principal policy for new threads
Fixes #31717
Tomáš Rylek [Wed, 12 Feb 2020 14:41:11 +0000 (15:41 +0100)]
Move getFieldInfo to CorInfoImpl.ReadyToRun (#32159)
Viktor Hofer [Wed, 12 Feb 2020 12:44:47 +0000 (13:44 +0100)]
Remove links to issues in old repositories
Tomáš Rylek [Wed, 12 Feb 2020 12:42:07 +0000 (13:42 +0100)]
Simplify signature context management in Crossgen2 (#32158)
Based on my recent design discussions with JanK it turns out that
we don't want heterogeneous import cells in composite R2R images.
An interesting corollary of this fact is that the signature context
only changes internally during recursive descent into generic
signatures and at the top level it's a singleton during the entire
build. Due to this fact we don't need to store it in the various
import nodes and keys and we can just use the singleton in
NodeFactory. I have highlighted this fact by renaming it from
InputModuleContext to SignatureContext.
Thanks
Tomas
monojenkins [Wed, 12 Feb 2020 09:43:50 +0000 (04:43 -0500)]
[runtime] Call mono_stack_mark_record_size () only in a checked build, its slow, and the __FUNCTION__ argument creates a C string for every function name. (#32017)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Marek Safar [Wed, 12 Feb 2020 09:17:29 +0000 (10:17 +0100)]
Unify int to hexadecimal char conversions (#1273)
* Unify int to hexadecimal char conversions
This replaces about 7 different implementations with a single version
Ryan Lucia [Wed, 12 Feb 2020 06:57:29 +0000 (01:57 -0500)]
[utils] Add unused attribute to fix warning in checked-build.c (#32138)
monojenkins [Wed, 12 Feb 2020 06:56:54 +0000 (01:56 -0500)]
[jit] Add an #ifdef around MONO_CPU_WASM_SIMD. (#32014)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Next Turn [Wed, 12 Feb 2020 04:19:30 +0000 (12:19 +0800)]
Actually enables IOV features in createdump (#31782)
Santiago Fernandez Madero [Wed, 12 Feb 2020 03:11:27 +0000 (19:11 -0800)]
Revert "Display stack trace at stack overflow (#31956)" (#32153)
This reverts commit
65587ba7b402411b62ce877ee044aef2c2c71dfd.
Levi Broderick [Wed, 12 Feb 2020 02:34:58 +0000 (18:34 -0800)]
Replace default(T) != null with typeof(T).IsValueType (#32098)
Only affects call sites which weren't intending to special-case Nullable<T>
Swaroop Sridhar [Wed, 12 Feb 2020 02:24:44 +0000 (18:24 -0800)]
Unix: Default to a users-specific temp directory for extracting single-file apps (#2329)
In .net core 3, single file apps run by extracting the bundled contents to a temp directory.
The extraction directory is machine specific, and can be set through DOTNET_BUNDLE_EXTRACT_BASE_DIR environment variable.
When this setting is not configured, the host tries to use certain default directories.
On windows, extraction is within %TMPDIR%, which is user specific.
On Unix systems $TMPDIR/.net if set, which may be user specific (ex: MAC)
Otherwise, the extraction directory is within /var/tmp/ or /tmp/ which is common to all users, and may be locked by a specific user on first creation.
Therefore, this change fixes this issue by defaulting the extraction base directory in Unix systems to
`<temp-dir>/.net/<user-ID>` , where
`<temp-dir>/.net/` has permission 0777, and
`<temp-dir>/.net/<user-ID>/` has permission 01700.
This fix will be migrated to coreclr/3.1 branch for servicing.
Testing: Manual testing on Unix/Mac systems, since we don't have the setup to add automated tests with multiple users.
Issue #3846
Jan Kotas [Wed, 12 Feb 2020 02:13:12 +0000 (18:13 -0800)]
Introduce native AssemblyLoadContext base class (#32097)
* Add assemblyloadcontext.*
* Make AssemblyContext base class
* Add method to return AssemblyLoadContext
Tomáš Rylek [Wed, 12 Feb 2020 00:23:49 +0000 (01:23 +0100)]
Updates and additions to the composite R2R format (#32137)
Based on my progress with composite R2R implementation I propose
clarifying the design as follows:
1) I have proposed a rewriting scheme for the standalone MSIL
files next to the composite R2R executable to receive forwarding
information pointing at the composite file;
2) I have updated the section names I renamed yesterday and I
added a description of the new section OwnerCompositeExecutable
to be used for the forwarding information.
Thanks
Tomas
Eugene Rozenfeld [Tue, 11 Feb 2020 23:40:26 +0000 (15:40 -0800)]
Eliminate duplicate zero initializations more aggressively. (#31960)
We have 3 places in the code where we may need to insert explicit zero
initialization. In some cases the initialization may become redundant with prolog
initialization so we have logic to avoid explicit initialization in some cases.
This change makes the logic less conservative.
1. If the variable is not being initialized in a loop, we can avoid explicit zero initialization if
- the variable is a gc pointer, or
- the variable is a struct with gc pointer fields and either all fields are gc pointer fields
or the struct is big enough to guarantee block initialization, or
- compInitMem is set and the variable has a long lifetime or has gc fields.
Before this change we always inserted explicit zero initalization when compInitMem
wasn't set and the variable was a gc pointer or a struct with gc fields. This relaxes that
as described above.
2. When we were allocating structs via newobj, we were always inserting explicit zero initializations
when importing an inlinee. This change applies the same optimization if the basic block can't be
in a loop after inlining.
3. When we were initializing inlinee locals, we were only optimizing explicit zero initializations
for structs; however, the same logic applies to non-structs.
4. If the initialization basic block is in a loop but is BBJ_RETURN, we may avoid zero initialization
since the block will be executed at most once per method invocation.
Simon Nattress [Tue, 11 Feb 2020 23:15:38 +0000 (15:15 -0800)]
Merge pull request #32095 from nattress/ResourceStrings
Move crossgen2 user-facing strings to resx
Levi Broderick [Tue, 11 Feb 2020 23:13:56 +0000 (15:13 -0800)]
Remove BMI2 intrinsics from ASCII and UTF-8 transcoding logic (#31904)
Improves performance on processors where pdep/pext aren't optimized
Jim Buck [Tue, 11 Feb 2020 23:05:35 +0000 (18:05 -0500)]
Fixed ASP.NET Core links in Readme (#32139)
* Fixed obsolete org names in readme.
Since `aspnet/aspnetcore` has been transferred to `dotnet/aspnetcore` the links were incorrect (redirects worked fine). This just aligns them with the correct URLs.
* Changed "ASP.NET Core home" to docs home.
* Removed forced `en-us` in URL.
Egor Bogatov [Tue, 11 Feb 2020 22:50:05 +0000 (01:50 +0300)]
[mono] Implement Sse2.AddSaturate using LLVM (#32116)
* Implement Sse2.AddSaturate
* Undo changes in Makefile
* Fix typo
* Address feedback
Justin Kotalik [Tue, 11 Feb 2020 22:48:55 +0000 (14:48 -0800)]
Update shared Http3 code (#32133)
Ryan Lucia [Tue, 11 Feb 2020 22:47:37 +0000 (17:47 -0500)]
[mono] Change library id to @rpath/libcoreclr.dylib when copying (#32135)
Cory Nelson [Tue, 11 Feb 2020 22:38:05 +0000 (14:38 -0800)]
Implement QUIC abort exceptions, fix channel usage, and implement some tests. (#32051)
New: implement QuicStreamAbortedException, QuicConnectionAbortedException, QuicOperationAbortedException.
Fix: MsQuic returning null implementation when completing listener/connection channels.
Fix: some flags types being defined as 8-bit when they are 32-bit in msquic.h
Add some additional tests demonstrating failures seen in HttpClient.
Filip Navara [Tue, 11 Feb 2020 21:48:31 +0000 (22:48 +0100)]
Enable building Mono LLVM osx-x64 NuGets (#32092)
* Enable building Mono LLVM osx-x64 NuGets
* Fix restoring on LLVM NuGets on macOS
* Enable release builds too
* Remove dependency on NETCoreSdkRuntimeIdentifier
Steve Harter [Tue, 11 Feb 2020 21:32:12 +0000 (15:32 -0600)]
Merge pull request #2259 from steveharter/NewConverterModel
New serializer converter model for objects and collections
Adeel Mujahid [Tue, 11 Feb 2020 21:08:51 +0000 (23:08 +0200)]
Make FPU settings configurable for installer (#32053)
Anirudh Agnihotry [Tue, 11 Feb 2020 20:48:35 +0000 (12:48 -0800)]
adding binlog and removing genrateRuntimeOSprops (#31945)
Tomáš Rylek [Tue, 11 Feb 2020 20:19:07 +0000 (21:19 +0100)]
Fix native CoreCLR build with special feature flags used by Tizen (#32119)
monojenkins [Tue, 11 Feb 2020 19:49:40 +0000 (14:49 -0500)]
[runtime] Simplify access to runtime TLS variables when DISABLE_THREADS is defined, they become simple globals. (#32015)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Steve Harter [Tue, 28 Jan 2020 19:02:57 +0000 (13:02 -0600)]
New converter model additional refactoring and feedback
Sergey Andreenko [Tue, 11 Feb 2020 19:11:42 +0000 (11:11 -0800)]
A few small jit changes. (#31816)
* Small refactoring changes.
* Additional checks and returns, no diffs.
* Fix SPMI replay with JitDump enabled.
* update the comment and do the same for arm.
Next Turn [Tue, 11 Feb 2020 18:52:59 +0000 (02:52 +0800)]
Fix build warnings (#32122)
Tom Deseyn [Tue, 11 Feb 2020 18:49:41 +0000 (19:49 +0100)]
SmtpClientTest: disable TestZeroTimeout (#32099)
Disable to prevent CI failures.
Stephen Toub [Tue, 11 Feb 2020 18:35:11 +0000 (10:35 -0800)]
Special-case two set loops in RegexCompiler (#32003)
* Optimize .* in Singleline mode
When RegexOptions.Singleline is specified, `.*` goes from meaning `[^\n]*` to meaning `[everything]*`. As such, when we encounter it, we can just jump to the end without actually comparing anything. This is worth optimizing in in the compiler because, well, why not, but we don't in the interpreter because it's not a common-enough pattern to spend cycles checking for.
* Use IndexOfAny to implement set loops of 2 or 3 negated chars
* Apply suggestions from code review
Co-Authored-By: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
monojenkins [Tue, 11 Feb 2020 15:50:38 +0000 (10:50 -0500)]
[mini] Wrap check for debug info enabled in ENABLE_NETCORE in all places (#32113)
See if this fixes the weird bug-10127.exe test failure that only occurs on Windows C++ builds.
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Alexander Köplinger [Tue, 11 Feb 2020 12:37:58 +0000 (13:37 +0100)]
Add mono offsets-tool for generating cross-compiler offsets (#32110)
This is a build-only tool used to generate the offsets file for Mono cross compilers.
Taken from https://github.com/mono/mono/tree/
071b7259d517b9298c2672e16248f62c5e3ce500/mono/tools/offsets-tool
monojenkins [Tue, 11 Feb 2020 09:59:43 +0000 (04:59 -0500)]
[interp] reclaim stack fragments when not used. (#32022)
When a requested frame size doesn't fit in an already allocated stack fragment, we instead allocate another, larger fragment.
When doing this we missed to free the existing stack fragment, and in combination with a second problem (`current->next` not being cleared when unused) it can accumulate to a lot of unused stack fragments and in worst-case to OOM, as it happened on Linux corlib xunit tests.
Thanks to Jay for tracking it down.
Co-authored-by: Bernhard Urban-Forster <bernhard.urban@xamarin.com>
monojenkins [Tue, 11 Feb 2020 08:49:57 +0000 (03:49 -0500)]
[cross] support arm-linux-gnueabihf cross compiling with netcore (#31803)
Some notes on usage:
```console
$ sudo apt install g{++,cc}-gnu-linux-gnueabihf python3-pip
$ ./autogen.sh --disable-boehm --target=arm-linux-gnueabihf \
--with-cross-offsets=arm-linux-gnueabihf-cross-offsets.h \
--with-core=only \
CFLAGS="-O0 -ggdb3 -fno-omit-frame-pointer" \
CXXFLAGS="-O0 -ggdb3 -fno-omit-frame-pointer"
$ make -C tools/offsets-tool-py/
$ python3 tools/offsets-tool-py/offsets-tool.py \
--targetdir=/home/lewurm/work/mono \
--abi=arm-linux-gnueabihf \
--monodir=/home/lewurm/work/mono \
--outfile=arm-linux-gnueabihf-cross-offsets.h \
--libclang=/usr/lib/x86_64-linux-gnu/libclang-7.so.1 \
--sysroot=/usr/arm-linux-gnueabihf \
--netcore
```
Co-authored-by: Bernhard Urban-Forster <bernhard.urban@xamarin.com>
imhameed [Tue, 11 Feb 2020 08:37:27 +0000 (00:37 -0800)]
[mono] Allow the use of an override directory for LLVM. (#32070)
With this change, a custom LLVM directory can be set via the `MonoLLVMDir` property. When using a custom LLVM directory, llvm-init.proj will be ignored.
`--enable--llvm` (with two dashes) is not a valid mono configure argument, and `--enable-llvm` is implied by `--with-llvm`.
monojenkins [Tue, 11 Feb 2020 08:16:19 +0000 (03:16 -0500)]
Add volatile for cross thread communication. (#31964)
This test is flaky. Maybe this helps. Otherwise I'll dig in later.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Simon Nattress [Tue, 11 Feb 2020 06:22:28 +0000 (22:22 -0800)]
Move crossgen2 user-facing strings to resx
* Move user-visible strings for command line use and argument validation to a resx file so they can be localized.
* Logging strings are left alone. When we collect logs from customers, we'll want them in English.
buyaa-n [Tue, 11 Feb 2020 06:04:54 +0000 (22:04 -0800)]
Annotate System.Security.Cryptography.Algorithms for nullable (#2375)
* Annotate System.Security.Cryptography.Algorithms for nullable
Justin Kotalik [Tue, 11 Feb 2020 05:36:25 +0000 (21:36 -0800)]
Use ref for stream event in System.Net.Quic (#32086)
Kirill Frolov [Tue, 11 Feb 2020 04:42:15 +0000 (07:42 +0300)]
Build failed due to -Werror option (#32040)
* fixed error processing for pipe2 call in Unix/../pal_process.c
Due to -Werror warning (function result not checked) is converted to an
error.
Fix #32038
* fixed warnings in Unix/../pal_networking.c
Due to -Werror all warnings (wrong signess, wrong types) converted to
errors, so why this changes needed.
Fix #32038
Anton Lapounov [Tue, 11 Feb 2020 04:40:49 +0000 (20:40 -0800)]
Crossgen2: ensure base address >= 4 GiB for 64-bit Windows targets (#32064)
Crossgen2: ensure base address >= 4 GiB for 64-bit Windows targets.
Also fix ADRP's argument calculation for ARM64.
Levi Broderick [Tue, 11 Feb 2020 04:33:14 +0000 (20:33 -0800)]
Tighten up some SSE2 ASCII + UTF-16 transcoding logic (#32036)
Makes more efficient use of register allocation and uses paddusw to speed up some operations
Levi Broderick [Tue, 11 Feb 2020 04:29:53 +0000 (20:29 -0800)]
Fix infinite loop in string.Replace (#31946)
When string.Replace is given a target string with zero collation weight, it would enter an infinite loop. It is now changed so that the call to Replace terminates when such a condition is encountered.
Tomáš Rylek [Tue, 11 Feb 2020 02:45:20 +0000 (03:45 +0100)]
Rename CoreCLR runtime R2R section names to match Crossgen2 naming (#32084)
Santiago Fernandez Madero [Tue, 11 Feb 2020 02:18:09 +0000 (18:18 -0800)]
Set azure devops variable if any package reports are found and skip copy packages base on that (#32083)
* Set azure devops variable if any package reports are found
* Run target in CI as well
Tomáš Rylek [Tue, 11 Feb 2020 01:59:53 +0000 (02:59 +0100)]
R2RDump changes for composite R2R format support (#32027)
I have separated the R2RDump-specific changes from my broader
composite R2R change. The gist of the change is becoming able to
read the new "native R2R header" flavor and look up MSIL in
separate DLL's next to the R2R executable.
On top of this basic scheme I have removed the section ID
duplication between ReadyToRunSection.cs and RuntimeHeaders.cs.
I have also slightly cleaned up unnecessary double dictionary
lookups for R2R sections.
For now I have made EH clause parsing work in single-assembly build
mode only, for composite R2R that will require additional changes.
Thanks
Tomas
Jan Kotas [Tue, 11 Feb 2020 01:36:25 +0000 (17:36 -0800)]
Add assert to Unix GCToOSInterface::GetCurrentProcessorNumber for clarity (#32033)
Fixes #31995
Anirudh Agnihotry [Tue, 11 Feb 2020 00:33:55 +0000 (16:33 -0800)]
add fromPackage to exclude properties (#32063)
Egor Chesakov [Tue, 11 Feb 2020 00:23:31 +0000 (16:23 -0800)]
[Arm64] Implement FMA, FMS, MLA, MLS (#31899)
* Add "FusedMultiplyAdd" and "FusedMultiplyAddScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Add "FusedMultiplySubtract" and "FusedMultiplySubtractScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Add "FusedMultiplyAddNegatedScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Add "FusedMultiplySubtractNegatedScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Add "MultiplyAdd" and "MultiplyAddScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Add "MultiplySubtract" and "MultiplySubtractScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
* Update System.Runtime.Intrinsics.Experimental.cs
* Add fused multiply-add and multiply-subtract intrinsics in hwintrinsiclistarm64.h
* Add "MultiplyAdd" and "MultiplySubtract" in hwintrinsiclistarm64.h
* Implement fused multiply-add and multiply-subtract intrinsics in hwintrinsiccodegenarm64.cpp
* Add fused multiply-add and multiply-subtract intrinsics in GenerateTests.csx
* Mark uses of op2 and op3 of fma, fms, mla, mls intrinsics as delay free in lsraarm64.cpp
* Add "MultiplyAdd" in GenerateTests.csx
* Add "MultiplySubtract" in GenerateTests.csx
* Update AdvSimd/ AdvSimd.Arm64/
* Update Helpers.cs Helpers.tt