2004-02-02 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
index 19f05960d0d01a5e70217cd7016c94a34a741c1b..b10c39482168bf21496505279732ee199c710886 100644 (file)
+2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c threads.c: Make the finalizer thread a normal managed thread so
+       the finalizer code can use thread functionality.
+
+       * threads.c: Make some functions more robust.
+
+       * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
+
+       * metadata.h: Add new marshalling conventions.
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
+       stringbuilder marshalling. Fixes #53700.
+
+       * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
+
+       * reflection.c (mono_image_get_type_info): Save declarative security
+       info.
+
+       * reflection.c (mono_image_get_field_info): Handle uninitialized 
+       unmanaged fields as well.
+
+       * appdomain.c: Bump corlib version.
+
+2004-02-01  Martin Baulig  <martin@ximian.com>
+
+       * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
+       method type arguments.  
+
+2004-01-30  Duncan Mak  <duncan@ximian.com>
+
+       * marshal.h: Add prototype for
+       "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
+       and
+       "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
+       fix the build.
+
+2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
+       (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
+
+2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for
+       custom marshalling of valuetypes.
+
+       * marshal.c: Fix some warnings.
+
+2004-01-29  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
+       for generic method parameters.
+
+       * reflection.c (method_encode_methodspec): Write the uninflated
+       signature into the methodspec table.
+       (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
+       is always the uninflated method.
+       (reflection_methodbuilder_to_mono_method): Copy the generic
+       parameters from the MethodBuilder into `header->gen_params'.
+
+2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * class.c (mono_class_from_generic_parameter): Fix warning.
+
+2004-01-27  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_from_generic_parameter): Don't create
+       `klass->methods' here.  
+
+2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
+       extension since it does not work with libraries named lib<FOO>.dll.so.
+
+2004-01-25  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_inflate_generic_type): Added support for
+       MONO_TYPE_GENERICINST.
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Also
+       inflate methods on open constructed types.      
+
+2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * object.c: fire ProcessExit event in the root AppDomain after running
+       Main. Fixes bug #53299.
+
+Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * socket-io.c: include the new socket-wrappers.h header.
+       Use the wrappers instead of the unix socket functions to make the code
+       more clear.
+
+2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
+
+       * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
+       Fixes #22532.
+
+2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (mono_image_create_pefile): Handle the case when the
+       entry point is not a MethodBuilder.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
+       field to ReflectionMethod since it is not allways a builder.
+
+       * reflection.c (type_get_fully_qualified_name): New helper function to
+       return the fully qualified name of a type.
+
+       * reflection.c (encode_marshal_blob): Always emit the fully qualified
+       type name for custom marshallers.
+
+       * reflection.c (mono_marshal_spec_from_builder): Ditto.
+
+       * class.c (mono_class_setup_vtable): If a parent class already 
+       implements an interface, use the implementing methods from that class.
+       Fixes #53148.
+
+2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threadpool.c: just return instead of ExitThread to allow for thread
+       clean up earlier.
+
+2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
+       when closing resource modules.
+
+       * reflection.c (mono_image_create_pefile): Handle the case when the
+       entry point is not a MethodBuilder.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
+       field to ReflectionMethod since it is not allways a builder.
+
+2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * marshal.c (mono_marshal_get_managed_wrapper): 
+       mono_marshal_alloc takes native int so CONV_I
+       the arg for 64bits.
+
+2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (fixup_cattrs): New function to fixup the methoddef
+       tokens in the cattr table. Fixes #53108.
+
+2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * loader.c: don't trim ".dll" before looking up in the config file.
+       Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
+
+2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
+       Return the module which contains the resource as well.
+       (ves_icall_System_Reflection_Module_Close): New icall.
+
+       * appdomain.c: Bump corlib version number.
+
+       * image.c (mono_image_addref): New public function.
+
+       * assembly.c: Call mono_image_addref.
+
+       * reflection.c (mono_module_get_object): Increase reference count of 
+       the image.
+
+       * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
+       Fixes #22532.
+
+       * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
+       Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
+       proper exceptions on DllImport problems.
+
+Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, metadata.c: eliminate CSIZE macro.
+
+2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * icall.c: Added ves_icall_type_IsInstanceOf internal call.
+       * object.h: Added async_callback field in MonoAsyncResult.
+       * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
+       * verify.c: Added async_callback in MonoAsyncResult layout.
+
+2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (mono_reflection_get_custom_attrs): Add support
+       for Modules.
+
+2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
+       marshalling.
+       (mono_marshal_method_from_wrapper): Add null pointer check.
+
+2004-01-16  Martin Baulig  <martin@ximian.com>
+
+       * debug-mono-symfile.h: Set version number to 36 and reflect
+       latest symbol writer changes.
+
+2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
+       multi-dimensional arrays.
+       (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
+       (mono_class_from_mono_type): Use bounded_array_class_get.
+       
+       * class.c (mono_bounded_array_class_get): New function which takes
+       a 'bounded' bool argument to distinguish vectors from one dimensional
+       arrays.
+
+       * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
+       bounded_array_class_get if the array has bounds.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
+       Search modules loaded using AssemblyBuilder:AddModule as well.
+
+2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: increased corlib version.
+       * filewatcher.c: removed g_print.
+       * icall.c:
+       (get_property_info): only allocate what is actually requested.
+       (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
+
+2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Makefile.am: added filewatcher.[ch]
+       * filewatcher.[ch]: FileSystemWatcher runtime support.
+       * icall.c: added new FSW icalls.
+
+Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * string-icalls.c: fix stringbuilder regression as suggested by
+       Iain McCoy <iain@mccoy.id.au>.
+
+2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * process.c (process_read_stringtable_block): Recognize '007f' as
+       a language neutral stringtable block.
+
+2004-01-12  Patrik Torstensson
+
+       * object.h (MonoStringBuilder) : Changed layout to support our
+       new stringbuilder class.
+       * marshal.c: Change marshalling to support the new layout of 
+       string builder.
+       * appdomain.c: increased version number because new layout of
+       string builder.
+
+2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
+       assembly name as an string instead of an AssemblyName, since it is
+       easier to extract info from it.
+
+       * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
+       the culture subdirectories too. Fixes #52231.
+
+2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
+       It takes 2 new parameters with an optional name for the method to look
+       for and case ignoring info.
+
+       * threadpool.c: removed unused variable.
+
+2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
+       It takes 2 new parameters with an optional name for the property to look
+       for and case ignoring info.
+       Fixes bug #52753.
+
+2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
+       Fix #52451.
+
+2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c:
+       * assembly.c: escape the uri before passing it to g_filename_from_uri.
+       Fixes bug #52630.
+
+2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Add support for more than one unmanaged resource.
+
+       * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
+       in field->def_value, as done in all other cases.
+
+       * reflection.c (mono_reflection_get_custom_attrs): Add support for
+       TypeBuilders.
+
+       * reflection.c (mono_reflection_create_runtime_class): Remove 
+       errorneous assignment to klass->element_class, since it is already
+       done in mono_reflection_setup_internal_class.
+
+2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * gc.c: added missing LeaveCriticalSection.
+       * icall.c: indented a couple of lines.
+       * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
+       if we call EndInvoke inside a callback. Fixes bug #52601.
+
+2004-01-07  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug-debugger.h
+       (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
+
+2004-01-06  Miguel de Icaza  <miguel@ximian.com>
+
+       * appdomain.c: Use messages in NotImplementedException.
+
+       * exception.c (mono_get_exception_not_implemented): Now this takes
+       a message argument.
+
+       * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
+       exception instead of g_asserting an aborting when something is not
+       implemented.
+
+       Add some inline docs.
+
+2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h: Update after changes to object layout.
+
+       * reflection.c: Implement saving of unmanaged aka win32 resources.
+
+       * appdomain.c: Bump version number.
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
+       Handle missing domains gracefully.
+
+2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
+
+       * file-io.c : On Windows, there are much more invalid_path_chars.
+
+Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, object.c: prepare for GetType () speedup.
+
+2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
+
+       * profiler.c: workaround for --profile null reference exception on
+         cygwin. Patch by Patrik Torstensson.
+
+2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
+       make work for unaligned access.
+
+Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: small cleanup (class->fields [i] -> field).
+       * image.c: check address of metadata is valid.
+
+2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * assembly.h assembly.c (mono_assembly_loaded): New public function to
+       search the list of loaded assemblies.
+
+       * reflection.c (mono_reflection_type_from_name): Use 
+       mono_assembly_loaded instead of mono_image_loaded.
+
+       * reflection.c: Fix warnings.
+
+2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
+       is dynamic. This is needed since an assembly can contain both dynamic and
+       non-dynamic images.
+
+       * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
+       assembly->dynamic.
+
+       * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
+       to store modules loaded using AddModule.
+
+       * reflection.c (mono_image_fill_file_table): Generalize this so it works
+       on Modules.
+
+       * reflection.c (mono_image_fill_export_table_from_class): New helper function.
+
+       * reflection.c (mono_image_fill_export_table_from_module): New function to
+       fill out the EXPORTEDTYPES table from a module.
+
+       * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
+       into a separate function. Also handle loaded non-dynamic modules.
+
+       * reflection.c (mono_image_basic_init): Fix memory allocation.
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * assembly.c (mono_assembly_load_references): Make this public.
+
+2003-12-19  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_initialize_generic): Made this static, take
+       a `MonoGenericInst *' instead of a `MonoClass *'.
+       (mono_class_from_generic): Call mono_class_initialize_generic()
+       unless we're already initialized or being called from
+       do_mono_metadata_parse_generic_inst().
+
+       * class.h (MonoGenericInst): Added `initialized' and
+       `init_pending' flags.
+
+       * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
+       `mono_class_init (gklass)' or mono_class_initialize_generic()
+       here; set `generic_inst->init_pending' while parsing the
+       `type_argv'.
+
+2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * locales.c: include string.h for memxxx prototypes
+
+2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
+       constructor when accessing literal fields.
+
+2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * reflection.c (assembly_add_resource_manifest): New function to fill
+       the MANIFESTRESOURCE table.
+
+       * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
+
+       * reflection.h: Update to changes in class layout.
+
+       * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
+       Reenable call to mono_runtime_is_shutting_down ().
+
+       * appdomain.c (mono_runtime_is_shutting_down): New helper function to
+       determine if the runtime is shutting down.
+
+2003-12-16  Jackson Harper <jackson@ximian.com>
+
+       * icall.c: comment out call to mono_runtime_is_shutting_down to
+       fix build.
+       
+2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
+       (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
+
+2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * reflection.c: move definition of swap_with_size
+       to before its first call
+
+2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (mono_runtime_is_shutting_down): New public function.
+
+       * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
+       icall.
+
+       * object.c: Fix warnings.
+
+       * icall.c (ves_icall_Type_Get...): Only consider inherited static
+       members if FlattenHierarchy is set.
+
+       * reflection.c (mono_image_add_decl_security): New function to emit
+       declarative security.
+
+       * reflection.h reflection.c: Add support for declarative security.
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
+       
+2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       appdomain.c (MONO_CORLIB_VERSION): Bump version number.
+       
+       * appdomain.c verify.c: Moved corlib version checking into its own
+       function in appdomain.c since it needs to create vtables etc.
+
+2003-12-13  Patrik Torstensson <p@rxc.se>
+
+       * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
+       instead of unwrapped server.
+
+2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * verify.c (check_corlib): Fix field index.
+
+2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
+       GetGacPath icall.
+
+2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
+       ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
+       cope with sizeof(size_t) != sizeof(guint32).
+
+2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
+       in case of failure.
+
+2003-12-10  Mark Crichton <crichton@gimp.org>
+
+       * icall.c: removed the GetNonZeroBytes.  We now handle this case
+       in managed code.
+
+       * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
+
+Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
+       marked as deleted.
+
+2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * verify.c (check_corlib): Handle the case when the version field is 
+       initialized by a static constructor.
+
+2003-12-08  Patrik Torstensson  <p@rxc.se>
+
+    * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
+
+2003-12-08  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
+       a MonoReflectionGenericParameter, also take the parameter index
+       and name as arguments.
+       (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
+       (ves_icall_MonoGenericParam_initialize): New interncall.
+       (ves_icall_Type_make_byref_type): New interncall.
+
+       * reflection.h (MonoReflectionGenericParam): Derive from
+       MonoReflectionType, not just from MonoObject.  Added `refobj' and
+       `index' fields.
+
+       * reflection.c (mono_reflection_define_generic_parameter): Create
+       and return a new MonoReflectionGenericParam; don't initialize the
+       constraints here.
+       (mono_reflection_initialize_generic_parameter): New public method;
+       initializes the constraints and creates the `param->pklass'.
+
+2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h reflection.c: Use the new fields 'num_types', 
+       'num_fields' and 'num_methods' to track the number of types etc.
+
+       * verify.c (check_corlib): Check corlib version number.
+
+2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
+       function works on all methods.
+
+2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
+       * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
+       the custom_type_info flag of the transparent proxy.
+       * object.c: Added method mono_object_isinst_mbyref for casting mbyref
+       objects that supports IRemotingTypeInfo.
+       * object.h: Added custom_type_info field in transparent proxy.
+
+2003-12-06  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_create_from_generic): Removed.
+       (mono_class_from_generic): Check `ginst->klass' before doing
+       anything else.  This is important to fully support "recursive"
+       generic types.
+
+       * metadata.c (do_mono_metadata_parse_generic_inst): Create an
+       empty `generic_inst->klass' before doing anything else.
+
+2003-12-06  Dick Porter  <dick@ximian.com>
+
+       * verify.c: 
+       * object.h:
+       * icall.c:
+       * locales.c: Use C structs to access class fields.  Don't do a
+       conversion between MonoString and UChar because both are
+       platform-endian UTF-16.  Compare now takes startindex and count
+       parameters.  Add a char overload for IndexOf.  Speed up the
+       invariant string IndexOf.
+
+2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Makefile.am (monosn_LDADD): Fix parallel build.
+
+2003-12-04  Martin Baulig  <martin@ximian.com>
+
+       * icall.c
+       (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
+       (ves_icall_Type_make_array_type): New interncall.       
+
+2003-12-04  Martin Baulig  <martin@ximian.com>
+
+       * locales.c: also change it in the !HAVE_ICU case.
+
+2003-12-04  Dick Porter  <dick@ximian.com>
+
+       * icall.c:
+       * locales.c: construct_compareinfo is now in CompareInfo, not
+       CultureInfo.
+
+2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * image.c (mono_image_load_file_for_image): Cache loaded images in the
+       image->files array.
+
+       * image.c (load_class_name): Load class names from the EXPORTEDTYPES
+       table as well.
+
+       * assembly.c (mono_assembly_load_references): Only load references
+       once.
+
+       * class.c (mono_class_from_name): Avoid linear search of the 
+       EXPORTEDTYPE table.
+
+       * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
+
+2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * image.h (MonoImage): Add 'field_cache' field.
+
+       * loader.c (mono_field_from_token): Cache field lookups.
+       
+       * reflection.c (mono_module_get_object): Fix name property.
+
+       * icall.c (ves_icall_get_enum_info): Update after changes to 
+       mono_metadata_get_constant_index ().
+
+       * icall.c: Get rid of get_type_info icall, use a separate icall for
+       each type property to avoid needless memory allocations. Fixes #51514.
+
+       * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
+       to avoid needless binary searches.
+
+       * class.c (class_compute_field_layout): Move the initialization of
+       field->def_value to mono_class_vtable ().
+
+       * class.c (mono_class_layout_fields): Enable GC aware auto layout for
+       non-corlib types.
+
+       * object.c (mono_object_allocate): Make it inline.
+
+       * object.c (mono_object_allocate_spec): Make it inline.
+       
+2003-12-02  Dick Porter  <dick@ximian.com>
+
+       * locales.c (create_NumberFormat): NumberFormatInfo construction.
+       Patch by Mohammad DAMT (mdamt@cdl2000.com).
+
+2003-12-01  Dick Porter  <dick@ximian.com>
+
+       * threads.c: Fix signature and call in CreateMutex and
+       CreateEvent.
+
+2003-12-01  Dick Porter  <dick@ximian.com>
+
+       * icall.c: 
+       * locales.c: Implement string compares and searching
+
+       * object.h: Add extra Thread field
+
+2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (fixup_method): Add support for MonoCMethod.
+
+2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
+
+       * reflection.c (assembly_name_to_aname): Allow extra characters in
+       assembly names. Fixes #51468.
+
+2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exception.c (mono_exception_from_name_domain): New helper function.
+
+       * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
+       exception object in the correct domain.
+
+       * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
+       formatting + make a copy a the input data.
+
+       * loader.c (mono_get_method_from_token): Methods which contain
+       native code do not have entries in the ImplMap.
+
+       (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
+       Thanks to Gonzalo for spotting this.
+       
+       * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
+       patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
+
+       * assembly.h (mono_assembly_load_from): Split the second part of 
+       assembly loading into a new public function.
+
+       * exception.h (mono_get_exception_bad_image_format): New function.
+
+2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
+       Enumerate all modules inside a dynamic assembly. Fixes #51293.
+       
+       * icall.c: Add new icall for creating dynamic methods.
+
+       * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
+
+       * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
+
+       * reflection.c (mono_reflection_create_dynamic_method): New icall to
+       create a dynamic method.
+
+       * reflection.c (resolve_object): New helper function.
+
+       * reflection.c: Generalize ReflectionMethodBuilder and the functions
+       which manipulate it so they can also work on dynamic methods.
+
+       * reflection.c (reflection_method_builder_to_mono_method): Avoid 
+       creating the MonoReflectionMethodAux structure if it is not needed.
+       
+       * reflection.h verify.c: Update after changes to object layout.
+
+       * reflection.c (method_builder_encode_signature): Fix compilation on
+       gcc 2.95.x.
+
+2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * appdomain.h: Added support for context static fields. Added static_data
+         field to MonoAppContext and renamed thread_static_fields to a more
+         generic special_static_fields in MonoAppDomain, since it can now contain
+         context static fields.
+       * domain.c: Updated hashtable name.
+       * object.c: Replaced field_is_thread_static() for a more generic
+         field_is_special_static() which also checks for context static attribute.
+         In mono_class_vtable(), added support for static context fields.
+       * threads.c: Changed methods that manage thread static fields to more
+         generic methods so they can be reused both for thread and context static
+         data.
+       * threads.h: Declared some new methods.
+
+2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h: Update after changes to the managed types.
+
+       * reflection.c (encode_custom_modifiers): New helper function.
+
+       * reflection.c (method_encode_signature): Emit custom modifiers.
+
+       * reflection.c (field_encode_signature): Emit custom modifiers.
+
+2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
+
+       * icall.c (ves_icall_System_ValueType_Equals): New optimized 
+       implementation.
+
+       * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
+       icall.
+
+       * object.c (mono_field_get_value_object): New function.
+
+       * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
+       specific.
+
+2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
+       return a preallocated out-of-memory exception instance.
+
+       * object.c (out_of_memory): Use the new function.
+
+       * metadata.c (mono_metadata_parse_type): Handle the case when the byref
+       flag is before the custom modifiers. Fixes #49802.
+
+2003-11-16  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_is_open_constructed_type): Implemented the
+       MONO_TYPE_GENERICINST case.
+
+2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * assembly.c (mono_assembly_fill_assembly_name): New function to
+       fill out the MonoAssemblyName structure.
+       (mono_assembly_open): Use the new function.
+
+       * icall.c (fill_reflection_assembly_name): New helper function.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
+       new function.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
+
+2003-11-15  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_is_open_constructed_type): New public
+       function; checks whether a type is an open constructed type,
+       ie. whether it still contains type parameters.
+       (mono_class_inflate_generic_type): If we're a type parameter and
+       the inflated type is also a MONO_TYPE_(M)VAR, return the original
+       type.
+
+       * class.h (MonoGenericInst): Added `guint32 is_open'.
+
+       * loader.c (method_from_methodspec): Check whether we're an open
+       or closed constructed type and set `ginst->is_open'.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Check
+       whether we're an open or closed constructed type and set
+       `ginst->is_open'.
+       (mono_reflection_inflate_method_or_ctor): Don't inflate methods
+       from open constructed types.
+
+2003-11-15  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_bind_generic_parameters): If we're
+       a generic instance (instead of a generic type declaration) with
+       unbound generic parameters, bind them to our actual types.
+
+2003-11-14  Martin Baulig  <martin@ximian.com>
+
+       * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): If we're
+       an interface type, populate `res->interfaces' with instantiated
+       versions of all the interfaces we inherit.
+
+2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
+
+       * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
+       when MONO_PATH is set but doesn't contain the install dir.
+
+2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c:
+       (ves_icall_Type_GetInterfaces): don't return an interface twice when
+       it's also implemented in base classes. Fixes bug #50927.
+
+2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
+       if this method is called from a finalizer. Fixes #50913.
+
+2003-11-12  Miguel de Icaza  <miguel@ximian.com>
+
+       * threads.c: Implement VolatileRead/VolatileWrite
+
+       * icall.c: Add new icalls for VolatileRead/VolatileWrite
+
+2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
+       patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
+       2.95.3.
+
+       * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
+       from Peter Ross (pro@missioncriticalit.com).
+       
+2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * icall.c: Added internal call for System.Environment::GetMachineConfigPath
+
+2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * assembly.c (mono_assembly_load_references): Disable check because it
+       triggers on older corlibs which lots of people have.
+
+2003-11-12  Jackson Harper  <jackson@ximian.com>
+
+       * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
+       load corlib.dll if mscorlib.dll is not found.
+       * assembly.h: Remove corlib name define.
+       * class.c:
+       * domain.c:
+       * image.c: Change corlib name to mscorlib.
+       
+2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
+
+2003-11-11  Miguel de Icaza  <miguel@ximian.com>
+
+       * appdomain.h: Added loader_optimization here to sync with the C#
+       code, and add disallow_binding_redirects field.
+
+2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
+
+       * reflection.c (mono_image_build_metadata): Fix crash on modules
+       with no types.
+
+       * reflection.h (MonoMethodInfo): Track changes to the managed structure.
+
+       * icall.c (ves_icall_get_method_info): Return callingConvention as
+       well.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
+       namespaces from the EXPORTEDTYPE table as well.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
+       from all modules inside the assembly.
+       
+2003-11-11  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Make
+       this work for interfaces.
+
+2003-11-11  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
+
+2003-11-11  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
+       "MonoInflatedMethod" and "MonoInflatedCtor".
+
+2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (resolution_scope_from_image): Use the assembly table
+       from the manifest module, since other modules don't have it.
+
+       * debug-helpers.c (mono_type_full_name): New helper function.
+
+       * image.h (MonoAssembly): Change 'dynamic' to a boolean.
+
+       * image.c (mono_image_load_file_for_image): New public function which
+       is a replacement for the load_file_for_image in class.c.
+
+       * assembly.c (mono_assembly_load_module): A wrapper for the function
+       above which does assembly association and reference loading too.
+
+       * class.c (mono_class_from_name): Call mono_assembly_load_module.
+
+2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: not all of the attributes for the full assembly name
+       are required and the order doesn't matter. Fixes bug #50787.
+
+2003-11-10  Dick Porter  <dick@ximian.com>
+
+       * locales.c: Use platform-endian UTF16
+
+2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Emit FILE and EXPORTEDTYPE tables.
+       
+2003-11-10  Martin Baulig  <martin@ximian.com>
+
+       * metadata.c
+       (mono_metadata_load_generic_params): Make this actually work.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): If our
+       parent is a generic instance, pass all the `types' to it, no
+       matter whether it has the same number of type parameters or not.
+
+2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Emit FILE and EXPORTEDTYPE tables.
+
+       * assembly.c (mono_assembly_load_references): Move the image<->assembly
+       assignment code to this function so it gets called recursively for all
+       modules.
+
+       * image.c (load_modules): Remove the assembly assignment since it is
+       now done by mono_assembly_load_references.
+       
+       * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
+       Add 'module' argument.
+       (mono_module_get_types): New helper function.
+       (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
+
+2003-11-08  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_inflate_generic_method): Interface method
+       don't have a header.
+
+       * reflection.c (mono_image_get_methodspec_token): Take an
+       additional `MonoGenericInst *' argument instead of reading it from
+       the header; this is necessary to support interfaces.
+       (mono_image_create_token): Pass the `MonoGenericInst *' from the
+       MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
+       (inflated_method_get_object): Take an additional `MonoGenericInst *'
+       argument.
+
+       * reflection.h (MonoReflectionInflatedMethod): Added
+       `MonoGenericInst *ginst'.
+
+2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c (mono_domain_finalize): Fix compilation for no GC case.
+
+2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
+
+       * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
+
+2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c 
+       (reflection_methodbuilder_from_method_builder):
+       (reflection_methodbuilder_from_ctor_builder): New helper functions to 
+       initialize a ReflectionMethodBuilder structure.
+       (mono_image_get_methodbuilder_token):
+       (mono_image_get_ctorbuilder_token): New functions to emit memberref
+       tokens which point to types in another module inside the same assembly.
+
+       * reflection.c: Use the new helper functions.
+       
+       * reflection.c (mono_image_basic_init): Initialize basedir and culture.
+
+       * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
+       instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
+
+       * reflection.c (resolution_scope_from_image): Emit a moduleref if
+       neccesary.
+
+       * reflection.c (mono_image_build_metadata): Emit metadata only for the
+       current module. Emit the manifest only for the main module.
+
+       * reflection.c (mono_image_create_token): Add assertion when a 
+       memberref needs to be created.
+
+       * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
+
+       * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
+       larger buffer for the custom attribute blob. Fixes #50637.
+       
+2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threadpool.c: notify listener on async processing handles after
+       invoking the async callback. Thanks to Zoltan.
+
+2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
+       avoid code duplication.
+
+       * reflection.h (MonoDynamicImage): New type which is currently unused,
+       but will be used through the ref.emit code in place of 
+       MonoDynamicAssembly.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
+       object layout.
+
+       * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
+       a MonoDynamicImage instead of just a MonoImage.
+       
+       * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
+       icalls to ModuleBuilder but keep their semantics, so they will work
+       with moduleb->assemblyb. This will change later.
+       
+2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
+       object layout.
+
+       * reflection.c (mono_image_build_metadata): Avoid creation of a default
+       main module, since it is now done by the managed code.
+
+2003-11-03  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Set
+       `ginst->klass' here.
+       (method_encode_methodspec): Don't use the `ginst->generic_method's
+       klass if it's a generic instance, use `ginst->klass' in this case.
+
+2003-11-03  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_image_get_generic_method_param_info):
+       Removed, use mono_image_get_generic_param_info() instead.
+       (mono_image_get_type_info): Write the GenericParam table before
+       the Method table.  This is neccessary because in the GenericParam
+       table, type parameters of the class (ie. '!0' etc.) must come
+       before the ones from its generic methods (ie. '!!0' etc).
+
+2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
+
+2003-11-02  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (create_generic_typespec): Take a
+       `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
+       the generic parameters from it.
+
+2003-11-02  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (fieldref_encode_signature): Take a `MonoType *'
+       instead of a `MonoClassField *' since we just need the type.
+       (create_generic_typespec): New static function.  Creates a
+       TypeSpec token for a generic type declaration.
+       (mono_image_get_generic_field_token): New static function.
+       (mono_image_create_token): If we're a FieldBuilder in a generic
+       type declaration, call mono_image_get_generic_field_token() to get
+       the token.
+
+2003-11-02  Martin Baulig  <martin@ximian.com>
+
+       * reflection.h
+       (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
+       `MonoReflectionGenericInst *declaring_type' and
+       `MonoReflectionGenericInst *reflected_type' fields.
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
+       `MonoReflectionGenericInst *declaring_type' and a
+       `MonoReflectionGenericInst *reflected_type' argument instead of a
+       single `MonoReflectionGenericInst *type' one.  Set
+       `res->declaring_type' and `res->reflected_type' from them.
+       (mono_reflection_inflate_field): Likewise.      
+
+2003-11-02  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_setup_vtable): Don't store generic methods
+       in the vtable.  
+
+2003-11-02  Martin Baulig  <martin@ximian.com>
+
+       * reflection.h (MonoReflectionGenericInst): Added
+       `MonoReflectionType *declaring_type'.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Use
+       `if (tb->parent)' instead of `klass->parent'.
+
+2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
+
+       * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
+       with an empty ASSEMBLY table.
+
+       * reflection.c (mono_image_build_metadata): Avoid using the same loop
+       variable in the inner and outer loops.
+
+2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
+
+       * metadata.h (mono_metadata_make_token): Put parentheses around macro
+       argument.
+
+       * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
+       
+       * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
+       icalls. Instead, do everything in managed code. This is needed since
+       it is hard to restore the original domain etc. in unmanaged code in the
+       presence of undeniable exceptions.
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
+       New icalls to push and pop appdomain refs.
+
+2003-10-31  Martin Baulig  <martin@ximian.com>
+
+       * class.c (inflate_generic_type): Renamed to
+       mono_class_inflate_generic_type() and made it public.
+
+       * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
+       New interncall.
+
+       * loader.c (mono_field_from_memberref): Also set the retklass for
+       typespecs.
+
+       * fielder.c (mono_image_get_inflated_field_token): New static
+       method; creates a metadata token for an inflated field.
+       (mono_image_create_token, fixup_method): Added support for
+       "MonoInflatedField".
+       (fieldbuilder_to_mono_class_field): New static function.
+       (mono_reflection_inflate_field): New public function.
+
+       * reflection.h
+       (MonoReflectionGenericInst): Added `MonoArray *fields'.
+       (MonoReflectionInflatedField): New typedef.     
+
+2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
+       for Solaris and other platforms without s6_addr16
+
+2003-10-30  Martin Baulig  <martin@ximian.com>
+
+       * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
+       argument instead of two.
+       (mono_class_inflate_generic_signature): Likewise.
+       (inflate_generic_header): Likewise.
+       (mono_class_inflate_generic_method): Likewise.  In addition, if
+       `ginst->klass' is set, it becomes the new `method->klass'.
+
+       * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
+       field.
+
+       * reflection.c (encode_generic_method_sig): Write a 0xa as the
+       first byte. [FIXME]
+       (method_encode_methodspec): If we have generic parameters, create
+       a MethodSpec instead of a MethodRef.
+       (fixup_method): Added support for "MonoInflatedMethod" and
+       "MonoInflatedCtor".
+       (mono_image_create_token): Added support for "MonoInflatedMethod"
+       and "MonoInflatedCtor".
+       (inflated_method_get_object): New static function; returns a
+       managed "System.Reflection.MonoInflatedMethod" object.
+       (mono_reflection_bind_generic_method_parameters): Return a
+       `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
+       (mono_reflection_inflate_method_or_ctor): Likewise.
+       (mono_image_get_generic_method_param_info): Initialize unused
+       fields to zero.
+       (mono_image_get_generic_param_info): Likewise.
+
+       * reflection.h (MonoReflectionInflatedMethod): New public
+       typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
+       "S.R.MonoInflatedCtor" classes.
+
+       * loader.c (method_from_memberref): If we're a TypeSpec and it
+       resolves to a generic instance, inflate the method.
+
+2003-10-28  Dick Porter  <dick@ximian.com>
+
+       * object.c (mono_runtime_run_main): Convert command-line arguments
+       into utf8, falling back to the user's locale encoding to do so.
+
+2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
+
+       * loader.c (mono_get_method_from_token): Avoid looking up the icalls
+       at this time.
+
+       * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
+
+       * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
+       up icalls at method definition time. Partially fixes #33569.
+
+2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
+       marshalling of arrays. Fixes #50116.
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
+
+       * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
+       points to a vtable in the dying appdomain.
+
+       * appdomain.c (mono_domain_unload): Move the notification of OnUnload
+       listeners into unmanaged code inside the lock.
+
+       * object.c (mono_class_vtable): Turn off typed allocation in non-root
+       domains and add some comments.
+
+2003-10-25  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Added `MonoClass *klass' field.
+
+       * image.h (MonoImage): Added `GHashTable *typespec_cache'.
+
+       * metadata.c (mono_metadata_parse_generic_inst): Renamed to
+       `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
+       currently parsing.  Create the generic class and store it in
+       `generic_inst->klass' before parsing the type arguments.  This is
+       required to support "recursive" definitions; see mcs/tests/gen-23.cs
+       for an example.
+       (mono_type_create_from_typespec): Use a new `image->typespec_cache'
+       to support recursive typespec entries.
+
+       * class.c (mono_class_setup_parent): If our parent is a generic
+       instance, we may get called before it has its name set.
+       (mono_class_from_generic): Splitted into
+       mono_class_create_from_generic() and mono_class_initialize_generic().
+
+2003-10-25  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_Type_BindGenericParameters): Return a
+       `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
+       ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
+       ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
+
+       * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
+       (create_typespec): Likewise.
+       (mono_reflection_bind_generic_parameters): Return a
+       `MonoReflectionGenericInst *' instead of a `MonoClass *'.
+       (mono_reflection_inflate_method_or_ctor): New public function.
+
+       * reflection.h (MonoReflectionGenericInst): New typedef.        
+
+2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * object.c (mono_class_proxy_vtable): Run the whole vtable construction
+       inside the domain lock. Fixes #49993.
+       
+       * object.c (mono_class_vtable): When typed allocation is used, 
+       allocate vtables in the GC heap instead of in the mempool, since the
+       vtables contain GC descriptors which are used by the collector even
+       after the domain owning the mempool is unloaded.
+
+       * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
+
+       * domain.c (mono_domain_unload): Rename to mono_domain_free to better
+       reflect what it does. Also invalidate mempools instead of freeing
+       them if a define is set.
+
+       * appdomain.h (MonoAppDomainState): New enumeration to hold the state
+       of the appdomain.
+       
+       * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
+       hold the finalizable objects in this domain.
+
+       * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
+       appdomain.
+
+       * appdomain.c (mono_domain_set): New function to set the current
+       appdomain, but only if it is not being unloaded.
+
+       * appdomain.c threads.c threadpool.c object.c: Avoid entering an
+       appdomain which is being unloaded.
+       
+       * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
+       unloading of the root appdomain.
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
+       icall to execute a method in another appdomain. Intended as a 
+       replacement for InternalSetDomain, which can confuse the code 
+       generation in the JIT.
+
+       * appdomain.c (mono_domain_is_unloading): New function to determine
+       whenever an appdomain is unloading.
+
+       * appdomain.c (mono_domain_unload): New function to correctly unload
+       an appdomain.
+
+       * assembly.c (mono_assembly_load_references): Check that an assembly
+       does not references itself.
+
+       * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
+       domain manually, it asks the finalizer thread to do it, then waits for
+       the result. Also added a timeout.
+
+       * icall.c: Register the new icalls.
+
+       * threads.h threads.c: Export the mono_gc_stop_world and 
+       mono_gc_start_world functions.
+       
+       * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
+       function to fill out the mempool with 0x2a.
+
+2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h (MonoReflectionMethodAux): New structure to store
+       information which is rarely used, thus is not in the MonoMethod
+       structure.
+
+       * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
+       store the aux info.
+
+       * reflection.c (mono_methodbuilder_to_mono_method): Store param names
+       and marshalling info into the aux structure.
+
+       * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
+       from the aux structure.
+
+       * loader.c (mono_method_get_param_names): Retrieve the param names from
+       the aux structure.
+       
+2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exception.h exception.c: Add AppDomainUnloadedException && fix 
+       warning.
+
+2003-10-21  Dick Porter  <dick@ximian.com>
+
+       * socket-io.c
+       (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
+       patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
+
+2003-10-21  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_bind_generic_parameters):
+       `klass->parent' is NULL for interfaces.
+
+2003-10-21  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
+
 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
 
+       * exception.c (mono_exception_from_name_msg): New helper function for
+       creating exceptions and initializing their message field.
+
+       * exception.c: Simplify functions using the new helper.
+
+       * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
+       New function.
+
        * object.h object.c: Remove G_GNUC_NORETURN from the signature of
        mono_raise_exception, since otherwise gcc doesn't generate the function
        epilog for raise_exception, confusing the stack unwinding in the JIT.