mono.git
7 years ago[msvc] Update csproj files
monojenkins [Tue, 11 Apr 2017 16:29:26 +0000 (16:29 +0000)]
[msvc] Update csproj files

7 years agoMerge pull request #4116 from kumpera/jit-job-control
Rodrigo Kumpera [Tue, 11 Apr 2017 17:13:38 +0000 (10:13 -0700)]
Merge pull request #4116 from kumpera/jit-job-control

[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.

7 years ago[arm] Fix a gsharedvt assertion which happens with gsharedvt methods with a lot of...
Zoltan Varga [Tue, 11 Apr 2017 15:51:45 +0000 (11:51 -0400)]
[arm] Fix a gsharedvt assertion which happens with gsharedvt methods with a lot of arguments. Fixes #54976.

7 years agoUpdate README.Mono.md
Marek Safar [Tue, 11 Apr 2017 14:36:11 +0000 (16:36 +0200)]
Update README.Mono.md

7 years agoReadme rename
Marek Safar [Tue, 11 Apr 2017 11:59:37 +0000 (13:59 +0200)]
Readme rename

7 years agoUpdates referencesource to .NET 4.7
Marek Safar [Fri, 7 Apr 2017 22:25:45 +0000 (00:25 +0200)]
Updates referencesource to .NET 4.7

7 years ago[resgen] Remove dependency on WinForms and use it in mobile profiles (#4667)
Alexander Köplinger [Mon, 10 Apr 2017 18:15:34 +0000 (20:15 +0200)]
[resgen] Remove dependency on WinForms and use it in mobile profiles (#4667)

resgen.exe used to load WinForms via reflection which is a pretty
large dependency. Instead we can just embed the few types that
are used for reading/writing resx files directly into the app.

Add System.Drawing.dll to the "build" profile so we can put
resgen there as well and allow us to no longer rely on system
resgen for mobile profiles like monotouch/monodroid.

7 years ago[msvc] Update csproj files (#4669)
monojenkins [Mon, 10 Apr 2017 16:48:21 +0000 (18:48 +0200)]
[msvc] Update csproj files (#4669)

7 years ago[corlib] Deconstruct api from corert
Marek Safar [Mon, 10 Apr 2017 09:47:25 +0000 (11:47 +0200)]
[corlib] Deconstruct api from corert

7 years agoBump corert
Marek Safar [Sat, 8 Apr 2017 08:52:26 +0000 (10:52 +0200)]
Bump corert

7 years ago[corlib] Add few checks for array boxing conversion of pointer types
Marek Safar [Fri, 7 Apr 2017 10:15:50 +0000 (12:15 +0200)]
[corlib] Add few checks for array boxing conversion of pointer types

7 years ago[corlib] Share corert Array code
Marek Safar [Wed, 5 Apr 2017 07:33:26 +0000 (09:33 +0200)]
[corlib] Share corert Array code

7 years ago[arm64] Add a test file for codegen macros. Not used.
Zoltan Varga [Sun, 9 Apr 2017 22:59:44 +0000 (18:59 -0400)]
[arm64] Add a test file for codegen macros. Not used.

7 years ago[tests] Make stress testing more verbose (#4664)
Ludovic Henry [Sat, 8 Apr 2017 00:56:59 +0000 (20:56 -0400)]
[tests] Make stress testing more verbose (#4664)

7 years ago[mini] Fix spurious wakeups within JIT job control.
Rodrigo Kumpera [Fri, 7 Apr 2017 22:55:43 +0000 (15:55 -0700)]
[mini] Fix spurious wakeups within JIT job control.

The first iteration of this code suffered from spurious wakeups due to using a single cond-var for all compilation.

This introduce a per-job cond var and make threads wait on that. Spurious wakeups are quite problematic in heavily threaded
code such as Roslyn. On average, every wait would get 2 extra wakeups for no good reason.

With this change, on my laptop compilation times are the following:

With spurious wakeups:
real 0m6.134s
user 0m23.588s
sys 0m2.331s

Without spurious wakeups:
real 0m5.658s
user 0m22.851s
sys 0m1.694s

This represents a 8% wallclock speedup and 3% user time speedup.

As part of this change, the active threads accounting is gone as the number of waits due to cpu overload was close to zero.

7 years agoMerge pull request #4660 from xmcclure/llvm-orbis
Andi McClure [Fri, 7 Apr 2017 20:16:23 +0000 (16:16 -0400)]
Merge pull request #4660 from xmcclure/llvm-orbis

LLVM Orbis support

7 years agoLLVM: Orbis support, fix typo in configure.ac
Andi McClure [Thu, 6 Apr 2017 21:15:19 +0000 (17:15 -0400)]
LLVM: Orbis support, fix typo in configure.ac

7 years agoFix bug in SessionStateModule when session data is deleted
jmserrano [Fri, 7 Apr 2017 17:13:17 +0000 (19:13 +0200)]
Fix bug in SessionStateModule when session data is deleted

7 years ago[Facades] Add facades to winaot/orbis profiles (#4656)
Alexander Köplinger [Fri, 7 Apr 2017 18:05:34 +0000 (20:05 +0200)]
[Facades] Add facades to winaot/orbis profiles (#4656)

Also remove Mono.Simd as we don't it on new platforms.

Cleanup monotouch_dirs to not depend on testing_aot_full_dirs since
it should be separate (even though it contains the same right now).

7 years agoMerge pull request #4663 from xmcclure/bump-linker
Andi McClure [Fri, 7 Apr 2017 17:47:16 +0000 (13:47 -0400)]
Merge pull request #4663 from xmcclure/bump-linker

Bump linker external to its master

7 years ago[bcl] Add check for newline to gensources.sh (#4662)
Alexander Köplinger [Fri, 7 Apr 2017 16:07:52 +0000 (18:07 +0200)]
[bcl] Add check for newline to gensources.sh (#4662)

This has bitten us a bunch of times now so let's make sure
it doesn't happen again.

7 years agoBump linker external to its master
Andi McClure [Fri, 7 Apr 2017 15:42:00 +0000 (11:42 -0400)]
Bump linker external to its master

7 years agoMake sure .sources files end with newline
Alexander Köplinger [Fri, 7 Apr 2017 12:50:16 +0000 (14:50 +0200)]
Make sure .sources files end with newline

It confuses the build on Linux otherwise.

7 years agoBump corert
Marek Safar [Thu, 6 Apr 2017 21:24:25 +0000 (23:24 +0200)]
Bump corert

7 years ago[arm] Commit the generated arm_dpimacros.h/arm_vfpmacros.h files, they change very...
Zoltan Varga [Fri, 7 Apr 2017 04:44:23 +0000 (00:44 -0400)]
[arm] Commit the generated arm_dpimacros.h/arm_vfpmacros.h files, they change very infrequently, and having to generate them complicates the cross compiler/offsets tool build. (#4655)

7 years agoRemove debug fflush and fix active_jit_methods accounting in case of recursion.
Rodrigo Kumpera [Fri, 7 Apr 2017 01:43:04 +0000 (18:43 -0700)]
Remove debug fflush and fix active_jit_methods accounting in case of recursion.

7 years ago[runtime] Update the offsets tool to a new version of CppSharp and use 64 bit binarie...
Zoltan Varga [Fri, 7 Apr 2017 01:09:17 +0000 (21:09 -0400)]
[runtime] Update the offsets tool to a new version of CppSharp and use 64 bit binaries on osx. (#4659)

7 years agoFix compilation issues.
Rodrigo Kumpera [Wed, 22 Feb 2017 23:44:54 +0000 (15:44 -0800)]
Fix compilation issues.

7 years ago[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.
Rodrigo Kumpera [Thu, 8 Dec 2016 00:10:41 +0000 (16:10 -0800)]
[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.

This shown up as a problem under parallel roslyn.

We hit frequently the case of multiple threads compiling the same method in parallel
and wasting all but one.

Another issue that happens, but infrequently, is having more threads JITing than there
are cores in the machine. Such thrashing doesn't help.

Test setup. 4/8 macbook pro compiling corlib.

Baseline:
real 0m7.665s
user 0m20.078s
sys 0m2.653s
Methods JITted using mono JIT       : 22422
Total time spent JITting (sec)      : 18.5365

With this patch:
real 0m6.149s
user 0m18.504s
sys 0m1.487s
Methods JITted using mono JIT       : 16619
Total time spent JITting (sec)      : 4.9420

New counters
JIT compile waited others           : 7681
JIT compile 1+ jobs                 : 1
JIT compile overload wait           : 67
JIT compile spurious wakeups        : 14469

This results in a 20% wall clock reduction but only a 8% reduction on user.

We JIT 26% less methods, with very few duplications. Showing this drastically improves the situation.

JIT compilation time metrics are bogus due to .cctors and other sources of interference. So take it with a grain of salt.

Future work:

Based on the new counters, it's clear that the current wakeup design is suboptimal and we could further improve it by cutting on spurious wakeups.

7 years ago[tests] Fix out of tree build. (#4657)
Vincent Povirk [Thu, 6 Apr 2017 22:08:18 +0000 (17:08 -0500)]
[tests] Fix out of tree build. (#4657)

7 years ago[tests] Add stress testing and reduce sgen normal testing time (#4653)
Ludovic Henry [Thu, 6 Apr 2017 18:49:04 +0000 (14:49 -0400)]
[tests] Add stress testing and reduce sgen normal testing time (#4653)

* [tests] Keep testing even if a test has failed

* [tests] Add stress testing and reduce sgen normal testing time

7 years ago[jit] Only free the unwind info inside a MonoTrampInfo if its owned by the structure.
Zoltan Varga [Thu, 6 Apr 2017 17:21:38 +0000 (13:21 -0400)]
[jit] Only free the unwind info inside a MonoTrampInfo if its owned by the structure.

7 years ago[tools] Remove old msbuild experiment
Alexander Köplinger [Thu, 6 Apr 2017 00:25:35 +0000 (02:25 +0200)]
[tools] Remove old msbuild experiment

This is just confusing now that we have the real thing.

7 years ago[runtime] Free leaked variable. (#4643)
Rolf Bjarne Kvinge [Thu, 6 Apr 2017 03:06:58 +0000 (05:06 +0200)]
[runtime] Free leaked variable. (#4643)

7 years ago[aot] Print JIT failures without having to pass an additional option. (#4648)
Zoltan Varga [Thu, 6 Apr 2017 03:06:47 +0000 (23:06 -0400)]
[aot] Print JIT failures without having to pass an additional option. (#4648)

7 years agoMerge pull request #4612 from kumpera/android-changes-part2
Rodrigo Kumpera [Wed, 5 Apr 2017 23:59:08 +0000 (16:59 -0700)]
Merge pull request #4612 from kumpera/android-changes-part2

Fix Android compilation and some tests

7 years ago[tests] Rework how we AOT compile tests + General cleanup of make targets (#4639)
Ludovic Henry [Wed, 5 Apr 2017 23:54:49 +0000 (19:54 -0400)]
[tests] Rework how we AOT compile tests + General cleanup of make targets (#4639)

7 years ago[runtime] Don't return the modules for the current process when pid != getpid ().
Rodrigo Kumpera [Wed, 5 Apr 2017 21:17:37 +0000 (14:17 -0700)]
[runtime] Don't return the modules for the current process when pid != getpid ().

7 years ago[System] Disable test that is too unreliable.
Rodrigo Kumpera [Wed, 5 Apr 2017 21:16:39 +0000 (14:16 -0700)]
[System] Disable test that is too unreliable.

7 years agoImprove test assert.
Rodrigo Kumpera [Mon, 20 Mar 2017 23:49:25 +0000 (16:49 -0700)]
Improve test assert.

7 years ago[System] Disable a few tests that don't work on Android.
Rodrigo Kumpera [Mon, 20 Mar 2017 22:01:30 +0000 (15:01 -0700)]
[System] Disable a few tests that don't work on Android.

7 years ago[System] Disable test that doesn't work on Android.
Rodrigo Kumpera [Thu, 16 Mar 2017 23:04:35 +0000 (16:04 -0700)]
[System] Disable test that doesn't work on Android.

7 years ago[io-layer] Don't RC std handles or the current process on every lookup.
Rodrigo Kumpera [Thu, 16 Mar 2017 22:58:11 +0000 (15:58 -0700)]
[io-layer] Don't RC std handles or the current process on every lookup.

Caller don't expect those lookups to be RC'd so they don't compensate. This leads to unbound growth of their ref count, which eventually overflows.

7 years ago[runtime] When looking up the process name, don't bail out if you can't load its...
Rodrigo Kumpera [Thu, 16 Mar 2017 18:30:43 +0000 (11:30 -0700)]
[runtime] When looking up the process name, don't bail out if you can't load its modules.

Loading modules for other processes can fail under some linux sandboxing rules but that doesn't mean
we should not be able to compute the process name. So when module == NULL, we make module loading non-fatal.

7 years ago[runtime] Improve tracing of process name lookup functions.
Rodrigo Kumpera [Thu, 16 Mar 2017 18:23:20 +0000 (11:23 -0700)]
[runtime] Improve tracing of process name lookup functions.

7 years ago[runtime] Fix compilation under Android
Rodrigo Kumpera [Thu, 16 Mar 2017 18:21:28 +0000 (11:21 -0700)]
[runtime] Fix compilation under Android

7 years ago[jit] Fix a leak in the trampoline info registration code. (#4646)
Zoltan Varga [Wed, 5 Apr 2017 20:23:15 +0000 (16:23 -0400)]
[jit] Fix a leak in the trampoline info registration code. (#4646)

7 years ago[interp] testcase for stack overflow on tail recursion opt
Bernhard Urban [Wed, 5 Apr 2017 16:13:10 +0000 (18:13 +0200)]
[interp] testcase for stack overflow on tail recursion opt

inspired by

./mcs/mcs/assign.cs:
SimpleAssign:CheckEqualAssign ()

7 years ago[interp] fix stack overflow on tail recursion
Bernhard Urban [Tue, 4 Apr 2017 09:16:27 +0000 (11:16 +0200)]
[interp] fix stack overflow on tail recursion

7 years ago[interp] fix stack alloc size
Bernhard Urban [Tue, 4 Apr 2017 09:16:27 +0000 (11:16 +0200)]
[interp] fix stack alloc size

7 years ago[msvc] Update csproj files (#4645)
monojenkins [Wed, 5 Apr 2017 16:42:25 +0000 (18:42 +0200)]
[msvc] Update csproj files (#4645)

7 years ago[System.Data] Fix Azure SQL specific issues (ProviderTests) (#4622)
Egor Bogatov [Wed, 5 Apr 2017 13:12:21 +0000 (16:12 +0300)]
[System.Data] Fix Azure SQL specific issues (ProviderTests) (#4622)

* [System.Data] Fix Azure SQL specific issues (ProviderTests)

* [System.Data] ChangeDatabase - Azure specific test

* [System.Data] SqlConnectionTest: use Assert.Throws instead

7 years ago[Facades] Add forwarder for DbDataReaderExtensions
Marek Safar [Wed, 5 Apr 2017 08:03:02 +0000 (10:03 +0200)]
[Facades] Add forwarder for DbDataReaderExtensions

7 years ago[msvc] Update csproj files
monojenkins [Tue, 4 Apr 2017 16:25:38 +0000 (16:25 +0000)]
[msvc] Update csproj files

7 years ago[tests] Fix the mcs-compileall target in runtime/ (#4637)
Alexander Köplinger [Wed, 5 Apr 2017 01:34:23 +0000 (03:34 +0200)]
[tests] Fix the mcs-compileall target in runtime/ (#4637)

It is used as the "verify" step on Jenkins/Wrench and I noticed
it didn't run recently.

Looks like it was broken a while ago by 695e8f53ae7d2139.
Moving the verifiable_files variable at the top is wrong since
the $$profile variable is only defined inside the for loop and
so we'd get an empty list.

When that was fixed it still didn't work as piping to `echo`
doesn't work. Replaced it with a Makefile solution instead.

7 years agoMerge pull request #4630 from BrzVlad/feature-valloc-limit
Vlad Brezae [Tue, 4 Apr 2017 23:52:03 +0000 (02:52 +0300)]
Merge pull request #4630 from BrzVlad/feature-valloc-limit

[sgen] OOM testing

7 years ago[runtime] Add arch size InterlockedAdd
Vlad Brezae [Mon, 3 Apr 2017 21:30:45 +0000 (00:30 +0300)]
[runtime] Add arch size InterlockedAdd

7 years ago[sgen] Add old forgotten oom tests to sgen oom suite
Vlad Brezae [Fri, 31 Mar 2017 11:51:30 +0000 (14:51 +0300)]
[sgen] Add old forgotten oom tests to sgen oom suite

7 years ago[sgen] Add oom testing suite
Vlad Brezae [Fri, 31 Mar 2017 11:48:33 +0000 (14:48 +0300)]
[sgen] Add oom testing suite

7 years ago[sgen] Don't pass gc options to the test-runner
Vlad Brezae [Fri, 31 Mar 2017 14:40:12 +0000 (17:40 +0300)]
[sgen] Don't pass gc options to the test-runner

Also remove some plain configurations (in the tests we should explicitly select the major)

7 years agoMerge pull request #4618 from BrzVlad/feature-par-nrs
Vlad Brezae [Tue, 4 Apr 2017 22:13:00 +0000 (01:13 +0300)]
Merge pull request #4618 from BrzVlad/feature-par-nrs

[sgen] Parallel nursery collections

7 years ago[appletls]: Make CFObject.dlsym() private and fix CFBoolean. (#4640)
Martin Baulig [Tue, 4 Apr 2017 18:28:17 +0000 (14:28 -0400)]
[appletls]: Make CFObject.dlsym() private and fix CFBoolean. (#4640)

This fixes a native crash when attempting to use appletls.

7 years ago[sgen] Split up concurrent sweep from worker logic
Vlad Brezae [Wed, 29 Mar 2017 11:17:02 +0000 (14:17 +0300)]
[sgen] Split up concurrent sweep from worker logic

While this was ok because workers and sweep could not run at the same time, this is no longer the case with parallel nursery collections. In the future, if many threads will be required for different types of jobs, we can consider running them on same native thread, but the jobs will still need to have appropriate contexts (the SgenThreadPool they belong to).

7 years ago[sgen] Increase gray stack section size
Vlad Brezae [Tue, 28 Mar 2017 21:12:02 +0000 (00:12 +0300)]
[sgen] Increase gray stack section size

Stealing a gray section is relatively expensive since it requires locking. We want to avoid repeated stealing, since only one gray queue section is stolen at a time (in the case of the parallel collector).

7 years ago[sgen] Increase parallelization of minors
Vlad Brezae [Fri, 3 Mar 2017 11:54:14 +0000 (13:54 +0200)]
[sgen] Increase parallelization of minors

7 years ago[sgen] Parallel nursery collections
Vlad Brezae [Fri, 3 Mar 2017 10:38:15 +0000 (12:38 +0200)]
[sgen] Parallel nursery collections

Scans the card table and the roots on the workers, including draining the stack.

7 years agoFix mono_marshal_alloc to accept gsize instead of gulong(unsigned long) (#4623)
Michael DeRoy [Tue, 4 Apr 2017 12:20:13 +0000 (08:20 -0400)]
Fix mono_marshal_alloc to accept gsize instead of gulong(unsigned long) (#4623)

* Fix mono_marshal_alloc to accept gsize instead of platform dependent unsigned long

* fix header

7 years ago[System.Core] Linker friendly test update
Marek Safar [Tue, 4 Apr 2017 08:50:56 +0000 (10:50 +0200)]
[System.Core] Linker friendly test update

7 years ago[Facades] Fixes System.Threading.Overlapped
Marek Safar [Tue, 4 Apr 2017 08:04:48 +0000 (10:04 +0200)]
[Facades] Fixes System.Threading.Overlapped

7 years ago[System.Core] Remove duplicate files
Marek Safar [Tue, 4 Apr 2017 07:40:16 +0000 (09:40 +0200)]
[System.Core] Remove duplicate files

7 years agoBump cecil
Marek Safar [Tue, 4 Apr 2017 07:12:51 +0000 (09:12 +0200)]
Bump cecil

7 years ago[corlib] Port more of corert array
Marek Safar [Wed, 29 Mar 2017 13:43:32 +0000 (15:43 +0200)]
[corlib] Port more of corert array

7 years ago[llvm] Add sign extensions for the index register used during bounds checks and array...
Zoltan Varga [Mon, 3 Apr 2017 21:23:26 +0000 (17:23 -0400)]
[llvm] Add sign extensions for the index register used during bounds checks and array address calculations. (#4636)

7 years agoMerge pull request #4635 from xmcclure/5.3-bump
Andi McClure [Mon, 3 Apr 2017 19:21:51 +0000 (15:21 -0400)]
Merge pull request #4635 from xmcclure/5.3-bump

Bump master to 5.3 due to creation of 2017-04 branch

7 years ago[jit] Fix a regression caused by 399f6e2425d5fdf73c4f956e9e906613b55968d0. Avoid...
Zoltan Varga [Mon, 3 Apr 2017 19:01:28 +0000 (15:01 -0400)]
[jit] Fix a regression caused by 399f6e2425d5fdf73c4f956e9e906613b55968d0. Avoid a crash if MONO_VERBOS_METHOD is used.

7 years agoBump to 5.3 due to creation of 2017-04 branch
Andi McClure [Mon, 3 Apr 2017 17:18:02 +0000 (13:18 -0400)]
Bump to 5.3 due to creation of 2017-04 branch

7 years ago[jit] Fix the casting between arrays with bounds and vectors even for special cased...
Zoltan Varga [Mon, 3 Apr 2017 16:22:58 +0000 (12:22 -0400)]
[jit] Fix the casting between arrays with bounds and vectors even for special cased types like object[]. Fixes #54212. (#4633)

7 years agoCorrectly detect relative Uri in package parts (#3630)
Francois Botha [Mon, 3 Apr 2017 14:48:34 +0000 (16:48 +0200)]
Correctly detect relative Uri in package parts (#3630)

7 years ago[runtime] Default Interface Method support (#4625)
Zoltan Varga [Mon, 3 Apr 2017 14:42:07 +0000 (10:42 -0400)]
[runtime] Default Interface Method support (#4625)

* [runtime] Add support for the simplest case of default interfaces, where the default method is used.

* [runtime] Implement overriding of default interface methods in interfaces.

* [jit] Fix gshared support for default interface methods, they require an mrgctx since the this argument doesn't point to the implementing class, not the interface.

7 years agoMerge pull request #4628 from xmcclure/orbis-profile
Andi McClure [Fri, 31 Mar 2017 20:14:47 +0000 (16:14 -0400)]
Merge pull request #4628 from xmcclure/orbis-profile

Platform support fixes

7 years ago[jit] Fix the ppc build.
Zoltan Varga [Fri, 31 Mar 2017 19:56:21 +0000 (15:56 -0400)]
[jit] Fix the ppc build.

7 years agoMake monolite profile directory versioned (#4631)
Alexander Köplinger [Fri, 31 Mar 2017 17:51:10 +0000 (19:51 +0200)]
Make monolite profile directory versioned (#4631)

If you're building with monolite currently the build system
checks for the existence of mcs/class/lib/monolite and just
uses it in that case.

It becomes a problem when bumping corlib version since if you
pull the update and try to build it'll use the old monolite
and you'll hit the "corlib version not in sync" error.

By making the monolite directory include the version this can
be avoided and everything works out of the box.

Also removed the confusing "You need Mono version 4.8 or better"
message since we actually require a newer version in
basic-profile-check.cs now and keeping them in sync is error prone.

7 years ago[msvc] Update csproj files (#4632)
monojenkins [Fri, 31 Mar 2017 17:50:48 +0000 (19:50 +0200)]
[msvc] Update csproj files (#4632)

7 years agoStyle fixes for PR feedback
Andi McClure [Fri, 31 Mar 2017 15:53:53 +0000 (11:53 -0400)]
Style fixes for PR feedback

7 years agochange icall to use gsize as well
Michael DeRoy [Thu, 30 Mar 2017 18:23:50 +0000 (14:23 -0400)]
change icall to use gsize as well

7 years ago[sgen] Add debug option for valloc limit
Vlad Brezae [Thu, 30 Mar 2017 21:01:16 +0000 (00:01 +0300)]
[sgen] Add debug option for valloc limit

This allows us to stress test OOM inside sgen (and potentially other areas).

7 years ago[System] Fixes build
Marek Safar [Fri, 31 Mar 2017 11:31:12 +0000 (13:31 +0200)]
[System] Fixes build

7 years agoFix Windows build
Alexander Köplinger [Fri, 31 Mar 2017 00:35:19 +0000 (02:35 +0200)]
Fix Windows build

7 years ago[msvc] Update csproj files (#4624)
monojenkins [Fri, 31 Mar 2017 00:03:41 +0000 (02:03 +0200)]
[msvc] Update csproj files (#4624)

7 years agoMerge pull request #4621 from alexanderkyte/strdup_env
Alexander Kyte [Thu, 30 Mar 2017 22:17:29 +0000 (18:17 -0400)]
Merge pull request #4621 from alexanderkyte/strdup_env

[runtime] Switch getenv to use heap memory

7 years agoAdd System.Security.dll to orbis profile
Andi McClure [Thu, 30 Mar 2017 21:35:12 +0000 (17:35 -0400)]
Add System.Security.dll to orbis profile

7 years agoMore platform support fixes
Andi McClure [Thu, 30 Mar 2017 15:57:49 +0000 (11:57 -0400)]
More platform support fixes

- Support platforms without mkdtemp
- Fix compile for console-null.c

7 years agoCombined cherrypick of changes between mono-4.8.0-branch and orbis-branch-30
Andi McClure [Mon, 20 Mar 2017 21:25:18 +0000 (17:25 -0400)]
Combined cherrypick of changes between mono-4.8.0-branch and orbis-branch-30

ORBIS #ifdefs in BCL, exclude several files and assembly directories
from the orbis build, HAVE_LOCALTIME_R define in C.

7 years ago[sgen] Emit fast inline wbarrier instead of the wrapper one
Vlad Brezae [Mon, 20 Mar 2017 19:40:49 +0000 (15:40 -0400)]
[sgen] Emit fast inline wbarrier instead of the wrapper one

Which seems to be about 4 times slower than the inline one.

7 years ago[interp] basic filter clause support
Bernhard Urban [Thu, 30 Mar 2017 15:50:03 +0000 (11:50 -0400)]
[interp] basic filter clause support

7 years ago[runtime] Switch getenv to use heap memory
Alexander Kyte [Mon, 27 Mar 2017 06:18:43 +0000 (02:18 -0400)]
[runtime] Switch getenv to use heap memory

Getenv doesn't use heap memory, it uses static memory.
Mono's usage is consistent with a view of getenv memory contents
that are durable and can be stored and manipulated.

In a multithreaded context, getenv calls can race and corrupt
string buffers as they are read. In a single threaded context,
subsequent calls to getenv will lead to overwriting the memory
that pointers to previous calls point to.

In order to bring memory safety back, we duplicate memory and
manage it at each call-site.

Note: this changes the API semantics of g_getenv. This is necessary
because the locking around the getenv buffer is safest when confined to
the function in eglib.

7 years ago[System.Web] Implement HostingEnvironment.QueueBackgroundWorkItem
Mikayla Hutchinson [Wed, 29 Mar 2017 23:47:50 +0000 (19:47 -0400)]
[System.Web] Implement HostingEnvironment.QueueBackgroundWorkItem

From reference source.

This is required for the Azure Functions Host to run unmodified.

7 years agoBring in the new reference assemblies (#4619)
Alexander Köplinger [Thu, 30 Mar 2017 15:02:10 +0000 (17:02 +0200)]
Bring in the new reference assemblies (#4619)

This bumps the reference assemblies submodule so we can install
the new assemblies which are built from source.

7 years ago[runtime] Fix typo in icall name (#4616)
Alexander Kyte [Thu, 30 Mar 2017 12:39:05 +0000 (08:39 -0400)]
[runtime] Fix typo in icall name (#4616)

7 years agoAdd beginnings of mixed code execution support (#4613)
Zoltan Varga [Thu, 30 Mar 2017 11:32:44 +0000 (07:32 -0400)]
Add beginnings of mixed code execution support (#4613)

* [interp] Fix a few problems exposed by the iltests.exe test suite.

The ENDFINALLY opcode should empty the stack. The INITBLK opcode is two bytes.

* [interp] Store the MonoMethod->RuntimeMethod mapping in a separate hash in MonoJitDomainInfo instead of using MonoDomain.jit_code_hash, the latter contains MonoMethod->MonoJitInfo mappings. Also avoid holding the domain lock while creating the RuntimeMethod structure.

* [interp] Add a mono_jit_compile_method_jit_only () function which always compiles its argument using the JIT/AOT.

* [interp] Print a warning when --interpreter is used with a runtime compiled without ENABLE_INTERPRETER.

* [interp] Fix the size of the icall enter trampoline on amd64. Fix some formatting issues.

* [interp] Add support for calling JITted code from the interpreter. This uses the gsharedvt_out wrappers used by bitcode to reduce the number of possible calling conventions since all arguments and the return value are passed/returned by value. Not enabled yet.

* [interp] Add a --interp= argument which allows passing of options to the interpreter. Add a 'jit=' option which is used to control the set of types whose methods will be called by exiting the interpreter.

* [interp] Add tests for mixed mode execution.

* [interp] Add support for calling interpreter code from JITted code.

* [interp] add mixedmode target to CI

* Revert a debug change.

* [runtime] Fix the locking in the gsharedvt/interp wrapper creation functions.

* [interp] Implement support for interp->jit calls with more than 8 arguments.