Jeremy Koritzinsky [Thu, 24 Jan 2019 01:02:09 +0000 (17:02 -0800)]
Add GC.KeepAlive to keep collectible ALC alive across usage. (#22133)
Egor Chesakov [Wed, 23 Jan 2019 22:04:12 +0000 (14:04 -0800)]
Disable superpmicollection in r2r jobs until https://github.com/dotnet/coreclr/issues/22027 is fixed (#22085)
Jan Vorlicek [Wed, 23 Jan 2019 21:59:27 +0000 (22:59 +0100)]
Add unloadability testing tool (#22064)
* Add unloadability testing tool
This change adds the unloadability testing tool that can be used to run
coreclr tests or any other .NET core app inside of unloadable
AssemblyLoadContext, unload it after its execution completes and verify
that the unload succeeded. It has also various additional testing
options:
* memory leak testing
* running multiple iterations of the load/run/unload sequence
* optional breaking into debugger at various interesting stages (before
executing the test assembly, after executing it, on unload failure)
* delegated load when the AssemblyLoadContext that loads the test
assembly delegates loading of all the dependencies to another
AssemblyLoadContext
Filip Navara [Wed, 23 Jan 2019 21:35:11 +0000 (22:35 +0100)]
Move common ThreadPool code to shared CoreLib partition. (#22115)
* Move common ThreadPool code to shared CoreLib partition.
* Move numWorkingThreads counting out of shared code.
* Rename ThreadPoolGlobals.vmTpInitialized to threadPoolInitialized.
Remove exception handling from ThreadPoolWorkQueue.Dispatch.
Remove obsolete code from ThreadPoolWorkQueue.Dispatch.
Rename ThreadPool.EnsureVMInitialized to ThreadPool.EnsureInitialized.
Filip Navara [Wed, 23 Jan 2019 21:13:01 +0000 (22:13 +0100)]
Remove all traces of FEATURE_STACK_PROBE. (#22149)
Filip Navara [Tue, 22 Jan 2019 17:14:53 +0000 (18:14 +0100)]
Update parameter names in PInvoke signatures to match MSDN documentation.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Filip Navara [Tue, 22 Jan 2019 13:25:08 +0000 (14:25 +0100)]
Build fixes.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Filip Navara [Wed, 23 Jan 2019 20:47:47 +0000 (21:47 +0100)]
Fix possibly unintentional use of bit-wise or operator. (#22152)
Egor Chesakov [Wed, 23 Jan 2019 20:29:35 +0000 (12:29 -0800)]
Disable OSX.1012.Amd64.Open in Azure DevOps (#22158)
Eugene Rozenfeld [Sat, 19 Jan 2019 00:15:32 +0000 (16:15 -0800)]
Fix R2R failure in one of ObjectStackAllocation tests.
AllocateSimpleClassAndCheckTypeNoHelper fails because
the object is allocated on the heap in R2R mode. The reason for that is
that we always use a helper for isinst in R2R mode and helper calls
cause us to assume the object escapes.
We don't have to use a helper in this case (even for R2R), #22086 tracks
fixing that.
For now the fix is not to check that the object was allocated on the stack
in this test case.
Fixes #22026.
Eugene Rozenfeld [Wed, 23 Jan 2019 00:47:33 +0000 (16:47 -0800)]
Fix for JIT\Directed\arglist\vararg test case.
TestEchoShortNoVararg was failing and disabled. The reason it was
failing was a mismatch between DllImport declaration for echo_short and
the native function: the former specified 2-byte arg and return while
the latter specified 1-byte arg and return. I fixed that and also added
a couple of test cases with 1-byte arg and 2-byte return and
vice versa.
Fixes #19704.
Jeremy Koritzinsky [Wed, 23 Jan 2019 18:34:54 +0000 (10:34 -0800)]
Don't redirect stdlib wchar functions to our test platform shims. (#22072)
* Don't redirect stdlib wchar functions to our test platform shims.
* Fix bad find-replaces.
* Remove unused overload and last wchar shadowing.
Bruce Forstall [Wed, 23 Jan 2019 18:12:30 +0000 (10:12 -0800)]
Merge pull request #22053 from BruceForstall/FixSimd12StoreLclFld
Fix SIMD12 GT_STORE_LCL_FLD
alexk000 [Wed, 23 Jan 2019 17:36:20 +0000 (12:36 -0500)]
Remove variable name duplication (#22155)
Filip Navara [Wed, 23 Jan 2019 17:35:31 +0000 (18:35 +0100)]
Remove unused thread abortion methods. (#22147)
Marek Safar [Wed, 23 Jan 2019 16:44:56 +0000 (17:44 +0100)]
Move Task to shared partition (#22105)
Egor Chesakov [Wed, 23 Jan 2019 16:11:49 +0000 (08:11 -0800)]
Use Windows.10.Arm64.Open with Jenkins ONLY (#22144)
Bruce Forstall [Fri, 18 Jan 2019 01:10:24 +0000 (17:10 -0800)]
Fix SIMD12 GT_STORE_LCL_FLD
It was ignoring the local field offset, by checking for the wrong
operator.
This appeared as a recent regression, but I couldn't find any code
(including test) change that would have caused this.
The failure only happens for JitStress with remorphing stress. This
creates the STORE_LCL_FLD. Otherwise, it looks like we normally
end up with IND(LCL_FLD_ADDR). Maybe we should be morphing these
somewhere?
No x64 PMI asm diffs in corelib or the JIT\SIMD tree. With JitStress=1
there are exactly 6 asm diffs in the Vector3Interop test, which was the
one failing.
The same fix is made for both xarch and arm64 code generators.
Fixes #21935
Ben Adams [Wed, 23 Jan 2019 03:05:25 +0000 (04:05 +0100)]
Remove duplicate requiresSynchronization params attribute (#22143)
Egor Chesakov [Wed, 23 Jan 2019 00:46:47 +0000 (16:46 -0800)]
Don't use Ubuntu.1604.Arm64.Open in Azure DevOps (#22135)
Michal Strehovský [Tue, 22 Jan 2019 20:40:56 +0000 (21:40 +0100)]
Decouple JIT_FLAG_PREJIT from HW intrinsics (#22117)
Per dotnet/corert#6836 (comment) moving the decision whether to enable HW intrinsics to the EE side.
Michal Strehovský [Tue, 22 Jan 2019 17:09:31 +0000 (18:09 +0100)]
Restrict HW intrinsic name check to intrinsic types (#22116)
Avoids having to compare names of all types in CoreLib to see if they're HW intrinsics.
Michal Strehovský [Tue, 22 Jan 2019 17:08:31 +0000 (18:08 +0100)]
Do not throw from TraceResolver (#22126)
Fixes #22059.
Filip Navara [Tue, 22 Jan 2019 12:16:45 +0000 (13:16 +0100)]
Move MemoryFailPoint to shared CoreLib partition (#22104)
* Move MemoryFailPoint to shared CoreLib partition.
* Split MemoryFailPoint into Unix and Windows versions.
* Replace MemoryFailPoint.GetMemorySettings FCall with GC.GetSegmentSize to make sharing with CoreRT easier.
Jan Kotas [Tue, 22 Jan 2019 05:02:55 +0000 (21:02 -0800)]
Fix CoreRT build breaks
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Marek Safar [Tue, 22 Jan 2019 03:28:13 +0000 (04:28 +0100)]
Move TplEtwProvider to shared partition (#22120)
Stephen Toub [Tue, 22 Jan 2019 02:56:55 +0000 (21:56 -0500)]
Remove two unnecessary ToArray calls (#22119)
We can just copy directly from the List, rather than first converting the list to an array and then copying that.
Stephen Toub [Mon, 21 Jan 2019 21:20:18 +0000 (16:20 -0500)]
Avoid intermediate strings in some StringBuilder formatting (#22111)
* Avoid intermediate strings in some StringBuilder formatting
Several appends to string builders are first creating strings and then appending those strings, and they're not using the existing Append(primitive) overloads because they want to customize the format string or provider as part of appending the value. This fixes a few of those cases, using another internal AppendSpanFormattable overload on StringBuilder.
* Address PR feedback
dotnet-maestro-bot [Mon, 21 Jan 2019 06:09:52 +0000 (22:09 -0800)]
Update CoreFx to preview.19070.3 (#22061)
Marek Safar [Sun, 20 Jan 2019 23:02:09 +0000 (00:02 +0100)]
Move Task factory type to shared partition (#22089)
Ben Adams [Sun, 20 Jan 2019 22:42:10 +0000 (23:42 +0100)]
Use List<T>.ToArray() in places (#22101)
* Use ReadOnlySpan.ToArray in places
* Use List.ToArray
* Don't take .Length in to local and use as loop condition
Jan Kotas [Sun, 20 Jan 2019 16:16:44 +0000 (08:16 -0800)]
Cleanup array related FCalls (#22097)
* Cleanup Array FCalls
* Disable outdated CoreFX tests
https://github.com/dotnet/corefx/pull/34700
Jan Kotas [Sat, 19 Jan 2019 19:48:28 +0000 (11:48 -0800)]
Fix CoreCLR build for changes in shared partition
Jan Kotas [Sat, 19 Jan 2019 08:24:57 +0000 (00:24 -0800)]
Fix build for ProjectN/WinRTInterop Delete superfluous AsyncCausalityTracer arguments
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Marek Safar [Fri, 18 Jan 2019 19:58:11 +0000 (20:58 +0100)]
Fix build
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Ben Adams [Sat, 19 Jan 2019 20:03:03 +0000 (21:03 +0100)]
Update Newtonsoft.Json (#22060)
Jan Vorlicek [Sat, 19 Jan 2019 20:02:00 +0000 (21:02 +0100)]
Cleanup: Remove MethodDesc::GetLoaderAllocatorForCode (#22067)
This function was recently changed to just return the
MethodDesc::GetLoaderAllocator. This is a cleanup that removes the
function completely and replaces all of its usages.
Matt Warren [Sat, 19 Jan 2019 19:59:40 +0000 (19:59 +0000)]
Removed unused 'Stack Walking' code (#22039)
As fair as I can tell `ECWGCFCrawlCallBack(..)` is not wired-up anywhere (I've successfully compiled CoreCLR locally with this change under `x86` and `x64`)
Sven Boemer [Sat, 19 Jan 2019 00:11:25 +0000 (16:11 -0800)]
Strip symbols on unix in release builds (#22083)
Fixes https://github.com/dotnet/coreclr/issues/22082
Jeremy Koritzinsky [Fri, 18 Jan 2019 23:39:54 +0000 (15:39 -0800)]
Fix calling conventions on reverse PInvoke callbacks. (#22044)
Egor Chesakov [Fri, 18 Jan 2019 22:05:29 +0000 (14:05 -0800)]
Run Azure DevOps builds against pull requests in coreclr/master (#22051)
And disable Windows_NT and Ubuntu arm32 and arm64 default triggers in Jenkins CI
Jarret Shook [Fri, 18 Jan 2019 20:33:13 +0000 (12:33 -0800)]
SuperPMI Collect/Replay/AsmDiff tool (#21252)
This change adds superpmi.py. The tool feature three modes, collection, replay, and asmdiffs.
Collection
The collection logic is very similar to the logic in our superpmi-collect test. Mostly it just allows running a script which will run managed code and it will produce a .mch which is clean to be run against. See superpmi.md for more information on specific usage and problems.
Replay
Replay will take an existing .mch file and run the current jit over the collection. If there is no .mch file on disk, the script will download the latest collection and run against that.
AsmDiffs
superpmi.md has the latest information on what platforms support asmdiffs. So far, I have an updated OSX and Windows collection that I have run against. If there are binary diffs, the tool will automatically generate base & diff folders with the asm under each one. Future work would include automatically running jit-analyze over those locations.
In addition, the tool has the option to automatically run and diff jit dumps, I have found this to be useful to looking into diffs created, as re-running superpmi with different jits to collect this same information is somewhat tedious.
Future work
This change is in no way the end of the work needed to leverage superpmi effectively. Instead, it is a good first step. Below are some suggestions for future superpmi work:
Automated collections
Add pmi collection support
Leverage some of the new corefx work to use superpmi shim for collections of corefx runs
To be added/changed
I will unset zapdisable being set by default, it creates too much data, although it is useful it should be opt in
Will include example usage in superpmi.md.
Marek Safar [Fri, 18 Jan 2019 18:19:17 +0000 (19:19 +0100)]
Move AsyncCausality to shared partition (#22062)
* Move AsyncCausality to shared partition
* Set FeatureAsyncCausalityTracer property
Sven Boemer [Fri, 18 Jan 2019 17:50:33 +0000 (09:50 -0800)]
Re-enable signing of System.Private.CoreLib (#22068)
* Re-enable signing for System.Private.CoreLib
Now that https://github.com/dotnet/arcade/issues/1582 is fixed.
Addresses https://github.com/dotnet/coreclr/issues/21946.
* Use uppercase build config
For consistency with other builds. Doesn't impact functionality, but
will result in the build logs showing the bin directory with the
uppercase build config during this step.
* Override arcade version of SignTool package
Swaroop Sridhar [Fri, 18 Jan 2019 17:24:41 +0000 (09:24 -0800)]
Add Per-assembly Load Native Library callbacks (#21555)
Add Per-assembly Load Native Library callbacks
This Change implements the Native Library resolution
Call-backs proposed in https://github.com/dotnet/corefx/issues/32015
dotnet-maestro[bot] [Fri, 18 Jan 2019 16:48:08 +0000 (11:48 -0500)]
Update dependencies from dotnet/arcade (#22035)
* Update dependencies from https://github.com/dotnet/arcade build
20190116.1
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19066.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19066.1
* Update dependencies from https://github.com/dotnet/arcade build
20190117.6
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19067.6
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19067.6
Michal Strehovský [Fri, 18 Jan 2019 11:01:03 +0000 (12:01 +0100)]
Enable detection of HW intrinsics (dotnet/corert#6836)
I took the liberty of marking the types containing the hardware intrinsics as [Intrinsic] to avoid doing a name check on everything in the system module. It feels like we should take advantage of this attribute in CoreCLR too.
This doesn't actually enable the support because RyuJIT unconditionally disables HW intrinsics for prejit (both CoreRT and CPAOT are considered prejit). We might want to do something about this on the RyuJIT side to address that (for CPAOT, to be able to pregenerate best code possible ahead of time, assuming a fixed ISA; and for CoreRT without JIT, where the concerns about AVX-SSE penalty don't apply). See conversation in dotnet/coreclr#21603
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Marek Safar [Fri, 18 Jan 2019 11:00:02 +0000 (12:00 +0100)]
Fix defines in TaskAwaiter (dotnet/corert#6846)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Michal Strehovský [Fri, 18 Jan 2019 12:18:49 +0000 (13:18 +0100)]
Handle complex constrained calls with default interface methods (#21978)
This adds handling for the interface dispatch corner case where:
* We have a constrained callsite to a method on a generic interface in shared code
* The callsite cannot be statically resolved because the result of dispatch depends on the generic context
* At runtime, the dispatch resolves to a default interface method
This would require us to have infrastructure to build "boxing thunks" - thunks that would box their first argument before dispatching to the default interface method implementation.
Since this is a corner case and the fix is actually quite involved, we're making the runtime just throw in this situation.
The test is written so that it should pass both if the runtime chooses to throw, or if the runtime makes the boxing thunk (we're not hardcoding the implementation limitation).
Michal Strehovský [Fri, 18 Jan 2019 10:18:56 +0000 (11:18 +0100)]
Use correct resolution scope when checking default implementations (#22036)
We need to use the module of the interface.
Fixes #22021.
Sung Yoon Whang [Fri, 18 Jan 2019 08:23:16 +0000 (00:23 -0800)]
Add comments on headers that gets parsed by Mono linker for whoever touches this next (#22054)
* Add comments on headers that gets parsed by Mono linker for whoever touches this next
* add more comments to the targets file
Stephen Toub [Fri, 18 Jan 2019 01:07:12 +0000 (20:07 -0500)]
Move Environment to shared CoreLib (dotnet/corefx#34654)
Rather than having Environment partially live in corefx and call into an EnvironmentAugments type in CoreLib that in turn calls into an Environment type in CoreLib, we're just moving Environment to live in CoreLib.
To start that, this PR moves Environment and its dependencies from their current locations into the shared CoreLib. Those changes will mirror over to coreclr. After that, I'll fix it up to work in CoreLib. And once those changes are built and available back to corefx, I'll update System.Runtime.Extensions to just use the functionality from CoreLib and delete remaining unnecessary code from corefx.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jeremy Koritzinsky [Fri, 18 Jan 2019 00:58:34 +0000 (16:58 -0800)]
Unify xplatform.h and platformdefines.h (#21389)
* Move most of xplatform.h into platformdefines.h and clean up the interop CMake files.
* Fix build-break off Windows.
* Fix typo.
* Fix another break off-Windows.
* Fix signed/unsigned mismatch
Egor Chesakov [Fri, 18 Jan 2019 00:21:41 +0000 (16:21 -0800)]
Unblock Azure DevOps-as-CI (#22042)
* Disable JIT.Methodical/doublearray/dblarray3_cs_do
* Disable readytorun.r2rdump/R2RDumpTest
* Disable RedHat.6.Amd64.Open queue
* Rename Creator coreclr/pulls -> coreclr-pulls
* IsExternal is deprecated as of https://github.com/dotnet/arcade build
20190115.6
* Increase timeout for all test jobs
William Godbe [Fri, 18 Jan 2019 00:20:08 +0000 (16:20 -0800)]
Merge pull request #22002 from dotnet-maestro-bot/master-UpdateDependencies
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03617-02, preview-27316-02, preview.19066.1, master-
20190116.5, respectively (master)
Stephen Toub [Thu, 17 Jan 2019 23:10:48 +0000 (18:10 -0500)]
Remove ToString from RuntimeAssembly.GetManifestResourceStream (#22012)
* Remove ToString from RuntimeAssembly.GetManifestResourceStream
A small allocation we can avoid with the span-based string.Concat.
* Address PR feedback
dotnet-maestro-bot [Thu, 17 Jan 2019 22:27:15 +0000 (14:27 -0800)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03617-02, preview-27316-02, preview.19066.1, master-
20190116.5, respectively
Filip Navara [Thu, 17 Jan 2019 21:48:17 +0000 (22:48 +0100)]
Split ContractsBCL into separate classes and move them to shared CoreLib (#22006)
* Split up ContractsBCL into separate classes.
* Move remaining Contract, ContractHelper code to shared partition.
* Split ContractHelper to allow custom debugging experience in CoreRT.
* Simplify ContractHelper.InternalContractFailed.
* Use resource loading code from CoreRT.
* Remove unused parameter.
Stephen Toub [Thu, 17 Jan 2019 21:40:56 +0000 (16:40 -0500)]
Clean up a few minor Span-related uses (#22038)
Some unnecessary Span to ReadOnlySpan casts.
Some places where new Span(...).Slice(...) can be replaced with AsSpan(...).
Etc.
Stephen Toub [Thu, 17 Jan 2019 21:40:34 +0000 (16:40 -0500)]
Remove a few stale resource strings for ConcurrentStack (#22037)
Stephen Toub [Thu, 17 Jan 2019 21:00:12 +0000 (16:00 -0500)]
Avoid allocations in Utf8Formatter.TryFormat(float/double, ...) (#22011)
* Avoid allocations in Utf8Formatter.TryFormat(float/double, ...)
Currently every call to Utf8Formatter.TryFormat for a float or a double allocates two strings, one for the format string and one for the resulting number. This avoids those in the common case where we can use float/double.TryFormat and format directly into a stack buffer. Also removes some unsafe code; the performance of StandardFormat.ToString isn't currently worth the extra nanoseconds gained by using unsafe code.
* Delete assert
There's a test that uses unsafe code to cause this to fail and validate that no exception is thrown.
Carol Eidt [Thu, 17 Jan 2019 19:10:52 +0000 (11:10 -0800)]
Merge pull request #22022 from fiigii/reenabletest
Re-enable Avx.PermuteVar tests
Marek Safar [Thu, 17 Jan 2019 16:42:44 +0000 (17:42 +0100)]
Fix AsyncMethodBuilder build on Mono (#22034)
Filip Navara [Thu, 17 Jan 2019 06:38:00 +0000 (07:38 +0100)]
Fix CoreCLR build of AsyncMethodBuilder.
Filip Navara [Thu, 17 Jan 2019 04:42:23 +0000 (05:42 +0100)]
Add new members to AsyncCausalitySupport.
Remove file moved to shared partition.
Fix builds without FeatureCominterop.
Filip Navara [Wed, 16 Jan 2019 18:26:14 +0000 (19:26 +0100)]
Move AsyncMethodBuilder to shared. (dotnet/corert#6832)
* Move AsyncMethodBuilder to shared.
* Bring back PROJECTN.
* #if-out TrackAsyncMethodCompletion for CoreRT.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Fei Peng [Wed, 16 Jan 2019 23:13:06 +0000 (15:13 -0800)]
Re-enable Avx.PermuteVar tests
dotnet-maestro[bot] [Wed, 16 Jan 2019 20:47:40 +0000 (12:47 -0800)]
Update dependencies from https://github.com/dotnet/arcade build
20190115.6 (#22007)
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19065.6
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19065.6
Bruce Forstall [Wed, 16 Jan 2019 20:00:30 +0000 (12:00 -0800)]
Merge pull request #21997 from BruceForstall/FixFpRelativeInstructions
Fix two cases of FP-relative immediate offsets possibly not encodable
Ben Adams [Wed, 16 Jan 2019 18:31:56 +0000 (19:31 +0100)]
Reduce steps for string.Contains(string value) (#22008)
Jarret Shook [Wed, 16 Jan 2019 17:57:19 +0000 (09:57 -0800)]
Update linux/OSX build instructions (#21679)
* Update linux/OSX build instructions
* Update based on feedback
* Address PR feedback
* Update to address feedback
Fei Peng [Wed, 16 Jan 2019 17:48:43 +0000 (09:48 -0800)]
Fix imm-operand encoding for SSE/AVX instructions (#21999)
* Move more SSE2 tests to the template
* Improve Insert test template to involve more codegen situations
* Fix imm-operand encoding for SSE/AVX instructions
Jarret Shook [Wed, 16 Jan 2019 17:35:16 +0000 (09:35 -0800)]
Fix generate_layout_only (#21996)
* Fix generate_layout_only
* Correctly add all opons
* Clean run for cross built device
Egor Chesakov [Tue, 15 Jan 2019 00:52:39 +0000 (16:52 -0800)]
Enable BenchmarksGame when BuildTestsAgainstPackages (see #21554) in tests/issues.targets
Egor Chesakov [Fri, 11 Jan 2019 22:45:25 +0000 (14:45 -0800)]
Make JIT\superpmi\superpmicollect compatible with Helix
Related issue: https://github.com/dotnet/coreclr/issues/21698
Jan Kotas [Tue, 15 Jan 2019 23:53:23 +0000 (15:53 -0800)]
String -> string
Jan Kotas [Tue, 15 Jan 2019 23:49:12 +0000 (15:49 -0800)]
Delete files moved to shared partition
Marek Safar [Tue, 15 Jan 2019 23:32:58 +0000 (00:32 +0100)]
Move more COM exceptions to shared partition (dotnet/corert#6829)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Eugene Rozenfeld [Fri, 14 Dec 2018 00:57:12 +0000 (16:57 -0800)]
WIP: Re-enable ObjectStackAllocationTests for arm32
Egor Chesakov [Wed, 16 Jan 2019 00:25:10 +0000 (16:25 -0800)]
Use MSBuild to generate __TestEnv files (#21966)
Bruce Forstall [Tue, 15 Jan 2019 22:21:48 +0000 (14:21 -0800)]
Fix two cases of FP-relative immediate offsets not being checked for encodability
For ARM32/ARM64, the immediate offsets in addressing modes have
limited range that varies by instruction. A couple cases were not
checking for that range, leading to generating potentially
un-encodable instruction.
In particular, the test case shows a case where a very large frame in a function
with a stored generic context would fail on ARM64.
There are no code diffs from this change for ARM64, except we sometimes get
better assembly comments where the local variable referenced is annotated on
the store instruction. For ARM32, the "secret stub param" is now stored using
SP-relative addressing, not FP-relative, if possible (which we generally prefer
in main function bodies).
Tom Deseyn [Tue, 15 Jan 2019 20:43:08 +0000 (21:43 +0100)]
On SIGTERM default to a non-zero exit code (#21300)
* On SIGTERM default to a non-zero exit code
* Fix Windows builds
* Improve SIG_DFL/SIG_IGN handling
* Remove PAL_GetTerminationExitCode
* Use sa_handler/sa_sigaction based on SA_SIGINFO; remove HAVE_SIGINFO_T.
* configure.cmake: remove siginfo_t check
* Move restore_signal_and_resend so OSX can use it; add function documentation
* Fix OSX build: include pal/process.h for gPID
* Check SIG_IGN and SIG_DFL against sa_handler
* Don't use sa_handler when SA_SIGINFO is set
* Fix equality check
* Swap order of checking SA_SIGINFO and SIG_IGN/SIG_DFL
Juan Hoyos [Tue, 15 Jan 2019 20:01:45 +0000 (12:01 -0800)]
Merge pull request #21963 from BrianBohe/master
Remove unreachable code
Sven Boemer [Tue, 15 Jan 2019 19:21:05 +0000 (11:21 -0800)]
Add freebsd official build (#21988)
* Enable freebsd build
Two different environment variables are used to tell either buildtools or arcade to use an existing SDK instead of trying to restore one. The package build project is pure msbuild (it doesn't do platform detection in any wrapper .sh files), and we don't have FreeBSD detected in msbuild, so pass the __BuildOS in from the caller.
David Mason [Tue, 15 Jan 2019 18:23:48 +0000 (10:23 -0800)]
allocate the right number of slots for the handle table when number of processors > 64 (#21992)
dotnet-maestro-bot [Tue, 15 Jan 2019 16:12:09 +0000 (08:12 -0800)]
Update CoreClr, CoreFx, PgoData to preview-27312-01, preview.19063.1, master-
20190111.1, respectively (master) (#21954)
* Update CoreClr, CoreFx, PgoData to preview-27312-01, preview.19063.1, master-
20190111.1, respectively
* Disable invalid test
David Mason [Tue, 15 Jan 2019 04:48:49 +0000 (20:48 -0800)]
fix the help message for runtest.sh so the gcstress instructions aren't split across multiple lines (#21989)
Andon Andonov [Tue, 15 Jan 2019 03:59:12 +0000 (19:59 -0800)]
Large version bubble Support (#21727)
* Preliminary Changes
* Module Index Resolution
* Change infoModule encoding
* Change referencing module in R2R
* Pre-condition Check
* Virtual Method Module Resolution
* Remove Workarounds and add conditional import loading
* Add signature kind module override
* Add ELEMENT_TYPE_MODULE_ZAPSIG
* Add switch to enable large version bubble
* Cleanup
* Change Native header check
* Add large version bubble test
* Add Large Version Bubble Checks
* Cleanup
* Revert unnecessary check
* Change EncodeMethod Version Bubble Condition
* Add Large Version Bubble asserts
* Cleanup
* Add default argument to runtests.py
* Change test PreCommands
* Revert whitespace changes
* Change breaking conditional check
* Streamline Version Bubble test
* Address PR Feedback
* Address PR Feedback #2
* Remove dead code
* Add crossgen-time ifdef
Aaron Robinson [Tue, 15 Jan 2019 02:41:00 +0000 (18:41 -0800)]
Finding Standalone GC and CoreDisTools in non-standard host testing (#21983)
* Use GetInternalSystemDirectory() as the directory for standalone GC
* Use GetInternalSystemDirectory() as the directory for coredistools
Eugene Rozenfeld [Sat, 5 Jan 2019 05:27:20 +0000 (21:27 -0800)]
Improvements for object stack allocation.
This change enables object stack allocation for more cases.
1. Objects with gc fields can now be stack-allocated.
2. Object stack allocation is enabled for x86.
ObjectAllocator updates the types of trees containing references
to possibly-stack-allocated objects to TYP_BYREF or TYP_I_IMPL as appropriate.
That allows us to remove the hacks in gcencode.cpp and refine reporting of pointers:
the pointer is not reported when we can prove that it always points to a stack-allocated object or is null (typed as TYP_I_IMPL);
the pointer is reported as an interior pointer when it may point to either a stack-allocated object or a heap-allocated object (typed as TYP_BYREF);
the pointer is reported as a normal pointer when it points to a heap-allocated object (typed as TYP_REF).
ObjectAllocator also adds flags to indirections:
GTF_IND_TGTANYWHERE when the indirection may be the heap or the stack
(that results in checked write barriers used for writes)
or the new GTF_IND_TGT_NOT_HEAP when the indirection is null or stack memory
(that results in no barrier used for writes).
Jeremy Koritzinsky [Tue, 15 Jan 2019 00:33:37 +0000 (16:33 -0800)]
Add test calling a NativeCallable via an unmanaged calli. (#21984)
Fadi Hanna [Tue, 15 Jan 2019 00:21:58 +0000 (16:21 -0800)]
Removing noisy R2R compilation outputs, and putting them under the /verbose switch (#21987)
Jeremy Koritzinsky [Mon, 14 Jan 2019 23:49:45 +0000 (15:49 -0800)]
Custom Marshalers in custom-ALC-loaded assemblies results in types loaded from crossing ALCs (#21606)
* Create repro for dotnet/coreclr#19654
* Update ICustomMarshaler.csproj
* Update ICustomMarshaler.csproj
* Clean up repro per feedback.
* Add test case for different assemblies with the same CustomMarshaler name.
* Move EEMarshalingData cache from AppDomain to LoaderAllocator. This fixes the custom-marshaler conflict when using unloadable assembly contexts.
* Internalize the LoaderHeap* parameter.
* Add the pointer to the requesting assembly to the hashtable key.
* Fix linux-musl build break.
* Move Crst out of FEATURE_COMINTEROP block.
* Make sure to copy over the assembly pointer to the key that's actually stored in the hash table.
* Add comment for m_invokingAssembly.
* Move all usages of EEMarshallingData to hang off the correct loader allocator instead of always the global one.
* Change to m_InteropDataCrst since this EEMarshallingData can be used in preemptive GC mode.
* Always init m_InteropDataCrst (since it's used by EEMarshallingData as well as COM).
* PR Feedback.
* Remove extraneous inlines.
Tarek Mahmoud Sayed [Mon, 14 Jan 2019 22:49:00 +0000 (14:49 -0800)]
Fix TimeSpan parsing (#21968)
* Fix TimeSpan parsing
* Temporary disabling the failed CI tests
Stephen Toub [Mon, 14 Jan 2019 22:16:59 +0000 (17:16 -0500)]
Fix TaskCompletionSource to avoid capturing ExecutionContext (#21981)
When a TaskCompletionSource is constructed without any arguments, it simply creates a Task using a simple Task constructor that sets a few fields and is done. When it's constructed with options, though, those options are validated, and then it calls into a shared routine that configures based on those options. A previous set of changes resulted in erroneously doing the ExecutionContext.Capture for the task inside of that shared routine, rather than only doing it for tasks that actually have a delegate to be executed. The net effect of this is that, while TaskCompletionSources created with the parameterless constructor correctly did not capture ExecutionContext, TaskCompletionSources created with options erroneously did; this doesn't have a functional impact, because that ExecutionContext isn't used for anything, but it can have a performance impact, in particular for memory, if the resulting Task is cached, and if the captured ExecutionContext holds onto some expensive object from an AsyncLocal, such that the cached Task then does so, too.
The fix is simply to move the capture from the shared routine that's invoked in two places to instead be done only in the one caller that's for tasks with delegates.
Jarret Shook [Mon, 14 Jan 2019 18:11:37 +0000 (10:11 -0800)]
Remove tizen jobs as valid pr jobs (#21982)
Andrew Au [Mon, 14 Jan 2019 17:43:51 +0000 (09:43 -0800)]
Making sure the nativeCodeVersion flowing change works with Rejit and EnC (#21961)
Swaroop Sridhar [Sun, 13 Jan 2019 06:25:25 +0000 (22:25 -0800)]
Add NativeLibrary Resolve Event (#21929)
This change adds the Native library resolving event, to be raised as the last attempt to resolve a native DLL in an AssemblyLoadContext.
With this change, the DllImport resolution sequence is as follows (stopping at any step with successful resolution):
* If the invoking-assembly is not in the default load context, call AssemblyLoadContext.LoadUnmanagedDll()
* Run the default load logic, try loading from:
* AppDomain cache
* NATIVE_DLL_SEARCH_DIRECTORIES
* Invoking-assembly directory, System32, etc. based on DllImportSearchPaths
* Raise the ResolvingUnmanagedDll event
API Review: https://github.com/dotnet/corefx/issues/32850
The ResolveEventTests triggered a pre-existing bug in the exception handling code (#21964).
Disabling the test on ARM64 Windows until the issue is fixed.
Maryam Ariyan [Sun, 13 Jan 2019 01:44:06 +0000 (17:44 -0800)]
Add System.Reflection.Emit.DynamicILInfo (#21945)
* Making DynamicILInfo and its API impls public
* Remove DynamicScope input from ctor args
Andrey Kvochko [Sat, 12 Jan 2019 06:22:45 +0000 (09:22 +0300)]
Fix x64 CFI generation (#21955)