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