mono.git
8 years ago[android] Fix Krait CPU bug on Android.
Rodrigo Kumpera [Mon, 16 Nov 2015 05:22:56 +0000 (00:22 -0500)]
[android] Fix Krait CPU bug on Android.

Krait cpus don't ignore thumb ITT state in ARM mode (it's unspecified CPU behavior).
The linux kernel then didn't bother resetting that state when landing an ARM signal handler.

The end result was that Krait cpus would skip the first few instructions of the signal handler
and things would explode in the most amazing possible ways.

Patch by Mark Probst <mark.probst@gmail.com>.

8 years ago[marshal] Don't raise an exception, just assert
Aleksey Kliger [Fri, 25 Mar 2016 17:29:03 +0000 (13:29 -0400)]
[marshal] Don't raise an exception, just assert

Don't raise deep in the marshalling code, just assert.

(Raising means we'd have to convert the code to use MonoError and then
thread it out through all of the marshalling code resulting in a lot of
code churn)

8 years ago[runtime] MonoError-ize mono_nullable_box
Aleksey Kliger [Thu, 10 Mar 2016 19:23:43 +0000 (14:23 -0500)]
[runtime] MonoError-ize mono_nullable_box

8 years ago[runtime] Make mono_value_box use MonoError
Aleksey Kliger [Thu, 10 Mar 2016 15:35:04 +0000 (10:35 -0500)]
[runtime] Make mono_value_box use MonoError

Mark it external only.  Runtime should use mono_value_box_checked.

8 years ago[threadpool-ms] MonoError-ize mono_threadpool_ms_enqueue_work_item
Aleksey Kliger [Wed, 23 Mar 2016 16:56:01 +0000 (12:56 -0400)]
[threadpool-ms] MonoError-ize mono_threadpool_ms_enqueue_work_item

Take a MonoError outarg; return boolean on success/failure.

8 years ago[threadpool-ms] MonoError-ize some not implemented icalls.
Aleksey Kliger [Wed, 23 Mar 2016 16:49:51 +0000 (12:49 -0400)]
[threadpool-ms] MonoError-ize some not implemented icalls.

1. ves_icall_System_Threading_ThreadPool_ReportThreadStatus
2. ves_icall_System_Threading_ThreadPool_PostQueuedCompletionStatus

8 years agoMerge pull request #2791 from lambdageek/dev/monoerror-cleanup-deadcode
Aleksey Kliger (λgeek) [Fri, 25 Mar 2016 15:33:37 +0000 (11:33 -0400)]
Merge pull request #2791 from lambdageek/dev/monoerror-cleanup-deadcode

[runtime] Remove dead code and don't throw in embedding API functions

8 years ago[sgen] Add option for enabling/disabling precleaning
Vlad Brezae [Tue, 8 Mar 2016 02:41:20 +0000 (04:41 +0200)]
[sgen] Add option for enabling/disabling precleaning

8 years ago[sgen] Preclean mod union entries before the finishing pause
Vlad Brezae [Tue, 19 Jan 2016 09:21:39 +0000 (11:21 +0200)]
[sgen] Preclean mod union entries before the finishing pause

When the concurrent mark ends, we have another concurrent phase where we scan the cardtable trying to clean as many cards as possible. The way we achieve this is by first copying all the mod union cards (for each block/los_obj) to a separate temporary card_table. When scanning we will only scan these cards. Therefore we will first preclean these cards in the actual mod_union card_tables, followed by a full memory barrier (which assures us that, when scanning, we will observe the changes that led to the corresponding card marks) and then by a normal mod_union scan, which can remark some of these cards, without any races with the preclean phase.

8 years ago[sgen] Move assert to the right place
Vlad Brezae [Tue, 8 Mar 2016 02:42:41 +0000 (04:42 +0200)]
[sgen] Move assert to the right place

8 years ago[runtime] Enclose define parameters in parentheses
Vlad Brezae [Mon, 7 Mar 2016 16:36:28 +0000 (18:36 +0200)]
[runtime] Enclose define parameters in parentheses

8 years ago[sgen] Add separate scan function for handling a single pointer entry
Vlad Brezae [Sun, 7 Feb 2016 23:08:24 +0000 (01:08 +0200)]
[sgen] Add separate scan function for handling a single pointer entry

This way we avoid duplicating cardtable marking code, making sure we have consistent code.

For example, when scanning los objects in the mod union scan step, we didn't check whether the object is cemented or not, leading to additional unnecessary global remsets for the next nursery collection.

8 years ago[sgen] Move scan vtype with the other object ops
Vlad Brezae [Mon, 25 Jan 2016 01:17:55 +0000 (03:17 +0200)]
[sgen] Move scan vtype with the other object ops

8 years ago[sgen] Simplify defines for object ops
Vlad Brezae [Mon, 25 Jan 2016 01:02:41 +0000 (03:02 +0200)]
[sgen] Simplify defines for object ops

8 years ago[sgen] Allow read only access on block list without taking GC_LOCK
Vlad Brezae [Fri, 22 Jan 2016 18:16:01 +0000 (20:16 +0200)]
[sgen] Allow read only access on block list without taking GC_LOCK

Still, block list should not be accessed while sweep is running.

8 years ago[sgen] Allow read only access of los object list without taking GC_LOCK
Vlad Brezae [Fri, 22 Jan 2016 16:13:49 +0000 (18:13 +0200)]
[sgen] Allow read only access of los object list without taking GC_LOCK

Still, object lists should not be accessed while sweep is running.

8 years ago[sgen] Extract the handle array code for reuse
Vlad Brezae [Fri, 22 Jan 2016 00:08:06 +0000 (02:08 +0200)]
[sgen] Extract the handle array code for reuse

We add a new data structure which contains a bucket of entries, exponentially increasing in sizes. The structure is customizable through a few callbacks.

Setting is_slot_set_func enables us to also lookup empty slots, instead of only adding entries at the end of the list.

Setting set_slot_func enables the use of a customized function for setting the slot. If this function is not set, the slots and array fields will be set directly, therefore the structure won't be thread safe.

8 years ago[sgen] Don't prefetch unused memory when scanning the card table
Vlad Brezae [Tue, 19 Jan 2016 17:43:04 +0000 (19:43 +0200)]
[sgen] Don't prefetch unused memory when scanning the card table

When doing the mod union scan, we use the block's cardtable (instead of the global one), which we also cannot prefetch, since that would mean dereferencing the block info.

8 years agoMerge pull request #2793 from radical/fix-mcs-args
Alexander Köplinger [Fri, 25 Mar 2016 00:05:23 +0000 (01:05 +0100)]
Merge pull request #2793 from radical/fix-mcs-args

[mcs] Accept and ignore command line args supported by csc that we don't

8 years ago[runtime] mark mono_domain_unload external only
Aleksey Kliger [Wed, 23 Mar 2016 21:13:16 +0000 (17:13 -0400)]
[runtime] mark mono_domain_unload external only

Runtime should use mono_domain_try_unload

8 years ago[runtime] Remove CHECK_MONOTYPE macro
Aleksey Kliger [Wed, 23 Mar 2016 21:02:04 +0000 (17:02 -0400)]
[runtime] Remove CHECK_MONOTYPE macro

It's dead code.

8 years ago[runtime] Delete mono_assert and mono_assert_not_reached
Aleksey Kliger [Wed, 23 Mar 2016 20:53:32 +0000 (16:53 -0400)]
[runtime] Delete mono_assert and mono_assert_not_reached

Runtime should use g_assert and g_assert_not_reached or set a MonoError,
as needed.

Also remove REAL_PRINT_REG dead macros from mini-x86.c and mini-amd64.c

8 years ago[runtime] Change mono_object_castclass_mbyref not to throw
Aleksey Kliger [Wed, 23 Mar 2016 20:21:52 +0000 (16:21 -0400)]
[runtime] Change mono_object_castclass_mbyref not to throw

Mark the function external only. (There are no uses inside the runtime).

Change behavior to return NULL if unable to cast, instead of throwing.

8 years agoMerge pull request #2790 from lambdageek/dev/monoerror-corlib-execeptions
Aleksey Kliger (λgeek) [Thu, 24 Mar 2016 23:19:49 +0000 (19:19 -0400)]
Merge pull request #2790 from lambdageek/dev/monoerror-corlib-execeptions

[MonoError] Helpers for some common corlib exceptions

8 years agoMake --aot=full able to emit executables on 64 bit Windows
Andi McClure [Thu, 24 Mar 2016 21:11:48 +0000 (14:11 -0700)]
Make --aot=full able to emit executables on 64 bit Windows

- COFF does not use .local or .size
- COFF does use .def to mark functions and .data to mark data
- The seh_handler functions should not be called on full aot builds (Zoltan says they are unnecessary in full aot, and they attempt to jit)

The executables do not yet run without crashing.

8 years agoSupport tool-prefix in mono/mini fullaotcheck
Andi McClure [Mon, 28 Mar 2016 21:30:56 +0000 (17:30 -0400)]
Support tool-prefix in mono/mini fullaotcheck

* Support MONO_FULLAOT_ADDITIONAL_ARGS env var for make fullaotcheck, appended to --aot parameters
* To support above, permit "blank" parameters (ie trailing commas on parameter list) to --aot=
* --aot tool-prefix parameter now supported for LD as well as AS

8 years agoFix debug Windows builds in MSVC 2015
Andi McClure [Mon, 28 Mar 2016 21:26:09 +0000 (17:26 -0400)]
Fix debug Windows builds in MSVC 2015

We were sometimes passing invalid input to isalnum(). On the debug version of MSVCRT this would result in an assert.

8 years ago[arm] Fix support for soft breakpoints.
Zoltan Varga [Thu, 24 Mar 2016 20:04:59 +0000 (20:04 +0000)]
[arm] Fix support for soft breakpoints.

8 years ago[mcs] Accept and ignore command line args supported by csc that we don't
Ankit Jain [Thu, 24 Mar 2016 19:21:58 +0000 (15:21 -0400)]
[mcs] Accept and ignore command line args supported by csc that we don't

support:

/analyzer
/appconfig
/baseaddress
/deterministic
/errorendlocation
/errorlog
/features
/link
/moduleassemblyname
/pathmap
/pdb
/preferreduilang
/publicsign
/reportanalyzer
/ruleset
/sqmsessionguid

8 years ago[runtime] Make the appdomain-unload.exe test more verbose.
Zoltan Varga [Thu, 24 Mar 2016 16:49:47 +0000 (12:49 -0400)]
[runtime] Make the appdomain-unload.exe test more verbose.

8 years ago[aot] Reenable the emission of line number info using GAS .file/.loc directives,...
Zoltan Varga [Thu, 24 Mar 2016 16:06:33 +0000 (12:06 -0400)]
[aot] Reenable the emission of line number info using GAS .file/.loc directives, recent versions of clang seems to support it.

8 years ago[jit] Fix the dwarf info structure when there is no line number table.
Zoltan Varga [Thu, 24 Mar 2016 15:45:56 +0000 (11:45 -0400)]
[jit] Fix the dwarf info structure when there is no line number table.

8 years ago[jit] Remove the 'appending' support from the dwarf writer, its no longer used.
Zoltan Varga [Thu, 24 Mar 2016 15:28:33 +0000 (11:28 -0400)]
[jit] Remove the 'appending' support from the dwarf writer, its no longer used.

8 years ago[jit] Get rid of the create_delegate_trampoline_data () helper function which only...
Zoltan Varga [Thu, 24 Mar 2016 01:01:05 +0000 (21:01 -0400)]
[jit] Get rid of the create_delegate_trampoline_data () helper function which only has one caller.

8 years agoMerge pull request #2768 from lambdageek/dev/monoerror-cominterop
Aleksey Kliger (λgeek) [Thu, 24 Mar 2016 15:19:42 +0000 (11:19 -0400)]
Merge pull request #2768 from lambdageek/dev/monoerror-cominterop

[com] MonoError-ize cominterop.c

8 years agoMerge pull request #2663 from esdrubal/islocal
Alexis Christoforides [Thu, 24 Mar 2016 14:45:48 +0000 (10:45 -0400)]
Merge pull request #2663 from esdrubal/islocal

[System] Fixes HttpListenerRequest.IsLocal.

8 years agoCreate xammac_net_4_5 variant of System.Runtime.Remoting
Chris Hamons [Wed, 23 Mar 2016 21:45:29 +0000 (16:45 -0500)]
Create xammac_net_4_5 variant of System.Runtime.Remoting

8 years agoTrigger a rebuild of Mono.Security
Alexander Köplinger [Thu, 24 Mar 2016 02:11:47 +0000 (03:11 +0100)]
Trigger a rebuild of Mono.Security

8 years ago[Mono.Security]: MonoTlsProvider.InvokeSystemCertificateValidator() now takes 'ref...
Martin Baulig [Wed, 23 Mar 2016 23:42:26 +0000 (19:42 -0400)]
[Mono.Security]: MonoTlsProvider.InvokeSystemCertificateValidator() now takes 'ref X509Chain'.

8 years ago[System]: Add private 'X500DistinguishedName' API to store the canonical encoding...
Martin Baulig [Tue, 22 Mar 2016 03:43:59 +0000 (23:43 -0400)]
[System]: Add private 'X500DistinguishedName' API to store the canonical encoding and use it for fast comparison.

8 years ago[System]: SystemCertificateValidator.CheckUsage(): lazily convert to X509Certificate2...
Martin Baulig [Wed, 16 Mar 2016 04:20:39 +0000 (00:20 -0400)]
[System]: SystemCertificateValidator.CheckUsage(): lazily convert to X509Certificate2 if needed.

8 years ago[System]: Make 'X509Certificate2' and 'X509Chain' lazily-initialized.
Martin Baulig [Tue, 15 Mar 2016 23:36:48 +0000 (19:36 -0400)]
[System]: Make 'X509Certificate2' and 'X509Chain' lazily-initialized.

Add new internal 'X509Certificate2Impl' and 'X509ChainImpl' classes similar to
'X509CertificateImpl' in corlib and only initialize them when actually needed.

8 years ago[corlib]: Cleanup the internal 'X509CertificateImpl' API.
Martin Baulig [Tue, 15 Mar 2016 23:33:11 +0000 (19:33 -0400)]
[corlib]: Cleanup the internal 'X509CertificateImpl' API.

8 years ago[ppdb] Disable the metadata verifier for ppdb tables for now. Fixes #39631.
Zoltan Varga [Wed, 23 Mar 2016 21:11:28 +0000 (17:11 -0400)]
[ppdb] Disable the metadata verifier for ppdb tables for now. Fixes #39631.

8 years ago[MonoError] Use mono_error_set_execution_engine helper
Aleksey Kliger [Wed, 23 Mar 2016 19:10:53 +0000 (15:10 -0400)]
[MonoError] Use mono_error_set_execution_engine helper

8 years ago[MonoError] Use mono_error_set_not_supported helper
Aleksey Kliger [Wed, 23 Mar 2016 19:11:16 +0000 (15:11 -0400)]
[MonoError] Use mono_error_set_not_supported helper

8 years ago[MonoError] Use mono_error_set_not_implemented helper
Aleksey Kliger [Wed, 23 Mar 2016 19:02:44 +0000 (15:02 -0400)]
[MonoError] Use mono_error_set_not_implemented helper

8 years ago[MonoError] add helpers for some corlib exceptions
Aleksey Kliger [Wed, 23 Mar 2016 18:56:34 +0000 (14:56 -0400)]
[MonoError] add helpers for some corlib exceptions

System.ExecutionEngineException
System.NotSupportedException
System.NotImplementedException

8 years ago[runtime] Make memory allocation for method headers consistent, stop leaking
Alexander Kyte [Mon, 21 Mar 2016 23:05:31 +0000 (19:05 -0400)]
[runtime] Make memory allocation for method headers consistent, stop leaking

8 years ago[man] Remove documentation for the nonexistent MONO_ENABLE_SHM environment variable.
Zoltan Varga [Wed, 23 Mar 2016 18:10:16 +0000 (14:10 -0400)]
[man] Remove documentation for the nonexistent MONO_ENABLE_SHM environment variable.

8 years agoMerge pull request #2784 from mhutch/msbuild-fixes
Alexander Köplinger [Wed, 23 Mar 2016 15:43:24 +0000 (16:43 +0100)]
Merge pull request #2784 from mhutch/msbuild-fixes

Fix regressions in Microsoft.Build.dll

8 years ago[cil-stringreplacer] Use Cecil as reference dependency
Marek Safar [Wed, 23 Mar 2016 14:44:25 +0000 (15:44 +0100)]
[cil-stringreplacer] Use Cecil as reference dependency

8 years ago[cil-stringreplacer] Update debug symbol
Marek Safar [Wed, 23 Mar 2016 12:08:40 +0000 (13:08 +0100)]
[cil-stringreplacer] Update debug symbol

8 years agoMerge pull request #2783 from alexanderkyte/strdup_memory_leaks
monojenkins [Tue, 22 Mar 2016 22:35:21 +0000 (22:35 +0000)]
Merge pull request #2783 from alexanderkyte/strdup_memory_leaks

[runtime] Fix memory leaks related to short-lived strings

8 years agoMerge pull request #2775 from lambdageek/dev/monoerror-reflection-icalls
monojenkins [Tue, 22 Mar 2016 22:35:16 +0000 (22:35 +0000)]
Merge pull request #2775 from lambdageek/dev/monoerror-reflection-icalls

[SRE] MonoError-ize some icalls

* Cleanup some memory that would leak on failure; improve a few error messages
* Add MonoError to `mono_reflection_call_is_assignable_to` and `fieldbuilder_to_mono_class_field`.
* Update several SRE icalls to follow the pattern:
  ```c
    void
    the_icall (args... )
    {
       MonoError error;
       (void) the_real_work_function (args..., &error);
       mono_error_set_pending_exception (&error);
    }

    static gboolean
    the_real_work_function (args..., MonoError *error)
    {
       ... /* return TRUE on success, FALSE and set error on failure */ ...
    }
  ```
  Do this to:
        1. `mono_reflection_register_with_runtime`
        2. `mono_reflection_setup_internal_class`
        3. `mono_reflection_create_internal_class`
        4. `mono_reflection_generic_class_initialize`
        5. `mono_reflection_event_builder_get_event_info`
        6. `mono_reflection_initialize_generic_parameter`
        7. `mono_reflection_create_dynamic_method`

8 years agoMerge pull request #2782 from madewokherd/process-sessionid
Alexander Köplinger [Tue, 22 Mar 2016 17:58:06 +0000 (18:58 +0100)]
Merge pull request #2782 from madewokherd/process-sessionid

[System.Diagnostics] Return dummy value from Process.SessionId.

8 years ago[System.Diagnostics] Return dummy value from Process.SessionId.
Vincent Povirk [Mon, 21 Mar 2016 21:50:56 +0000 (16:50 -0500)]
[System.Diagnostics] Return dummy value from Process.SessionId.

8 years ago[sgen] Switch the default GC bridge to the new mode.
Joao Matos [Tue, 22 Mar 2016 17:45:57 +0000 (17:45 +0000)]
[sgen] Switch the default GC bridge to the new mode.

8 years ago[runtime] Free leaked short-lived MonoType
Alexander Kyte [Mon, 21 Mar 2016 22:15:00 +0000 (18:15 -0400)]
[runtime] Free leaked short-lived MonoType

8 years ago[Microsoft.Build] Shut down single-use build manager
Mikayla Hutchinson [Tue, 22 Mar 2016 16:06:19 +0000 (12:06 -0400)]
[Microsoft.Build] Shut down single-use build manager

8 years agoMerge pull request #2764 from esdrubal/fileinfo_tostring
Marcos Henrich [Tue, 22 Mar 2016 14:41:18 +0000 (14:41 +0000)]
Merge pull request #2764 from esdrubal/fileinfo_tostring

[corlib] Fix FileInfo.ToString after MoveTo

8 years ago[mono-symbolicate] Use SeqPointInfo instead of PInvoking.
Marcos Henrich [Wed, 2 Mar 2016 10:33:55 +0000 (10:33 +0000)]
[mono-symbolicate] Use SeqPointInfo instead of PInvoking.

8 years ago[mono-symbolicate] Created SeqPointInfo.cs
Marcos Henrich [Wed, 2 Mar 2016 10:29:05 +0000 (10:29 +0000)]
[mono-symbolicate] Created SeqPointInfo.cs

SeqPointInfo is a c# implementation of the debug data decoding process
that is done natively by the runtime.

8 years ago[corlib] Removed unused icall
Marcos Henrich [Fri, 19 Feb 2016 15:41:51 +0000 (15:41 +0000)]
[corlib] Removed unused icall

icall StackFrame.GetILOffsetFromFile is no longer used by mono-symbolicate.

8 years ago[System.ServiceModel] Fixes reflection call to undefined method
Marcos Henrich [Mon, 14 Mar 2016 15:51:39 +0000 (15:51 +0000)]
[System.ServiceModel] Fixes reflection call to undefined method

This fixes an issue while using WCF on android.

Fixes #36080

8 years ago[System.ServiceModel] Test EndpointAddress10
Marcos Henrich [Mon, 14 Mar 2016 15:48:36 +0000 (15:48 +0000)]
[System.ServiceModel] Test EndpointAddress10

The issue only occurs in monodroid.

Covers #36080

8 years agoMerge pull request #2534 from mhutch/install-api-html
monojenkins [Tue, 22 Mar 2016 01:35:28 +0000 (01:35 +0000)]
Merge pull request #2534 from mhutch/install-api-html

Install mono-api-html

We install its counterpart mono-api-info already

8 years ago[runtime] Free cached_info tables on cleanup
Alexander Kyte [Mon, 21 Mar 2016 23:46:56 +0000 (19:46 -0400)]
[runtime] Free cached_info tables on cleanup

8 years ago[runtime] Prevent leaking inflated headers by marking them transient, only free in...
Alexander Kyte [Mon, 21 Mar 2016 21:28:25 +0000 (17:28 -0400)]
[runtime] Prevent leaking inflated headers by marking them transient, only free in one place.

8 years ago[runtime] Make mono_basic_block_split take the header it uses
Alexander Kyte [Mon, 21 Mar 2016 19:11:07 +0000 (15:11 -0400)]
[runtime] Make mono_basic_block_split take the header it uses

8 years agoInstall mono-api-html
mhutch [Thu, 28 Jan 2016 22:55:35 +0000 (17:55 -0500)]
Install mono-api-html

We install its counterpart mono-api-info already

8 years ago[Microsoft.Build] Set IsBackground on builder thread
mhutch [Mon, 22 Feb 2016 20:53:20 +0000 (15:53 -0500)]
[Microsoft.Build] Set IsBackground on builder thread

It should not prevent the process from terminating. Fixes
issue where the thread is not shut down if ProjectInstances
are built directly instead of via the build manager.

8 years ago[Microsoft.Build] Fix exception disposing BuildManager
mhutch [Mon, 22 Feb 2016 20:51:36 +0000 (15:51 -0500)]
[Microsoft.Build] Fix exception disposing BuildManager

8 years ago[runtime] Remove string memory leak related to basename
Alexander Kyte [Mon, 21 Mar 2016 21:52:04 +0000 (17:52 -0400)]
[runtime] Remove string memory leak related to basename

8 years ago[runtime] Fix reassignment over string-pointing var without freeing
Alexander Kyte [Mon, 21 Mar 2016 21:49:06 +0000 (17:49 -0400)]
[runtime] Fix reassignment over string-pointing var without freeing

8 years agoMerge pull request #2778 from xmcclure/checked-build-updates-2
Andi McClure [Mon, 21 Mar 2016 14:27:40 +0000 (10:27 -0400)]
Merge pull request #2778 from xmcclure/checked-build-updates-2

Fix patch merge error in PR#2753, was breaking checked build

8 years agoFix patch merge error in PR#2753, was breaking checked build
Andi McClure [Mon, 21 Mar 2016 14:24:13 +0000 (10:24 -0400)]
Fix patch merge error in PR#2753, was breaking checked build

8 years agoAdd note about acceptance-tests to top level README
Alexander Köplinger [Mon, 21 Mar 2016 13:28:25 +0000 (14:28 +0100)]
Add note about acceptance-tests to top level README

8 years agoFix "make dist"
Alexander Köplinger [Sun, 20 Mar 2016 19:20:39 +0000 (20:20 +0100)]
Fix "make dist"

8 years ago[gsharedvt] Add a test for #39528.
Zoltan Varga [Sat, 19 Mar 2016 22:19:00 +0000 (23:19 +0100)]
[gsharedvt] Add a test for #39528.

8 years ago[runtime] Remove some dead test code added by c736aba5c94c20e6faad6b736f8e3a834e26d95f.
Zoltan Varga [Sat, 19 Mar 2016 14:52:20 +0000 (15:52 +0100)]
[runtime] Remove some dead test code added by c736aba5c94c20e6faad6b736f8e3a834e26d95f.

8 years ago[runtime] Implement support for passing icall methods as delegates in pinvoke. Fixes...
Zoltan Varga [Sat, 19 Mar 2016 12:03:31 +0000 (13:03 +0100)]
[runtime] Implement support for passing icall methods as delegates in pinvoke. Fixes #39347.

8 years ago[runtime] Remove an mistaken assert. Fixes #39568.
Zoltan Varga [Sat, 19 Mar 2016 11:21:15 +0000 (12:21 +0100)]
[runtime] Remove an mistaken assert. Fixes #39568.

8 years ago[jit] Remove an mistaken assert. Fixes #39746.
Zoltan Varga [Sat, 19 Mar 2016 11:11:12 +0000 (12:11 +0100)]
[jit] Remove an mistaken assert. Fixes #39746.

8 years agoMerge pull request #2777 from xmcclure/win-makefile-aotcheck
monojenkins [Sat, 19 Mar 2016 01:30:17 +0000 (01:30 +0000)]
Merge pull request #2777 from xmcclure/win-makefile-aotcheck

Make `make fullaotcheck` in mono/mini runnable on Windows

Run with
MONO_EXECUTABLE=/path/to/msvc/mono.exe LIST_SEPARATOR=";"
This assumes you are running the test harness in Cygwin and you built mono with MSVC. Also, the test does not currently succeed.
Being able to run the test is a zeroth step toward making the test pass.

8 years ago[System.Net.Http] Make HttpClientTest.RequestUriAfterRedirect test more reliable
Alexander Köplinger [Sat, 19 Mar 2016 01:28:20 +0000 (02:28 +0100)]
[System.Net.Http] Make HttpClientTest.RequestUriAfterRedirect test more reliable

It was the only test in the class that required network access (for looking up xamarin.com in the redirect).
Replacing the redirect target with a second local HttpListener should be more resilient to network/DNS issues.

8 years agomono/mini make fullaotcheck can now be run on Windows
Andi McClure [Fri, 18 Mar 2016 22:24:41 +0000 (18:24 -0400)]
mono/mini make fullaotcheck can now be run on Windows

Test harness now uses the proper path separator and also now supports
MONO_EXECUTABLE if you built with MSVC.

8 years agoMerge pull request #2753 from xmcclure/checked-build-updates
monojenkins [Fri, 18 Mar 2016 22:00:34 +0000 (22:00 +0000)]
Merge pull request #2753 from xmcclure/checked-build-updates

Changes to "checked build" feature

Here are some changes to checked builds I made while trying to debug some coop gc problems. The changes made are:

- Replace the checked build configure flags with a single --enable-checked-build= flag
- Runtime environment variable required for checked build asserts to run
- Report the thread transition history for more kinds of asserts
- For the `mono_threads_reset_blocking` functions, add an assert that guarantees proper nesting

In addition to this, I have documented the checked build feature as implemented here, see my pull request for the website: https://github.com/mono/website/pull/187

Overall my goals with this patch were

- Make it easier to do rapid-fire testing with the checked builds (runtime switch, default-off)
- Make the checked build implementation more internally consistent (more uniform names etc)

Notice I do make the change that instead of checked build sub-features being disabled with a blacklist, you now must enable them with a whitelist. I think this is an improvement because it makes it easier to just casually keep a checked build around  (for one thing I would have the option to ship debug builds to users with the checked build modes included but dormant) but I could be talked out of it if this change turns out to be controversial. The only thing I feel strongly about is that if the configure flag is changed back to a blacklist the environment variable should switch to a blacklist also.

If we accept this change the CI bots will need to adopt the new configure flag and environment variable.

8 years agoMerge pull request #2746 from lambdageek/dev/monoerror-mono_reflection_create_runtime...
monojenkins [Fri, 18 Mar 2016 22:00:24 +0000 (22:00 +0000)]
Merge pull request #2746 from lambdageek/dev/monoerror-mono_reflection_create_runtime_class

[System.Reflection.Emit] MonoError in mono_reflection_create_runtime_class

Depends on #2745
Bubble MonoError up to `mono_reflection_create_runtime_class`.  Use `mono_error_set_pending_exception` instead of `mono_error_raise_exception` And try to release resources on the way out.

8 years ago[SRE] Refactor a few icalls
Aleksey Kliger [Tue, 15 Mar 2016 17:30:55 +0000 (10:30 -0700)]
[SRE] Refactor a few icalls

The icalls follow the pattern:
    void
    the_icall (args... )
    {
       MonoError error;
       (void) the_real_work_function (args..., &error);
       mono_error_set_pending_exception (&error);
    }

    static gboolean
    the_real_work_function (args..., MonoError *error)
    {
       ... /* return TRUE on success, FALSE and set error on failure */ ...
    }

Do this to:
1. mono_reflection_register_with_runtime
2. mono_reflection_setup_internal_class
3. mono_reflection_create_internal_class
4. mono_reflection_generic_class_initialize
5. mono_reflection_event_builder_get_event_info
6. mono_reflection_initialize_generic_parameter
7. mono_reflection_create_dynamic_method

8 years ago[SRE] Some cleanups in mono_method_body_get_object_checked
Aleksey Kliger [Thu, 10 Mar 2016 21:32:38 +0000 (16:32 -0500)]
[SRE] Some cleanups in mono_method_body_get_object_checked

Don't leak method header on failure.

8 years ago[SRE] MonoError for fieldbuilder_to_mono_class_field
Aleksey Kliger [Tue, 8 Mar 2016 19:39:15 +0000 (14:39 -0500)]
[SRE] MonoError for fieldbuilder_to_mono_class_field

8 years agoAdd mono_threads_reset_blocking nesting checks to gc checked mode
Andi McClure [Fri, 18 Mar 2016 19:18:38 +0000 (15:18 -0400)]
Add mono_threads_reset_blocking nesting checks to gc checked mode

8 years agoRename checked build assertion_fail to mono_fatal_with_history, use in more places
Andi McClure [Fri, 18 Mar 2016 20:07:14 +0000 (16:07 -0400)]
Rename checked build assertion_fail to mono_fatal_with_history, use in more places

8 years agoMerge pull request #2772 from WeiHeCN/master
monojenkins [Fri, 18 Mar 2016 18:15:24 +0000 (18:15 +0000)]
Merge pull request #2772 from WeiHeCN/master

Update mini-llvm.c

These header files are already included in mini-llvm-cpp.h.

8 years agoUpdate mini-llvm.c
WeiHeCN [Fri, 18 Mar 2016 03:40:41 +0000 (11:40 +0800)]
Update mini-llvm.c

8 years ago[reflection] MonoError for mono_reflection_call_is_assignable_to
Aleksey Kliger [Mon, 7 Mar 2016 21:24:24 +0000 (16:24 -0500)]
[reflection] MonoError for mono_reflection_call_is_assignable_to

8 years ago[SRE] MonoError for mono_reflection_create_runtime_class
Aleksey Kliger [Tue, 8 Mar 2016 22:52:18 +0000 (17:52 -0500)]
[SRE] MonoError for mono_reflection_create_runtime_class

1. Don't raise while holding locks.

2. Change remove_instantiations_of_and_ensure_contents (called via
  g_hash_table_foreach_remove) to populate a MonoError instead of
  throwing.  If there are multiple errors, we just stash the first one
  in user_data and clean up the rest.

3. Use mono_erro_set_pending_exception instead of
  mono_error_raise_exception since it's an icall.

8 years agoMerge pull request #2745 from lambdageek/dev/monoerror-sre-internals
monojenkins [Thu, 17 Mar 2016 21:35:31 +0000 (21:35 +0000)]
Merge pull request #2745 from lambdageek/dev/monoerror-sre-internals

[System.Reflection.Emit] Propagate MonoError through some more static functions

Some externally visible changes include:
* Bubble MonoError up to one more SRE icall: `System.Reflection.Emit.CustomAttributeBuilder.GetBlob()`
* `fix_partial_generic_class` and `ensure_generic_class_runtime_vtable` now expect their callers to set the class failure state which they do under slightly more circumstances now than previously (now: whenever there's an error set from the above functions; before: only when we had trouble initializing the generic type definition.)
* Previous API for `mono_reflection_bind_generic_parameters` didn't make it clear whether NULL was a valid return value or not.  Now when we return NULL we always set the `error` out-arg. So non-NULL is success and NULL is failure.

8 years ago[reflection] MonoError for mono_marshal_spec_from_builder
Aleksey Kliger [Tue, 8 Mar 2016 00:02:34 +0000 (19:02 -0500)]
[reflection] MonoError for mono_marshal_spec_from_builder