Mon Mar 4 11:21:44 CET 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
3
4         * class.h: stared adding support for events.
5         * icall.c: split find_members implementation. Added debug icall to get
6         the address of an object.
7         * reflection.c: handle TypeBuilders in mono_type_get_object().
8
9 2002-03-01  Martin Baulig  <martin@gnome.org>
10
11         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12         ArgumentOutOfRangeException(), not an ArgumentException().
13         (ves_icall_System_Array_GetLowerBound): Likewise.
14         (ves_icall_System_Array_GetValue): Improved argument checking.
15         (ves_icall_System_Array_SetValue): Improved argument checking.
16
17 2002-03-01  Martin Baulig  <martin@gnome.org>
18
19         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
20         called with invalid arguments rather than just dying with g_assert().
21         (ves_icall_System_Array_SetValue): Likewise.
22         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23         raise a NotImplementedException instead.
24         (ves_icall_System_Array_GetLength): Added argument checking.
25         (ves_icall_System_Array_GetLowerBound): Added argument checking.
26
27 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
28
29         * object.h (mono_assert): new macros mono_assert and
30         mono_assert_not_reached
31
32 2002-02-28  Martin Baulig  <martin@gnome.org>
33
34         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
35         and "System::String::IsInterned" to "System::String::_IsInterned".
36
37 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
38
39         * icall.c: remove hacks for typebuilder. Added icall to create a
40         modified type from a tybebuilder.
41         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
42         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
43         to create a backing MonoClass for a TypeBuilder.
44
45 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
46
47         * class.c, class.h: more refactoring of class init.
48         Export mono_class_setup_mono_type() and mono_class_setup_parent().
49
50 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
51
52         * marshal.c, marshal.h: start of marshaling interface.
53
54 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
55
56         * icall.c: fix order in assembly qualified name icall.
57
58 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
59
60         * class.c: do not free str, since we store it in the hash table.
61         * reflection.h: add label field to MonoILExceptionInfo.
62         * reflection.c: handle references to more than one assembly. Handle
63         case when there isn't a module created in the assembly.
64
65 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
66
67         * class.c: Fix typo. Start refactoring of class init code.
68
69 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
70
71         * appdomain.c: exit with 1 on error.
72         * class.c: we already have the name in MonoClassField.
73         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
74         MonoStreamHeader instead of an offset of image->raw_metadata.
75
76 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
77
78         * appdomain.c (mono_init): Be even more descriptive about the error.
79
80 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
81
82         * appdomain.c: give the user an informative message when corlib can't
83         be loaded.
84
85 2002-02-26  Martin Baulig  <martin@gnome.org>
86
87         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
88         New icall to get the time zone data.
89
90 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
91
92         * reflection.c: set virtual and raw size of section correctly.
93         * threads.c: transfer domain information to newly created threads.
94
95 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
96
97         * class.c: when instancing a class in a domain, load the default
98         vaules for static fields from the constant table. Fix System.Enum to
99         not be an enum.
100         * icall.c: implement Object::GetType() internalcall. Implemented
101         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
102         Fixed checking of binding flags in find_members().
103         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
104         * reflection.c: handle enumerations when writing to the constant
105         table. Use a different object cache for types.
106
107
108 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
109
110         * object.c (mono_object_isinst): fix for arrays
111
112         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
113
114 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
115
116         * object.c: don't use mprotect ()  and fix intern pool hash table
117         lookup for big endian systems.
118
119 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
120
121         * icall.c: change type_is_subtype_of () signature.
122
123 2002-02-21  Mark Crichton  <crichton@gimp.org>
124
125         * rand.c, rand.h: Added random number generator for
126         System.Security.Cryptography classes.
127
128         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
129
130         * icall.c: Added System.Security.Cryptography calls.
131
132 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
133
134         * class.c, icall.c, metadata.c: better support for pointer types.
135         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
136         * reflection.c: Add support for getting custom attrs for properties
137         and simplify some code.
138
139 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
140
141         * icall.c: change getToken () and add custom attribute GetBlob()helper
142         method.
143         * reflection.h: add custom attrs array to the reflection builder structures.
144         * reflection.c: encode and emit custom attributes for all the relevant
145         reflection objects. Cache fieldref and methodref tokens. Change
146         mono_image_create_token() interface to take a MonoDynamicAssembly.
147         More complete custom attributes decoder. Load custom attributes for
148         Assembly, Field, Method and Constructor objects, too. Make the
149         returned array an Attribute[] one, not object[]. Added
150         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
151         custom attribute constructor.
152
153 2002-02-20  Dick Porter  <dick@ximian.com>
154
155         * icall.c:
156         * rawbuffer.c:
157         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
158         problem code out for now).
159
160 2002-02-19  Radek Doulik  <rodo@ximian.com>
161
162         * object.c (mono_ldstr): use hash table to avoid multiple swapping
163
164 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
165
166         * icall.c: register the GetCustomAttributes method.
167         * object.c, object.h: add mono_string_new_len ().
168         * reflection.h, reflection.c: added mono_runtime_invoke(),
169         mono_install_runtime_invoke(). Added
170         mono_reflection_get_custom_attrs () to load custom attributes and
171         create the attribute objects.
172
173 2002-02-19  Dick Porter  <dick@ximian.com>
174         * threads-dummy-types.c:
175         * threads-dummy-types.h:
176         * threads-dummy.c:
177         * threads-dummy.h:
178         * threads-pthread-types.c:
179         * threads-pthread-types.h:
180         * threads-pthread.c:
181         * threads-pthread.h:  Deleted obsolete files
182
183 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
184
185         * class.c (mono_class_vtable): runtime init the class when we
186         allocate static class data.
187
188         * icall.c (ves_icall_System_Array_SetValue): check for null values.
189
190         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
191         and String - but we will need generic marshalling support in the
192         future. 
193         (mono_init): set the domain name in a ms compatible way
194
195         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
196         String[].
197
198 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
199
200         * object.c (mono_array_clone): use alloca() instead of g_malloc  
201         for sizes
202
203         * appdomain.c (mono_domain_unload): impl.
204
205 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
206
207         * appdomain.c, object.c: fix intern pool implementation.
208         * class.c: fix alignment code.
209
210 2002-02-16  Radek Doulik  <rodo@ximian.com>
211
212         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
213         and s2 > s1, just copy lower bytes to be compatible with little
214         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
215         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
216
217         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
218         force big_endian to be 1 for big endian machines 
219         (ves_icall_iconv_new_decoder): ditto
220
221 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
222
223         * socket-io.c (convert_sockopt_level_and_name): If the system
224         doesn't define SOL_IP or SOL_TCP, get them by hand using
225         getprotobyname() and caching the values (because this could be a
226         slow operation).
227         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
228         Use the appropriate struct when the system does support it. Ie,
229         not all systems have struct ip_mreqn so use struct ip_mreq when
230         appropriate.
231
232 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
233
234         * reflection.c: handle finally clauses.
235
236 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
237
238         * socket-io.c: use g_snprintf() instead of snprintf.
239
240 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
241
242         * reflection.c (mono_param_get_objects): Cast second argument to
243         mono_method_get_param_names to a const char** to silence the
244         compiler warning.
245
246         * appdomain.c (mono_domain_assembly_open): Put parens around the
247         truth statement in the for-loop.
248
249         * unicode.c (iconv_convert): Got rid of a compiler warning about
250         int i being unused when the system has a new iconv.
251         (iconv_get_length): Same.
252
253         * image.c (load_class_names): Cast the second argument to
254         g_hash_table_insert() to char* to hush compiler warnings about the
255         arg being a const.
256         (mono_image_open): Same here.
257
258         * socket-io.c: Don't conditionally include sys/filio.h or
259         sys/sockio.h here anymore since we now get them from
260         io-layer/io-layer.h
261         (inet_pton): If the system doesn't support inet_aton, implement
262         using inet_addr and also #define INADDR_NONE if it isn't defined
263         by the system.
264
265 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
266
267         * metadata.c, metadata.h: added function to get packing and size info
268         of a typedef.
269         * reflection.h, reflection.c: handle field RVA data. Save info about
270         the table layout if needed. Assign typedef indexes to all the types
271         before dumping the info about them to avoid forward reference problems.
272
273 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
274
275         * socket-io.c (convert_sockopt_level_and_name): ifdef
276         SO_ACCEPTCONN because it is not defined on my system (old debian)
277
278 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
279
280         * opcode.c: use stddef.h to get NULL.
281
282 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
283
284         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
285         for FIONBIO, FIONREAD and SIOCATMARK.
286         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
287         define INADDR_NONE and besides, inet_addr() is deprecated and
288         should not be used. Use inet_pton() instead - it also has the
289         added bonus that it can easily handle IPv6 addresses as well.
290         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
291
292 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
293
294         * decimal.c: remove _MSC_VER conditional.
295
296 2002-02-13  Dick Porter  <dick@ximian.com>
297
298         * socket-io.c: 
299         * icall.c: Internal calls for Blocking, Select, Shutdown,
300         GetSocketOption and SetSocketOption
301
302 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
303
304         * assembly.cs: better resolver: use it instead of some kludgy
305         code.
306
307 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
308
309         * reflection.c: the best way to speed-up the compiler is to avoid
310         infinite loops.
311
312 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
313
314         * class.c (mono_class_vtable): changed the object layout
315         (obj->vtable->class). 
316         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
317
318 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
319
320         * assembly.c: look for assemblies in the assembly dir, too.
321
322 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
323
324         * class.c: fix thinko in mono_class_from_type().
325
326 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
327
328         * exception.h, exception.c: added TypeLoadException.
329         * object.h, object.c: added mono_array_clone ().
330         * icall.c: handle throwOnError in AssemblyGetType().
331         Added Array.Clone().
332         * opcode.h, opcode.c: use a single value for the opcode val.
333         Compile fix for non-gcc compilers.
334
335 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
336
337         * opcodes.c, opcodes.h: export interesting info about opcodes.
338
339 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
340
341         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
342         icalls. 
343
344         * class.c (class_compute_field_layout): set element_class for enums
345         (mono_class_create_from_typedef): set element_class for normal classes
346
347         * icall.c (ves_icall_System_Enum_get_value): impl.
348
349         * class.c (mono_class_create_from_typedef): do not set valuetype
350         flag for System.ValueType and System.Enum
351
352 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
353
354         * unicode.c (iconv_convert): fix big endian problem.
355
356 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
357
358         * class.c: add asserts if we are ever going to scribble over memory.
359         * socket-io.c: not all systems have AF_IRDA defined.
360
361 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
362
363         * class.c (class_compute_field_layout): do not consider static
364         fields to compute alignment
365
366 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
367
368         * appdomain.c (mono_appdomain_get): impl.
369         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
370
371 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
372
373         * icall.c: ignore "file://" prefix when loading an assembly.
374
375 2002-01-23  Dick Porter  <dick@ximian.com>
376
377         * socket-io.c:
378         * icall.c:
379         * Makefile.am: Added socket support
380
381 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
382
383         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
384         code back.  This should return the assemblies that are loaded by
385         the runtime on behalf of an application domain. 
386
387         The current implementation is still broken, it just returns every
388         assembly loaded, but until we get real applications domain this
389         will do.
390
391 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
392
393         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
394         AppDomain object.
395
396 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
397
398         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
399         the mono_class_from_name lookup.
400         (ves_icall_get_parameter_info): ditto.
401         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
402         method.
403         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
404
405 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
406
407         * class.c: load also nested classes on class init.
408         System.ValueType instance methods gets passed boxed
409         values, unless methods in derived classed that get a pointer to the
410         data.
411         * icall.c: use better name parsing code in GetType().
412         * image.c, image.h: add mono_image_loaded ().
413         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
414         * reflection.c, reflection.h: added mono_reflection_parse_type().
415
416 2002-01-22  Veronica De Santis <veron78@interfree.it>
417
418         * icall.c : Added mapping of internal calls for Manual and Auto reset events
419         * threads.c : Added the implementation of internal calls for events
420         * threads.h : Added prototypes of internal calls for events
421         
422 2002-01-21  Radek Doulik  <rodo@ximian.com>
423
424         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
425
426 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
427
428         * class.c (mono_class_init): set min_align to 1 (instead of 0)
429         (mono_class_value_size): use min_align
430
431 2002-01-20  Dick Porter  <dick@ximian.com>
432
433         * threads.h:
434         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
435         so it compiles on w32.
436
437 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
438
439         * metadata.c (mono_type_stack_size): impl.
440
441         * class.c (mono_class_get_field): impl. memberref token
442
443 2002-01-16 Veronica De Santis <veron78@@interfree.it>
444
445         * icall.h : Added the internal calls mapping for CreateMutex_internal
446                     and ReleaseMutex_internal.
447         * threads.h : Added the prototype of mutexes internal calls.
448         * threads.c : Added the implementations of mutexes internal calls.
449
450 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
451
452         * metaparse.h: removed unused file.
453         * reflection.c, reflection.h: added stream_data_align () function 
454         to align data in streams and keep stream aligned. Add support for
455         exception support in method headers.
456
457 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
458
459         * unicode.c: make iconv_convert () return the number of bytess written
460         in the output buffer.
461
462 2002-01-15  Dick Porter  <dick@ximian.com>
463         * threads.c: Make the runtime's idea of infinite timeouts coincide
464         with the class library's
465
466         Fix a particularly egregious bug in mono_thread_cleanup(). That
467         code was so utterly bogus it must have been written on a Monday.
468
469 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
470
471         * reflection.h: add subtypes field to TypeBuilder.
472         * reflection.c: encode constants for literal fields.
473         Handle subtypes. Fix user string token (and add a zero byte)
474         at the end.
475         
476 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
477
478         * class.c (mono_class_init): bug fix: assign slot numbers for
479         abstract methods.
480
481 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
482
483         * reflection.c: don't try to output a code RVA for abstract methods.
484         Small fixes for method header format. Output parameter info to the
485         ParamDef table. Save method overriding info to MethodImpl table.
486         Fix property support. Allow typedef.extends to be a type in the
487         building assembly.
488         * verify.c: fix off-by-one error.
489
490 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
491
492         * class.c: fix mono_class_from_mono_type () for szarray types.
493         Remove unused cache check in mono_class_from_type_spec().
494         * icall.c: *type_from_name () functions handle simple arrays and byref.
495         * reflection.c: handle byref and szarray types. Handle methods without
496         body (gets P/Invoke compilation working). Handle types and fields in
497         get_token ().
498         * reflection.h: add rank to MonoTypeInfo.
499
500 2002-01-10  Dick Porter  <dick@ximian.com>
501
502         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
503         internal calls
504
505 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
506
507         * icall.c: initialize class in type_from_handle ().
508         Loop also in parent classes for get_method ().
509         * reflection.c: properly encode class and valuetype types.
510         Start on encoding TypeBuilder types. Handle fieldrefs.
511         Use correct length when registering a user string.
512         Handle ConstructorBuilder and MonoMethod in get_token ().
513         Make mono_type_get_object () aware of cached types.
514         * object.c: back out change to mono_string_new ().
515
516 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
517         * object.c: mono_string_new should return a NULL when the string 
518         passed in is NULL -- not try to deference it.
519         
520 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
521
522         * icall.c: hack to make IsSubType work for TypeBuilders.
523         * reflection.c: emit constructors before methods.
524         Retrieve param names in mono_param_get_objects().
525
526 2002/01/05  Nick Drochak  <ndrochak@gol.com>
527
528         * Makefile.am: fix list of headers and sources so automake 1.5
529         doesn't complain. Removed \# at end of list.
530
531 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
532
533         * reflection.c: get token for a method ref. Set return type of
534         constructor to void.
535         * loader.c: debug message.
536         * class.c: typo fix.
537
538 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
539
540         * icall.c: fix array init with rank > 1. FindMembers
541         loops in parent class as well.
542         * image.c: do not insert nested types in name cache.
543         * reflection.c: warning fix.
544         * reflection.h: add override method (for interface impl).
545
546 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
547
548         * metadata.c: fix customattr decoding.
549
550 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
551
552         * rawbuffer.cs: Added native Win32 implementation, avoids using
553         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
554
555 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
556
557         * class.c: make the low-level routines handle the cache.
558
559 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
560
561         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
562
563 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
564
565         * class.c: fix mono_array_element_size() for objects.
566         * class.h, class.c: add properties to MonoClass and load them
567         at init time.
568         * icall.c: check with isinst() when assigning a value to an array
569         instead of requiring the classes to match exactly.
570         Implemented icall for System.Type::GetType().
571         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
572         enums. Handle bindingflags when looking for methods and fields.
573         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
574         and mono_metadata_methods_from_property().
575         * reflection.h, reflection.c: added structures for propreties,
576         parameters and enums. Implemented mono_property_get_object() and
577         mono_param_get_objects().
578
579 2001-12-18  Dick Porter  <dick@ximian.com>
580
581         * file-io.c: Use mono_string_to_utf16() instead of
582         mono_string_chars()
583
584         * object.c: Added mono_string_to_utf16(), which copies the non
585         NULL-terminated MonoString into a new double-null-terminated
586         buffer.
587
588 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
589
590         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
591
592 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
593
594         * file-io.c: raise exceptions if handle is invalid.
595
596 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
597
598         * assembly.c: yet another check for mscorlib.
599         * class.c, class.h: load nesting info for classes.
600         * icall.c: many new functions to support the Reflection classes.
601         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
602         * reflection.h, reflection.c: mono_image_create_token(),
603         mono_assembly_get_object(), mono_type_get_object(),
604         mono_method_get_object(), mono_field_get_object(): methods to return
605         objects that parallel the C representation of assemblies, types,
606         methods, fields.
607
608 2001-12-11  Dick Porter  <dick@ximian.com>
609
610         * icall.c:
611         * file-io.c: Internal calls for file IO.
612
613 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
614
615         * tabledefs.h: missing FileAttributes.
616         * verify.h, verify.c: use is_valid_string () to simplify and check for
617         valid strings more correctly. Fix warnings and speeling.
618         Check more tables: Filed, File, ModuleRef, StandAloneSig.
619         Check code: branches, maxstack, method calls.
620
621 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
622
623         * object.c (mono_object_allocate): removed static, so that the jit
624         can allocate value types.
625
626         * icall.c (ves_icall_System_DateTime_GetNow): impl.
627
628 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
629
630         * class.c: init enum types right away and register the
631         token->MonoClass map in mono_class_create_from_typedef ().
632         * verify.h, verify.c: first cut of the verifier.
633         * pedump.c: add --verify switch to verify metadata tables.
634         * tabledefs.h: add some missing enums.
635
636 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
637
638         * class.c (mono_install_runtime_class_init): impl.
639         (mono_class_init): renamed mono_class_metadata_init to
640         mono_class_init, also removed the metadata_inited flag
641
642         * object.c (mono_object_isinst): use faster algorithm
643
644 2001-11-30  Radek Doulik  <rodo@ximian.com>
645
646         * mono-endian.h: reverted last change
647         added function prototypes
648
649         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
650         add mono-endian.c back
651
652         * mono-endian.c: returned back, as Paolo pointed out, it's needed
653         for unaligned access, I've mistaked it with endianess. I am
654         sorry.
655         (mono_read16): fix reverted endianess
656         (mono_read64): ditto
657         (mono_read32): ditto
658
659 2001-11-30  Dick Porter  <dick@ximian.com>
660
661         * exception.c: Implement mono_exception_from_name()
662
663 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
664
665         * metadata.h, metadata.c: remove params_size and locals_size and their
666         calculation from the metadata code: they are only usefult to the
667         interp.
668
669 2001-11-29  Radek Doulik  <rodo@ximian.com>
670
671         * object.c (mono_ldstr): swap bytes here, it's probably not the
672         best place, but works for me now, I'll redo it once I know mono
673         better, also note that I add PROT_WRITE and don't reset back, also
674         note that it's only affects big endians, so x86 should be OK
675
676         * mono-endian.h (read16): use just glib macros for both endians
677
678         * mono-endian.c: removed as glib macros are used in in
679         mono-endian.h so we don't need to care about endianess for read
680         macros as glib does that for us already
681
682 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
683
684         * class.h, class.h: take minimum alignment into consideration so
685         that the fields of a class remain aligned also when in an array.
686
687 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
688
689         * loader.h, loader.c: add mono_method_get_param_names().
690         * class.c: 0-init class fields.
691
692 2001-11-26  Dick Porter  <dick@ximian.com>
693
694         * icall.c:
695         * threads-types.h:
696         * threads.c: New file that handles System.Threading on all platforms
697
698         * object.c: 
699         * object.h: Remove the synchronisation struct from MonoObject,
700         replace it with a pointer that gets initialised on demand
701
702         * Makefile.am: Replace all the system-specific threading code with
703         a single file that uses the new wrapper library
704
705 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
706
707         * class.c, class.h: add mono_install_trampoline() so that the runtime
708         can register a function to create a trampoline: removes the ugly
709         requirement that a runtime needed to export arch_create_jit_trampoline.
710         * object.h, object.c: added mono_install_handler() so that the runtime
711         can install an handler for exceptions generated in C code (with
712         mono_raise_exception()). Added C struct for System.Delegate.
713         * pedump.c: removed arch_create_jit_trampoline.
714         * reflection.c: some cleanups to allow registering user strings and
715         later getting a token for methodrefs and fieldrefs before the assembly
716         is built.
717         * row-indexes.h: updates and fixes from the new ECMA specs.
718
719 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
720
721         * class.h, class.c: add enum_basetype field to MonoClass.
722         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
723         to get index in the constant table reated to a field, param or
724         property.
725         * reflection.h, reflection.c: handle constructors. Set public-key and
726         version number of the built assembly to 0.
727         * row-indexes.h: update from new ECMA spec.
728
729 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
730
731         * class.h, class.c: add a max_interface_id to MonoClass.
732         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
733         since it's used to do that. Added mono_type_type_from_obj().
734         Make GetType() return NULL instead of segfaulting if the type was not
735         found. Handle simple arrays in assQualifiedName.
736         * object.h: add a struct to represent an Exception.
737         * reflection.c: output call convention in method signature.
738         Add code to support P/Invoke methods and fixed offsets for fields.
739
740 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
741
742         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
743         the value.
744         * icall.c: use mono_array_addr instead of array->vector: fixes the
745         reflection image writing.
746         * reflection.c: init call convention byte to 0 in method signature.
747         Encode the property signature. Don't output property-related methods
748         twice. Really process the properties for a type (don't cast a field to
749         a property, my mom always told me that).
750         Fix 64 bit issues in pointer alignment in a different and more
751         readable way.
752
753 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
754
755         * loader.h: Removed type class from MonoDefaults, added monotype
756
757         * loader.c: Loaded MonoType, removed loading of Type
758
759         * icall.c (my_mono_new_object): Now returns a System.MonoType,
760         and fills in System.Type._impl with a RuntimeTypeHandle rather
761         than the actual MonoClass *
762
763         (ves_icall_type_from_handle): change from type_class to
764         monotype_class
765
766         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
767         implemented
768
769         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
770         implemented
771
772         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
773
774         (ves_icall_System_Reflection_Assembly_GetType): implemented
775
776         (ves_icall_System_MonoType_assQualifiedName): implemented
777
778         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
779
780 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
781
782         * assembly.c (mono_assembly_open): Implement a cache for the
783         assemblies. 
784
785         (mono_assembly_close): only destroy the assembly when the last
786         reference is gone.
787         
788 2001-11-09  Dick Porter  <dick@ximian.com>
789
790         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
791
792 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
793
794         * class.c (mono_class_metadata_init): bug fix: compute the right slot
795
796 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
797
798         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
799         from Martin Weindel.
800         * object.h: add mono_string_chars ().
801
802 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
803
804         * reflection.c (build_compressed_metadata): Eliminates warnings
805         and uses 64-bit clean code.
806
807         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
808         (mono_type_equal): Change signature to eliminate warnings.
809
810 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
811
812         * icall.c, loader.c: remove the internalcall array constructors.
813         Changes to match the new MonoArray structure.
814         * object.h, object.c: an array object doesn't allocate an extra
815         vector. Add mono_array_new_full () to create jagged arrays easily.
816
817 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
818
819         * metadata.h, metadata.c: add mono_metadata_field_info () to
820         retreive all the info about a field from vairous tables.
821         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
822         * class.h, class.c: augment MonoClassField with more info.
823         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
824         policy and load a field's RVA if needed.
825
826 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
827
828         * class.c (mono_class_metadata_init): create a trampoline for all
829         virtual functions instead of actually compiling them.
830
831 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
832
833         * class.h, class.c: include name in MonoClassField.
834         * class.c: fix fundamental type of System.Object and System.String.
835         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
836         tokens in ldtoken.
837         * icall.c: remove internalcalls for the Reflection stuff that is now
838         done in C# code.
839         * loader.c: mono_field_from_memberref () implementation.
840         * mono-endian.c: thinko (s/struct/union/g).
841         * object.c, object.h: make the mono_string_* prototypes actually use
842         MonoString instead of MonoObject.
843         * reflection.c, reflection.h: updates for changes in the reflection
844         code in corlib: we use C structures that map to the actual C# classes.
845         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
846         fat method header if needed and use the info from the ILGenerator for
847         methods. Handle fields in types. Misc fixes.
848
849 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
850
851         * class.c (mono_class_metadata_init): bug fix: always allocate
852         space for static class data
853
854 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
855
856         * class.c (mono_compute_relative_numbering): use relative
857         numbering to support fast runtime type checks.
858
859 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
860
861         * class.c (mono_class_create_from_typeref): added debugging output
862         to print class name when MonoDummy is returned instead of real class
863
864 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
865
866         * class.c (mono_class_metadata_init): interface offset table now
867         contains pointers into the vtable - this is more efficient for the jit
868
869 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
870
871         * class.c (mono_class_metadata_init): use a temporary vtable (the
872         old algorithm only worked for the interpreter, but not for the jit)
873
874 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
875
876         * loader.c (method_from_memberref): use mono_class_get to get the
877         class of an array instead of using System.Array directly.
878         (mono_get_method): also add MEMBERREF methods to the method cache
879         which usefull for arrays.
880
881 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
882
883         * pedump.c (arch_compile_method): added to compute vtable entry
884
885         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
886         number of interfaces.
887         
888         * class.h: merged MonoArrayClass into MonoClass
889
890         * class.c (mono_class_create_from_typedef): compute the vtable size and
891         allocate space to include the vtable inside MonoClass
892         (mono_class_metadata_init): initialize the vtable
893
894 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
895
896         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
897         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
898         * image.c: endian fixes by Laurent Rioux.
899         * object.h, object.c: rename MonoStringObject to MonoString and
900         MonoArrayObject to MonoArray. Change some function names to conform to
901         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
902         guint16* as first argument, so don't use char*.
903         Provide macros to do the interesting things on arrays in a portable way.
904         * threads-pthread.c: updates for the API changes and #include <sched.h>
905         (required for sched_yield()).
906         * icall.c: updates for the API changes above.
907         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
908         platforms that need them.
909
910 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
911
912         * class.c: set the correct type for all the fundamental
913         type when loading the class.
914
915 2001-10-05  Dick Porter  <dick@ximian.com>
916
917         * threads-pthread.c (pthread_mutex_timedlock): Simple
918         compatibility version for C libraries that lack this call.
919
920 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
921
922         * class.c: MonoTypes stored in MonoClass are stored as
923         fundamental MonoTypes when the class represents a
924         fundamental type (System.Int32, ...).
925         The TypeHandle return by ldtoken is a MonoType*.
926         * icall.c: ves_icall_get_data_chunk () write out all the
927         PE/COFF stuff. Implement ves_icall_define_method (),
928         ves_icall_set_method_body (), ves_icall_type_from_handle ().
929         * image.c: properly skip unknown streams.
930         * loader.h, loader.c: add type_class to mono_defaults.
931         * metadata.c, metadata.h: export compute_size () as
932         mono_metadata_compute_size () with a better interface.
933         Typo and C&P fixes.
934         * pedump.c: don't try to print the entry point RVA if there is no entry point.
935         * reflection.c, reflection.h: many cleanups, fixes, output method
936         signatures and headers, typedef and typeref info, compress the metadata
937         tables, output all the heap streams, cli header etc.
938         * row-indexes.h: typo fixes.
939
940 2001-10-04  Dick Porter  <dick@ximian.com>
941
942         * object.h: Add a synchronisation mutex struct to MonoObject
943
944         * object.c (mono_new_object): Initialise the object
945         synchronisation mutexes
946
947         * icall.c: System.Threading.Monitor internal calls
948         
949         * threads-pthread.h:
950         * threads-pthread.c: System.Threading.Monitor internal calls
951
952         * threads-types.h: New file, includes the system-specific thread
953         structures
954         
955         * threads-pthread-types.h:
956         * threads-pthread-types.c: New files, handle pthread-specific
957         synchronisation types
958
959         * threads-dummy-types.h: 
960         * threads-dummy-types.c: New files of dummy support for
961         thread-specific types
962
963         * metadata.c:
964         * image.c:
965         * pedump.c: include mono-endian.h not endian.h
966         
967         * Makefile.am: More threads files.
968         Name mono-endian.h not endian.h
969
970 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
971
972         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
973         stuff and implement a few more bits.
974         * icall.c: a field needs to be dereferenced twice. Do not use the same
975         name for two variables in the same scope.
976         * image.c, image.h: cleanups.
977
978 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
979
980         * class.c (mono_class_metadata_init): bug fix: compute the right size
981
982 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
983
984         * icall.c: implemented some of the Reflection internalcalls.
985         * image.c, image.h: start writing out the PE/COFF image.
986         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
987         that does the reverse than decode_blob_size ().
988         * object.c: use mono_metadata_encode_value (). Move here
989         temporary implementation of mono_string_to_utf8 ().
990         * rawbuffer.c: make malloc_map static.
991
992 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
993
994         * metadata.c: fix type comparison for arrays.
995         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
996         Added a couple of new classes to monodefaults.
997         * icall.c: added a couple of Reflection-related internalcalls.
998         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
999         Added a byval_arg MonoType to MonoClass.
1000
1001 2001-09-28  Dick Porter  <dick@ximian.com>
1002
1003         * icall.c:
1004         * threads-pthread.h: 
1005         * threads-pthread.c: Implemented internal calls for
1006         LocalDataStoreSlot operations.  Applied mutexes around all shared
1007         data.  Reworked the thread creation and Start() operations to
1008         avoid a race condition.
1009         
1010         * threads-dummy.h:
1011         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
1012
1013 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
1014
1015         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
1016
1017 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
1018
1019         * class.c, loader.c: warn and return NULL instead of erroring out.
1020         * icall.c: added System.AppDomain::getCurDomain().
1021         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
1022
1023 2001-09-25  Dick Porter  <dick@ximian.com>
1024
1025         * threads-pthread.h:
1026         * threads-pthread.c: Implemented timed thread joining and added
1027         System.Threading.Thread::Join_internal internal call
1028
1029         * icall.c: Added System.Threading.Thread::Join_internal internal call
1030
1031         * threads-dummy.h:
1032         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
1033
1034 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1035
1036         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
1037         mono_string_intern () to implement the semantics of the ldstr opcode
1038         and the interning of System.Strings.
1039         * icall.c: provide hooks to make String::IsIntern and String::Intern
1040         internalcalls.
1041
1042 2001-09-23  Dick Porter  <dick@ximian.com>
1043
1044         * threads-dummy.c: 
1045         * threads-dummy.h: New files of dummy threading routines
1046
1047         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
1048         support code based on system specifics
1049
1050         Rename PTHREAD_LIBS to THREAD_LIBS
1051         
1052 2001-09-23  Dick Porter  <dick@ximian.com>
1053
1054         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
1055         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
1056         internal calls.
1057         (mono_thread_init): Set up a Thread object instance to return when
1058         the main thread calls Thread.CurrentThread
1059         (mono_thread_cleanup): Wait for all subthreads to exit
1060
1061         * icall.c: New internal calls for System.Threading.Thread::Sleep
1062         (including Schedule) and CurrentThread
1063
1064         * threads.h: New file, to insulate thread-specific stuff from the
1065         rest of the code
1066
1067 2001-09-21  Dick Porter  <dick@ximian.com>
1068
1069         * threads-pthread.h: 
1070         * threads-pthread.c: New file, for handling pthreads-style
1071         threading support.  Start() now starts a new thread and executes
1072         the ThreadStart delegate instance.
1073
1074         * icall.c: Added the internalcall for
1075         System.Threading.Thread::Start_internal
1076
1077         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
1078
1079 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
1080
1081         * loader.c: work around the different signatures for delegates
1082         constructors csc generates in compiled code vs the ones compiled in mscorlib.
1083
1084 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1085
1086         * class.h, class.c: add mono_class_get_field_from_name ().
1087         * *: Fix C comments and other ANSI C issues.
1088
1089 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
1090
1091         * endian.h, assembly.c: fix some endianness issues.
1092
1093 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
1094
1095         * loader.h, load.c: add delegate_class to mono_defaults.
1096         Handle runtime provided methods in mono_get_method ().
1097
1098 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
1099
1100         * loader.c (mono_get_method): use pinvoke for internal call
1101
1102         * icall.c: use pinvoke for internal call
1103
1104         * loader.c (method_from_memberref): set the method name
1105
1106 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
1107
1108         * metadata.c: help the compiler generate better code for
1109         mono_class_from_mono_type ().
1110
1111 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1112
1113         * class.c (mono_class_metadata_init): delayed computing of the
1114         class size to mono_class_metadata_init ()
1115
1116 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
1117
1118         * class.c, class.h: add an interfaces member to MonoClass.
1119         * image.c, image.h: add assembly_name field to MonoImage
1120         from the assembly table.
1121         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
1122
1123 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1124
1125         * class.c: Handle Array in mono_class_from_mono_type ().
1126         * metadata.c, pedump.c: some endian fixes.
1127
1128 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1129
1130         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
1131         * metadata.c: fix small problem introduced with the latest commit.
1132
1133 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
1134
1135         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
1136         We don't need a MonoMetadata pointer anymore to compare signatures in
1137         mono_metadata_signature_equal (), update callers.
1138         Reduced memory usage an number of allocations for MonoMethodHeader and
1139         MonoMethodSignature.
1140
1141 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
1142
1143         * metadata.c: added compare for szarray.
1144
1145 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1146
1147         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
1148         and add a couple more types to it and mono_defaults. Give an hint on
1149         classes that need implementing in our corlib and are referenced
1150         in mscorlib.
1151
1152 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
1153
1154         * class.h, class.c: keep track if a class is also an Enum.
1155         * loader.c: Implement a couple more types for use in libffi
1156         marshalling. Gives better diagnostics when failing to dlopen
1157         a library. Set method->klass for P/Invoke methods, too.
1158
1159 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
1160
1161         * class.c, class.h: add a MonoType this_arg to MonoClass that
1162         represents a pointer to an object of the class' type that
1163         can be used by the interpreter and later the type cache.
1164         Add best guess alignment info for valuetype objects.
1165
1166 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
1167
1168         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
1169         into MonoType: one less level of indirection and allocation and
1170         simplifies quite a bit of code. Added cache for MonoTypes that are
1171         used frequently, so that we don't need to allocate them all the time.
1172
1173 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
1174
1175         * class.c (mono_class_create_from_typedef): System.Enum is also a
1176         value type, although it does not derive from System.ValueType
1177         (maybe a bug in the ms compiler?)
1178
1179         * metadata.c (mono_type_size): return the right size for value types
1180
1181         * loader.c (mono_get_method): only initialize method header if not abstract
1182
1183         * class.c (mono_class_from_mono_type): use mono_default values. 
1184
1185 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
1186
1187         * *: use MonoClass pointers instead of <type_tokens>
1188         
1189         * class.h: new flag: metadata_inited.
1190
1191         * class.c (mono_class_metadata_init): impl.
1192         (mono_class_instance_size): impl.
1193         (mono_class_data_size): impl.
1194
1195 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1196
1197         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
1198         MonoClass now has the name and name_space fields. 
1199         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
1200         mono_get_method () takes and optional MonoClass as argument.
1201         Removed mono_typedef_from_name() and added mono_class_token_from_name()
1202         instead that takes advantage of a map from class names to typedef
1203         tokens in MonoImage.
1204
1205 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
1206
1207         * metadata.c: zero is not a valid alignment boundary.
1208         Merge MONO_TYPE_VOID in default decoding code.
1209
1210 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
1211
1212         * image.h: merged MonoMetadata into MonoImage
1213
1214         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
1215         identify the type of elements.
1216
1217 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1218
1219         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
1220         * cil-coff.h: split MonoMSDOSHeader and add size info.
1221         * image.c: add some consistency checks.
1222         * metadata.c: fix row size computation: one programmer
1223         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
1224         add explanation for the locator routine.
1225         Fix decoding of size in method header.
1226         
1227 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
1228
1229         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
1230         (g_concat_dir_and_file): Bring g_concat_dir_and_file
1231         function from gnome-libs.  This uses the right path separator
1232         based on the OS, and also works around a bug in some systems where
1233         a double slash is not allowed. 
1234         (default_assembly_name_resolver): Use g_concat_dir_and_file
1235         (mono_assembly_open): ditto.
1236
1237 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
1238
1239         * metadata.c (mono_metadata_signature_equal): impl.
1240
1241         * *: void is now a realy MonoType (instead of using NULL)
1242         
1243         * metadata.c (do_mono_metadata_parse_type): use
1244         mono_metadata_parse_type to parse void value.
1245
1246 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
1247
1248         * metadata.c, metadata.h: in the signature and method header store
1249         only the space required for holding the loca vars and incoming arguments.
1250
1251 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
1252
1253         * metadata.c (do_mono_metadata_parse_type): treat void like any
1254         other type (instead of assigning NULL);
1255
1256 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
1257
1258         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
1259
1260 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
1261
1262         * image.c (do_mono_image_open): added a cache for arrays.
1263
1264 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1265
1266         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
1267         decode a single column from a row in a metadata table and changes
1268         to take advantage of it in the typedef locator (gives a nice speed up).
1269         Store offset info for function params.
1270
1271 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
1272
1273         * image.h (MONO_IMAGE_IS_CORLIB): removed 
1274
1275 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
1276
1277         * assembly.c: how could mono_assembly_close () had ever worked?
1278         * metadata.c, metadata.h: provide offset info for local vars.
1279         Implement mono_type_size () to take care of alignment as well
1280         as size (it was mono_field_type_size in cli/class.c before).
1281
1282 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
1283
1284         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
1285
1286         * assembly.h (CORLIB_NAME): set to corlib.dll
1287
1288         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
1289
1290 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1291
1292         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
1293         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
1294         tokentype.h: massive namespace cleanup.
1295
1296 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1297
1298         * metadata.h, metadata.c: decode exception clauses when parsing method header.
1299
1300 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
1301
1302         * metadata.c (mono_metadata_free_type): added check for type !=
1303         NULL (void) before calling mono_metadata_free_type()
1304
1305 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1306
1307         * metadata.h, row_indexes.h: added header with enumerations to use
1308         to index in the columns from tables in metadata and to decode coded
1309         tokens: we should start using this instead of embedding magic numbers
1310         all over the code.
1311
1312 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
1313
1314         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
1315         Move metadata_t info from cli_image_info_t to MonoImage, where
1316         it's easily accessible. Changed all the uses accordingly.
1317         Added the method and class caches to MonoImage.
1318         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
1319         and mono_metadata_decode_value () signature to be more consistent
1320         with the other parse functions (and simplify code). Taken advantage
1321         of zero-length array allocation with GCC. Removed reduntant (and
1322         wrong) MonoFieldType struct and use MonoParam instead. Changed
1323         mono_metadata_parse_field_type () to use common code for parsing.
1324         Added mono_metadata_typedef_from_field () and
1325         mono_metadata_typedef_from_method () to lookup a typedef index from a
1326         field or method token.
1327         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
1328
1329 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
1330
1331         * metadata.c (mono_metadata_parse_field_type): Implement. 
1332         (do_mono_metadata_parse_type): Split engine from
1333         mono_metadata_parse_type, so that we can create smaller structures
1334         for things that just have one pointer to the MonoType (look at
1335         the MonoFieldType)
1336
1337 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
1338
1339         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
1340         as Jan Gray found out, it is incorrect. 
1341
1342 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
1343
1344         * assembly.c: Implement asssembly loading.  This loads an image
1345         and loads all the referenced assemblies.  Come to think of it, we
1346         could always do lazy loading of the assemblies. 
1347
1348         * image.c (mono_image_open): Keep loaded images in a hashtable.
1349
1350         * image.h (MonoImage): Add reference count.
1351
1352 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
1353
1354         * assembly.c (mono_assembly_open): Keep track of the file name in
1355         case the assembly has no ASSEMBLY table.
1356
1357         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
1358         from get.c here.
1359
1360 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1361
1362         * metadata.c, metadata.h: decode local vars in method header
1363         parse function. Change callers accordingly.
1364
1365 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
1366
1367         * metadata.h, cil-coff.h: protect against multiple inclusion.
1368         Added some new structures to hold information decoded from metadata:
1369         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
1370         and relevant decoding/free functions.
1371         * metadata.c: implement decoding functions. Add warning for out of bounds
1372         index in mono_metadata_locate(). Implement mono_get_method () to retreive
1373         all the info about a method signature and invocation. Remove check on
1374         uninitialized local var in parse_mh() and fix memory leak.
1375
1376 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
1377
1378         * metadata.h: More macros.
1379
1380         * tokentype.h: New file.
1381
1382 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
1383
1384         * assembly.c: added a consistency check and initialize
1385         some structures with g_new0().
1386         * metadata.c: fixed a couple more bugs in table size computation
1387         and add other checks for out-of bound access to metadata.
1388
1389 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
1390
1391         * metatada.c: fix bugs computing table sizes. Spew a
1392         warning when index in string heap is out of bounds.
1393
1394 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
1395
1396         * metadata.h: Add a couple of macros to manipulate tokens. 
1397
1398 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1399
1400         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
1401         cli_section_tables).
1402
1403 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
1404
1405         * metadata.c (mono_metadata_user_string): New function, provides
1406         access to the UserString heap. 
1407
1408 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
1409
1410         * metadata.c: Add inline documentation.
1411
1412 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
1413
1414         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
1415         files. 
1416
1417 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
1418
1419         * typeattr.h: New file, TypeAttribute flags. 
1420
1421 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
1422
1423         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
1424         mono_assembly_ensure_section): Section loading code.
1425         (load_section_tables): Load the sections.
1426
1427         * mono/metadata/metadata.c (mono_metadata_locate_token,
1428         mono_metadata_locate): Functions to locate the information
1429         definition given a token or a table and an index.
1430         (mono_metadata_compute_table_bases): New.
1431         (compute_size): New function to compute the sizes of the various
1432         tables.
1433
1434         * mono/metadata/metadata.h: Finish listing the different index
1435         types. 
1436
1437         * mono/metadata/pedump.c: Improve to dump new information.
1438
1439 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
1440
1441         * mono/metadata/metadata.c: Entered all the tables matching
1442         Beta2. 
1443
1444         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
1445