platform/upstream/coreclr.git
8 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.

8 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

8 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

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

8 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

8 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

8 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.

8 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'

8 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`.

8 years agoAdding an empty string to the end of month names if ICU only returns 12.
Eric Erhardt [Wed, 9 Sep 2015 21:29:13 +0000 (16:29 -0500)]
Adding an empty string to the end of month names if ICU only returns 12.

This bug was caught by a test case in System.Globalization.Tests.

8 years agoDon't use StringBuilderCache for casing
Matt Ellis [Wed, 2 Sep 2015 01:40:04 +0000 (18:40 -0700)]
Don't use StringBuilderCache for casing

During code review, Steve proposed we moved to using StringBuilderCache
to the allocation of the temporary char[] array during casing
operations. I made the change but later realized that this caused a few
issues.

- The native layer operates on UChar/length pairs, not null terminated
  strings.  Because of this, we don't actually write a terminating null
  into the destination buffer (since we just do a 1:1 casing operation
  on the input and never see the null terminator). However, the
  marshalling code for StringBuilder assumes the buffer will be null
  terminated and uses that to compute the new length value after a
  marshalling call. Because there can be left over data from previous
  calls in the buffer the string length calculation will be incorrect
  and we will end up leaking in extra data into the cased string.

- The StringBuilder marshalling as a whole won't work if we have
  embdedded nulls in a string (we'll end up dropping characters on the
  transition from native back to managed) but that's something that we
  need to be able to handle.

Ideally there would be a way to construct a mutable string, case into
its buffer and the freeze the string, but we don't have a way to do that
today, so we need to stick with this allocation.

8 years agoResponding to PR feedback.
Eric Erhardt [Tue, 8 Sep 2015 18:34:11 +0000 (13:34 -0500)]
Responding to PR feedback.

8 years agoImplement Japanese Era information.
Eric Erhardt [Wed, 2 Sep 2015 23:18:20 +0000 (18:18 -0500)]
Implement Japanese Era information.

8 years agoImplement CalendarData.GetCalendars.
Eric Erhardt [Tue, 1 Sep 2015 16:49:42 +0000 (11:49 -0500)]
Implement CalendarData.GetCalendars.

8 years agoImplement CalendarData on Linux.
Eric Erhardt [Tue, 25 Aug 2015 21:55:30 +0000 (16:55 -0500)]
Implement CalendarData on Linux.

This is the first round of CalendarData implementation on Linux using ICU
for the information.  It contains Month Names, Day Names, DateTime format
patterns, etc.

8 years agoaddress code review feedback
Steve Harter [Wed, 2 Sep 2015 17:42:36 +0000 (12:42 -0500)]
address code review feedback

8 years agoaddress code review feedback
Steve Harter [Wed, 2 Sep 2015 17:31:03 +0000 (12:31 -0500)]
address code review feedback

8 years agoadd number formatting
Steve Harter [Thu, 27 Aug 2015 17:31:25 +0000 (12:31 -0500)]
add number formatting

8 years agoaddress code review comments in CultureData.Unix.cs and and refactor files
Steve Harter [Tue, 11 Aug 2015 15:14:09 +0000 (10:14 -0500)]
address code review comments in CultureData.Unix.cs and and refactor files

8 years agoaddress code review comments
Steve Harter [Tue, 4 Aug 2015 22:53:29 +0000 (17:53 -0500)]
address code review comments

8 years agoaddress code review comments
Steve Harter [Tue, 4 Aug 2015 21:56:03 +0000 (16:56 -0500)]
address code review comments

8 years agobase locale and formatting for linux
Steve Harter [Mon, 3 Aug 2015 17:41:51 +0000 (12:41 -0500)]
base locale and formatting for linux

8 years agoRespond to PR Feedback
Matt Ellis [Fri, 17 Jul 2015 21:30:52 +0000 (14:30 -0700)]
Respond to PR Feedback

8 years agoUse System.Globalization.Native for casing
Matt Ellis [Thu, 18 Jun 2015 19:03:11 +0000 (12:03 -0700)]
Use System.Globalization.Native for casing

This is a fairly straight forward change to start using
System.Globalization.Native (and hence ICU) for casing support.  There
are a few caveats due to how the work is being staged.

 - There are some fast paths in mscorlib that do simple ASCII casing if
   the input string is ASCII and we know the locale does not do special
   casing for ascii characters.  This is detected by doing a case
   insensitive string comparision between "ABC..XYZ" and "abc...xyz".
   However, since we don't have real collation support yet, this check
   would always return true and hence we would never actually go to
   TextInfo to do casing.  For now, this code is just disabled so we
   always go to TextInfo

 - Some of the dummy collation implementations used the ASCII casing
   routines on TextInfo.  Since they are no longer needed for TextInfo
   we move them to CompareInfo.  The alternative would be to do proper
   casing via TextInfo, but since all the collation code is throw away
   it doesn't seem prudent to spend time moving them to TextInfo.

 - Detection on if we should do turkish casing is based on the locale
   name, when we have collation support we should likely detect this by
   doing a case insenstive string comparision between i and LATIN
   CAPTIAL I WITH DOT ABOVE.

8 years agoAdd wrappers for ICU Casing
Matt Ellis [Thu, 16 Jul 2015 20:33:03 +0000 (13:33 -0700)]
Add wrappers for ICU Casing

Unlike ICU, the CLR only wants to preform simple casing, so we can't
use the ICU APIs that work over strings.  Instead we have to do
codepoint by codepoint casing ourselves.

8 years agoAdd wrappers for IDNA support
Matt Ellis [Thu, 16 Jul 2015 20:25:25 +0000 (13:25 -0700)]
Add wrappers for IDNA support

Introduce wrappers around ICU for ToAscii and ToUnicode in support of
international domain name support.

8 years agoAdd Normalization wrappers on top of ICU
Matt Ellis [Thu, 16 Jul 2015 19:48:17 +0000 (12:48 -0700)]
Add Normalization wrappers on top of ICU

This change introduces System.Globalization.Native.so which will be
the libary that we use to wrap all ICU functionality needed by the
System.Globalization.* namespaces.

The initial commit also adds wrappers around the string normalization
functions which are exposed by the System.Globalization.Extensions
contract.

8 years agoFix to VectorCopyTo test that are failing with NullReferencException on an AVX2 machine.
Venkata Sivaramakrishna Ramadugu [Tue, 22 Sep 2015 18:28:24 +0000 (11:28 -0700)]
Fix to VectorCopyTo test that are failing with NullReferencException on an AVX2 machine.

Scenario: Vector2/3/4.CopyTo(array, idx) or Vector<T>.CopyTo(array, idx)

Expected: Here the second arg is out of range and an argument out of range exception is expected.

Observed: AV while generating helper call to throw range-check exception which gets propagated as NullReferenceException

Root cause:    If repro program being run is debug version (i.e. JIT is asked to execute minopts/debuggable code)

     genRangeCheck() ->genJumpToThrowHlpBlk(bndsChk->gtThrowKind) ->Compiler::acdHelper(codeKind)

     Since Compiler::acdHelper() doesn't have mapping for SCK_ARG_EXCPN and SCK_ARG_RNG_EXCPN it return zero as helper number.  On chk builds this further leads to asserts in VM when genEmitHelperCall()->compGetHelperFtn(helpernum) call is made.  On retail builds, it will lead to AV, which gets propagated as NullReferenceException.

     Why this doesn't repro on SSE2: SIMD intrinsics are disabled while generating minopts/debuggable code.
     Why does this repro on AVX2: Since VM used size for Vector<T> doesn't match IL definition of Vector<T>, JIT has no way but to support SIMD intrinsics even while generating minopts/debuggable code.

     On manual source examination found a couple of places where (in compiler.hpp) that are supposed to check for SCK_ARG_EXCPN and SCK_ARG_RNG_EXCPN and fixed those as well.

Fix #3262

[tfs-changeset: 1527996]

8 years agoMerge pull request #1600 from dotnet-bot/from-tfs
Jan Kotas [Mon, 21 Sep 2015 19:37:52 +0000 (12:37 -0700)]
Merge pull request #1600 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoUndo MAX_LONGPATH use in SDK header file
Jan Kotas [Mon, 21 Sep 2015 16:39:14 +0000 (09:39 -0700)]
Undo MAX_LONGPATH use in SDK header file

[tfs-changeset: 1527242]

8 years agoMerge pull request #1566 from tijoytom/master
Jan Kotas [Sat, 19 Sep 2015 03:32:53 +0000 (20:32 -0700)]
Merge pull request #1566 from tijoytom/master

Implement NativeCallableMethods for CoreCLR

8 years agoMerge pull request #1593 from Djuffin/funceval
Eugene Zemtsov [Sat, 19 Sep 2015 00:39:54 +0000 (17:39 -0700)]
Merge pull request #1593 from Djuffin/funceval

Fix debugger's funceval on Linux

8 years agoFix debugger's funceval on Linux
Eugene [Fri, 18 Sep 2015 02:07:37 +0000 (19:07 -0700)]
Fix debugger's funceval on Linux

Address issues which prevented funceval from working on Linux:
1. Invalid stack alignment in funceval hijacks
2. Using System V calling convention for funceval hijacks
3. Disable executability check that is not implemented on Linux

8 years agoMerge pull request #1577 from LLITCHEV/master
Lubomir Litchev [Fri, 18 Sep 2015 21:04:36 +0000 (14:04 -0700)]
Merge pull request #1577 from LLITCHEV/master

Fix for Issue #3164.
Thanks all!

8 years agoMerge pull request #1565 from kouvel/TryGetRawMetadataFix
Koundinya Veluri [Fri, 18 Sep 2015 18:56:22 +0000 (11:56 -0700)]
Merge pull request #1565 from kouvel/TryGetRawMetadataFix

Fix TryGetRawMetadata to return false when the assembly is not a Runt…

8 years agoMerge pull request #1588 from mikem8361/target4
Mike McLaughlin [Fri, 18 Sep 2015 18:54:26 +0000 (11:54 -0700)]
Merge pull request #1588 from mikem8361/target4

Add ICorDebugDataTarget4 to SOS.

8 years agoDisable the clang/llvm optimizer for a method that triggers wrong codegen.
Lubomir Litchev [Fri, 18 Sep 2015 17:58:12 +0000 (10:58 -0700)]
Disable the clang/llvm optimizer for a method that triggers wrong codegen.

There is a bug in the clang-3.5 optimizer. The issue is that in release
build the optimizer is mistyping (or just wrongly decides to use 32 bit
operation for a corner case of MIN_LONG) the args of the (ltemp / lval2)
to int (it does a 32 bit div operation instead of 64 bit.)
For the case of lval1 and lval2 equal to MIN_LONG (0x8000000000000000)
this results in raising a SIGFPE.

8 years agoAdd support for NativeCallableAttribute
tijoytom [Thu, 3 Sep 2015 20:58:14 +0000 (13:58 -0700)]
Add support for NativeCallableAttribute

Apply [NativeCallable] attribute to a managed method and then it can be
called from native code.Typical use would be passing a managed method as
callback to native, now it can be done by wrapping the method in a
delegate or directly using Marshal.GetFunctionPointerForDelegate.This's
fine as long as we make sure that delegate is not garbage
collected.[NativeCallable] introduce another way, where you can directly
load the function pointer of a native callable method and use it as
callback.This feature cannot be directly used from C#,but can be very
useful in dynamic code generation scenarios where you want a callback to
be passed to native.

Here's an example of how it can be used.

public static class NativeMethods {
 [DllImport("user32.dll")]
 public static extern int EnumWindows(IntPtr enumProc, IntPtr lParam);
}

//Method attributed with NativeCallable
[NativeCallable]
public static int CallbackMethod(IntPtr hWnd, IntPtr lParam){ return 1; }

Now you can generate the below IL to load native callable function pointer
( LDFTN) and then pass it a native method.
.locals init ([0] native int ptr)
nop
ldftn      int32 CallbackMethod(native int,native int)
stloc.0
ldloc.0
ldsfld     native int System.IntPtr::Zero
call       bool NativeMethods::EnumWindows(native int,native int)
pop
ret

Encoding native callable methods as  ENCODE_METHOD_NATIVECALLABLE_HANDLE
so that we don't have to check for the custom attribute at runtime to
decode the method.Also fixing the remaining code review comments.

Adding runtime check to prevent Native Callable methods from being used as
calli target with an ldftn. Also adding some negative test cases , they
are disabled for now since the tests failfast and msbuild report it as
failure.

8 years agoMerge pull request #1580 from ravimeda/fixTestBuildProj
Matt Mitchell [Fri, 18 Sep 2015 15:58:44 +0000 (08:58 -0700)]
Merge pull request #1580 from ravimeda/fixTestBuildProj

Remove Clean Target in Test Build Proj.

8 years agoMerge pull request #1582 from janvorli/osx-thread-suspension-activation
Jan Kotas [Fri, 18 Sep 2015 03:09:47 +0000 (20:09 -0700)]
Merge pull request #1582 from janvorli/osx-thread-suspension-activation

Change PAL_InjectActivation to use pthread_kill

8 years agoMerge pull request #1583 from adityamandaleeka/coreclr_tests_linux
Sergiy Kuryata [Fri, 18 Sep 2015 01:40:16 +0000 (18:40 -0700)]
Merge pull request #1583 from adityamandaleeka/coreclr_tests_linux

CoreCLR tests on Linux

8 years agoChange PAL_InjectActivation to use pthread_kill
Jan Vorlicek [Thu, 17 Sep 2015 21:16:13 +0000 (23:16 +0200)]
Change PAL_InjectActivation to use pthread_kill

This change modifies the PAL_InjectActivation to use much more portable pthread_kill
instead of pthread_sigqueue.
Remove the activation function passing from the PAL_InjectActivation
and add a PAL API to set the activation function globally, since we need just one.

8 years agoMerge pull request #1585 from DasAllFolks/patch-2
Jan Kotas [Fri, 18 Sep 2015 01:20:23 +0000 (18:20 -0700)]
Merge pull request #1585 from DasAllFolks/patch-2

Fix link to "Public Contract" subsection

8 years agoMerge pull request #1586 from DasAllFolks/patch-1
Jan Kotas [Fri, 18 Sep 2015 01:18:50 +0000 (18:18 -0700)]
Merge pull request #1586 from DasAllFolks/patch-1

Fix link to "Coding Style" page

8 years agoMerge pull request #1587 from DasAllFolks/patch-3
Jan Kotas [Fri, 18 Sep 2015 01:18:20 +0000 (18:18 -0700)]
Merge pull request #1587 from DasAllFolks/patch-3

Fix link to CoreFX Performance Guidelines

8 years agoAdd ICorDebugDataTarget4 to SOS.
Mike McLaughlin [Wed, 16 Sep 2015 22:08:11 +0000 (15:08 -0700)]
Add ICorDebugDataTarget4 to SOS.

Now that Eugene fixed out of context unwinding in the DAC for Linux after
this change, the SOS "clrstack" command should always work and not hang anymore.

8 years agoFix link to CoreFX Performance Guidelines
Steven Das [Fri, 18 Sep 2015 00:15:03 +0000 (19:15 -0500)]
Fix link to CoreFX Performance Guidelines

This link currently returns a 404 error.

It appears to be one of several links broken by some of the CoreFX
documentation having been moved into the new `coding-guidelines`
subdirectory.

8 years agoFix link to "Coding Style" page
Steven Das [Thu, 17 Sep 2015 23:59:34 +0000 (18:59 -0500)]
Fix link to "Coding Style" page

This link is currently returning a 404 error; it appears that several of these links may have been broken when a new `coding-guidelines` subdirectory was created.

8 years agoFix link to "Public Contract" subsection
Steven Das [Thu, 17 Sep 2015 23:55:11 +0000 (18:55 -0500)]
Fix link to "Public Contract" subsection

The link to the "Public Contract" subsection of the "Breaking Changes" page is currently stale and returns a 404 error.

8 years agoMerge pull request #1584 from DasAllFolks/patch-1
Jan Kotas [Thu, 17 Sep 2015 23:50:42 +0000 (16:50 -0700)]
Merge pull request #1584 from DasAllFolks/patch-1

Unbreak "breaking changes" link

8 years agoUnbreak "breaking changes" link
Steven Das [Thu, 17 Sep 2015 23:48:48 +0000 (18:48 -0500)]
Unbreak "breaking changes" link

Previous link produced a 404 error.

8 years agoMinor improvements to runtest.sh
Aditya Mandaleeka [Thu, 17 Sep 2015 23:21:50 +0000 (16:21 -0700)]
Minor improvements to runtest.sh

8 years agoAdd runtest.sh script to run CoreCLR tests on Linux
Aditya Mandaleeka [Thu, 17 Sep 2015 23:01:42 +0000 (16:01 -0700)]
Add runtest.sh script to run CoreCLR tests on Linux

8 years agoMerge pull request #1581 from dotnet-bot/from-tfs
Jan Kotas [Thu, 17 Sep 2015 22:55:33 +0000 (15:55 -0700)]
Merge pull request #1581 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #1574 from kouvel/FixPalTests
Matt Mitchell [Thu, 17 Sep 2015 20:49:46 +0000 (13:49 -0700)]
Merge pull request #1574 from kouvel/FixPalTests

Fix some frequently failing PAL tests

8 years agoFix some frequently failing PAL tests
Koundinya Veluri [Wed, 16 Sep 2015 18:32:46 +0000 (11:32 -0700)]
Fix some frequently failing PAL tests

Some PAL tests are frequently failing in the CI. The specified output folder is currently used as the working folder for all PAL tests. The CI machine happened to have the output folder on a mount mounted as fuseblk instead of ext4. We don't know why this is happening. For the moment, I'm fixing the test runner to work around this issue.

Changes:
- Use /tmp/PalTestOutput/default as the output folder by default
- If a specific folder is specified for the output, use a unique folder inside /tmp/PalTestOutput for output files, and copy them to the specified folder at the end. A unique folder is used to support parallel runs on the same machine in this mode.
- Run each test in its own folder. Many PAL tests don't clean up after themselves, and create/use the same file/folder names in the current folder.
- Add a few more checks to some tests to hopefully provide more information upon the next failure
- Fix GetFileAttributes tests, which were crashing upon some failures due to mismatched number of placeholders and arguments to vprintf

Fixes #1561

8 years agoPort the DateTime parser fix with Serbia cultures
Tarek Mahmoud Sayed [Thu, 17 Sep 2015 18:05:43 +0000 (11:05 -0700)]
Port the DateTime parser fix with Serbia cultures

Serbia has '.' at the end of the date and time parts. (like 'd.M.yyyy.'). while '.' is marked as date and time separator in same time. this confuse the parser and make it fail
to parse date/time string formatted with the Serbia culture.

[tfs-changeset: 1526268]

8 years agoMerge pull request #1460 from bbowyersmyth/StringJoin
AlexGhiondea [Thu, 17 Sep 2015 17:19:56 +0000 (10:19 -0700)]
Merge pull request #1460 from bbowyersmyth/StringJoin

String.Join optimization for single item lists

8 years agoRemove Clean Target in Test Build Proj.
Ravi Eda [Thu, 17 Sep 2015 16:09:02 +0000 (11:09 -0500)]
Remove Clean Target in Test Build Proj.

8 years agoMerge pull request #1578 from dotnet-bot/from-tfs
Jan Kotas [Thu, 17 Sep 2015 14:57:10 +0000 (07:57 -0700)]
Merge pull request #1578 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix build break on arm
Jan Kotas [Thu, 17 Sep 2015 12:27:09 +0000 (05:27 -0700)]
Fix build break on arm

[tfs-changeset: 1526208]

8 years agoFix for Issue #3164.
Lubomir Litchev [Thu, 17 Sep 2015 05:53:49 +0000 (22:53 -0700)]
Fix for Issue #3164.

Added extra code to work around an optimizer bug in clang 3.5. In a
particular case 0/MIN_LONG results into MIN_LONG that causes a const
folding to produce a result of 0 instead of overflow exception for
MIN_LONG * MIN_LONG.

8 years agoMerge pull request #1575 from benpye/arm-unwind-regression
Jan Kotas [Thu, 17 Sep 2015 02:42:32 +0000 (19:42 -0700)]
Merge pull request #1575 from benpye/arm-unwind-regression

Fix ARM unwind regression

8 years agoMerge pull request #1568 from dotnet-bot/from-tfs
Jan Kotas [Thu, 17 Sep 2015 02:38:27 +0000 (19:38 -0700)]
Merge pull request #1568 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix ARM build regression
Ben Pye [Wed, 16 Sep 2015 23:38:18 +0000 (23:38 +0000)]
Fix ARM build regression

8 years agoMerge pull request #1559 from eerhardt/Fix2788
Eric Erhardt [Wed, 16 Sep 2015 20:06:03 +0000 (15:06 -0500)]
Merge pull request #1559 from eerhardt/Fix2788

Time Zone transitions are 1 tick off on Linux

8 years agoMerge pull request #1560 from Priya91/longpath-test
Lakshmi Priya [Wed, 16 Sep 2015 19:06:13 +0000 (12:06 -0700)]
Merge pull request #1560 from Priya91/longpath-test

Replace MAX_PATH with new defines in rest of coreclr.

8 years agoFix for GH issue 410 - https://github.com/dotnet/coreclr/issues/410
Gaurav Khanna [Wed, 16 Sep 2015 18:45:06 +0000 (11:45 -0700)]
Fix for GH issue 410 - https://github.com/dotnet/coreclr/issues/410

Whenever a managed exception is thrown, the details about the thrown exception are also saved off the managed thread object (as LastThrownObject). The VM also has an exception tracker that tracks its dispatch across the managed frames and incase of nested exceptions, the trackers are collapsed correctly, when the nested exception is handled, and last thrown object is updated correctly. The VM works on the premise that the LastThrownObject is updated correctly.

Incase of this bug, a method (M1)is invoked via Reflection and has an exception E1. During exception dispatch for E1, an IL filter is invoked that, in turn, has an exception (E2) that remains unhandled. While this is swallowed by the VM (as expected), the LastThrownObject is not updated to reflect the active exception to be E1. Thus, when the dispatch for original exception E1 completes and no managed handler is found, the exception is caught by Reflection subsystem that extracts the thrown exception using the GET_THROWABLE macro that uses the LastThrownObject to determine the thrown exception. Since the LTO was not updated, it still reflects E2.

The fix is to update the managed exception state, if the filter has an unhandled exception, similar to how we do when a managed catch block successfully handles the exception. I have refactored the code to make the semantic cleaner.

[tfs-changeset: 1525835]

8 years agoTime Zone transitions are 1 tick off on Linux
Eric Erhardt [Tue, 15 Sep 2015 22:49:54 +0000 (17:49 -0500)]
Time Zone transitions are 1 tick off on Linux

When we build the AdjustmentRules up, we set the StartDate to be the Transition Time that comes from the tzfile, and we set the EndDate to the be (the next Transition Time - 1 tick). That way the next AdjustmentRule goes into effect at the exact transition time. The issue is that the code in CheckIsDst uses a less than operator when comparing the endTime, but for these rules it should be less than or equal to.

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

8 years agoMerge pull request #1564 from dotnet-bot/from-tfs
Jan Kotas [Wed, 16 Sep 2015 18:17:53 +0000 (11:17 -0700)]
Merge pull request #1564 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix TryGetRawMetadata to return false when the assembly is not a RuntimeAssembly
Koundinya Veluri [Wed, 16 Sep 2015 17:17:56 +0000 (10:17 -0700)]
Fix TryGetRawMetadata to return false when the assembly is not a RuntimeAssembly

Related to dotnet/corefx#2768

8 years agoMerge pull request #1562 from cshung/EventCounterWork
Vance Morrison [Wed, 16 Sep 2015 16:09:56 +0000 (09:09 -0700)]
Merge pull request #1562 from cshung/EventCounterWork

Port bug fixes and add hooks for EventCounter work

8 years agoMerge pull request #1553 from paulnice/patch-1
Jan Kotas [Wed, 16 Sep 2015 16:07:48 +0000 (09:07 -0700)]
Merge pull request #1553 from paulnice/patch-1

Fix runtime versions in the Console example

8 years agoMerge pull request #1557 from ravimeda/master
Jan Kotas [Wed, 16 Sep 2015 16:06:37 +0000 (09:06 -0700)]
Merge pull request #1557 from ravimeda/master

Update Build CoreCLR Instructions on Mac OS X.

8 years agoPort bug fixes and add hooks for EventCounter work
Andrew Au [Wed, 16 Sep 2015 14:59:03 +0000 (07:59 -0700)]
Port bug fixes and add hooks for EventCounter work

8 years agoMerge pull request #1554 from kouvel/WaitAllCheckForDuplicates
Stephen Toub [Wed, 16 Sep 2015 13:13:53 +0000 (09:13 -0400)]
Merge pull request #1554 from kouvel/WaitAllCheckForDuplicates

Check for duplicate handles in PAL's implementation of a wait-all ope…

8 years agoHandle pre- and post-commands gracefully in bash execution scripts.
Aditya Mandaleeka [Tue, 15 Sep 2015 23:20:55 +0000 (16:20 -0700)]
Handle pre- and post-commands gracefully in bash execution scripts.

Existing tests can specify pre- or post-commands that are injected into
the execution scripts. However, today these are all using Windows syntax
so they break the bash scripts. We will handle that by skipping any tests
that are using pre- or post-commands unless they specify the bash-specific
equivalent. The scripts will continue to run and just exit with an exit
code that indicates a skip, so that the skipped tests are tracked and not
just hidden.

Also, this change moves the global pre-command that was being added for
running __TestEnv into the bash/batch targets rather than in the dir.props
file that is used for all platforms.

8 years agoEnable bash run scripts to handle tests with multiple arguments.
Aditya Mandaleeka [Tue, 15 Sep 2015 23:10:24 +0000 (16:10 -0700)]
Enable bash run scripts to handle tests with multiple arguments.

8 years agoEnable coreclr tests to run on Unix with corerun.
Aditya Mandaleeka [Tue, 15 Sep 2015 23:08:57 +0000 (16:08 -0700)]
Enable coreclr tests to run on Unix with corerun.

8 years agoEnable building coreclr tests on Linux
Aditya Mandaleeka [Tue, 15 Sep 2015 23:04:19 +0000 (16:04 -0700)]
Enable building coreclr tests on Linux

8 years agoClean up some test scripts
Aditya Mandaleeka [Tue, 15 Sep 2015 22:51:16 +0000 (15:51 -0700)]
Clean up some test scripts

8 years agoMerge pull request #1538 from Djuffin/get_context2
Eugene Zemtsov [Tue, 15 Sep 2015 22:09:35 +0000 (15:09 -0700)]
Merge pull request #1538 from Djuffin/get_context2

Make DBI/SOS stackwalk work when thread is running native code

8 years agoMerge pull request #1555 from richlander/roadmap
Aditya Mandaleeka [Tue, 15 Sep 2015 21:21:38 +0000 (14:21 -0700)]
Merge pull request #1555 from richlander/roadmap

Add link to .NET Core Roadmap

8 years agoUpdate Build CoreCLR Instructions on Mac OS X.
Ravi Eda [Tue, 15 Sep 2015 21:10:33 +0000 (16:10 -0500)]
Update Build CoreCLR Instructions on Mac OS X.

Rebuild option is not handled in build.sh.  Hence removing the sentence
that suggests using a rebuild option that will delete previously built
assemblies.

8 years agoUse out-of-proc libunwind to unwind native stack from DAC
Eugene [Fri, 21 Aug 2015 04:11:31 +0000 (21:11 -0700)]
Use out-of-proc libunwind to unwind native stack from DAC

Implementation of PAL_VirtualUnwindOutOfProc that uses ptrace libunwind
to be able to unwind native stack in debugee. This allows to get valid managed
stack for threads that passed HelperMethodFrames.

8 years agoUse Frame list context when GetThreadContext is unavailable
Eugene Zemtsov [Fri, 7 Aug 2015 08:08:37 +0000 (01:08 -0700)]
Use Frame list context when GetThreadContext is unavailable

When DAC tries to obtain thread context for debugee thread on the system without working GetThreadContext, it uses filter context
and if it is NULL, it goes through thread Frame list looking for a Frame that can provide meaningful CONTEXT to start the stackwalk.
Filter context can be NULL if the thread is currently running native code, or manage exception just has been thrown (first chance).
Before this change DBI stackwalker would fail to provide stack trace in such cases.

8 years agoMerge pull request #1540 from BruceForstall/FixPow1TestForLinux
Bruce Forstall [Tue, 15 Sep 2015 18:31:37 +0000 (11:31 -0700)]
Merge pull request #1540 from BruceForstall/FixPow1TestForLinux

Fix pow1 test to run on Linux

8 years agoMerge pull request #1144 from mmitche/real-debug-build
Matt Mitchell [Tue, 15 Sep 2015 17:30:33 +0000 (10:30 -0700)]
Merge pull request #1144 from mmitche/real-debug-build

Do not pass /O1 except in release/release with debug info modes

8 years agoCheck for duplicate handles in PAL's implementation of a wait-all operation
Koundinya Veluri [Mon, 14 Sep 2015 20:55:30 +0000 (13:55 -0700)]
Check for duplicate handles in PAL's implementation of a wait-all operation

8 years agoDo not pass /O1 except in release/release with debug info modes
Matt Mitchell [Tue, 16 Jun 2015 16:45:18 +0000 (09:45 -0700)]
Do not pass /O1 except in release/release with debug info modes

8 years agoAdd link to .NET Core Roadmap
Richard Lander [Tue, 15 Sep 2015 04:45:44 +0000 (21:45 -0700)]
Add link to .NET Core Roadmap

8 years agoMinor change to SystemV structs declarations in JIT-EE interface
Bruce Forstall [Tue, 15 Sep 2015 01:01:32 +0000 (18:01 -0700)]
Minor change to SystemV structs declarations in JIT-EE interface

Pull over a couple changes from the work-in-progress git branch.

[tfs-changeset: 1525036]

8 years agoFix build break on ARM.
Wes Haggard [Tue, 15 Sep 2015 00:48:18 +0000 (17:48 -0700)]
Fix build break on ARM.

[tfs-changeset: 1525030]

8 years agoFix runtime versions
paulnice [Mon, 14 Sep 2015 15:07:24 +0000 (08:07 -0700)]
Fix runtime versions

1. Fix the sample output of 'dnvm list' command with the latest one.
2. Fix the 'dnvm use' commands with the current runtime versions.

8 years agoThis fixes the case of 64bit (to be in sync with Arm/Arm64) failures when, due to...
Gaurav Khanna [Mon, 14 Sep 2015 14:23:12 +0000 (07:23 -0700)]
This fixes the case of 64bit (to be in sync with Arm/Arm64) failures when, due to Jit optimizations, the return address of two successive frames are the same, resulting in incorrect current context initialization. As a result, CrawlFrame specific lookup of data (e.g. GenericArgType) are incorrect and fails tests.

I have refactored the code to be common for X64/Arm/Arm64 as much as possible.

X64 EH Selfhost is clean (and so is DDR).

[tfs-changeset: 1524814]

8 years agoMerge pull request #1547 from jkotas/standalone-gc
Jan Kotas [Mon, 14 Sep 2015 10:07:35 +0000 (03:07 -0700)]
Merge pull request #1547 from jkotas/standalone-gc

Initial port of GC sample to Linux

8 years agoMerge pull request #1546 from dotnet-bot/from-tfs
Jan Kotas [Mon, 14 Sep 2015 08:20:09 +0000 (01:20 -0700)]
Merge pull request #1546 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoInitial port of GC sample to Linux
Jan Kotas [Sat, 12 Sep 2015 18:31:02 +0000 (11:31 -0700)]
Initial port of GC sample to Linux

- Add CMake build for the GC sample
- Add Unix clone of the GC environment. The Unix GC environment is partially
implemented, enough to make GC sample to compile and run on Linux.

8 years agoFix mscorlib asmmeta and add SecurityCritical attribute to the two new functions...
dotnet-bot [Mon, 14 Sep 2015 02:48:24 +0000 (19:48 -0700)]
Fix mscorlib asmmeta and add SecurityCritical attribute to the two new functions in AssemblyExtensions

[tfs-changeset: 1524637]

8 years agoMerge pull request #1543 from mikedn/unboxmsg
Jan Kotas [Sat, 12 Sep 2015 22:59:30 +0000 (15:59 -0700)]
Merge pull request #1543 from mikedn/unboxmsg

Improve the invalid cast message generated by unbox