Paolo Molaro [Thu, 11 Nov 2010 15:37:59 +0000 (16:37 +0100)]
Added the mprof-report manpage.
Paolo Molaro [Thu, 11 Nov 2010 14:56:33 +0000 (15:56 +0100)]
Added a proper define for the external zlib and check for sched_getcpu().
Paolo Molaro [Thu, 11 Nov 2010 13:34:06 +0000 (14:34 +0100)]
Log profiler: implemented the reverse reference feature in the heapshot report.
Zoltan Varga [Thu, 11 Nov 2010 12:02:48 +0000 (13:02 +0100)]
Remove one more compile-time dependency on sgen.
Marek Safar [Thu, 11 Nov 2010 11:57:11 +0000 (11:57 +0000)]
Synchronize event add/remove using CAS
Marek Safar [Wed, 10 Nov 2010 19:50:59 +0000 (19:50 +0000)]
Unwraped equality operators cannot use a user operator of different types
Zoltan Varga [Thu, 11 Nov 2010 11:53:01 +0000 (12:53 +0100)]
Define mono_gc_get_card_table () for boehm/null gc too, to reduce the number of sgen dependencies in mini/.
Atsushi Eno [Thu, 11 Nov 2010 08:48:41 +0000 (17:48 +0900)]
XamlMember.TypeConverter should return correct converter now.
Also adding usage of that member, but not perfectly working yet.
Disabled broken tests that depends on not-implemented XamlObjectWriter part.
Atsushi Eno [Thu, 11 Nov 2010 06:46:11 +0000 (15:46 +0900)]
When collection instance returned null, do not try to GetItems().
Atsushi Eno [Thu, 11 Nov 2010 03:24:30 +0000 (12:24 +0900)]
Remove old code (overwrite).
Atsushi Eno [Thu, 11 Nov 2010 03:19:44 +0000 (12:19 +0900)]
Remove extra copy lines.
Atsushi Eno [Thu, 11 Nov 2010 03:17:23 +0000 (12:17 +0900)]
Split XamlNode.cs to object-reader specific code and else.
Atsushi Eno [Thu, 11 Nov 2010 03:15:53 +0000 (12:15 +0900)]
Fix readonly collection check (should use IsWritePublic).
Atsushi Eno [Thu, 11 Nov 2010 03:14:04 +0000 (12:14 +0900)]
removed xml output code (mostly harmless but could break xml files).
Marek Habersack [Thu, 11 Nov 2010 00:57:20 +0000 (01:57 +0100)]
[corlib] Fix for bug #652807. Handle RegistryValueKind.QWord in Win32RegistryApi.{Get,Set}Value
Geoff Norton [Wed, 10 Nov 2010 19:30:48 +0000 (14:30 -0500)]
[OSX] Dont use nested functions to determine if we can use the system zlib
Rodrigo Kumpera [Wed, 10 Nov 2010 19:36:27 +0000 (17:36 -0200)]
Merge branch 'gc_oom'
Rodrigo Kumpera [Wed, 10 Nov 2010 19:34:25 +0000 (17:34 -0200)]
Assert if we OOM during major evacuation.
* sgen-marksweep.c (major_copy_or_mark_object): Until we
figure out how to handle OOM while evacuating major objects
lets assert.
Rodrigo Kumpera [Wed, 10 Nov 2010 19:07:33 +0000 (17:07 -0200)]
Handle OOM on string intern icall.
Rodrigo Kumpera [Fri, 5 Nov 2010 22:01:53 +0000 (20:01 -0200)]
Add test for string interning OOM.
Rodrigo Kumpera [Fri, 5 Nov 2010 22:01:19 +0000 (20:01 -0200)]
Handle OOM with string interning.
Rodrigo Kumpera [Fri, 5 Nov 2010 21:59:37 +0000 (19:59 -0200)]
Handle OOM with string interning.
Rodrigo Kumpera [Fri, 5 Nov 2010 18:49:28 +0000 (16:49 -0200)]
Add tests for OOM handling.
Rodrigo Kumpera [Wed, 10 Nov 2010 18:56:15 +0000 (16:56 -0200)]
Make the parallel OOM handling code more resilient.
* sgen-marksweep.c (major_copy_or_mark_object): Use
a loop around CAS'ng on failed memory allocation to make
sure we have the right behavior in place.
Rodrigo Kumpera [Fri, 5 Nov 2010 18:39:14 +0000 (16:39 -0200)]
Implement oom handling for MS.
* sgen-gc.c (collect_nursery): If any object was pinned
after initial pinning, sort the queue so build_nursery_fragments
will see the aditional objects.
If pinning due to OOM happened ask for a major collection.
* sgen-gc.c (major_do_collection): Adjust the pin queue if
OOM happened. Here we have to clean discarded entries before
optimizing the queue or we might end with interior pointers
in the mix.
* sgen-gc.c (sgen_collect_major_no_lock): New function so
major collectors can trigger a collection. They can't
use public API since the gc lock is not meant to be reentrant.
* sgen-major-copy-object.h (copy_object_no_checks): Pin
the object if we can't promote it.
* sgen-marksweep.c (alloc_obj): Return null if we fail
to allocate a block for a given freelist size.
* sgen-marksweep.c (major_alloc_degraded): Ditto.
* sgen-marksweep.c (major_copy_or_mark_object): Handle OOM.
* sgen-marksweep.c (major_alloc_small_pinned_obj): If allocation
fails, try a major collection since this is memory requested by
the runtime and it's much harder to handle failure.
Rodrigo Kumpera [Fri, 5 Nov 2010 16:01:49 +0000 (14:01 -0200)]
Adjust major collection heuristics for OOM scenarios.
* sgen-gc.c (need_major_collection): Add a space_needed
parameter that is checked against the available space
quota.
* sgen-gc.c (alloc_degraded): Adjust call to
need_major_collection. Pass zero as space_needed since
it's won't help to do a major gc if we're already doing
degrated alloc and old gen is full.
* sgen-gc.c (alloc_large_inner): Pass size to
need_major_collection as shrinking major might be needed
to meet the space quota for.
Rodrigo Kumpera [Fri, 5 Nov 2010 15:38:44 +0000 (13:38 -0200)]
Add heap size accounting.
* sgen-gc.c: Simple accounting with no los/major reserve.
* sgen-los.c:
* sgen-marksweep.c: Account for allocation and release of
memory. Fail to allocate if above alloc quota.
Rodrigo Kumpera [Fri, 5 Nov 2010 15:30:03 +0000 (13:30 -0200)]
Handle failure on allocation functions.
* sgen-gc.c (mono_gc_alloc_obj_nolock):
* sgen-gc.c (mono_gc_alloc_obj):
* sgen-gc.c (mono_gc_alloc_vector):
* sgen-gc.c (mono_gc_alloc_array):
* sgen-gc.c (mono_gc_alloc_string):
* sgen-gc.c (mono_gc_alloc_pinned_obj): Handle
allocation failure.
Rodrigo Kumpera [Fri, 5 Nov 2010 13:28:38 +0000 (11:28 -0200)]
Add max-heap-size parameter to MONO_GC_PARAMS
* sgen-gc.c (mono_gc_base_init): Added new parameter.
Right now it is not used.
Rodrigo Kumpera [Thu, 28 Oct 2010 19:50:21 +0000 (17:50 -0200)]
Add boehm support for max-heap-size.
boehm-gc.c (mono_gc_base_init): Check MONO_GC_PARAMS environment
variable for max-heap-size.
Rodrigo Kumpera [Fri, 5 Nov 2010 13:26:08 +0000 (11:26 -0200)]
Move function from sgen to gc so boehm can use it too.
* sgen-gc.c (mono_sgen_parse_environment_string_extract_number):
Move this function to gc.c and rename.
Rodrigo Kumpera [Thu, 28 Oct 2010 14:47:52 +0000 (12:47 -0200)]
Handle OOM better.
* object.c (mono_print_unhandled_exception): We can't really
do a ToString () during an OOM.
Marek Habersack [Wed, 10 Nov 2010 18:17:29 +0000 (19:17 +0100)]
[wcf] .NET allows for service contract methods to be decorated only by Web{Get,Invoke}Attribute
Usually WCF requires that each service method is marked with the OperationContract attribute with the exception
of methods decorated with the Web{Get,Invoke}Attribute attributes which are defined in System.ServiceModel.Web.
This patch adds a simple way to extend the ContractDescriptionGenerator in order to provide this functionality
without circular dependency of System.ServiceModel on System.ServiceModel.Web. Several extenders can be registered
with the description generator and they will be invoked in the registration order until any of them returns 'true'.
Extenders are passed a reference to the OperationContract attribute with which the current method is decorated - if
the reference is null, the extender should create a default instance of the attribute so that the description generator
considers the method as one to be included in the contract description.
Marek Safar [Wed, 10 Nov 2010 17:52:43 +0000 (17:52 +0000)]
New test.
Marek Safar [Wed, 10 Nov 2010 17:49:01 +0000 (17:49 +0000)]
Implement dynamic mutator over dynamic indexer
Marek Safar [Wed, 10 Nov 2010 14:18:34 +0000 (14:18 +0000)]
More tweaks for nullable binary operation
Marek Safar [Wed, 10 Nov 2010 09:36:53 +0000 (09:36 +0000)]
False user-operator has priority over logical not user-operator
Zoltan Varga [Wed, 10 Nov 2010 17:23:25 +0000 (18:23 +0100)]
When single stepping from a exception throw site, single step to the catch site. Fixes #652590.
Andrew Jorgensen [Wed, 10 Nov 2010 17:18:04 +0000 (10:18 -0700)]
Remove compat-4.0 dir (nothing there anymore)
Jérémie Laval [Wed, 10 Nov 2010 16:31:29 +0000 (16:31 +0000)]
Simplify Parallel.For execution.
This commit remove the stealing path until a better solution for it is devised.
Zoltan Varga [Wed, 10 Nov 2010 13:43:27 +0000 (14:43 +0100)]
Allocate MonoInternalThread/MonoThread objects using mono_gc_alloc_pinned () when using sgen, since they will be pinned anyway.
Jérémie Laval [Wed, 10 Nov 2010 13:38:20 +0000 (13:38 +0000)]
Final performance improvement on ReaderWriterLockSlim
Zoltan Varga [Wed, 10 Nov 2010 12:55:15 +0000 (13:55 +0100)]
Fix the --enable-shared=no build.
Zoltan Varga [Wed, 10 Nov 2010 12:52:48 +0000 (13:52 +0100)]
Fix a warning.
Paolo Molaro [Wed, 10 Nov 2010 09:48:26 +0000 (10:48 +0100)]
Log profiler: fixed timeout heapshot mode and sorted heapshots.
* proflog.c: fixed heapshot timeout mode (setting the last time it was performed).
* decode.c: sort heap shot list according to the time sequence.
Paolo Molaro [Wed, 10 Nov 2010 09:38:17 +0000 (10:38 +0100)]
Log profiler: track thread names with the new profiler API.
Paolo Molaro [Wed, 10 Nov 2010 09:37:00 +0000 (10:37 +0100)]
Set the name of some runtime threads.
* gc.c: set the name of the finalizer thread.
* threadpool.c: set the name of the threadpool worker threads.
Paolo Molaro [Wed, 10 Nov 2010 09:34:05 +0000 (10:34 +0100)]
Profiler: added new API for notification of thread names.
* profiler-private.h, profiler.c, profiler.h: users can now get a callback
when the name of a thread gets set when MONO_PROFILE_THREADS is enabled.
* threads.c: notify profilers about thread name changes.
Paolo Molaro [Tue, 9 Nov 2010 13:57:39 +0000 (14:57 +0100)]
Log profiler: added support for GC handles tracking.
* proflog.c, proflog.h: added support for tracking GC handle creation
and destruction. Updated profiler version.
* decode.c: added support for GC handles in the GC report, including
backtraces.
Paolo Molaro [Tue, 9 Nov 2010 13:55:31 +0000 (14:55 +0100)]
Added profiler interface to track GC handles.
* profiler-private.h, profiler.c, profiler.h: new API to get notiffications
when GC handles are created or destroyed.
* gc.c: notify the profiler on GC handle creation/destruction.
Marek Safar [Wed, 10 Nov 2010 09:04:48 +0000 (09:04 +0000)]
Reorder logic in DMO type conversion
Marek Safar [Wed, 10 Nov 2010 09:00:51 +0000 (09:00 +0000)]
Fixes a logic error in filtering out operators like methods
Marek Safar [Tue, 9 Nov 2010 19:23:24 +0000 (19:23 +0000)]
Don't crash on liften null left/right shift
Marek Safar [Tue, 9 Nov 2010 18:59:05 +0000 (18:59 +0000)]
Logical binary operarions with dynamic arguments have to be unfolded
Zoltan Varga [Wed, 10 Nov 2010 08:24:34 +0000 (09:24 +0100)]
Add an AOT flag for aot images compiled with soft-debugging support, and avoid loading aot images without this flag when running with the soft debugger.
Ankit Jain [Wed, 10 Nov 2010 05:18:42 +0000 (10:48 +0530)]
[xbuild] Emit /platform: for *mcs
Emit /platform:foo for the *mcs. Based on patch from
technomage1972 <dellis1972@googlemail.com> .
Geoff Norton [Wed, 10 Nov 2010 04:39:11 +0000 (23:39 -0500)]
[OSX] Prevent an invalid write to mono_lmf_addr
mono_set_lmf () calls *(mono_get_lmf_addr ()) = lmf, but
mono_get_lmf_addr could potentially point to the address we just
g_free'd. Ensure that we clear the settings, before freeing the memory.
Geoff Norton [Wed, 10 Nov 2010 04:37:03 +0000 (23:37 -0500)]
[OSX] Disabled eglib tests build by default
On OSX our local system glib might be 32 or 64 bit, and we have
no simple way of testing wether it meeds the needs of the current
built, lets just disable tests by default for now
Alex Fort [Tue, 9 Nov 2010 20:22:49 +0000 (15:22 -0500)]
Add support for the CancelKeyPress event on Windows
Adds a call to the Win32 function SetConsoleCtrlHandler for Windows,
which adds the DoWindowsConsoleCancelEvent wrapper for
DoConsoleCancelEvent to the Ctrl-C handler when an event handler is
added, and removes the handler once all event handlers are removed.
Rodrigo Kumpera [Tue, 9 Nov 2010 20:04:32 +0000 (18:04 -0200)]
Add test for transitive constraint validation.
Rodrigo Kumpera [Tue, 9 Nov 2010 20:00:53 +0000 (18:00 -0200)]
Fix banshee breakage with trunk.
* verify.c (mono_generic_param_is_constraint_compatible):
Handle transitive constraints where one type can only satisfy
the constraints required by means of the other types it's
constainted to. For example:
Bar<K> where K : IFace
Foo<T, U> where T : U where U : IFace
Bar<T>
On the above example, T can only satisfy K constraint by means
of the constraints that U has.
Zoltan Varga [Tue, 9 Nov 2010 19:00:23 +0000 (20:00 +0100)]
Fix the previous change.
Zoltan Varga [Tue, 9 Nov 2010 18:52:33 +0000 (19:52 +0100)]
Speed up Thread.ManagedThreadId.
Andreia Gaita [Tue, 9 Nov 2010 17:48:28 +0000 (17:48 +0000)]
[Xml] Only call Close on the base Writer if it hasn't been closed yet. Fixes #651647
The serialization classes provided by the SL toolkit
(System.Runtime.Serialization.dll) don't like having Close called more than
once, so it seems that they don't check their own state and we have to do it
to avoid making repeated Close calls.
Atsushi Eno [Tue, 9 Nov 2010 16:11:44 +0000 (01:11 +0900)]
Add and/or altered a bunch of XamlXmlReader tests based on common reader tests.
Lots of tests are duplicate for the same XML inputs, so they are just removed.
Rodrigo Kumpera [Tue, 9 Nov 2010 15:10:08 +0000 (13:10 -0200)]
Fix handling of LastIndexOf and empty strings.
* String.cs (LastIndexOf): All all overloads to
be compatible with MS with empty strings.
* String.cs (LastIndexOfAny): Ditto.
* StringTest.cs: Add tests for the above.
Fixes #605340
Jérémie Laval [Tue, 9 Nov 2010 14:56:32 +0000 (14:56 +0000)]
Remove CurrentLockState in ReaderWriterLockSlim and reuse ThreadLockState instance more often.
Jérémie Laval [Tue, 9 Nov 2010 13:41:53 +0000 (13:41 +0000)]
Use ulong to represent element hashes internally allowing full width 32bits hashes. Replace SpinLock+ManualResetEvent based bucket resize with a simpler reader-writer lock. Revert from two layers storage to a bare array storage for buckets temporarily as it causes a weird concurrency bug.
Jérémie Laval [Mon, 8 Nov 2010 18:20:02 +0000 (18:20 +0000)]
Small condition fix in ReaderWriterLockSlim, avoid an extra loop pass.
Marek Habersack [Tue, 9 Nov 2010 14:14:52 +0000 (15:14 +0100)]
[wcf] AJAX GET requests work now.
HttpListenerManagerTable always looked up HttpListerManager instances using the full URI
while it should have disregarded the /operation?parameters part of the request in order
to match the service endpoint's base address.
Marek Safar [Tue, 9 Nov 2010 11:32:01 +0000 (11:32 +0000)]
Import declaring type base type when walking up the tree
Atsushi Eno [Tue, 9 Nov 2010 10:02:45 +0000 (19:02 +0900)]
Making XamlObjectReader tests for common basis to XamlXmlReader.
... as it turned out that their behaviors are almost the same.
Paolo Molaro [Tue, 9 Nov 2010 08:50:44 +0000 (09:50 +0100)]
Log profiler: osx/win32 portability fixes.
Zoltan Varga [Tue, 9 Nov 2010 08:27:25 +0000 (09:27 +0100)]
Add a workaround for a failed assert in the amd64 EH code which happens when running under the soft debugger.
Zoltan Varga [Tue, 9 Nov 2010 07:52:55 +0000 (08:52 +0100)]
Fix the DISABLE_REFLECTION_EMIT build. Fixes #652188.
Zoltan Varga [Tue, 9 Nov 2010 07:52:26 +0000 (08:52 +0100)]
Tidy up the configure output a bit.
Zoltan Varga [Tue, 9 Nov 2010 07:51:46 +0000 (08:51 +0100)]
Fix a warning.
Atsushi Eno [Tue, 9 Nov 2010 06:41:01 +0000 (15:41 +0900)]
Fix generic XamlTypeName output and GetType() to get some xml reader case working.
Marek Habersack [Tue, 9 Nov 2010 01:15:11 +0000 (02:15 +0100)]
[asp.net] Don't instantiate the hash algorithm used to encrypt resource URLs on each request if it can be reused.
The algorithm instance is kept in a thread-local variable.
Marek Habersack [Tue, 9 Nov 2010 00:40:59 +0000 (01:40 +0100)]
[asp.net] Optimize buffer reuse in HttpWriter.
When HttpWriter requests a byte buffer to send data to the output stream it now uses
a thread-local static buffer pre-allocated to at most 128KB (all threads' buffers should
not exceed 4MB). If a buffer exceeding the static buffer size is requested, a transient
one is allocated.
Marek Habersack [Tue, 9 Nov 2010 00:39:49 +0000 (01:39 +0100)]
[asp.net] A micro-optimization to not call String.Format too much in a loop.
Paolo Molaro [Mon, 8 Nov 2010 20:01:12 +0000 (21:01 +0100)]
Log profiler: disable zlib support on windows.
Someone on windows needs to look at this: it defines HAVE_ZLIB but
doesn't actually have it (missing zlib.h or not linking to -lz).
Zoltan Varga [Mon, 8 Nov 2010 20:02:08 +0000 (21:02 +0100)]
Revert "Avoid building the log profiler on windows, it has no libz."
This reverts commit
3d81ea258fb94930af86c1fd089c712ca8c1d096.
Zoltan Varga [Mon, 8 Nov 2010 20:00:33 +0000 (21:00 +0100)]
Avoid building the log profiler on windows, it has no libz.
Rodrigo Kumpera [Mon, 8 Nov 2010 19:40:10 +0000 (17:40 -0200)]
Add regression test for ##595044
Rodrigo Kumpera [Mon, 8 Nov 2010 19:34:38 +0000 (17:34 -0200)]
IL can't reference literal fields.
* verify.c (verifier_load_field): Fail if the
field is literal.
Fixes #595044
Marek Safar [Mon, 8 Nov 2010 19:28:37 +0000 (19:28 +0000)]
API compatibility work
Marek Safar [Mon, 8 Nov 2010 19:27:43 +0000 (19:27 +0000)]
Emit correctly EndInvoke parameters attributes and names
Marek Safar [Mon, 8 Nov 2010 16:36:53 +0000 (16:36 +0000)]
Fixed ambiguity for overload resolution between params and optional parameter of same type
Marek Safar [Mon, 8 Nov 2010 10:06:35 +0000 (10:06 +0000)]
Clean up event expression assigning error reporting
Marek Safar [Mon, 8 Nov 2010 10:04:02 +0000 (10:04 +0000)]
New test
Marek Safar [Mon, 8 Nov 2010 09:32:10 +0000 (09:32 +0000)]
[651547] Check definitely assigned struct this access correctly.
Marek Safar [Mon, 8 Nov 2010 09:28:23 +0000 (09:28 +0000)]
Removed platform attributes
Marek Safar [Sat, 6 Nov 2010 18:30:32 +0000 (18:30 +0000)]
Report error duplicate only when expected error has been found
Marek Safar [Sat, 6 Nov 2010 18:28:58 +0000 (18:28 +0000)]
Add missing default ctor call
Zoltan Varga [Mon, 8 Nov 2010 19:22:30 +0000 (20:22 +0100)]
Fix a typo in process_breakpoint_inner which doesn't break our tests for some reason.
Paolo Molaro [Mon, 8 Nov 2010 19:03:38 +0000 (20:03 +0100)]
Log profiler: better object tracking.
* decode.c: the --track option can now take more than one object address to track.
Added the --find option to automatically track objects of a given size and/or
type name. When backtrace and heapshot information is present, we can now, for
example, find when and where all the byte[] arrays bigger than a certain size
have been created and which other heap objects reference them.
Paolo Molaro [Mon, 8 Nov 2010 16:33:26 +0000 (17:33 +0100)]
Log profiler: more timer compatibility fixes.
Paolo Molaro [Mon, 8 Nov 2010 16:06:45 +0000 (17:06 +0100)]
Log profiler: track and display contended monitor wait times.
Paolo Molaro [Mon, 8 Nov 2010 15:30:56 +0000 (16:30 +0100)]
Log profiler: fill and display a few more data fields in the header.