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