Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
index ddc9711f107887714a7fc7cae63feaf7eee80dbb..911cfcf69edc006e9c6527c783cf0c80fb094d93 100644 (file)
@@ -1,5 +1,358 @@
+
+Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * reflection.c: get token for a method ref. Set return type of
+       constructor to void.
+       * loader.c: debug message.
+       * class.c: typo fix.
+
+Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c: fix array init with rank > 1. FindMembers
+       loops in parent class as well.
+       * image.c: do not insert nested types in name cache.
+       * reflection.c: warning fix.
+       * reflection.h: add override method (for interface impl).
+
+Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c: fix customattr decoding.
+
+2001-12-21  Miguel de Icaza  <miguel@ximian.com>
+
+       * rawbuffer.cs: Added native Win32 implementation, avoids using
+       mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
+
+Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: make the low-level routines handle the cache.
+
+Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
+
+Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: fix mono_array_element_size() for objects.
+       * class.h, class.c: add properties to MonoClass and load them
+       at init time.
+       * icall.c: check with isinst() when assigning a value to an array
+       instead of requiring the classes to match exactly.
+       Implemented icall for System.Type::GetType().
+       Implemented icalls to get ParameterInfo, ProprtyInfo and info about
+       enums. Handle bindingflags when looking for methods and fields.
+       * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
+       and mono_metadata_methods_from_property().
+       * reflection.h, reflection.c: added structures for propreties,
+       parameters and enums. Implemented mono_property_get_object() and
+       mono_param_get_objects().
+
+2001-12-18  Dick Porter  <dick@ximian.com>
+
+       * file-io.c: Use mono_string_to_utf16() instead of
+       mono_string_chars()
+
+       * object.c: Added mono_string_to_utf16(), which copies the non
+       NULL-terminated MonoString into a new double-null-terminated
+       buffer.
+
+2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
+
+2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * file-io.c: raise exceptions if handle is invalid.
+
+Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * assembly.c: yet another check for mscorlib.
+       * class.c, class.h: load nesting info for classes.
+       * icall.c: many new functions to support the Reflection classes.
+       * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
+       * reflection.h, reflection.c: mono_image_create_token(),
+       mono_assembly_get_object(), mono_type_get_object(),
+       mono_method_get_object(), mono_field_get_object(): methods to return
+       objects that parallel the C representation of assemblies, types,
+       methods, fields.
+
+2001-12-11  Dick Porter  <dick@ximian.com>
+
+       * icall.c:
+       * file-io.c: Internal calls for file IO.
+
+Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * tabledefs.h: missing FileAttributes.
+       * verify.h, verify.c: use is_valid_string () to simplify and check for
+       valid strings more correctly. Fix warnings and speeling.
+       Check more tables: Filed, File, ModuleRef, StandAloneSig.
+       Check code: branches, maxstack, method calls.
+
+2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
+
+       * object.c (mono_object_allocate): removed static, so that the jit
+       can allocate value types.
+
+       * icall.c (ves_icall_System_DateTime_GetNow): impl.
+
+Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: init enum types right away and register the
+       token->MonoClass map in mono_class_create_from_typedef ().
+       * verify.h, verify.c: first cut of the verifier.
+       * pedump.c: add --verify switch to verify metadata tables.
+       * tabledefs.h: add some missing enums.
+
+2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_install_runtime_class_init): impl.
+       (mono_class_init): renamed mono_class_metadata_init to
+       mono_class_init, also removed the metadata_inited flag
+
+       * object.c (mono_object_isinst): use faster algorithm
+
+2001-11-30  Radek Doulik  <rodo@ximian.com>
+
+       * mono-endian.h: reverted last change
+       added function prototypes
+
+       * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
+       add mono-endian.c back
+
+       * mono-endian.c: returned back, as Paolo pointed out, it's needed
+       for unaligned access, I've mistaked it with endianess. I am
+       sorry.
+       (mono_read16): fix reverted endianess
+       (mono_read64): ditto
+       (mono_read32): ditto
+
+2001-11-30  Dick Porter  <dick@ximian.com>
+
+       * exception.c: Implement mono_exception_from_name()
+
+Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c: remove params_size and locals_size and their
+       calculation from the metadata code: they are only usefult to the
+       interp.
+
+2001-11-29  Radek Doulik  <rodo@ximian.com>
+
+       * object.c (mono_ldstr): swap bytes here, it's probably not the
+       best place, but works for me now, I'll redo it once I know mono
+       better, also note that I add PROT_WRITE and don't reset back, also
+       note that it's only affects big endians, so x86 should be OK
+
+       * mono-endian.h (read16): use just glib macros for both endians
+
+       * mono-endian.c: removed as glib macros are used in in
+       mono-endian.h so we don't need to care about endianess for read
+       macros as glib does that for us already
+
+Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.h: take minimum alignment into consideration so
+       that the fields of a class remain aligned also when in an array.
+
+Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * loader.h, loader.c: add mono_method_get_param_names().
+       * class.c: 0-init class fields.
+
+2001-11-26  Dick Porter  <dick@ximian.com>
+
+       * icall.c:
+       * threads-types.h:
+       * threads.c: New file that handles System.Threading on all platforms
+
+       * object.c: 
+       * object.h: Remove the synchronisation struct from MonoObject,
+       replace it with a pointer that gets initialised on demand
+
+       * Makefile.am: Replace all the system-specific threading code with
+       a single file that uses the new wrapper library
+
+Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, class.h: add mono_install_trampoline() so that the runtime
+       can register a function to create a trampoline: removes the ugly
+       requirement that a runtime needed to export arch_create_jit_trampoline.
+       * object.h, object.c: added mono_install_handler() so that the runtime
+       can install an handler for exceptions generated in C code (with
+       mono_raise_exception()). Added C struct for System.Delegate.
+       * pedump.c: removed arch_create_jit_trampoline.
+       * reflection.c: some cleanups to allow registering user strings and
+       later getting a token for methodrefs and fieldrefs before the assembly
+       is built.
+       * row-indexes.h: updates and fixes from the new ECMA specs.
+
+Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c: add enum_basetype field to MonoClass.
+       * metadata.h, metadata.c: add mono_metadata_get_constant_index()
+       to get index in the constant table reated to a field, param or
+       property.
+       * reflection.h, reflection.c: handle constructors. Set public-key and
+       version number of the built assembly to 0.
+       * row-indexes.h: update from new ECMA spec.
+
+Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c: add a max_interface_id to MonoClass.
+       * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
+       since it's used to do that. Added mono_type_type_from_obj().
+       Make GetType() return NULL instead of segfaulting if the type was not
+       found. Handle simple arrays in assQualifiedName.
+       * object.h: add a struct to represent an Exception.
+       * reflection.c: output call convention in method signature.
+       Add code to support P/Invoke methods and fixed offsets for fields.
+
+Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
+       the value.
+       * icall.c: use mono_array_addr instead of array->vector: fixes the
+       reflection image writing.
+       * reflection.c: init call convention byte to 0 in method signature.
+       Encode the property signature. Don't output property-related methods
+       twice. Really process the properties for a type (don't cast a field to
+       a property, my mom always told me that).
+       Fix 64 bit issues in pointer alignment in a different and more
+       readable way.
+
+2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
+
+       * loader.h: Removed type class from MonoDefaults, added monotype
+
+       * loader.c: Loaded MonoType, removed loading of Type
+
+       * icall.c (my_mono_new_object): Now returns a System.MonoType,
+       and fills in System.Type._impl with a RuntimeTypeHandle rather
+       than the actual MonoClass *
+
+       (ves_icall_type_from_handle): change from type_class to
+       monotype_class
+
+       (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
+       implemented
+
+       (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
+       implemented
+
+       (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
+
+       (ves_icall_System_Reflection_Assembly_GetType): implemented
+
+       (ves_icall_System_MonoType_assQualifiedName): implemented
+
+       (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
+
+2001-11-09  Miguel de Icaza  <miguel@ximian.com>
+
+       * assembly.c (mono_assembly_open): Implement a cache for the
+       assemblies. 
+
+       (mono_assembly_close): only destroy the assembly when the last
+       reference is gone.
+       
+2001-11-09  Dick Porter  <dick@ximian.com>
+
+       * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
+
+2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): bug fix: compute the right slot
+
+Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
+       from Martin Weindel.
+       * object.h: add mono_string_chars ().
+
+2001-11-07  Miguel de Icaza  <miguel@ximian.com>
+
+       * reflection.c (build_compressed_metadata): Eliminates warnings
+       and uses 64-bit clean code.
+
+       * metadata.c (mono_type_hash): Change signature to eliminate warnings.
+       (mono_type_equal): Change signature to eliminate warnings.
+
+Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c, loader.c: remove the internalcall array constructors.
+       Changes to match the new MonoArray structure.
+       * object.h, object.c: an array object doesn't allocate an extra
+       vector. Add mono_array_new_full () to create jagged arrays easily.
+
+Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c: add mono_metadata_field_info () to
+       retreive all the info about a field from vairous tables.
+       * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
+       * class.h, class.c: augment MonoClassField with more info.
+       Implemented mono_ldtoken for fields. Implemented ExplicitLayout
+       policy and load a field's RVA if needed.
+
+2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): create a trampoline for all
+       virtual functions instead of actually compiling them.
+
+Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c: include name in MonoClassField.
+       * class.c: fix fundamental type of System.Object and System.String.
+       Set the right fundamental type for SZARRAY, too. Handle TypeSpec
+       tokens in ldtoken.
+       * icall.c: remove internalcalls for the Reflection stuff that is now
+       done in C# code.
+       * loader.c: mono_field_from_memberref () implementation.
+       * mono-endian.c: thinko (s/struct/union/g).
+       * object.c, object.h: make the mono_string_* prototypes actually use
+       MonoString instead of MonoObject.
+       * reflection.c, reflection.h: updates for changes in the reflection
+       code in corlib: we use C structures that map to the actual C# classes.
+       Handle SZARRAYs when encoding types. Handle locals in methods. Use a
+       fat method header if needed and use the info from the ILGenerator for
+       methods. Handle fields in types. Misc fixes.
+
+2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): bug fix: always allocate
+       space for static class data
+
+2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_compute_relative_numbering): use relative
+       numbering to support fast runtime type checks.
+
+2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
+
+       * class.c (mono_class_create_from_typeref): added debugging output
+       to print class name when MonoDummy is returned instead of real class
+
+2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): interface offset table now
+       contains pointers into the vtable - this is more efficient for the jit
+
+2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): use a temporary vtable (the
+       old algorithm only worked for the interpreter, but not for the jit)
+
+2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
+
+       * loader.c (method_from_memberref): use mono_class_get to get the
+       class of an array instead of using System.Array directly.
+       (mono_get_method): also add MEMBERREF methods to the method cache
+       which usefull for arrays.
+
 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
 
+       * pedump.c (arch_compile_method): added to compute vtable entry
+
        * metadata.c (mono_metadata_interfaces_from_typedef): also return the
        number of interfaces.