platform/upstream/coreclr.git
9 years agoDisable PRs on SuSE and CentOS until we get more nodes spun up
Matt Mitchell [Wed, 7 Oct 2015 20:11:20 +0000 (13:11 -0700)]
Disable PRs on SuSE and CentOS until we get more nodes spun up

9 years agoMerge pull request #1645 from eerhardt/Encoding
Eric Erhardt [Wed, 7 Oct 2015 19:15:43 +0000 (14:15 -0500)]
Merge pull request #1645 from eerhardt/Encoding

Implement Encodings on Linux

9 years agoMerge pull request #1701 from janvorli/fix-osx-hardware-exceptions-2
Josh Free [Wed, 7 Oct 2015 17:39:54 +0000 (10:39 -0700)]
Merge pull request #1701 from janvorli/fix-osx-hardware-exceptions-2

Add missing file to the previous hardware exceptions fix

9 years agoAdd missing file to the previous hardware exceptions fix
Jan Vorlicek [Wed, 7 Oct 2015 16:45:43 +0000 (18:45 +0200)]
Add missing file to the previous hardware exceptions fix

9 years agoMerge pull request #1692 from mmitche/add-netci
Matt Mitchell [Wed, 7 Oct 2015 15:41:51 +0000 (08:41 -0700)]
Merge pull request #1692 from mmitche/add-netci

Initial commit of CI definition for inner loop

9 years agoInitial commit of CI definition for inner loop
Matt Mitchell [Tue, 6 Oct 2015 22:56:08 +0000 (15:56 -0700)]
Initial commit of CI definition for inner loop

9 years agoImplement Encodings on Linux
Eric Erhardt [Mon, 28 Sep 2015 22:41:01 +0000 (17:41 -0500)]
Implement Encodings on Linux

Our current Encodings implementation on Linux is stubbed out and
needs to be fully implemented for CoreClr.

Fix https://github.com/dotnet/corefx/issues/2774.

9 years agoMerge pull request #1699 from janvorli/fix-osx-hardware-exceptions
Jan Kotas [Wed, 7 Oct 2015 13:26:14 +0000 (06:26 -0700)]
Merge pull request #1699 from janvorli/fix-osx-hardware-exceptions

Fix OSX hardware exception handling

9 years agoFix OSX hardware exception handling
Jan Vorlicek [Wed, 7 Oct 2015 12:21:36 +0000 (14:21 +0200)]
Fix OSX hardware exception handling

In my recent change that has added the runtime suspension for OSX,
I have also added a fix for the unwind info of the PAL_DispatchExceptionWrapper
function. It turns out that I've made a mistake in the offset in the set_cfa_register
and it has broken hardware exception handling on OSX since the unwinder was not
able to unwind correctly through the wrapper.
It also turns out that the same wrong offset in set_cfa_register is in the
ActivationHelperWrapper.S, but in that function, the unwinding still works correctly.
I've actually verified that with both the wrong and the correct offset, the unwinder
gets the same correct RSP / RBP at the time of the exception. So I believe linked ignored
the DWARF unwind info and used compact unwind info instead that it was able to
derive correctly on its own.
Also, the allocate_stack was incorrectly placed before the set_cfa_register, which again
didn't cause a problem due to the DWARF info being ignored. The issue with this one was
that it updates the CFA, but the CFA offset is relative to RBP at that point and
RBP didn't change.
As an additional fix, there was a problem in PAL_VirtualUnwind that @sergiy-k has
spotted. The return value of the recently added unw_is_signal_frame call was
overwriting the status code returned by the unw_step that we use on OSX to
detect walking out of stack.

9 years agoMerge pull request #1694 from janvorli/fix-exception-handling-issue
Matt Ellis [Wed, 7 Oct 2015 06:47:20 +0000 (23:47 -0700)]
Merge pull request #1694 from janvorli/fix-exception-handling-issue

Fix issue in the new exception handling

9 years agoMerge pull request #1666 from jasonwilliams200OK/master
Jan Kotas [Tue, 6 Oct 2015 22:40:08 +0000 (15:40 -0700)]
Merge pull request #1666 from jasonwilliams200OK/master

cmake: cleanup FreeBSD system include path

9 years agoMerge pull request #1687 from jasonwilliams200OK/__fastcall-Wmacro-redefined
Jan Kotas [Tue, 6 Oct 2015 22:39:44 +0000 (15:39 -0700)]
Merge pull request #1687 from jasonwilliams200OK/__fastcall-Wmacro-redefined

code: Fix redefined macro warning

9 years agoFix issue in the new exception handling
Jan Vorlicek [Tue, 6 Oct 2015 21:46:49 +0000 (23:46 +0200)]
Fix issue in the new exception handling

There was a problem with scanned stack range stored in an exception tracker.
After unwinding a sequence of native frames during the 2nd pass of unwinding,
the scanned stack range was not cleared and referenced stack frames that
were unwound. In some rare cases related to throwing an exception from
a catch handler, this was causing the exception handling to consider stack
frames that accidentally had the same range of addresses as already visited,
which resulted in a wrong exception handler being executed.

9 years agocode: Fix redefined macro warning.
Peter Jas [Tue, 6 Oct 2015 18:13:59 +0000 (18:13 +0000)]
code: Fix redefined macro warning.
For example, in this log:
https://dotnet-ci.cloudapp.net/job/dotnet_coreclr_freebsd_debug_prtest/1082/consoleFull
search for '-Wmacro-redefined'. All 26 occurences are pointing to this line.

9 years agoMerge pull request #1675 from wtgodbe/clrBugFixes
Sergiy Kuryata [Tue, 6 Oct 2015 19:38:49 +0000 (12:38 -0700)]
Merge pull request #1675 from wtgodbe/clrBugFixes

Fixed small bugs in decodemd.cpp, gcrecord.h, gc.cpp, Strike/util.cpp…

9 years agoFixed small bugs in decodemd.cpp, gcrecord.h, gc.cpp, Strike/util.cpp, and strike...
William Godbe [Tue, 29 Sep 2015 21:06:58 +0000 (14:06 -0700)]
Fixed small bugs in decodemd.cpp, gcrecord.h, gc.cpp, Strike/util.cpp, and strike.cpp, as outlined in this article: viva64.com/en/b/0310/#ID0E5BJM

9 years agoMerge pull request #1662 from steveharter/master
Matt Ellis [Mon, 5 Oct 2015 22:39:52 +0000 (15:39 -0700)]
Merge pull request #1662 from steveharter/master

fix ICU compile error on CentOS

9 years agoMerge pull request #1677 from janvorli/refactor-exception-handling
Jan Vorlicek [Mon, 5 Oct 2015 21:21:54 +0000 (23:21 +0200)]
Merge pull request #1677 from janvorli/refactor-exception-handling

Implement refactored Unix managed exception handling

9 years agoMerge pull request #1681 from kouvel/FixPathSeparators
Koundinya Veluri [Mon, 5 Oct 2015 18:36:55 +0000 (11:36 -0700)]
Merge pull request #1681 from kouvel/FixPathSeparators

Fix loading native libraries from native search paths provided by the…

9 years agoFix loading native libraries from native search paths provided by the host
Koundinya Veluri [Sat, 3 Oct 2015 18:45:17 +0000 (11:45 -0700)]
Fix loading native libraries from native search paths provided by the host

Fixed a couple of issues outside Windows regarding the directory separator char, path separator char, and absolute path determination.

Fixes #1680

9 years agoFix ICU compile error on CentOS by using DateFormatSymbols::NARROW insead of SHORT...
Steve Harter [Thu, 1 Oct 2015 22:18:00 +0000 (17:18 -0500)]
Fix ICU compile error on CentOS by using DateFormatSymbols::NARROW insead of SHORT as SHORT is not defined in the version 50 of ICU being used by Centos. SHORT was added in ICU 51.

9 years agoFew fixes
Jan Vorlicek [Mon, 5 Oct 2015 15:49:28 +0000 (17:49 +0200)]
Few fixes

This change fixes few issues that I've found:
- The frame popping in the Frame destructor is still needed, so I've put it back.
- There was a problem (I've found that it was there before this change) with the "ex"
  variable passed to the StartUnwindingNativeFrames. The local was in frames that were
  obsoleted by the StartUnwindingNativeFrames before the ThrowExceptionHelper was called.
  And when runtime called malloc to allocate its internal exception data, the stack
  of the malloc has overwritten part of the PAL_SEHException. It was not visible before
  since that part was in the end of the ContextRecord. But now that I've put the
  TargetFrameSp to the end of the PAL_SEHException, it was sometimes getting overwritten.
  The fix is to create a copy of the "ex" out of stack.

9 years agoImplement refactored Unix managed exception handling
Jan Vorlicek [Fri, 2 Oct 2015 12:55:07 +0000 (14:55 +0200)]
Implement refactored Unix managed exception handling

This change refactors managed exception handling so that we perform full first
pass over both managed and native frames and only after we find target frame,
we perform the second pass.
This helps in debugging of unhandled managed exceptions since the debugger can
kick in at the end of the first pass when the stack frames are still intact and
it can show the context where the exception was fired.

9 years agoMerge pull request #1672 from kouvel/IncludeTestsInBuildSh
Matt Mitchell [Fri, 2 Oct 2015 23:17:49 +0000 (16:17 -0700)]
Merge pull request #1672 from kouvel/IncludeTestsInBuildSh

On builds outside Windows, build native test components by default

9 years agoOn builds outside Windows, build native test components by default
Koundinya Veluri [Fri, 2 Oct 2015 18:05:54 +0000 (11:05 -0700)]
On builds outside Windows, build native test components by default

9 years agoMerge pull request #1663 from mikem8361/excepthan
Mike McLaughlin [Fri, 2 Oct 2015 17:23:17 +0000 (10:23 -0700)]
Merge pull request #1663 from mikem8361/excepthan

Add native exception filter holder.

9 years agocmake: cleanup FreeBSD system include path.
Peter Jas [Fri, 2 Oct 2015 10:02:28 +0000 (10:02 +0000)]
cmake: cleanup FreeBSD system include path.
Include once and DRY.
Similar change made at dotnet/corefx#3487.

9 years agoMerge pull request #1665 from ursine/patch-1
Jan Vorlicek [Fri, 2 Oct 2015 08:37:53 +0000 (10:37 +0200)]
Merge pull request #1665 from ursine/patch-1

Fix comment variable name

9 years agoFix comment variable name
Gary Coulbourne [Fri, 2 Oct 2015 02:04:44 +0000 (22:04 -0400)]
Fix comment variable name

9 years agoAdd native exception filter holder.
Mike McLaughlin [Sun, 27 Sep 2015 23:11:05 +0000 (16:11 -0700)]
Add native exception filter holder.

The problem is that the debugger unhandled managed exception notification is sent
because the proper filter function (InternalUnhandledExcpetionFilter) isn't called
and the filter can't be called currently during the first pass of managed exception
dispatch that it requires.

The NativeExceptionHolder is used to hold the filter handler for the
PAL_TRY/PAL_EXCEPT/PAL_EXCEPT_FILTER macros so managed exception dispatcher
can call them during the first pass like real SEH on Windows.

9 years agoMerge pull request #1661 from janvorli/fix-crossgen
Jan Kotas [Thu, 1 Oct 2015 21:47:55 +0000 (14:47 -0700)]
Merge pull request #1661 from janvorli/fix-crossgen

Fix wrong register with module address in crossgen on Unix

9 years agoFix wrong register with module address in crossgen on Unix
Jan Vorlicek [Thu, 1 Oct 2015 20:13:09 +0000 (22:13 +0200)]
Fix wrong register with module address in crossgen on Unix

This change fixes a crossgen bug when the module pointer as a parameter to
JIT_StrCns was incorrectly placed into RDX both on Windows and on Unix.
Since it is the second parameter to the function, the calling convention
on Unix requires it to be in RSI.

9 years agoMerge pull request #1620 from justinvp/dictionary
Jan Kotas [Thu, 1 Oct 2015 15:47:09 +0000 (08:47 -0700)]
Merge pull request #1620 from justinvp/dictionary

Avoid the enumerator allocation in Dictionary's constructor

9 years agoMerge pull request #1650 from Dmitry-Me/fixLeftShiftIssue1526
Jan Kotas [Thu, 1 Oct 2015 15:41:50 +0000 (08:41 -0700)]
Merge pull request #1650 from Dmitry-Me/fixLeftShiftIssue1526

Fix left shift of signed integer - issue 1526

9 years agoMerge pull request #1658 from dotnet-bot/from-tfs
Jan Kotas [Thu, 1 Oct 2015 15:36:12 +0000 (08:36 -0700)]
Merge pull request #1658 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #1654 from janvorli/fix-isipinepilog-assert
Jan Vorlicek [Thu, 1 Oct 2015 08:58:00 +0000 (10:58 +0200)]
Merge pull request #1654 from janvorli/fix-isipinepilog-assert

Fix assert in IsIPInEpilog

9 years agoMerge pull request #1638 from kouvel/CoreClrTests
Koundinya Veluri [Thu, 1 Oct 2015 06:50:41 +0000 (23:50 -0700)]
Merge pull request #1638 from kouvel/CoreClrTests

Improve CoreCLR test runner outside Windows

9 years agoFix SigPointer::PeekValueTypeTokenClosed to handle generic instantiation represented...
John Chen [Thu, 1 Oct 2015 04:08:57 +0000 (21:08 -0700)]
Fix SigPointer::PeekValueTypeTokenClosed to handle generic instantiation represented by ELEMENT_TYPE_INTERNAL

Integrate change #1529861 from NetFXDev1

[tfs-changeset: 1532127]

9 years agoMerge pull request #1657 from Djuffin/disable_lu_ptrace
Jan Kotas [Thu, 1 Oct 2015 04:01:01 +0000 (21:01 -0700)]
Merge pull request #1657 from Djuffin/disable_lu_ptrace

Remove references to libunwind-ptrace to fix build on RPM distros

9 years agoMerge pull request #1656 from janvorli/exception-handling-perf
Jan Kotas [Thu, 1 Oct 2015 03:59:48 +0000 (20:59 -0700)]
Merge pull request #1656 from janvorli/exception-handling-perf

Improve Unix exception handling performance

9 years agoRemove references to libunwind-ptrace to fix build on RPM distros
Eugene [Thu, 1 Oct 2015 01:09:12 +0000 (18:09 -0700)]
Remove references to libunwind-ptrace to fix build on RPM distros

9 years agoImprove Unix exception handling performance
Jan Vorlicek [Thu, 1 Oct 2015 00:55:30 +0000 (02:55 +0200)]
Improve Unix exception handling performance

This change adds caching of thread base / limit in PAL. Profiling has shown
extraction of the base / limit using pthread APIs to be the main contributors
to the bad performance.
With this fix, a simple loop with throw / catch is about 40 times faster than
before.

9 years agoFix assert in IsIPInEpilog
Jan Vorlicek [Wed, 30 Sep 2015 22:10:41 +0000 (00:10 +0200)]
Fix assert in IsIPInEpilog

The assert was incorrect for managed functions without body. Since there
is no easy way to find out that function has no body at that place,
the fix is to remove the assert.

9 years agoMerge pull request #1524 from Priya91/stackstring
Lakshmi Priya [Wed, 30 Sep 2015 21:57:41 +0000 (14:57 -0700)]
Merge pull request #1524 from Priya91/stackstring

Add StackString class for stack/heap allocation for MAX_LONGPATH.

9 years agoMerge pull request #1651 from kouvel/TpaPktFix
Koundinya Veluri [Wed, 30 Sep 2015 21:48:32 +0000 (14:48 -0700)]
Merge pull request #1651 from kouvel/TpaPktFix

Remove the need for the PKT to match when binding to an assembly on t…

9 years agoMerge pull request #1646 from kouvel/HeapAllocationFix
Koundinya Veluri [Wed, 30 Sep 2015 20:22:13 +0000 (13:22 -0700)]
Merge pull request #1646 from kouvel/HeapAllocationFix

Heap allocation fix

9 years agoRemove the need for the PKT to match when binding to an assembly on the TPA list
Koundinya Veluri [Wed, 30 Sep 2015 19:20:52 +0000 (12:20 -0700)]
Remove the need for the PKT to match when binding to an assembly on the TPA list

There is some inconsistency in how binding works with and without a custom AssemblyLoadContext being active. By default, the binder allows binding to assemblies on the TPA list despite a PKT mismatch while searching app paths. This part is skipped when a custom AssemblyLoadContext is active.

It has been determined that generally, the binder shouldn't require the PKT to match, so disabling that check.

Fixes #1640

9 years agoAdd StackString class for stack/heap allocation for MAX_LONGPATH.
Lakshmi Priya Sekar [Thu, 10 Sep 2015 06:18:32 +0000 (23:18 -0700)]
Add StackString class for stack/heap allocation for MAX_LONGPATH.
Add stackstring.cpp to build.

9 years agoFix left shift of signed integer - issue 1526
Dmitry-Me [Wed, 30 Sep 2015 09:16:30 +0000 (12:16 +0300)]
Fix left shift of signed integer - issue 1526

9 years agoDictionary constructor perf optimization
Justin Van Patten [Thu, 24 Sep 2015 19:38:32 +0000 (12:38 -0700)]
Dictionary constructor perf optimization

Regarding the constructor overloads that take an
IDictionary<TKey, TValue>: It is likely that the passed-in dictionary
is Dictionary<TKey, TValue>. When this is the case, avoid the
enumerator allocation and overhead by looping through the entries
array directly. This is only done when the dictionary is
Dictionary<TKey, TValue> and not a subclass, to maintain back-compat
with subclasses that may have overridden the enumerator behavior.

9 years agoImprove CoreCLR test runner outside Windows
Koundinya Veluri [Fri, 18 Sep 2015 18:08:28 +0000 (11:08 -0700)]
Improve CoreCLR test runner outside Windows

CoreCLR tests will need to be built on Windows and copied over to a non-Windows machine. Then, coreclr/tests/runtest.sh along
with some switches can be used to run the tests.

Changes:
- Run tests in parallel by default (use --sequential to force sequential mode)
- Update Windows test build to produce the Windows core overlay that includes test dependencies that are not built
- Add a number of switches (see coreclr/tests/runtest.sh for details) to provide locations of:
  - The Windows test build
  - The CoreCLR native test build
  - Either:
    - This:
      - The core layout (including all of the below)
    - Or:
      - The CoreCLR build
      - mscorlib.dll
      - The CoreFX build
      - The CoreFX native build
- Using information from above, build or use the core layout, and copy native test binaries to the respective test directories
- Add --testDir to specify an inclusive list of test directories to run
- Add text files to exclude tests:
  - coreclr/tests/testsUnsupportedOutsideWindows.txt - Tests that are not supported outside Windows
  - coreclr/tests/testsFailingOutsideWindows.txt - Tests that are known to fail outside Windows and are temporarily disabled while they are investigated
- Add --runFailingTestsOnly to run only the tests listed in coreclr/tests/testsFailingOutsideWindows.txt to verify known failures
- Produce xUnit-style output for the CI, output goes into <Windows test build folder>/coreclrtests.xml

9 years agoFix HeapReAlloc to return a non-null pointer for a requested size of zero bytes
Koundinya Veluri [Tue, 29 Sep 2015 21:01:57 +0000 (14:01 -0700)]
Fix HeapReAlloc to return a non-null pointer for a requested size of zero bytes

9 years agoMerge pull request #1632 from bbowyersmyth/StringStartsWith
Jan Kotas [Tue, 29 Sep 2015 06:58:33 +0000 (23:58 -0700)]
Merge pull request #1632 from bbowyersmyth/StringStartsWith

String.StartsWith ordinal optimization

9 years agoMerge pull request #1589 from Priya91/pathstring
Lakshmi Priya [Mon, 28 Sep 2015 22:56:03 +0000 (15:56 -0700)]
Merge pull request #1589 from Priya91/pathstring

Use SString type - PathString for path allocations in binder.

9 years agoMerge pull request #1628 from kouvel/CppCheckFixes
Koundinya Veluri [Mon, 28 Sep 2015 21:54:46 +0000 (14:54 -0700)]
Merge pull request #1628 from kouvel/CppCheckFixes

Fix a few issues reported by cppcheck

9 years agoString.StartsWith ordinal optimization
Bruce Bowyer-Smyth [Sun, 27 Sep 2015 20:47:43 +0000 (06:47 +1000)]
String.StartsWith ordinal optimization

9 years agoMerge pull request #1629 from ericeil/AsyncLocalPerf
Eric Eilebrecht [Sat, 26 Sep 2015 17:54:11 +0000 (10:54 -0700)]
Merge pull request #1629 from ericeil/AsyncLocalPerf

Reduce allocations in AsyncLocal/ExecutionContext

1: Allocate a new AsyncLocal change notification list only if we need to add an item to the list.
2: Pre-size any collections we allocate, and manually copy into them to avoid IEnumerator allocations, etc.
3: Store the change notification list in an array, rather than a List, to avoid the extra List allocation.

9 years agoMerge branch 'AsyncLocalPerf' of https://github.com/ericeil/coreclr into AsyncLocalPerf
Eric Eilebrecht [Sat, 26 Sep 2015 17:50:10 +0000 (10:50 -0700)]
Merge branch 'AsyncLocalPerf' of https://github.com/ericeil/coreclr into AsyncLocalPerf

9 years agoReduce allocations when setting AsyncLocal values
Eric Eilebrecht [Fri, 25 Sep 2015 21:03:08 +0000 (14:03 -0700)]
Reduce allocations when setting AsyncLocal values

1: Allocate a new AsyncLocal change notification list only if we need to add an item to the list.
2: Pre-size any collections we allocate, and manually copy into them to avoid IEnumerator allocations, etc.
3: Store the change notification list in an array, rather than a List, to avoid the extra List allocation.

9 years agoMerge pull request #1617 from jamesqo/patch-1
Jan Kotas [Sat, 26 Sep 2015 13:42:29 +0000 (06:42 -0700)]
Merge pull request #1617 from jamesqo/patch-1

Assign directly to this in Decimal constructor

9 years agoMerge pull request #1630 from dotnet-bot/from-tfs
Matt Ellis [Sat, 26 Sep 2015 01:15:07 +0000 (18:15 -0700)]
Merge pull request #1630 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoStore AsyncLocal notification list in an array, rather than a List.
Eric Eilebrecht [Sat, 26 Sep 2015 00:30:53 +0000 (17:30 -0700)]
Store AsyncLocal notification list in an array, rather than a List.

This should further reduce allocations, as we don't need the intermediate List<IAsyncLocal> object.

9 years agoFix clang only build breaks
Matt Ellis [Sat, 26 Sep 2015 00:18:34 +0000 (17:18 -0700)]
Fix clang only build breaks

Some new code from TFS was triggering this error in clang:

`error: suggest braces around initialization of subobject`

I just made the obvious fix.

9 years agoFix for 134453: fix prefast warnings
Rahul Kumar [Fri, 25 Sep 2015 21:03:54 +0000 (14:03 -0700)]
Fix for 134453: fix prefast warnings

[tfs-changeset: 1529946]

9 years agoVS has mentioned that when they have an AV come through their reflection invoked...
Gaurav Khanna [Fri, 25 Sep 2015 19:31:07 +0000 (12:31 -0700)]
VS has mentioned that when they have an AV come through their reflection invoked code, they endup getting TargetInvocationException that is not actionable and also does not help in the Watson bucketing for the issue.  To address this, they would like an opt-in flag to force a failfast when a CSE remains unhandled within reflection invocation.

This change adds support for an opt-in flag that will trigger failfast in Reflection codepath inface of an unhandled CSE.

[tfs-changeset: 1529878]

9 years agoAdd AssemblyLoadContext.LoadUnmanagedDllFromPathfor use by overriders of AssemblyLoad...
Koundinya Veluri [Sat, 26 Sep 2015 00:23:43 +0000 (17:23 -0700)]
Add AssemblyLoadContext.LoadUnmanagedDllFromPathfor use by overriders of AssemblyLoadContext.LoadUnmanagedDll

LoadUnmanagedDllFromPath needs to call LoadLibrary or dlopen, and return the system handle to the library through LoadUnmanagedDll. Outside Windows, when LoadUnmanagedDll returns a system handle to a library, the handle needs to be registered with PAL's module list for lifetime management. From that point on, the system handle is tracked as part of the PAL handle.

To handle both of the above, I have refactored module.cpp!LOADLoadLibrary into a LoadLibraryDirect portion and a RegisterLibrary component.

    LoadLibraryDirect loads the specified library directly using the system call, without appending or prepending anything to the library name
    RegisterLibrary registers a system library handle with PAL to get a PAL handle

This patch contains the necessary changes to coreclr and mscorlib. Tests will be added separately, after the new APIs are published and can be consumed.

Fixes dotnet/coreclr#935
Part of dotnet/coreclr#937 and dotnet/corefx#3054

See https://github.com/dotnet/coreclr/pull/1500

[tfs-changeset: 1529692]

9 years agoFix typo in my previous typo fix.
Eric Eilebrecht [Sat, 26 Sep 2015 00:02:52 +0000 (17:02 -0700)]
Fix typo in my previous typo fix.

9 years agoFix typo
Eric Eilebrecht [Sat, 26 Sep 2015 00:01:40 +0000 (17:01 -0700)]
Fix typo

9 years agoReduce AsyncLocal setter allocations further
Eric Eilebrecht [Fri, 25 Sep 2015 23:45:16 +0000 (16:45 -0700)]
Reduce AsyncLocal setter allocations further

Now we pre-size any collections we allocate, and manually copy into them to avoid IEnumerator allocations, etc.

9 years agoMerge pull request #1627 from ellismg/icu-collation
Matt Ellis [Fri, 25 Sep 2015 23:23:24 +0000 (16:23 -0700)]
Merge pull request #1627 from ellismg/icu-collation

Implement basic collation on top of ICU

9 years agoMerge pull request #1621 from dotnet-bot/from-tfs
Matt Ellis [Fri, 25 Sep 2015 23:03:36 +0000 (16:03 -0700)]
Merge pull request #1621 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoImplement basic collation on top of ICU
Matt Ellis [Wed, 15 Jul 2015 18:22:39 +0000 (11:22 -0700)]
Implement basic collation on top of ICU

This change adds support for basic Unicode collation support, built on
top of ICU. Windows and ICU have different collation models, and the
windows model does not correspond 1:1 with the ICU model, so in addition
to differences in sort weights between the two platforms, the
CompareOptions enum does not map nicely to ICU options.

For now, we only map CompareOptions.None, CompareOptions.IgnoreCase as
well as CompareOptions.Ordinal and CompareOptions.OrdinalIngoreCase,
other CompareOptions are ignored during collation.

In addition to collation support, I have enabed the randomized string
hashing code (using Marvin32 + a per app domain seed) so that string
hashcodes are not predictable across runs.

9 years agoAllocate a new AsyncLocal change notification list only if we need to add an item...
Eric Eilebrecht [Fri, 25 Sep 2015 21:03:08 +0000 (14:03 -0700)]
Allocate a new AsyncLocal change notification list only if we need to add an item to the list.

9 years agoMerge pull request #1626 from caslan/exportsforee
Mike McLaughlin [Fri, 25 Sep 2015 21:00:05 +0000 (14:00 -0700)]
Merge pull request #1626 from caslan/exportsforee

Add new exports to get expression evaluator working in clrdbg

9 years agoUse PathString type to allocate large path strings on linux scenario.
Lakshmi Priya Sekar [Tue, 22 Sep 2015 06:32:54 +0000 (23:32 -0700)]
Use PathString type to allocate large path strings on linux scenario.
Respond to PR feedback. Fix test failures in mscoree.

9 years agoFix a few issues reported by cppcheck
Koundinya Veluri [Wed, 23 Sep 2015 19:19:33 +0000 (12:19 -0700)]
Fix a few issues reported by cppcheck

9 years agoAdd new exports to get expression evaluator working in clrdbg
Cagri [Fri, 25 Sep 2015 17:35:57 +0000 (10:35 -0700)]
Add new exports to get expression evaluator working in clrdbg

9 years agoFixing SAL anotation for VM
Rama Krishnan Raghupathy [Thu, 24 Sep 2015 23:48:04 +0000 (16:48 -0700)]
Fixing SAL anotation for VM

[tfs-changeset: 1529342]

9 years agoMerge pull request #1612 from jkotas/readytorun-directcall
Jan Kotas [Thu, 24 Sep 2015 18:08:51 +0000 (11:08 -0700)]
Merge pull request #1612 from jkotas/readytorun-directcall

Handle direct call ReadyToRun helpers

9 years agoMerge pull request #1616 from dotnet-bot/from-tfs
Jan Kotas [Thu, 24 Sep 2015 16:37:53 +0000 (09:37 -0700)]
Merge pull request #1616 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoAssign directly to this in Decimal.cs
James Ko [Thu, 24 Sep 2015 16:05:21 +0000 (12:05 -0400)]
Assign directly to this in Decimal.cs

9 years agoPorting EventCounter from Roxel Branch to ProjectK
dotnet-bot [Thu, 24 Sep 2015 15:04:08 +0000 (08:04 -0700)]
Porting EventCounter from Roxel Branch to ProjectK

[tfs-changeset: 1529077]

9 years agoMerge pull request #1613 from jkotas/crossgen-commandline
Jan Kotas [Thu, 24 Sep 2015 05:26:08 +0000 (22:26 -0700)]
Merge pull request #1613 from jkotas/crossgen-commandline

Fix crossgen command line handling on Unix

9 years agoDelete incorrect AMD64 ifdef
Jan Kotas [Thu, 24 Sep 2015 05:07:45 +0000 (22:07 -0700)]
Delete incorrect AMD64 ifdef

ReadyToRun case of getCallInstruction was incorrectly ifdefed out
for AMD64. Delete the incorrect ifdef and make other adjustment
to make the code compile for X86 as well.

9 years agoFix crossgen command line handling on Unix
Jan Kotas [Thu, 24 Sep 2015 04:30:35 +0000 (21:30 -0700)]
Fix crossgen command line handling on Unix

Replace hardcoded Windows directory and path separators with symbolic
constants.

9 years agoHandle direct call ReadyToRun helpers
Jan Kotas [Thu, 24 Sep 2015 01:34:37 +0000 (18:34 -0700)]
Handle direct call ReadyToRun helpers

Add missing check in the JIT to generate correct code for direct call ReadyToRun helpers. I have run into this bug while experimenting with ReadyToRun optimizations. It is not observable bug today because of crossgen happens to always emit ReadyToRun helpers as indirect calls.

9 years agoMerge pull request #1609 from Dmitry-Me/duplicatedCheck
Matt Ellis [Wed, 23 Sep 2015 22:41:59 +0000 (15:41 -0700)]
Merge pull request #1609 from Dmitry-Me/duplicatedCheck

Fix erroneous check

9 years agoMerge pull request #1610 from janvorli/osx-thread-suspension-activation-2
Jan Vorlicek [Wed, 23 Sep 2015 22:18:14 +0000 (00:18 +0200)]
Merge pull request #1610 from janvorli/osx-thread-suspension-activation-2

Implement runtime suspension for OSX

9 years agoImplement runtime suspension for OSX
Jan Vorlicek [Fri, 18 Sep 2015 13:57:49 +0000 (15:57 +0200)]
Implement runtime suspension for OSX

This change implements runtime suspension for OSX using activation
injection, the same mechanism as Linux uses.
I have modified the activation injection mechanism by adding a new
function that CoreCLR registers with PAL and PAL calls it to check
if an instruction address is safe for injection. The injection is
performed only if this new function returns true.
The activation on OSX is performed by suspending the target thread,
checking the instruction address in the suspended thread's context
using the above mentioned function and modifying the context to
perform the injection only at injection safe place.

9 years agoFix erroneous check
Dmitry-Me [Wed, 23 Sep 2015 15:32:54 +0000 (18:32 +0300)]
Fix erroneous check

9 years agoMerge pull request #1608 from ellismg/fix-infinite-recursion-in-culture-init
Matt Ellis [Wed, 23 Sep 2015 07:39:33 +0000 (00:39 -0700)]
Merge pull request #1608 from ellismg/fix-infinite-recursion-in-culture-init

Use Ordinal when searching for collation keyword

9 years agoUse Ordinal when searching for collation keyword
Matt Ellis [Wed, 23 Sep 2015 06:47:59 +0000 (23:47 -0700)]
Use Ordinal when searching for collation keyword

IndexOf by default is culture specific, which could lead to us doing
the wrong thing depending on the current culture and also can cause
problems where we need to access CultureData while we are still building
up culture information, causing infinite recursion.

Some collection tests were triggering the latter case and failing after
we merged in the ICU changes.

9 years agoMerge pull request #1604 from ellismg/icu-merge-staging
Matt Ellis [Wed, 23 Sep 2015 01:24:23 +0000 (18:24 -0700)]
Merge pull request #1604 from ellismg/icu-merge-staging

Merge in initial round of ICU Changes

9 years agoMerge pull request #1603 from dotnet-bot/from-tfs
Jan Kotas [Tue, 22 Sep 2015 22:15:48 +0000 (15:15 -0700)]
Merge pull request #1603 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoRespond to PR feedback
Matt Ellis [Tue, 22 Sep 2015 21:47:20 +0000 (14:47 -0700)]
Respond to PR feedback

9 years agoUpdate documentation to list ICU dependency
Matt Ellis [Tue, 22 Sep 2015 19:08:34 +0000 (12:08 -0700)]
Update documentation to list ICU dependency

Provide some hints on how to obtain the required ICU components for
Linux, OSX and FreeBSD

9 years agocomplete core implementation of CultureData for Unix
Steve Harter [Fri, 18 Sep 2015 19:01:16 +0000 (14:01 -0500)]
complete core implementation of CultureData for Unix

9 years agoUse 'readlink' of the /etc/localtime file to determine the TimeZoneInfo.Local.Id...
Eric Erhardt [Thu, 17 Sep 2015 15:50:37 +0000 (10:50 -0500)]
Use 'readlink' of the /etc/localtime file to determine the TimeZoneInfo.Local.Id on Linux.

Fix https://github.com/dotnet/corefx/issues/2489.

9 years agoFixing date patterns on Linux.
Eric Erhardt [Fri, 11 Sep 2015 21:02:46 +0000 (16:02 -0500)]
Fixing date patterns on Linux.

1. Getting more LongDatePatterns by getting both full and long ICU patterns.
2. Getting more ShortDatePatterns by getting both medium and short ICU patterns.  Still keeping the "yMd" pattern, since this closely matches what is used on Windows.
3. Removing any duplicates in the date patterns.
4. "Normalizing" the date patterns from ICU format to .NET format.
  a. "EEEE", "eeee" and "cccc" is replaced with "dddd"
  b. "LLLL" is replaced with "MMMM"
  c. "G" is replaced with "g"
  d. A single 'y' is replaced with 'yyyy'

9 years agoBuild System.Native.Globalization on OSX
Matt Ellis [Tue, 25 Aug 2015 00:44:16 +0000 (17:44 -0700)]
Build System.Native.Globalization on OSX

This requires the 'icu4c' package from homebrew, which can be installed
with `brew install icu4c`.