Justin Van Patten [Sat, 28 Nov 2015 18:20:20 +0000 (10:20 -0800)]
Avoid enumerator allocations inside KeyedCollection
Methods on KeyedCollection<TKey, TItem> will internally loop over its
Items using foreach before the dictionary threshold is reached. Items
is a protected (non-virtual) property defined on the base
Collection<T> class and typed as IList<T>. This means
KeyedCollection<TKey, TValue> members like Contains and Item[TKey]
allocate an enumerator when looping over Items.
We can avoid the enumerator allocations inside
KeyedCollection<TKey, TValue> by providing a new private Items
property that is typed as List<T>, so that List<T>'s struct
enumerator is used, which also avoids interface dispatch.
KeyedCollection<TKey, TItem>'s constructors call the default
Collection<T> constructor which already initializes Items to
an instance of List<T>, so this change is just being explicit
about the use of List<T> for Items.
Jan Kotas [Fri, 27 Nov 2015 06:36:55 +0000 (22:36 -0800)]
Merge pull request #2171 from manu-silicon/patch-1
Update cross compilation instructions
Manu [Thu, 26 Nov 2015 03:28:25 +0000 (12:28 +0900)]
Update cross compilation instructions
Provide exact instructions for installing the required packages to do
the cross compilation.
Add section about the manual change to the urcu header files as the fix
is only in later revisions of Ubuntu.
Aditya Mandaleeka [Thu, 26 Nov 2015 00:34:31 +0000 (16:34 -0800)]
Merge pull request #2169 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Wed, 25 Nov 2015 23:53:33 +0000 (15:53 -0800)]
Merge pull request #2162 from manu-silicon/patch-1
Use hkp protocol on port 80 to get mono
Jan Kotas [Wed, 25 Nov 2015 22:47:47 +0000 (14:47 -0800)]
Integrate bug fixes from desktop
[tfs-changeset: 1552157]
Jan Vorlicek [Wed, 25 Nov 2015 22:33:01 +0000 (23:33 +0100)]
Merge pull request #2167 from steveharter/StdArg
Fix unicode input on the command line
Lubomir Litchev [Wed, 25 Nov 2015 22:01:09 +0000 (14:01 -0800)]
Merge pull request #2138 from LLITCHEV/SysVTests
Fixes for Issues #s 2105 and 2106.
Jan Kotas [Wed, 25 Nov 2015 21:48:01 +0000 (13:48 -0800)]
Merge pull request #2166 from kyulee1/ildasm2
Enable ILDASM for Windows
Steve Harter [Wed, 25 Nov 2015 21:06:07 +0000 (15:06 -0600)]
Fix unicode input on the command line
Kyungwoo Lee [Tue, 24 Nov 2015 20:34:08 +0000 (12:34 -0800)]
Enable ILDASM for Windows
This enables building ILDASM with Cmake for Windows.
This ILDASM now depends on CoreCLR targeting cross-platform and thus I dropped some features like GUI/PDB -- default output is console.
Metadata related APIs in CoreCLR are directly exported, and used in ILDASM:
MetaDataGetDispenser
GetMetaDataInternalInterface
GetMetaDataInternalInterfaceFromPublic
GetMetaDataPublicInterfaceFromInternal
The code path is diverged by a definition FEATURE_CORECLR.
There are still Window specific components. Among others, resource file/dll generation is the one that should be ported.
Jan Kotas [Wed, 25 Nov 2015 18:53:33 +0000 (10:53 -0800)]
Merge pull request #2161 from jkotas/xunit-update
Update xunit version to 2.1.0
Jan Kotas [Wed, 25 Nov 2015 18:38:45 +0000 (10:38 -0800)]
Merge pull request #2160 from alexandrnikitin/gentree-remove-duplication
Remove duplicate assignment in Compiler::gtNodeHasSideEffects
Jan Kotas [Wed, 25 Nov 2015 16:09:13 +0000 (08:09 -0800)]
Merge pull request #2164 from janvorli/fix-wait-for-secondary-threads
Make app shutdown wait for secondary threads
Jan Vorlicek [Wed, 25 Nov 2015 10:04:27 +0000 (11:04 +0100)]
Make app shutdown wait for secondary threads
This change makes the CoreCLR behavior the same as the desktop CLR
w.r.t. the app shutdown and secondary threads. Now the application
waits for secondary threads to exit before exiting.
Manu [Wed, 25 Nov 2015 07:46:32 +0000 (16:46 +0900)]
Use hkp protocol on port 80 to get mono
Minor formatting to be consistent with the rest of the document.
Alexandr Nikitin [Wed, 25 Nov 2015 06:44:46 +0000 (08:44 +0200)]
Remove duplicate assignment in Compiler::gtNodeHasSideEffects
Jan Kotas [Wed, 25 Nov 2015 06:33:48 +0000 (22:33 -0800)]
Update auto-generated project.lock.json
Jan Kotas [Wed, 25 Nov 2015 06:00:18 +0000 (22:00 -0800)]
Update xunit version to 2.1.0
Jan Kotas [Wed, 25 Nov 2015 02:17:04 +0000 (18:17 -0800)]
Merge pull request #2156 from sergiy-k/disableconcurrentgc
Don't enable Concurrent GC on Unix by default
Lubomir Litchev [Sun, 22 Nov 2015 18:41:34 +0000 (10:41 -0800)]
Fixes for Issues #s 2105 and 2106.
For issue 2105 after more analysis there might be a very rare situation
(since this is not hit by the tests we have in coreclr and corefx) where
(even though there are not XMM callee saved register on System V) a
circular dependency might occur when homing params passed in XMM
registers. Used the right instruction for doing copying of XMM reg to XMM
reg
For issue # 2106 make sure for 2 register passed struct to use the
already available scOtherReg in struct psiScope.
Carol Eidt [Wed, 25 Nov 2015 01:05:19 +0000 (17:05 -0800)]
Merge pull request #2152 from CarolEidt/ryujit-porting-doc
Document porting RyuJIT to different platforms
Sergiy Kuryata [Tue, 24 Nov 2015 22:28:33 +0000 (14:28 -0800)]
Don't enable Concurrent GC on Unix by default
This change temporary disables the code in Unix hosting APIs that switches Concurrent GC on by default on Unix because this feature is not supported yet and having this flag set causes a performance regression (this problem is tracked by issue https://github.com/dotnet/coreclr/issues/2155).
Jan Kotas [Tue, 24 Nov 2015 22:26:07 +0000 (14:26 -0800)]
Merge pull request #2154 from jashook/master
Small architecture specific changes to fix the build on linux arm64.
jashook [Tue, 24 Nov 2015 21:05:37 +0000 (13:05 -0800)]
Small architecture specific changes to fix the build on linux arm64.
David Mason [Tue, 24 Nov 2015 21:02:07 +0000 (13:02 -0800)]
Merge pull request #2111 from davmason/master
Porting EventSource from the nuget package to coreclr
Carol Eidt [Tue, 24 Nov 2015 20:25:32 +0000 (12:25 -0800)]
Document porting RyuJIT to different platforms
This document outlines the various RyuJIT components that must be modified
to port to a new platform.
David Mason [Tue, 24 Nov 2015 19:26:50 +0000 (11:26 -0800)]
Restoring the fix to WriteEvent with null/empty arrays that was over written by my port.
David Mason [Tue, 24 Nov 2015 19:20:29 +0000 (11:20 -0800)]
Merge remote-tracking branch 'upstream/master'
Jan Kotas [Tue, 24 Nov 2015 19:12:14 +0000 (11:12 -0800)]
Merge pull request #2149 from alexandrnikitin/optimizer-remove-unsed-var
Remove unused variable from Optimizer Compiler::optHoistLoopExprsForTree method
Aditya Mandaleeka [Tue, 24 Nov 2015 19:01:42 +0000 (11:01 -0800)]
Merge pull request #2132 from AndyAyersMS/FixLinuxTestScript
Fix generated test script to properly check for debugger
Steve Harter [Tue, 24 Nov 2015 18:21:51 +0000 (12:21 -0600)]
Merge pull request #2142 from steveharter/IcuPerf
Improve DateTime.Parse performance by reducing string comparisons
Jan Kotas [Tue, 24 Nov 2015 17:36:42 +0000 (09:36 -0800)]
Merge pull request #2151 from dotnet-bot/from-tfs
Merge changes from TFS
Steve Harter [Fri, 20 Nov 2015 22:28:57 +0000 (16:28 -0600)]
Improve DateTime.Parse performance by reducing string comparisons
dotnet-bot [Tue, 24 Nov 2015 14:42:38 +0000 (06:42 -0800)]
Open sourcing ILDASM
[tfs-changeset: 1551732]
Jan Kotas [Tue, 24 Nov 2015 11:43:31 +0000 (03:43 -0800)]
Merge pull request #2148 from manu-silicon/build
Build script now use current platform to compile
Jan Kotas [Tue, 24 Nov 2015 11:40:15 +0000 (03:40 -0800)]
Merge pull request #2147 from manu-silicon/minor
Consistency fix for shell variables
Alexandr Nikitin [Tue, 24 Nov 2015 10:52:03 +0000 (12:52 +0200)]
Remove unused variable from Optimizer Compiler::optHoistLoopExprsForTree method
Manu [Tue, 24 Nov 2015 02:58:58 +0000 (02:58 +0000)]
Build script now use current platform to compile
No need to specify the architecture to compile on Linux, we use
"uname -p" to infer it.
Removed __MSBuildBuildArch which was not really used, we can use
__BuildArch instead.
Added warning for x86.
Manu [Mon, 23 Nov 2015 23:27:57 +0000 (08:27 +0900)]
Consistency fix for shell variables
Use 0 instead of false since later we compare it with 1.
Jan Kotas [Mon, 23 Nov 2015 16:36:34 +0000 (08:36 -0800)]
Merge pull request #2136 from gsfreema/docs
Cleaning up Contributing Workflow documentation
Jan Kotas [Mon, 23 Nov 2015 16:35:16 +0000 (08:35 -0800)]
Merge pull request #2134 from jkotas/NO_CRT
Delete code under !NO_CRT define
Jan Kotas [Sun, 22 Nov 2015 03:25:10 +0000 (19:25 -0800)]
Delete code under !NO_CRT define
It is always defined - even in internal builds
Gerald Scott Freeman [Sun, 22 Nov 2015 15:56:30 +0000 (10:56 -0500)]
Cleaning up Contributing Workflow documentation
The line 'Please following our commit messages guidance, below.' is
incorrect since the commit messages section is above. To future proof
this line, I'm updating the line to provide a link to the Commit
Messages section. Also, correcting 'Please following' to say 'Please
follow'.
Chris McKinsey [Sat, 21 Nov 2015 23:06:01 +0000 (15:06 -0800)]
Merge pull request #2129 from maksqwe/GenTreeBoundsChk_fix
Fix GenTreeBoundsChk::gtThrowKind check in GenTree::Compare(). It was comparing the same field of op1 instead of op1 and op2.
Jan Kotas [Sat, 21 Nov 2015 22:22:25 +0000 (14:22 -0800)]
Merge pull request #2018 from AndyAyersMS/LessLogging
Reduce volume of MSBuild logging when running tests via xunit
Jan Kotas [Sat, 21 Nov 2015 22:19:51 +0000 (14:19 -0800)]
Merge pull request #2133 from gsfreema/master
Fixing a grammar mistake in Documentation\README.md
Gerald Scott Freeman [Sat, 21 Nov 2015 21:34:01 +0000 (16:34 -0500)]
Fixing a grammar mistake in Documentation\README.md
Simply using the correct conjugation of the verb 'support'.
Andy Ayers [Sat, 21 Nov 2015 19:15:48 +0000 (11:15 -0800)]
Fix generated test script to properly check for debugger
Also tried fixing the generated help to show that you need `=`. This should be conditional based on `HasParam` but since there is only one switch it works for now.
Maks Naumov [Sat, 21 Nov 2015 14:57:26 +0000 (16:57 +0200)]
Fix GenTreeBoundsChk:: gtThrowKind check in GenTree::Compare()
Stephen Toub [Sat, 21 Nov 2015 03:09:39 +0000 (22:09 -0500)]
Merge pull request #2112 from ellismg/cache-ucollators
Cache UCollators in a Locale
Jan Kotas [Sat, 21 Nov 2015 02:09:05 +0000 (18:09 -0800)]
Merge pull request #2127 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Sat, 21 Nov 2015 00:34:14 +0000 (16:34 -0800)]
Merge pull request #2117 from hickford/patch-1
Add link from readme to CoreFX
Jan Kotas [Fri, 20 Nov 2015 23:54:45 +0000 (15:54 -0800)]
Fix build breaks in desktop build
[tfs-changeset: 1550852]
Stephen Toub [Fri, 20 Nov 2015 23:32:59 +0000 (18:32 -0500)]
Merge pull request #2123 from stephentoub/cts_perf
Separate CancellationTokenSource linking into a derived class
Aditya Mandaleeka [Fri, 20 Nov 2015 23:19:12 +0000 (15:19 -0800)]
Merge pull request #2122 from adityamandaleeka/testArgsQuoteFix
Replace double quotes around test arguments with single quotes.
Lubomir Litchev [Fri, 20 Nov 2015 21:59:24 +0000 (13:59 -0800)]
Merge pull request #2096 from LLITCHEV/SysVTests
Fix for issue 2058.
Jan Kotas [Fri, 20 Nov 2015 21:41:55 +0000 (13:41 -0800)]
Merge pull request #2120 from kyulee1/osx
Package spec for RyuJit on OSX
Jan Kotas [Fri, 20 Nov 2015 21:41:21 +0000 (13:41 -0800)]
Merge pull request #2121 from dotnet-bot/from-tfs
Merge changes from TFS
Matt Ellis [Thu, 19 Nov 2015 23:00:20 +0000 (15:00 -0800)]
Cache UCollators in CompareInfo
Creating a UCollator is an expensive operation and we are presently
doing it on ever collation operation. We can improve this by caching
the UCollators we use for collation on the CompareInfo object itself.
This change introduces a new method GetSortHandle which gives back an
opaque wrapper which can be used in collation operations instead of a
culture name.
Internally we represent this is a struct holding the two types of
UCollators we care about (if we add additional collators per locale with
different options to handle other types of CompareOption flags, we can
cache these as well). Collation methods can get a `const UCollator*`
reference from the sort handle which is safe to share across
threads (per the ICU Design Guidelines[1]).
Unfortunately, tracking the lifetime of the SortHandle itself is not as
straightfoward as I would like. Right now, we use a SafeHandle to wrap
the internal handle and rely on the finalizer of the class to clean up
the native resources. However this means that the following code sample
will create two finalizable objects:
```csharp
var c1 = new CultureInfo("en-US").CompareInfo;
var c2 = new CultureInfo("en-US").CompareInfo;
```
If this ends up being an issue, we could explore an approach where we
keep a cahce of SortHandles in managed code and pass out references to
that SortHandle which would let us share a single SortHandle for a given
locale across more than one CompareInfo object.
Wins are seeing in places where we previously did lots of string
comparisions in a tight loop (for example: dotnet/corefx#3811) moving
these operations down to ~6ms per iteration vs ~330ms on my local machine.
[1]: http://userguide.icu-project.org/design
Pat Gavlin [Fri, 20 Nov 2015 21:14:29 +0000 (13:14 -0800)]
Merge pull request #2107 from pgavlin/SysVCleanup
Small cleanups in SysV classification.
stephentoub [Fri, 20 Nov 2015 17:36:24 +0000 (12:36 -0500)]
Separate CancellationTokenSource linking into a derived class
The m_linkingRegistrations field is only used on CancellationTokenSource instances created by CreateLinkedTokenSource. This commit creates a private LinkedCancellationTokenSource to contain that field and related logic, so that the field is pay for play. This shaves off ~11% of normal CancellationTokenSource's memory consumption.
Aditya Mandaleeka [Fri, 20 Nov 2015 20:14:46 +0000 (12:14 -0800)]
Replace double quotes around test arguments with single quotes.
Jan Kotas [Fri, 20 Nov 2015 18:58:46 +0000 (10:58 -0800)]
Fix build breaks in legacy build
[tfs-changeset: 1550765]
Lee Coward [Fri, 20 Nov 2015 17:29:28 +0000 (09:29 -0800)]
Added missing URL to .NET Foundation forums
Lee Coward [Fri, 20 Nov 2015 17:27:24 +0000 (09:27 -0800)]
Grammar fix-up
Lee Coward [Fri, 20 Nov 2015 17:23:07 +0000 (09:23 -0800)]
Added Full Framework support info
Kyungwoo Lee [Fri, 20 Nov 2015 15:31:27 +0000 (07:31 -0800)]
Package spec for RyuJit on OSX
Jan Kotas [Fri, 20 Nov 2015 15:25:09 +0000 (07:25 -0800)]
Merge pull request #2116 from jkotas/gc-update
Update GC from CoreRT
Jan Kotas [Fri, 20 Nov 2015 15:16:03 +0000 (07:16 -0800)]
Merge pull request #2114 from sergiy-k/byrefrax
Do not preserve volatile registers in JIT_ByRefWriteBarrier
Mirth Hickford [Fri, 20 Nov 2015 10:53:15 +0000 (10:53 +0000)]
Update README.md
Link to CoreFX repo
Jan Kotas [Fri, 20 Nov 2015 04:31:33 +0000 (20:31 -0800)]
Fix build breaks after GC update
Sergiy Kuryata [Fri, 20 Nov 2015 02:11:15 +0000 (18:11 -0800)]
Do not preserve volatile registers in JIT_ByRefWriteBarrier
RyuJIT assumes that all volatile registers can be trashed by the CORINFO_HELP_ASSIGN_BYREF helper (i.e. JIT_ByRefWriteBarrier).
So we don't need to save and restore them and can reduce the size of the barrier by a couple of instructions.
Jan Kotas [Fri, 20 Nov 2015 01:01:53 +0000 (17:01 -0800)]
Update GC from CoreRT
https://github.com/dotnet/corert/tree/master/src/Native/gc
c03d823a11f54e734e340813e6cd1e543ca448ef
Jan Kotas [Fri, 20 Nov 2015 04:41:04 +0000 (20:41 -0800)]
Merge pull request #2110 from janvorli/refactor-gc-types
Refactor gc types
Jan Kotas [Fri, 20 Nov 2015 04:39:26 +0000 (20:39 -0800)]
Merge pull request #2109 from jkotas/glossary
Add ProjectN and Redhawk to the glossary
David Mason [Fri, 20 Nov 2015 04:06:07 +0000 (20:06 -0800)]
Adding a condition to exclude a registry check on certain builds.
Jan Vorlicek [Fri, 20 Nov 2015 00:19:07 +0000 (01:19 +0100)]
Fix few missing casts
Strangely enough, the build was successful locally, but not on the CI
machines.
Jan Kotas [Fri, 20 Nov 2015 00:04:16 +0000 (16:04 -0800)]
Merge pull request #2108 from wtgodbe/pathTests
Deleted path tests from coreclr repo
David Mason [Thu, 19 Nov 2015 23:16:46 +0000 (15:16 -0800)]
Merge remote-tracking branch 'upstream/master'
Eric Erhardt [Thu, 19 Nov 2015 22:31:22 +0000 (16:31 -0600)]
Merge pull request #2047 from eerhardt/ShortDate
DateTimeFormat.ShortDatePattern should use CLDR 'short' format on Unix.
Jan Kotas [Thu, 19 Nov 2015 22:20:34 +0000 (14:20 -0800)]
Add ProjectN and Redhawk to the glossary
Jan Vorlicek [Thu, 19 Nov 2015 22:16:59 +0000 (23:16 +0100)]
Some formatting cleanup
Code formatting (alignment) needs to be fixed at few places.
William Godbe [Thu, 19 Nov 2015 21:51:50 +0000 (13:51 -0800)]
Deleted path tests from coreclr repo
Jan Kotas [Thu, 19 Nov 2015 21:48:41 +0000 (13:48 -0800)]
Merge pull request #2100 from gsfreema/master
Fixing a typo in developer-guide.md.
Jan Kotas [Thu, 19 Nov 2015 21:47:54 +0000 (13:47 -0800)]
Merge pull request #2104 from wtgodbe/deleteTests
Deleted duplicate globalization and localization tests from coreclr
Jan Kotas [Thu, 19 Nov 2015 21:46:21 +0000 (13:46 -0800)]
Merge pull request #2102 from dotnet-bot/from-tfs
Merge changes from TFS
Pat Gavlin [Thu, 19 Nov 2015 21:15:43 +0000 (13:15 -0800)]
Small cleanups in SysV classification.
- Clean up/clarify the logic in CEEInfo::getSystemVAmd64PassStructInRegisterDescriptor
- Move a static helper function off of MethodTable
Jan Vorlicek [Thu, 19 Nov 2015 21:31:13 +0000 (22:31 +0100)]
Replaced remaining types
LPARAM, SSIZE_T
Pat Gavlin [Thu, 19 Nov 2015 20:33:53 +0000 (12:33 -0800)]
Merge pull request #1981 from pgavlin/SysV
Fix struct padding issues with SysV struct classification.
William Godbe [Thu, 19 Nov 2015 20:09:07 +0000 (12:09 -0800)]
Deleted duplicate globalization and localization tests from coreclr
Jan Vorlicek [Thu, 19 Nov 2015 19:34:56 +0000 (20:34 +0100)]
Add casts to APIs that require LONG / DWORD parameters
Jan Kotas [Thu, 19 Nov 2015 17:55:12 +0000 (09:55 -0800)]
Fix ARM64 build break
[tfs-changeset: 1550309]
Gerald Scott Freeman [Thu, 19 Nov 2015 16:37:16 +0000 (11:37 -0500)]
Fixing a typo in developer-guide.md.
The words 'are' and 'and' were mistyped and need to be switched.
Jan Vorlicek [Thu, 19 Nov 2015 10:36:25 +0000 (11:36 +0100)]
Merge pull request #2098 from janvorli/fix-threadpool-shiftwaitarray
Fix issue with threadpool and wait for multiple objects on Linux
Jan Vorlicek [Thu, 19 Nov 2015 09:38:17 +0000 (10:38 +0100)]
Changed LONG and ULONG
Jan Vorlicek [Thu, 19 Nov 2015 08:16:34 +0000 (09:16 +0100)]
Fix issue with threadpool and wait for multiple objects on Linux
There is a method ThreadpoolMgr::ShiftWaitArray which uses memcpy to do
a move a segment of the waitPointer and waitHandle arrays one position
down, so the source and destination ranges overlap. However, it uses
memcpy, which on Linux copies items starting from the last one. So
the arrays get corrupted after the memcpy, containing multiple copies
of the last element and not containig some elements that were expected
to move.
The fix is to use memmove which should be used when the source and
destination memory regions overlap.
Lubomir Litchev [Wed, 18 Nov 2015 23:07:49 +0000 (15:07 -0800)]
Fix for issue 2058.
AndyAyersMS ran the valgrind on the parts of the VM/Jit and discovered the
2 erors described in issue #2058. One of them is that theorder of two assert condition was
swapped. The other was that there were a number of uninitialized variables that
in some cases could cause undefined behavior.
Chris McKinsey [Thu, 19 Nov 2015 05:01:22 +0000 (21:01 -0800)]
Update osx-instructions.md
Added text to describe increasing the file limit so mscorlib will not fail during build with file limit errors.
Bruce Forstall [Thu, 19 Nov 2015 02:28:44 +0000 (18:28 -0800)]
Merge pull request #2092 from BruceForstall/CleanupTargetHIfdefs
Simplify JIT target.h #ifdefs for ETW_EBP_FRAMED