80224de470c3d8c95d2ce410cd72f503a5c0037f
[mono.git] / mono / metadata / ChangeLog
1
2 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
3
4         * gc.c: fix weakreferences.
5
6 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
7
8         * icall.c: added icall to get default codepage.
9
10 2002-09-03  Dick Porter  <dick@ximian.com>
11
12         * threads.h: 
13         * threads.c: Use MonoThread instead of MonoObject where
14         apropriate.
15
16         Store running thread objects in a hash table, so that we have all
17         the info to hand when waiting for them to finish
18         (means we don't need OpenThread() any more, so mingw builds should
19         be fully functional again.)
20
21         * verify.c:
22         * object.h: Added thread ID to MonoThread
23
24 2002-09-03  Martin Baulig  <martin@gnome.org>
25
26         * icall.c (System.Reflection.Assembly::get_location): New interncall.
27
28 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29
30         * icall.c: fixed leak in get_temp_path. Thanks lupus.
31
32 2002-09-03  Martin Baulig  <martin@gnome.org>
33
34         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
35         argument to store the end address of the disassembled instruction.
36
37         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
38         here from debug-symfile.h.
39         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
40         JIT into this struct.
41         (MonoSymbolFile): Added `char *image_file' field.
42         (MonoDebugGetMethodFunc): Removed.
43         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
44         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
45         (mono_debug_find_method): New method.
46
47         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
48         create a full symbol file.
49         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
50         and static symbol files.
51         (mono_debug_find_method): The symbol file keeps an internal method hash,
52         call this to get a MonoDebugMethodInfo from a MonoMethod.
53
54         * debug-symfile.[ch]: Removed.
55
56 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
57
58         * image.c (do_mono_image_open): Remove linker version check.
59
60 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
61
62         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
63         wrappers for instance methods.
64         
65 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
66
67         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
68
69 2002-08-28  Dick Porter  <dick@ximian.com>
70
71         * Makefile.am: Export HOST_CC for w32 builds
72
73 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
74
75         * file-io.c process.c: MonoString are null terminated, no
76         need for mono_string_to_utf16() anymore.
77
78 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
79
80         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
81
82 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
83
84         * icall.c, reflection.h: speedup System.MonoType.
85
86 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
87
88         * reflection.c: allow null as the value of a string argument in
89         custom attributes constructors.
90
91 2002-08-27  Martin Baulig  <martin@gnome.org>
92
93         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
94         `trampoline_address' field.
95
96 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
97
98         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
99         check (fixes bug #29486) 
100
101 2002-08-27  Martin Baulig  <martin@gnome.org>
102
103         * debug-mono-symfile.c: Changed the file format in a way that allows us
104         open it read-only and to use a specially malloced area for all the
105         dynamic data.  We can now also generate a symbol file on-the-fly if we're
106         debugging IL code and there is no MCS generated symbol file for it.
107
108 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
109
110         * object.c: added a define for a good string and array
111         creation speedup (not enabled by default because we need to deal with
112         the synch stuff).
113
114 2002-08-26  Martin Baulig  <martin@gnome.org>
115
116         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
117         function to create a dynamic symbol file.  This is used by the
118         debugger to create a symbol file for IL code on-the-fly.
119
120 2002-08-26  Martin Baulig  <martin@gnome.org>
121
122         * loader.c (mono_lookup_pinvoke_call): Include the error message
123         from g_module_error() in the error message.
124
125 2002-08-24  Martin Baulig  <martin@gnome.org>
126
127         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
128         function to update the symbol file.  The symbol file is mmap()ed
129         writable, but private.  This allows us to install the symbol file
130         together with the assembly.
131
132 2002-08-24  Martin Baulig  <martin@gnome.org>
133
134         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
135         but they can read the new symbol file format which mcs is now creating.
136
137         * debug-symfile.c (mono_debug_find_source_location): Moved to
138         debug-mono-symfile.c; this is now operating on the new symbol file.
139
140 2002-08-23  Martin Baulig  <martin@gnome.org>
141
142         * debug-helpers.c (mono_method_desc_from_method): New function to get
143         a MonoMethodDesc from a MonoMethod.
144
145 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
146
147         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
148         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
149
150 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
151
152         * string-icalls.[ch]: make helper methods static.
153
154 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
155
156         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
157         types to it and to SetValueInternal.
158
159         * object.c: Moved handle_enum label to its proper place. This was the
160         f... bug! ;-)
161
162         This time i compiled mcs and gtk-sharp and they both work.
163
164 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
165
166         * icall.c: reverted partially my previous patch until 
167         object.c:set_value handles enums correcly.
168
169 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
170
171         * icall.c:
172         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
173         (ves_icall_System_Environment_get_MachineName): removed warning when
174         compiling under cygwin.
175
176 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
177
178         * object.c: fixed field_get_value() for reference types.
179
180 2002-08-22  Dick Porter  <dick@ximian.com>
181
182         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
183         Don't free a buffer while it's still needed.  Patch from Jonathan
184         Liger <Jonathan.liger@wanadoo.fr>
185
186 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
187
188         * icall.c (ves_icall_System_Environment_get_Platform): Add new
189         internal call.
190
191 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
192
193         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
194         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
195
196         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
197         we call unmanaged code which throws exceptions.
198
199 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
200
201         * appdomain.h: added per-domain entry_assembly.
202         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
203         arguments.
204         * icall.c: Assembly::GetEntryAssembly icall.
205         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
206         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
207
208 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
209
210         * appdomain.h, gc.c: added mono_domain_finalize ().
211
212 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
213
214         * object.c:
215         (mono_print_unhandled_exception): changed g_warning by g_printerr
216         because g_log has a 1024 characters limit (yeah, i got a big stack
217         trace). Don't print exception name, that should be in ToString 
218         returned string.
219
220 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
221
222         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
223         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
224
225 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
226
227         * object.c:
228         (mono_print_unhandled_exception): after previous commit, i realized
229         that MS calls ToString on the exception. I changed this function to
230         do that. This way we get stack_trace for free.
231
232 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
233
234         * object.c:
235         (mono_print_unhandled_exception): invoke Message property instead of
236         getting 'message' field from Exception. Don't allocate memory for
237         'trace' and 'message' if not needed.
238
239 2002-08-18  Dick Porter  <dick@ximian.com>
240
241         * unicode.c: Fix asserts to match Encoder.cs checks
242
243 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
244
245         * marshal.c: fix unaligned store issue and a few wrong
246         opcode argument types.
247
248 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
249
250         * icall.c: added GetUninitializedObjectInternal internal call.
251
252 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
253
254         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
255         to the right domain.
256
257 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
258
259         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
260
261         * class.c (class_compute_field_layout): set blittable to false for Strings
262
263         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
264
265 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
266
267         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
268         first chunk of code to create types at runtime. Code to
269         handle ReflectedType/DeclaringType. Make reflection handles
270         domain specific.
271
272 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
273
274         * class.c: set correct name in arrays.
275
276 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
277
278         * appdomain.c (mono_domain_transfer_object): make it work with
279         valuetypes. bug fixes.
280
281 2002-08-12  Dick Porter  <dick@ximian.com>
282
283         * object.h: Rename some parameters to avoid c++ keywords (Patch
284         from Joseph Wenninger <kde@jowenn.at>)
285
286 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
287
288         * icall.c: added icall to implement Assembly.GetFile*.
289
290 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
291
292         * reflection.h, reflection.c: code to embed managed resources.
293
294 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
295
296         * class.c: move all the type size stuff into
297         class_compute_field_layout().
298
299 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
300
301         * class.c: ensure enums have always the correct instance size.
302         * unicode.c: remove wrong assert.
303
304 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
305
306         * assembly.c: fix mem corruption issue.
307         * image.h, image.c: added mono_image_get_resource () to access
308         managed resources.
309         * icall.c: implemented Assembly.EntryPoint property and some
310         Managed Resources related internalcalls.
311
312
313 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
314
315         * image.c, image.h: impemented mono_image_get_entry_point ().
316         * appdomain.c: use mono_image_get_entry_point.
317
318 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
319
320         * reflection.c: support the object type argument when loading
321         custom attributes.
322
323 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
324
325         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
326         String as return type.
327
328 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
329
330         * reflection.c: fix encoding of named args for custom attrs to match
331         the ms implementation. Read them back when instantiating custom
332         attributes.
333
334 2002-08-02  Radek Doulik  <rodo@ximian.com>
335
336         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
337         by Dietmar as quick fix
338         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
339         16 as stack size, used on more places as quick fix before Dietmar
340         will fix it properly
341
342 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
343
344         * object.h, object.c: added accessors for fields and properties.
345
346 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
347
348         * class.c, class.h: made mono_class_get_field_from_name ()
349         loop on parent types.
350         Added mono_class_get_property_from_name ().
351
352 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
353
354         * class.c, class.h: move the code to setup the type vtable in its own
355         function so that it can be reused also for types created at runtime.
356         Eliminate the "class" identifier from the header file.
357         * reflection.c: setup the vtable for enums so that we can create
358         objects for use in SetConstant ().
359
360 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
361
362         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
363         instead of the delegate itself as this pointer (bug #28383)
364
365 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
366
367         * marshal.c (mono_marshal_get_managed_wrapper): added return type
368         conversions.
369
370 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
371
372         * loader.c: don't set the pinvoke bit on icalls.
373
374 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
375
376         * debug-helpers.c (mono_method_full_name): only print a number to
377         indicate wrapper type (so that the output is more readable in traces).
378
379 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
380
381         * class.c (mono_class_init): include method override patch from Paolo
382
383 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
384
385         * icall.c: fixed GetTypeCode().
386
387 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
388
389         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
390         use real delegate invoke function to make it work with multicast
391         delegates (fix bug# 28291).
392
393 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
394
395         * object.c: load constant strings.
396
397 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
398
399         * reflection.c: no magic numbers.
400         * tabledefs.h: security action enum.
401
402 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
403
404         * assembly.c: fix possible memory corruption.
405
406 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
407
408         * reflection.h, reflection.c: added support for linking resources.
409         * verify.c: check we have an updated corlib.
410
411 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
412
413         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
414         string arrays.
415         (mono_marshal_string_array): null terminate unmanaged string arrays.
416         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
417
418 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
419
420         * icall.c: Type.GetType () can now return also types from the
421         calling assembly.
422
423 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
424
425         * loader.h, loader.c: stack walking support.
426         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
427         GetCallingAssembly.
428
429 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
430
431         * marshal.c: added optimisations for blittable types 
432
433         * class.c (mono_array_class_get): do not set blittable attribute on arrays
434         (mono_class_setup_mono_type): set blittable attribute for single
435         and double.
436
437         * marshal.c (mono_string_utf8_to_builder): impl.
438         (mono_string_builder_to_utf8): impl.
439         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
440
441 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
442
443         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
444         (mono_marshal_get_managed_wrapper): impl. byref types
445
446 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
447
448         * icall.c:
449         (search_method): don't display debug message. 
450
451 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
452
453         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
454
455 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
456
457         * appdomain.c: set the missing filename when throwing exception.
458
459 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
460
461         * metadata.c (mono_type_size): code cleanup
462         (mono_type_stack_size): removed some test code
463
464 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
465
466         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
467         mono_get_exception_file_not_found now.
468
469         * exception.c (mono_exception_from_name_two_strings): New version
470         that will call a constructor with two string arguments. 
471         (mono_get_exception_file_not_found): New helper routine, used to
472         report file-not-found errors.
473
474 2002-07-20  Dick Porter  <dick@ximian.com>
475
476         * process.h:
477         * process.c: Pass file handles to CreateProcess
478         
479         * icall.c:
480         * file-io.h:
481         * file-io.c: Implemented CreatePipe
482
483 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
484
485         * metadata.c (mono_get_param_info): set alignment for value types
486
487 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
488
489         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
490         Constify mono_domain_assembly_open().
491         * loader.c: handle null namespace in icalls.
492
493 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
494
495         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
496         (emit_str_to_ptr_conv): marshal object as structs
497
498         * metadata.c (mono_type_to_unmanaged): marshal object as structs
499
500         * marshal.c (mono_marshal_get_runtime_invoke): support value types
501
502 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
503
504         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
505         (mono_marshal_get_native_wrapper): we an now return value types
506
507 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
508
509         * verify.c: more checks implemented.
510
511 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
512
513         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
514         (fix bug #27695)
515         (mono_marshal_get_native_wrapper): allow byref arguments
516         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
517         impl. PtrToStringXXX methods
518         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
519         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
520         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
521         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
522         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
523
524 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
525
526         * reflection.c: fix buglet in parsing an assembly name.
527
528 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
529
530         * marshal.c (emit_ptr_to_str_conv): first impl.
531
532 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
533
534         * object.c, class.h: cache the vtable in the class as suggested by
535         vargaz@freemail.hu (Zoltan Varga).
536
537 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
538
539         * class.h, loader.c: added mono_field_from_token().
540         * verify.c: first cut of type checking code.
541
542 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
543
544         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
545
546 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
547
548         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
549         (fix bug #27782)
550         (mono_marshal_get_remoting_invoke): impl.
551         (mono_delegate_begin_invoke): impl.
552         (mono_mb_emit_save_args): impl.
553         (mono_delegate_end_invoke): impl.
554         (mono_marshal_get_delegate_begin_invoke):
555         (mono_marshal_get_delegate_end_invoke):
556         (mono_marshal_get_delegate_invoke): generate a special name for
557         those methods (including the signature) and associate them whith
558         the delegate class. 
559
560 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
561
562         * reflection.[ch]: 
563         (mono_reflection_type_from_name): now it has a MonoImage parameter
564         which is used as the default image to search the type in. If the image
565         is NULL or getting the type from it fails, it defaults to corlib.
566
567         * icall.c: changed 1 call to mono_reflection_type_from_name to match
568         new parameter.
569
570 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
571
572         * reflection.c: update the parameter table index.
573
574 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
575
576         * domain.c: don't include the mark byte in the string hash.
577
578 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
579
580         * icall.cs: icall for Type.GetTypeCode ().
581         * verify: a couple of fixes and disabled local initialization checks.
582
583 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
584
585         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
586
587         * debug-helpers.c (mono_method_full_name): print the type of the
588         runtime wrapper
589
590         * metadata.c (mono_signature_hash): a hash function for signatures
591         (mono_signature_hash): better hash algorithm
592
593         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
594
595         * debug-helpers.c (mono_method_full_name): this can now generate
596         method names with signatures
597
598         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
599         method dont have this pointers.
600
601 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
602
603         * reflection.c: fixup typebuilder tokens.
604         * image.c: fix buglet.
605         * marshal.h: remove whitespace.
606         * metadata.h, metadata.c: reinstate code that was removed.
607         * verify.c: handle catch directives and fix another couple of bugs.
608
609 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
610
611         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
612         (mono_marshal_get_native_wrapper): make it comp. with the old code
613         (mono_marshal_get_native_wrapper): support boolean
614         (mono_marshal_get_managed_wrapper): support more types
615
616 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
617
618         * class.c (class_compute_field_layout): compute class->blittable attribute.
619
620 2002-07-09  Dick Porter  <dick@ximian.com>
621
622         * threads.c: Make the thread cleaning up cope with threads that
623         call ExitThread()
624
625 2002-07-08  Radek Doulik  <rodo@ximian.com>
626
627         * reflection.c (method_encode_code): use non-translated values to
628         compute finally_start, this fixes exception handling on ppc, yay!
629
630         * decimal.h (struct signscale): fix endianess
631
632 2002-07-07  Radek Doulik  <rodo@ximian.com>
633
634         * reflection.c: swap box_val and not val
635
636 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
637
638         * reflection.c, reflection.h: handle full assembly info in type name.
639         Handle Type arguments when loading custom attributes.
640         * icall.c: updated to use new mono_reflection_type_from_name () method.
641
642 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
643
644         * loader.c:
645         (method_from_memberref): also print assembly name when method not found.
646
647 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
648
649         * icall.c:
650         (ves_icall_TypeGetProperties): fixed bug #27473. 
651
652 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
653
654         * reflection.c: display image name and token when cannot find the
655         .ctor for an attribute.
656
657 2002-07-05  Martin Baulig  <martin@gnome.org>
658
659         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
660
661 2002-07-04  Dick Porter  <dick@ximian.com>
662
663         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
664         compile on mingw.  This will cause mingw builds to not wait for
665         subthreads to terminate after the main thread does.  I've lodged a
666         bug with the mingw developers for them to wrap OpenThread().
667
668 2002-07-03  Dick Porter  <dick@ximian.com>
669
670         * threads.c: Store thread IDs instead of handles, because
671         GetCurrentThread() returns a pseudohandle and therefore stores
672         useless values.  mono_thread_cleanup() continues checking the
673         array of threads until it is empty, to cope with subthreads
674         spawning new threads after the main thread has finished.
675
676         * profiler.h:
677         * profiler.c:
678         * profiler-private.h: Pass the thread ID to thread profiler
679         functions, instead of a handle
680
681 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
682
683         * verify.c: fixes to make it more usable.
684         * pedump.c: added --verify code to verify IL code in an assembly.
685
686 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
687
688         * reflection.c: turn errors into warnings to allow compiling corlib.
689
690 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
691
692         * reflection.c: add special cases to compile corlib.
693
694 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
695
696         * reflection.c: handle properties with only a set method.
697
698 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
699
700         * opcodes.h: add enum with opcodes in opval order.
701
702 2002-07-01  Dick Porter  <dick@ximian.com>
703         
704         * object.h:
705         * object.c (mono_runtime_run_main): Removed unneeded argument
706
707 2002-06-28  Martin Baulig  <martin@gnome.org>
708
709         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
710
711 2002-06-27  Dick Porter  <dick@ximian.com>
712
713         * threads.c: Store the handle in both the parent thread and in the
714         subthread, to minimise the time between starting a new thread and
715         storing its ID.
716
717 2002-06-26  Dick Porter  <dick@ximian.com>
718
719         * appdomain.c (mono_runtime_cleanup): Close the socket library
720         after all the threads have finished, not before
721
722 2002-06-26  Martin Baulig  <martin@gnome.org>
723
724         * debug-symfile.c (mono_debug_find_source_location): Added
725         `guint32 *line_number' argument.  If it's not NULL, store the line number
726         there and return the file name without the line number.
727
728 2002-06-25  Dick Porter  <dick@ximian.com>
729
730         * icall.c:
731         * process.h:
732         * process.c: Process forking and other support functions
733
734 2002-06-25  Dick Porter  <dick@ximian.com>
735
736         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
737         things dont happen when the image is closed.
738         (mono_image_lookup_resource): Walk the resource section looking
739         for a particular entry
740
741         * cil-coff.h: PE resource section decoding
742
743 2002-06-25  Dick Porter  <dick@ximian.com>
744         
745         * assembly.h:
746         * assembly.c: 
747         (mono_assembly_foreach): Accessor functions to walk the list of
748         loaded assemblies
749         (mono_assembly_set_main):
750         (mono_assembly_get_main): Process methods need to know which
751         assembly is the "main" one
752
753         * object.c (mono_runtime_run_main): Record the main assembly
754
755         * debug-helpers.c: Fix typo
756
757 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
758
759         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
760         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
761
762 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
763
764         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
765
766 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
767
768         * image.c (do_mono_image_open): Initialize reference count,
769         otherwise we leak the MonoImage.
770
771 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
772
773         * reflection.c: small tweak to handle self-hosting.
774
775 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
776
777         * reflection.c: fix type name parse code.
778
779 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
780
781         * reflection.c: break out of the loop.
782         * image.c: special case corlib.
783
784 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
785
786         * reflection.c: add all the custom attrs at the end to ensure the
787         ctors have been properly initialized when the attributes are defined
788         in the current assembly.
789
790 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
791
792         * reflection.c: handle correctly multiple-nested types.
793
794 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
795
796         * row-indexes.h: fix typos.
797         * reflection.c: adjust for typos and fix method_def_or_ref
798         encoding in MethodImpl table.
799
800 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
801
802         * reflection.c: fix entry point patching (thanks Serge!).
803
804 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
805
806         * verify.c: add check for System.Exception
807
808 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
809
810         * image.c, class.c: minifix for code just c&p'ed.
811         * reflection.c: warning fix.
812         * object.h, loader.h, domain.c: load also StringBuilder.
813
814 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
815
816         * marshal.h, marshal.c: some support code to handle complex marshaling.
817
818 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
819
820         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
821         Better signatures with vtable error dump.
822
823 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
824
825         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
826
827 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
828
829         * icall.c (ves_icall_Type_GetField): impl.
830
831 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
832
833         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
834         to retrieve a marshal description blob for a field or param.
835
836 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
837
838         * reflection.h, reflection.c: change order of nested type emission
839         to avoid table corruption. The NestedTypes table is sorted.
840         * icall.c: change order of GetConstructor results to workaround mcs bug.
841
842 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
843
844         * reflection.h, reflection.c: handle field and param marshal
845         information.
846
847 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
848
849         * icall.c, marshal.c marshal.h: more Marshal class implementation.
850
851 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
852
853         * reflection.c: fix call convention.
854
855 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
856
857         * reflection.h, reflection.c: mono_image_get_memberref_token()
858         takes a type instead of a class, now. Added
859         mono_image_get_array_token() to create tokens for the special
860         multi-dim array methods.
861
862 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
863
864         * assembly.c: handle modules (no assembly table). Split
865         loading references in its own function.
866         * class.c: handle moduleref resolution scope.
867         * image.c, image.h: cache module name in image.
868
869 2002-06-07  Martin Baulig  <martin@gnome.org>
870
871         * reflection.c (mono_image_get_type_info): Only add a class layout entry
872         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
873
874 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
875
876         * icall.c: more signature fixes that used uint instead of int.
877
878 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
879
880         * reflection.c: fixed signature of field refs.
881
882 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
883
884         * class.c, reflection.c: handle typerefs of nested types
885         (both on read and when writing files).
886
887 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
888
889         * icall.c: fix method signatures that tried to workaround the previous
890         typo, d'oh!
891
892 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
893
894         * debug-helpers.c: fix typo.
895
896 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
897
898         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
899         rewrote the PE/COFF writing code (our programs are understood by the
900         ms runtime, now).
901
902 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
903
904         * gc.c, gc.h, icall.c: weakreference support.
905
906 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
907
908         * Makefile.am, mono-config.c: use $(sysconfdir).
909
910 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
911
912         * icall.c: changed default precision of Double.ToString() to 15.
913         Fixed memory leak. Unified with Single.ToString.
914
915 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
916
917         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
918
919 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
920
921         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
922         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
923         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
924         and myself.
925
926 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
927
928         * debug-symfile.c, sysmath.c: yet more compilation fixes.
929
930 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
931
932         * reflection.c, socket-io.c: more compilation fixes.
933
934 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
935
936         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
937         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
938         unicode.c: warning and compiler compatibility fixes.
939
940 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
941
942         * class.h, metadata.c: fixed warnings/compilation errors.
943
944 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
945
946         * Makefile.am, mono-config.c, mono-config.h: configuration file
947         support routines.
948         * loader.c, loader.h: make Dll mapping configurable at runtime in the
949         config file. Export methods to insert and lookup mappings.
950
951 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
952
953         * reflection.c: handle types and boxed objects in custom attr
954         constructors.
955
956 2002-05-30  Martin Baulig  <martin@gnome.org>
957
958         * debug-symfile.c
959         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
960
961 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
962
963         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
964         to lookup the implmap row for a P/Invoke method.
965         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
966         P/Invoke method from the runtime on an as needed basis.
967
968 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
969
970         * metadata.c (mono_metadata_parse_signature): impl.
971
972 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
973
974         * class.c: handle .pack directive.
975
976 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
977
978         * object.c: initialize static fields with RVA data.
979
980 2002-05-25  Martin Baulig  <martin@gnome.org>
981
982         * debug-symfile.c
983         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
984
985 2002-05-24  Martin Baulig  <martin@gnome.org>
986
987         * debug-symfile.c
988         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
989         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
990         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
991
992 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
993
994         * object.c: special case string ctros in invoke.
995         * gc.c: silly whitespace changes.
996
997 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
998
999         * threadpool.[ch]: impl. a threadpool that can
1000         be used by mint and mono.
1001
1002 2002-05-22  Martin Baulig  <martin@gnome.org>
1003
1004         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
1005         The first argument is now a `MonoReflectionModuleBuilder *', the return
1006         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
1007         `methods' field to get the method builder.  The `token' argument is the
1008         unfixed token.
1009
1010         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
1011         invalid characters instead of g_assert_not_reached()ing.  This seems
1012         to be the behaviour of mscorlib.
1013
1014 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
1015
1016         * object.c (mono_runtime_invoke_array): applied patch from Rachel
1017         Hestilow to fix bug #25104
1018
1019 2002-05-21  Martin Baulig  <martin@gnome.org>
1020
1021         * debug-symfile.c (mono_debug_find_source_location): New function.
1022         Looks up an IL offset in the line number table and returns the source
1023         location as a string.
1024
1025 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1026
1027         * icall.c:
1028         (mono_double_ToStringImpl): changed %f by %g until we have something
1029         better.
1030
1031 2002-05-21  Nick Drochak  <ndrochak@gol.com>
1032
1033         * icall.c : Use different name for Math.Pow's icall.  Needed to check
1034         parameters first in C#.
1035
1036 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
1037
1038         * icall.c, reflection.h: added icall to get info about an event.
1039
1040 2002-05-20  Radek Doulik  <rodo@ximian.com>
1041
1042         * object.c (mono_value_box): don't use memcpy for boxing on BIG
1043         endian
1044         (mono_value_box): don't use memcpy for small sizes on
1045         architectures with unaligned access
1046
1047 2002-05-20  Martin Baulig  <martin@gnome.org>
1048
1049         * reflection.c (mono_reflection_setup_internal_class): Don't crash
1050         if `tb->parent == NULL'.
1051         (mono_reflection_create_internal_class): New function.  This is
1052         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
1053         for enum types.
1054
1055         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
1056         New interncall.
1057
1058 2002-05-19  Martin Baulig  <martin@gnome.org>
1059
1060         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
1061         argument to get the length, don't default to the array length.
1062
1063 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
1064
1065         * assembly.c (mono_assembly_setrootdir): New function used to
1066         override the MONO_ASSEMBLIES directory.
1067
1068 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
1069
1070         * icall.c: ValueType_GetHashCode() initialize local var.
1071
1072 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
1073
1074         * reflection.c: sort custom attributes table.
1075
1076 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
1077
1078         * reflection.c: support named args in custom attributes (write support).
1079
1080 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
1081
1082         * reflection.c: fix finally position calculation.
1083
1084 2002-05-15  Radek Doulik  <rodo@ximian.com>
1085
1086         * reflection.c: fixed endianess at many places
1087
1088         * icall.c (ves_icall_InitializeArray): comment out debug msg
1089
1090 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
1091
1092         * object.c (mono_unhandled_exception): new function to handle
1093         unhandled exceptions.
1094         (mono_unhandled_exception): call the UnhandledException event.
1095         (mono_runtime_delegate_invoke): impl.
1096
1097 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
1098
1099         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
1100         returns the RVA, not the direct pointer to the data. Handle the case
1101         when the class size is fixed.
1102
1103 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
1104
1105         * reflection.c: fix some endianess issues.
1106
1107 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
1108
1109         * object.c (mono_runtime_invoke): is now able to catch exceptions.
1110
1111         * threads.c (mono_thread_init): added a callback which is invoked
1112         at thread start.
1113
1114 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
1115         
1116         * icall.c: make GetHashCode return non-negative values.
1117
1118 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
1119
1120         * object.c, icall.c, gc.c: revert to address-based hashcode.
1121
1122 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
1123
1124         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
1125
1126 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
1127
1128         * icall.c, class.c: special case <Module>.
1129
1130 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
1131
1132         * icall.c: fix bug in GetNow().
1133
1134 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
1135
1136         * object.c (mono_runtime_class_init): make sure that we call all
1137         static class constructors.
1138
1139 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1140
1141         * reflection.c: sort methodsemantics table.
1142
1143 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
1144
1145         * reflection.h, reflection.c: honour init locals setting.
1146
1147 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
1148
1149         * icall.c: copied Double ToStringImpl for Single ToStringImpl
1150
1151 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
1152
1153         * reflection.c: support ContructorBuilders in attribute blob creation.
1154
1155 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1156
1157         * reflection.c: some changes to build a binary that can be run
1158         directly in windows.
1159
1160 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
1161
1162         * loader.c: print a big message when an icall can't be found.
1163
1164 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1165
1166         * string-icalls.c: fix bug 24248.
1167
1168 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
1169
1170         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
1171         icall.c, reflection.h: separate assembly loading by pathname and by
1172         assembly name. Use the MONO_PATH env var to search for assemblies.
1173
1174 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
1175
1176         * assembly.c, image.h: add some support for assemblies
1177         with multiple modules.
1178         * class.c, class.h: export mono_class_from_typeref().
1179         * loader.c: remove duplicated code and use mono_class_from_typeref(),
1180         instead.
1181
1182 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
1183
1184         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
1185         documentation says (the ECMA one is correct).
1186
1187 2002-05-02  Dick Porter  <dick@ximian.com>
1188
1189         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
1190         Don't name the synchronisation mutex.
1191
1192 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
1193
1194         * rand.c
1195         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
1196         Make the prototypes match.
1197         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
1198         Same.
1199
1200         * icall.c
1201         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
1202         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
1203         all systems have tm.tm_zone, so use strftime() with %Z to print
1204         the timezone abreviation into a temp string.
1205
1206         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
1207         rather than mono_array_addr() on a MonoString on Big Endian
1208         machines.
1209
1210 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
1211
1212         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
1213         fix bug 24041
1214
1215 2002-04-30  Dick Porter  <dick@ximian.com>
1216
1217         * socket-io.c: Cope with SOCKET being an integer rather than a
1218         pointer now.
1219
1220         * threads.c: Added Thread_free_internal, to deal with thread
1221         handle cleanup.  Moved calls to handle_store() and handle_remove()
1222         to start_wrapper(), so each can only be called once.  Allocate
1223         synchronisation blocks with GC_malloc(), and use GC finalisation
1224         to close the handles.
1225
1226         * icall.c: added System.Threading.Thread::Thread_free_internal
1227
1228 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
1229
1230         * icall.c: support Environment.Exit, CommandLineArgs().
1231
1232 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
1233
1234         * object.c, object.h: added mono_runtime_run_main () and
1235         mono_runtime_get_main_args () for use in System.Environment.
1236
1237 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
1238
1239         * gc.c: fix thinko, enable actual finalization since the jit is now
1240         fixed.
1241
1242 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
1243
1244         * gc.c, object.c: take into account that an object may be offset wrt the address
1245         returned by GC_malloc().
1246
1247 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
1248
1249         * image.c: handle files without entries in the assembly table (modules).
1250
1251 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
1252
1253         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
1254         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
1255         allowed to be null when it's System.Object class setup.
1256
1257 2002-04-27  Martin Baulig  <martin@gnome.org>
1258
1259         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
1260         if `tb->parent == NULL' rather than crashing.
1261
1262 2002-04-28  Nick Drochak  <ndrochak@gol.com>
1263
1264         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
1265         calling acos() where asin() should have been called.
1266
1267 2002-04-26  Martin Baulig  <martin@gnome.org>
1268
1269         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
1270         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
1271         there's a subdirectory called `System', but we don't want to read that
1272         subdirectory as an assembly.
1273
1274 2002-04-25  Martin Baulig  <martin@gnome.org>
1275
1276         * debug-symfile.c: Reflect latest MonoString changes.
1277
1278 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
1279
1280         * rand.c, rand.h: instance method icalls need to have an explicit
1281         this pointer as first argument in the C implementation.
1282
1283 2002-04-25  Nick Drochak <ndrochak@gol.com>
1284
1285         * icall.c: Fix typo in map for GetNonZeroBytes
1286
1287 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
1288
1289         * string-icalls.c : String does now passes unit tests without any 
1290         errors, the following changes has been made:
1291         
1292         Implemented replace methods.
1293         Renaming of methods to (try) follow the standard.
1294         Fixed compare ordinal
1295         Made all memory allocated directly to function instead of via icall function.
1296         Small performance fix in is_in_array function
1297                         
1298  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
1299
1300         c (mono_string_Internal_ctor_charp_int_int):
1301         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
1302         sindex < 0, throw ArgumentOutOfRangeException instead of
1303         ArgumentNullException.
1304
1305         Added new check for length == 0, however
1306         I need to make it return String.Empty from the C code.
1307         
1308         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
1309         that calculate the length for us here.
1310         
1311         (mono_string_Internal_ctor_sbytep_int_int): Replaced
1312         mono_string_new_utf16 with mono_string_new, since value is utf8.
1313
1314 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
1315
1316         * object.c: register the object for finalization if needed.
1317         Allocate one more char in the string for the terminating 0 char.
1318
1319 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
1320
1321         * class.c, class.h, image.c: check if a type implemenst a destructor.
1322         Use the proper key for array class lookups.
1323         * icall.c: register the icalls in the System.GC class.
1324         * gc.c, gc.h: GC-related functions and icalls.
1325
1326 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1327
1328         * icall.c:
1329         * socket-io.c:
1330         * unicode.c: free some strings gotten from mono_string_to_utf8 and
1331         changed a couple of free () by g_free ().
1332
1333         * decimal.c: one-liner in the comments for decimal2string ().
1334
1335 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
1336
1337         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
1338
1339 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
1340
1341         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
1342         * object.c (mono_runtime_invoke_array) : handle null in params
1343
1344 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
1345
1346         * string-icalls.c: fixed bug in split (one off bug)
1347
1348 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
1349
1350         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
1351         * icalls.c: added String::Equals as internal method
1352
1353 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
1354
1355         * threads.c: fixed bug in the double interlocked functions
1356
1357 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
1358
1359         * threads.c: implemented all of the new interlocked icalls.
1360         * string-icalls.c: fix a bug in insert.
1361         * icalls.c: added the icalls for interlocked, removed old string functions.
1362         
1363 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
1364
1365         * loader.c: fix off-by-one error when reading argument names.
1366
1367 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1368
1369         * profiler.c: win32 counter implementation (untested).
1370         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
1371         (the latter needs testing and more complete impl. from win32 folks).
1372
1373 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
1374
1375         * object.c: mono_array_new_full workaround mono_array_class_get
1376         problem.
1377
1378 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
1379
1380         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
1381         * object.h (mono_string_chars): Changed casting type.
1382
1383 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
1384
1385         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
1386                            method signatures to use gunichar2 instead of gint16.
1387
1388 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
1389
1390         * object.h, object.c: domain-specific versions of mono_object_new and
1391         mono_array_new.
1392
1393 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
1394
1395         * object.c: changed String layout
1396
1397         * string-icalls.c (mono_string_Internal_ctor_chara): added
1398         internal string constructors.
1399
1400 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
1401
1402         * threads.c: pass 'this' to the thread start routine.
1403
1404 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1405
1406         * string-icalls.c: fix IndexOf and LastIndexOf. Now
1407         InternalCompareStr don't call twice mono_string_cmp_char for the last
1408         character. Improved performance in mono_string_cmp_char.
1409
1410 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
1411
1412         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
1413         code into its own library: libmonoruntime.
1414
1415 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
1416
1417         * object.h, object.c: changed array format so that szarrays do not
1418         require a bounds structure.
1419         * icall.c, appdomain.c: support for new szarray format.
1420
1421 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
1422
1423         * metadata.c: compare also the retuns type when comparing signatures:
1424         we didn't do this as an optimization since really overloaded methods
1425         must differ also in the arguments, but this doesn't work with
1426         low-level IL code (or when using explicit conversion operators: see
1427         bug#23498 for an example).
1428
1429 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
1430
1431         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
1432
1433 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
1434
1435         * icall.c: make MonoType::GetElementType its own icall.
1436
1437 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
1438
1439         * icall.c: remove MonoMethod_get_Name().
1440         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
1441         object.
1442
1443 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
1444
1445         * string-icalls.c: optimized a few methods.
1446
1447 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
1448
1449         * icall.c: added all new string internal calls
1450         * string-icalls.c: added, new string internal call implementation.
1451         * object.c: added mono_string_new_size for allocating a string a size
1452
1453 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
1454
1455         * object.c (mono_object_isinst): use the same code as in the
1456         optimized x86 version.
1457
1458 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
1459
1460         * profiler.c: TSC-based timer code (faster and more accurate).
1461         Not hooked up in configure, yet (set USE_X86TSC to 1).
1462
1463 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
1464
1465         * profiler.c, profiler.h: track time spent compiling methods.
1466         * threads.c: track thread creation/destruction.
1467
1468 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
1469
1470         * profiler.c, profiler.h, profiler-private.h: profiling interface
1471         and sample implementation. Moved here so that it can be used also by
1472         the jit.
1473
1474 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
1475
1476         * reflection.c, reflection.h: keep types and other handles separate in
1477         the hash tables for referred tokens. Add guid for modules.
1478
1479 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
1480
1481         * assembly.c: fix bugs found with valgrind.
1482         * metadata.h, metadata.c: added mono_metadata_guid_heap().
1483
1484 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
1485
1486         * threads: added icall support for getting current domain for
1487                    the thread.
1488  
1489 2002-04-13  Martin Baulig  <martin@gnome.org>
1490
1491         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
1492         (MonoDebugVarInfo): Added `index' field for register based addresses.
1493         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
1494         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
1495         `MonoDebugVarInfo *params' and `guint32 this_offset' with
1496         `MonoDebugVarInfo *this_var'.
1497
1498         * debug-symfile.c (relocate_variable): New static function to write
1499         a location description for a local variable or method parameter.
1500
1501 2002-04-12  Martin Baulig  <martin@gnome.org>
1502
1503         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
1504         stack offset and begin/end scope address of a local variable.
1505         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
1506         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
1507         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
1508
1509         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
1510         Added new relocation types for start/end scope of a local variable.
1511
1512 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
1513
1514         * object.h: add mono_object_domain() macro.
1515         * reflection.c: handle typespecs.
1516         * icall.c: MonoMethod::get_Name() implementation.
1517
1518 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1519
1520         * icall.c: String::GetHashCode() icall implementation.
1521
1522 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
1523
1524         * icall.c: String::IndexOfAny icall.
1525         * object.c, object.h: make array->max_length more useful.
1526         Intrduced mono_object_class() and mono_string_length() macros.
1527
1528 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1529
1530         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
1531         instead of g_unichar_isdigit.
1532
1533 2002-04-11  Nick Drochak  <ndrochak@gol.com>
1534
1535         * icall.c: Implement a simple Double.ToString().
1536
1537 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
1538
1539         * appdomain.h: only io-layer.h is supposed to be included.
1540         * icall.c: explicitly import environ. Fix warning.
1541
1542 2002-04-10  Nick Drochak  <ndrochak@gol.com>
1543
1544         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
1545                 return true even if it's not Daylight Savings time.
1546                 Only return false for the case where the function isn't
1547                 implemented for a plaform (read Windows).
1548
1549 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
1550
1551         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
1552         data with a mutex.
1553
1554 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
1555
1556         * mempool.c (mono_mempool_alloc): only use g_malloc when
1557         absolutely necessary.
1558
1559 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
1560
1561         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
1562
1563         * class.c (mono_class_vtable): use domain mempool to allocate vtable
1564         (mono_class_proxy_vtable): use domain mempool
1565
1566 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
1567
1568         * appdomain.h, appdomain.c: split initialization that requires the
1569         execution engine support into mono_runtime_init().
1570
1571 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
1572
1573         * class.c (mono_class_init): don't include vtable inside MonoClass
1574         to save some memory, gather some statistics.
1575         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
1576
1577 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1578
1579         * icall.c: internalcall implementation for ValueType.Equals().
1580
1581 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
1582
1583         * object.c (mono_message_init): moved 
1584         (mono_runtime_exec_main): new arch. independent impl.
1585         (mono_runtime_invoke_array): new method - like
1586         mono_runtime_invoke, but you can pass an array of objects.
1587         (mono_remoting_invoke): new arch. independent impl.
1588         (mono_message_invoke): new arch. independent impl.
1589         (mono_runtime_class_init): new arch. independent impl.
1590         (mono_runtime_object_init): new arch. independent impl.
1591
1592 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1593
1594         * metadata.c, object.c, reflection.c: documented the exported
1595         functions.
1596
1597 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
1598
1599         * icall.c: simpler code to pass the assembly builder data to corlib.
1600         Implement GetNestedTypes() internalcall.
1601
1602 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1603
1604         * class.c: warn if a type can't be loaded.
1605
1606 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
1607
1608         * image.h: typedef MonoImageOpenStatus
1609         * types.h: removed unused file
1610         
1611 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
1612
1613         * icall.c: Enum_ToObject accepts enum value arguments.
1614
1615 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
1616
1617         * class.c: move initialization of properties, events and nested
1618         classes, so that they happen for interfaces, too.
1619
1620 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
1621
1622         * icall.c: cleanup some ugly casts in Array_SetValue*.
1623
1624 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
1625
1626         * icall.c: the values array fro enums is of the correct type, now.
1627         Implement (correctly) getFullName instead of assQualifiedName for
1628         MonoType.
1629         * reflection.h, reflection.c: added mono_type_get_name ().
1630
1631 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
1632
1633         * assembly.c, image.h: for each MonoImage, record from wich assembly
1634         it was loaded.
1635         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
1636         Make Type.Assembly work.
1637
1638 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
1639
1640         * debug-symfile.h: use char* instead of gpointer to avoid
1641         unnecessary casts.
1642
1643         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
1644
1645         * icall.c (ves_icall_InternalExecute): impl. FielSetter
1646         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
1647
1648 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
1649
1650         * icall.c (mono_message_init): impl. (code cleanup)
1651         (ves_icall_InternalExecute): impl. FieldGetter
1652
1653         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
1654         defined we call all (non-static)methods through the vtable. 
1655
1656 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
1657
1658         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
1659         finalizer even though the memory is still referenced (and the chunk of
1660         memory is not freed).
1661
1662 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1663
1664         * assembly.c: fix brokeness.
1665
1666 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1667
1668         * class.c: kill some warnings. Check explicit interface method
1669         implementation also without considering the namespace.
1670         Load also literal strings in static class data.
1671
1672 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
1673
1674         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
1675         (default_assembly_name_resolver): Make the resolver take the
1676         "base" directory where the assembly was originally defined, so we
1677         can load DLLs that are in the same directory as the assembly that
1678         is being referenced.
1679
1680 2002-03-28  Dick Porter  <dick@ximian.com>
1681
1682         * file-io.h: 
1683         * file-io.c:
1684         * socket-io.c: 
1685         * unicode.h: 
1686         * unicode.c: Warning cleanups
1687
1688 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
1689
1690         * object.h, reflection.h: use the correct type instead of MonoObject.
1691
1692 2002-03-28  Martin Baulig  <martin@gnome.org>
1693
1694         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
1695         (mono_debug_update_symbol_file): Initialize classes if necessary.
1696
1697 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
1698
1699         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
1700         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
1701
1702 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
1703
1704         * assembly.h: fix function prototype.
1705         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
1706         * mono-endian.h: use const cast.
1707
1708 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
1709
1710         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
1711
1712 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
1713
1714         * loader.c: don't assert when a typeref can't be loaded, give
1715         a chance to the runtime to trow an exception instead.
1716         * loader.h: fix warning.
1717
1718 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
1719
1720         * class.c (mono_class_proxy_vtable): added proxy support
1721
1722 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
1723
1724         * icall.c: removed last of PAL calls, added System.Environment
1725         * file-io.h, file-io.c: MonoIO implementation
1726         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
1727
1728 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
1729
1730         * appdomain.c: do not use the byte marker in ldstr table lookup.
1731         * debug-helpers.c: allow two ':' to separate class and method name.
1732         * object.c: allocate arrays bounds with the GC, too.
1733         * verify: add a few more checks.
1734
1735 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
1736
1737         * reflection.c: output also literal strings. Allocate parameter data
1738         with GC_malloc() (thanks, Martin, for catching this!).
1739
1740 2002-03-26  Martin Baulig  <martin@gnome.org>
1741
1742         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
1743         include the `this' offset in the `param_offsets'.
1744
1745 2002-03-25  Martin Baulig  <martin@gnome.org>
1746
1747         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
1748         mono_debug_get_class() function to get the classes. Added new
1749         relocation types for arrays and strings.
1750         (mono_debug_get_class): New static function to search in all
1751         referenced assemblies for a metadata token.
1752
1753         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
1754
1755 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
1756
1757         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
1758         hold gc-allocated objects. Make the string heap a stream like the
1759         others. Removed duplicated code when writing stream info.
1760         Added asserts to catch possible buffer overflows. Set the sorted map
1761         for tables that need sorting. Added some documentation.
1762
1763 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
1764
1765         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
1766         for interned strings and vtables.
1767
1768 2002-03-24  Martin Baulig  <martin@gnome.org>
1769
1770         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
1771         it in the array since it was created with g_slist_prepend().
1772
1773 2002-03-24  Martin Baulig  <martin@gnome.org>
1774
1775         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
1776         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
1777         (mono_debug_method_from_token): Renamed to
1778         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
1779         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
1780
1781         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
1782         relocation types.
1783
1784         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
1785
1786 2002-03-24  Martin Baulig  <martin@gnome.org>
1787
1788         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
1789         (mono_debug_method_from_token): New func.
1790
1791         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
1792         New interncall, calls mono_debug_local_type_from_signature().
1793         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
1794         calls mono_debug_method_from_token().
1795
1796 2002-03-23  Martin Baulig  <martin@gnome.org>
1797
1798         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
1799         specifies the number of bytes to be converted, not the array size.
1800         Return the number of chars, not the number of bytes.
1801         (ves_icall_iconv_get_chars): The `byteCount' argument
1802         specifies the number of bytes to be converted, not the array size.
1803
1804 2002-03-23  Martin Baulig  <martin@gnome.org>
1805
1806         * reflection.h (MonoReflectionSigHelper): New type.
1807
1808         * reflection.c (mono_reflection_sighelper_get_signature_local),
1809         (mono_reflection_sighelper_get_signature_local): New functions.
1810
1811         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
1812         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
1813         interncalls.
1814
1815 2002-03-23  Martin Baulig  <martin@gnome.org>
1816
1817         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
1818         is_writeable is set.
1819         (mono_raw_buffer_update): New function to write the modified map
1820         back to disk.
1821
1822         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
1823
1824         * debug-symfile.c (mono_debug_update_symbol_file): Call
1825         mono_raw_buffer_update() when done writing.
1826
1827 2002-03-23  Martin Baulig  <martin@gnome.org>
1828
1829         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
1830
1831         * debug-symfile.c: Added support for arguments and local variables.
1832
1833 2002-03-23  Dick Porter  <dick@ximian.com>
1834
1835         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
1836         protected by ifdefs, hence breaking the w32 build.
1837
1838 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1839
1840         * object.c: implement is_interned() the right way.
1841
1842 2002-03-21  Martin Baulig  <martin@gnome.org>
1843
1844         * debug-symfile.[ch]: New files to handle debugging information
1845         files. There's also support to dynamically update these symbol
1846         files to include machine dependent information.
1847
1848 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
1849
1850         * threads.c (mono_thread_create): new function to create thread
1851         from C
1852
1853 2002-03-20  Martin Baulig  <martin@gnome.org>
1854
1855         * icall.c (ves_icall_InternalInvoke): Create a new object if the
1856         method is a constructor.
1857         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
1858         points to ves_icall_InternalInvoke().
1859
1860 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
1861
1862         * file-io.c: Flush shouldn't throw exceptions.
1863
1864 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
1865
1866         * file-io.c: FileStream flush support; FileSetLength now
1867         restores file pointer.
1868
1869 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1870
1871         * class.c: set image for pointer classes.
1872
1873 2002/03/19  Nick Drochak <ndrochak@gol.com>
1874
1875         * sysmath.c: Forgot one.
1876
1877 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
1878
1879         * sysmath.c: Avoid redefining existing names.
1880
1881 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
1882
1883         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
1884         handled by runtime as icall rather than dllimport from libm.so
1885         * file-io.c, file-io.h: fixed handle argument type.
1886
1887 2002-03-18  Dick Porter  <dick@ximian.com>
1888
1889         * reflection.c (mono_image_get_type_info): rename interface to
1890         iface, because of "#define interface struct" on windows.
1891
1892 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
1893
1894         * class.c, class.h: rename and export mono_ptr_class_get().
1895         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
1896         * reflection.c, reflection.h, icall.c: better/saner type name
1897         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
1898         method signatures.
1899
1900 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
1901
1902         * class.c (mono_class_init): removed hardcoded GHC_SLOT
1903
1904         * icall.c (ves_icall_InternalInvoke): impl.
1905
1906 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1907
1908         * reflection.c: output the interface map table, too.
1909
1910 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
1911
1912         * class.c (class_compute_field_layout): separate computation of 
1913         static field layout
1914
1915 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
1916
1917         * icall.c: added System.Buffer support.
1918         * file-io.c: moved file icalls from PAL to FileStream.
1919
1920 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
1921
1922         * icall.c (ves_icall_System_Object_GetHashCode): impl.
1923
1924 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
1925
1926         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
1927
1928 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1929
1930         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
1931
1932 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1933
1934         * debug-helpers.{c,h}: moved here from monograph some useful functions
1935         to locate a method by name/signature in a class or image. Included
1936         also a small and flexible IL disassembler.
1937
1938 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1939
1940         * reflection.c: fixup tokens in methods with small header size, too.
1941
1942 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
1943
1944         * object.c (mono_string_to_utf8): remove assert(!error), instead
1945         print a warning. 
1946
1947 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
1948
1949         * icall.c: update to the new mono_Array_class_get interface.
1950
1951 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
1952
1953         * appdomain.c, object.c: Boehm-GC enable.
1954         * icall.c: make get_data_chunk() support split data requests.
1955         Ensure a class is initialized in more cases. Return only the first
1956         property found in GetProperties() or the compiler gets confused. 
1957         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
1958         * reflection.h, reflection.c: add fixup mechanism for field and method
1959         tokens. Initialize assembly->typeref in a single place. Output
1960         properties after events. Support custom attributes for events, too.
1961         Typo fix for paramter custom attrs.
1962
1963 2002-03-07  Martin Baulig  <martin@gnome.org>
1964
1965         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
1966
1967 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
1968
1969         * class.c (mono_array_class_get): fix. for multi. dim. arrays
1970
1971 2002-03-06  Martin Baulig  <martin@gnome.org>
1972
1973         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
1974         non-zero lower bounds. See testcases #F10-#F13.
1975
1976 2002-03-05  Martin Baulig  <martin@gnome.org>
1977
1978         * exception.c (mono_get_exception_argument_out_of_range): New exception.
1979
1980         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
1981         ves_icall_System_Array_GetValue(), only calculate the absolute array position
1982         here.
1983         (ves_icall_System_Array_SetValue): Likewise.
1984         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
1985         as argument and does the actual work. This function is used when copying a
1986         multi-dimensional array.
1987         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
1988         now do all the widening conversions of value types.
1989         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
1990
1991 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1992
1993         * class.c: remove some magic numbers and use the smbolic names,
1994         instead. Added init_events() to load event info at class init time.
1995         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
1996         and mono_metadata_methods_from_event().
1997         * reflection.h, reflection.c: added support for writing out the evnets
1998         related information.
1999
2000 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
2001
2002         * reflection.h, icall.c: use a different method (GetInterfaces)
2003         to gather interface info and add isbyref, isprimitive and
2004         ispointer to the ves_icall_get_type_info() return value.
2005
2006 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
2007
2008         * class.h: stared adding support for events.
2009         * icall.c: split find_members implementation. Added debug icall to get
2010         the address of an object.
2011         * reflection.c: handle TypeBuilders in mono_type_get_object().
2012
2013 2002-03-01  Martin Baulig  <martin@gnome.org>
2014
2015         * icall.c (ves_icall_System_Array_GetLength): This must throw an
2016         ArgumentOutOfRangeException(), not an ArgumentException().
2017         (ves_icall_System_Array_GetLowerBound): Likewise.
2018         (ves_icall_System_Array_GetValue): Improved argument checking.
2019         (ves_icall_System_Array_SetValue): Improved argument checking.
2020
2021 2002-03-01  Martin Baulig  <martin@gnome.org>
2022
2023         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
2024         called with invalid arguments rather than just dying with g_assert().
2025         (ves_icall_System_Array_SetValue): Likewise.
2026         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
2027         raise a NotImplementedException instead.
2028         (ves_icall_System_Array_GetLength): Added argument checking.
2029         (ves_icall_System_Array_GetLowerBound): Added argument checking.
2030
2031 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
2032
2033         * object.h (mono_assert): new macros mono_assert and
2034         mono_assert_not_reached
2035
2036 2002-02-28  Martin Baulig  <martin@gnome.org>
2037
2038         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
2039         and "System::String::IsInterned" to "System::String::_IsInterned".
2040
2041 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
2042
2043         * icall.c: remove hacks for typebuilder. Added icall to create a
2044         modified type from a tybebuilder.
2045         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
2046         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
2047         to create a backing MonoClass for a TypeBuilder.
2048
2049 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
2050
2051         * class.c, class.h: more refactoring of class init.
2052         Export mono_class_setup_mono_type() and mono_class_setup_parent().
2053
2054 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
2055
2056         * marshal.c, marshal.h: start of marshaling interface.
2057
2058 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
2059
2060         * icall.c: fix order in assembly qualified name icall.
2061
2062 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
2063
2064         * class.c: do not free str, since we store it in the hash table.
2065         * reflection.h: add label field to MonoILExceptionInfo.
2066         * reflection.c: handle references to more than one assembly. Handle
2067         case when there isn't a module created in the assembly.
2068
2069 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
2070
2071         * class.c: Fix typo. Start refactoring of class init code.
2072
2073 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
2074
2075         * appdomain.c: exit with 1 on error.
2076         * class.c: we already have the name in MonoClassField.
2077         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
2078         MonoStreamHeader instead of an offset of image->raw_metadata.
2079
2080 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
2081
2082         * appdomain.c (mono_init): Be even more descriptive about the error.
2083
2084 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
2085
2086         * appdomain.c: give the user an informative message when corlib can't
2087         be loaded.
2088
2089 2002-02-26  Martin Baulig  <martin@gnome.org>
2090
2091         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
2092         New icall to get the time zone data.
2093
2094 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
2095
2096         * reflection.c: set virtual and raw size of section correctly.
2097         * threads.c: transfer domain information to newly created threads.
2098
2099 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
2100
2101         * class.c: when instancing a class in a domain, load the default
2102         vaules for static fields from the constant table. Fix System.Enum to
2103         not be an enum.
2104         * icall.c: implement Object::GetType() internalcall. Implemented
2105         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
2106         Fixed checking of binding flags in find_members().
2107         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
2108         * reflection.c: handle enumerations when writing to the constant
2109         table. Use a different object cache for types.
2110
2111
2112 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
2113
2114         * object.c (mono_object_isinst): fix for arrays
2115
2116         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
2117
2118 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
2119
2120         * object.c: don't use mprotect ()  and fix intern pool hash table
2121         lookup for big endian systems.
2122
2123 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
2124
2125         * icall.c: change type_is_subtype_of () signature.
2126
2127 2002-02-21  Mark Crichton  <crichton@gimp.org>
2128
2129         * rand.c, rand.h: Added random number generator for
2130         System.Security.Cryptography classes.
2131
2132         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
2133
2134         * icall.c: Added System.Security.Cryptography calls.
2135
2136 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
2137
2138         * class.c, icall.c, metadata.c: better support for pointer types.
2139         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
2140         * reflection.c: Add support for getting custom attrs for properties
2141         and simplify some code.
2142
2143 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
2144
2145         * icall.c: change getToken () and add custom attribute GetBlob()helper
2146         method.
2147         * reflection.h: add custom attrs array to the reflection builder structures.
2148         * reflection.c: encode and emit custom attributes for all the relevant
2149         reflection objects. Cache fieldref and methodref tokens. Change
2150         mono_image_create_token() interface to take a MonoDynamicAssembly.
2151         More complete custom attributes decoder. Load custom attributes for
2152         Assembly, Field, Method and Constructor objects, too. Make the
2153         returned array an Attribute[] one, not object[]. Added
2154         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
2155         custom attribute constructor.
2156
2157 2002-02-20  Dick Porter  <dick@ximian.com>
2158
2159         * icall.c:
2160         * rawbuffer.c:
2161         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
2162         problem code out for now).
2163
2164 2002-02-19  Radek Doulik  <rodo@ximian.com>
2165
2166         * object.c (mono_ldstr): use hash table to avoid multiple swapping
2167
2168 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
2169
2170         * icall.c: register the GetCustomAttributes method.
2171         * object.c, object.h: add mono_string_new_len ().
2172         * reflection.h, reflection.c: added mono_runtime_invoke(),
2173         mono_install_runtime_invoke(). Added
2174         mono_reflection_get_custom_attrs () to load custom attributes and
2175         create the attribute objects.
2176
2177 2002-02-19  Dick Porter  <dick@ximian.com>
2178         * threads-dummy-types.c:
2179         * threads-dummy-types.h:
2180         * threads-dummy.c:
2181         * threads-dummy.h:
2182         * threads-pthread-types.c:
2183         * threads-pthread-types.h:
2184         * threads-pthread.c:
2185         * threads-pthread.h:  Deleted obsolete files
2186
2187 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
2188
2189         * class.c (mono_class_vtable): runtime init the class when we
2190         allocate static class data.
2191
2192         * icall.c (ves_icall_System_Array_SetValue): check for null values.
2193
2194         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
2195         and String - but we will need generic marshalling support in the
2196         future. 
2197         (mono_init): set the domain name in a ms compatible way
2198
2199         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
2200         String[].
2201
2202 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
2203
2204         * object.c (mono_array_clone): use alloca() instead of g_malloc  
2205         for sizes
2206
2207         * appdomain.c (mono_domain_unload): impl.
2208
2209 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
2210
2211         * appdomain.c, object.c: fix intern pool implementation.
2212         * class.c: fix alignment code.
2213
2214 2002-02-16  Radek Doulik  <rodo@ximian.com>
2215
2216         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
2217         and s2 > s1, just copy lower bytes to be compatible with little
2218         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
2219         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
2220
2221         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
2222         force big_endian to be 1 for big endian machines 
2223         (ves_icall_iconv_new_decoder): ditto
2224
2225 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
2226
2227         * socket-io.c (convert_sockopt_level_and_name): If the system
2228         doesn't define SOL_IP or SOL_TCP, get them by hand using
2229         getprotobyname() and caching the values (because this could be a
2230         slow operation).
2231         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
2232         Use the appropriate struct when the system does support it. Ie,
2233         not all systems have struct ip_mreqn so use struct ip_mreq when
2234         appropriate.
2235
2236 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
2237
2238         * reflection.c: handle finally clauses.
2239
2240 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
2241
2242         * socket-io.c: use g_snprintf() instead of snprintf.
2243
2244 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
2245
2246         * reflection.c (mono_param_get_objects): Cast second argument to
2247         mono_method_get_param_names to a const char** to silence the
2248         compiler warning.
2249
2250         * appdomain.c (mono_domain_assembly_open): Put parens around the
2251         truth statement in the for-loop.
2252
2253         * unicode.c (iconv_convert): Got rid of a compiler warning about
2254         int i being unused when the system has a new iconv.
2255         (iconv_get_length): Same.
2256
2257         * image.c (load_class_names): Cast the second argument to
2258         g_hash_table_insert() to char* to hush compiler warnings about the
2259         arg being a const.
2260         (mono_image_open): Same here.
2261
2262         * socket-io.c: Don't conditionally include sys/filio.h or
2263         sys/sockio.h here anymore since we now get them from
2264         io-layer/io-layer.h
2265         (inet_pton): If the system doesn't support inet_aton, implement
2266         using inet_addr and also #define INADDR_NONE if it isn't defined
2267         by the system.
2268
2269 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
2270
2271         * metadata.c, metadata.h: added function to get packing and size info
2272         of a typedef.
2273         * reflection.h, reflection.c: handle field RVA data. Save info about
2274         the table layout if needed. Assign typedef indexes to all the types
2275         before dumping the info about them to avoid forward reference problems.
2276
2277 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
2278
2279         * socket-io.c (convert_sockopt_level_and_name): ifdef
2280         SO_ACCEPTCONN because it is not defined on my system (old debian)
2281
2282 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
2283
2284         * opcode.c: use stddef.h to get NULL.
2285
2286 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
2287
2288         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
2289         for FIONBIO, FIONREAD and SIOCATMARK.
2290         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
2291         define INADDR_NONE and besides, inet_addr() is deprecated and
2292         should not be used. Use inet_pton() instead - it also has the
2293         added bonus that it can easily handle IPv6 addresses as well.
2294         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
2295
2296 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
2297
2298         * decimal.c: remove _MSC_VER conditional.
2299
2300 2002-02-13  Dick Porter  <dick@ximian.com>
2301
2302         * socket-io.c: 
2303         * icall.c: Internal calls for Blocking, Select, Shutdown,
2304         GetSocketOption and SetSocketOption
2305
2306 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
2307
2308         * assembly.cs: better resolver: use it instead of some kludgy
2309         code.
2310
2311 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
2312
2313         * reflection.c: the best way to speed-up the compiler is to avoid
2314         infinite loops.
2315
2316 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
2317
2318         * class.c (mono_class_vtable): changed the object layout
2319         (obj->vtable->class). 
2320         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
2321
2322 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
2323
2324         * assembly.c: look for assemblies in the assembly dir, too.
2325
2326 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
2327
2328         * class.c: fix thinko in mono_class_from_type().
2329
2330 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
2331
2332         * exception.h, exception.c: added TypeLoadException.
2333         * object.h, object.c: added mono_array_clone ().
2334         * icall.c: handle throwOnError in AssemblyGetType().
2335         Added Array.Clone().
2336         * opcode.h, opcode.c: use a single value for the opcode val.
2337         Compile fix for non-gcc compilers.
2338
2339 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
2340
2341         * opcodes.c, opcodes.h: export interesting info about opcodes.
2342
2343 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
2344
2345         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
2346         icalls. 
2347
2348         * class.c (class_compute_field_layout): set element_class for enums
2349         (mono_class_create_from_typedef): set element_class for normal classes
2350
2351         * icall.c (ves_icall_System_Enum_get_value): impl.
2352
2353         * class.c (mono_class_create_from_typedef): do not set valuetype
2354         flag for System.ValueType and System.Enum
2355
2356 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
2357
2358         * unicode.c (iconv_convert): fix big endian problem.
2359
2360 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
2361
2362         * class.c: add asserts if we are ever going to scribble over memory.
2363         * socket-io.c: not all systems have AF_IRDA defined.
2364
2365 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
2366
2367         * class.c (class_compute_field_layout): do not consider static
2368         fields to compute alignment
2369
2370 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
2371
2372         * appdomain.c (mono_appdomain_get): impl.
2373         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
2374
2375 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
2376
2377         * icall.c: ignore "file://" prefix when loading an assembly.
2378
2379 2002-01-23  Dick Porter  <dick@ximian.com>
2380
2381         * socket-io.c:
2382         * icall.c:
2383         * Makefile.am: Added socket support
2384
2385 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
2386
2387         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
2388         code back.  This should return the assemblies that are loaded by
2389         the runtime on behalf of an application domain. 
2390
2391         The current implementation is still broken, it just returns every
2392         assembly loaded, but until we get real applications domain this
2393         will do.
2394
2395 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
2396
2397         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
2398         AppDomain object.
2399
2400 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
2401
2402         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
2403         the mono_class_from_name lookup.
2404         (ves_icall_get_parameter_info): ditto.
2405         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
2406         method.
2407         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
2408
2409 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2410
2411         * class.c: load also nested classes on class init.
2412         System.ValueType instance methods gets passed boxed
2413         values, unless methods in derived classed that get a pointer to the
2414         data.
2415         * icall.c: use better name parsing code in GetType().
2416         * image.c, image.h: add mono_image_loaded ().
2417         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
2418         * reflection.c, reflection.h: added mono_reflection_parse_type().
2419
2420 2002-01-22  Veronica De Santis <veron78@interfree.it>
2421
2422         * icall.c : Added mapping of internal calls for Manual and Auto reset events
2423         * threads.c : Added the implementation of internal calls for events
2424         * threads.h : Added prototypes of internal calls for events
2425         
2426 2002-01-21  Radek Doulik  <rodo@ximian.com>
2427
2428         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
2429
2430 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
2431
2432         * class.c (mono_class_init): set min_align to 1 (instead of 0)
2433         (mono_class_value_size): use min_align
2434
2435 2002-01-20  Dick Porter  <dick@ximian.com>
2436
2437         * threads.h:
2438         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
2439         so it compiles on w32.
2440
2441 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
2442
2443         * metadata.c (mono_type_stack_size): impl.
2444
2445         * class.c (mono_class_get_field): impl. memberref token
2446
2447 2002-01-16 Veronica De Santis <veron78@@interfree.it>
2448
2449         * icall.h : Added the internal calls mapping for CreateMutex_internal
2450                     and ReleaseMutex_internal.
2451         * threads.h : Added the prototype of mutexes internal calls.
2452         * threads.c : Added the implementations of mutexes internal calls.
2453
2454 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
2455
2456         * metaparse.h: removed unused file.
2457         * reflection.c, reflection.h: added stream_data_align () function 
2458         to align data in streams and keep stream aligned. Add support for
2459         exception support in method headers.
2460
2461 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
2462
2463         * unicode.c: make iconv_convert () return the number of bytess written
2464         in the output buffer.
2465
2466 2002-01-15  Dick Porter  <dick@ximian.com>
2467         * threads.c: Make the runtime's idea of infinite timeouts coincide
2468         with the class library's
2469
2470         Fix a particularly egregious bug in mono_thread_cleanup(). That
2471         code was so utterly bogus it must have been written on a Monday.
2472
2473 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
2474
2475         * reflection.h: add subtypes field to TypeBuilder.
2476         * reflection.c: encode constants for literal fields.
2477         Handle subtypes. Fix user string token (and add a zero byte)
2478         at the end.
2479         
2480 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
2481
2482         * class.c (mono_class_init): bug fix: assign slot numbers for
2483         abstract methods.
2484
2485 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
2486
2487         * reflection.c: don't try to output a code RVA for abstract methods.
2488         Small fixes for method header format. Output parameter info to the
2489         ParamDef table. Save method overriding info to MethodImpl table.
2490         Fix property support. Allow typedef.extends to be a type in the
2491         building assembly.
2492         * verify.c: fix off-by-one error.
2493
2494 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
2495
2496         * class.c: fix mono_class_from_mono_type () for szarray types.
2497         Remove unused cache check in mono_class_from_type_spec().
2498         * icall.c: *type_from_name () functions handle simple arrays and byref.
2499         * reflection.c: handle byref and szarray types. Handle methods without
2500         body (gets P/Invoke compilation working). Handle types and fields in
2501         get_token ().
2502         * reflection.h: add rank to MonoTypeInfo.
2503
2504 2002-01-10  Dick Porter  <dick@ximian.com>
2505
2506         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
2507         internal calls
2508
2509 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
2510
2511         * icall.c: initialize class in type_from_handle ().
2512         Loop also in parent classes for get_method ().
2513         * reflection.c: properly encode class and valuetype types.
2514         Start on encoding TypeBuilder types. Handle fieldrefs.
2515         Use correct length when registering a user string.
2516         Handle ConstructorBuilder and MonoMethod in get_token ().
2517         Make mono_type_get_object () aware of cached types.
2518         * object.c: back out change to mono_string_new ().
2519
2520 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
2521         * object.c: mono_string_new should return a NULL when the string 
2522         passed in is NULL -- not try to deference it.
2523         
2524 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
2525
2526         * icall.c: hack to make IsSubType work for TypeBuilders.
2527         * reflection.c: emit constructors before methods.
2528         Retrieve param names in mono_param_get_objects().
2529
2530 2002/01/05  Nick Drochak  <ndrochak@gol.com>
2531
2532         * Makefile.am: fix list of headers and sources so automake 1.5
2533         doesn't complain. Removed \# at end of list.
2534
2535 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
2536
2537         * reflection.c: get token for a method ref. Set return type of
2538         constructor to void.
2539         * loader.c: debug message.
2540         * class.c: typo fix.
2541
2542 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
2543
2544         * icall.c: fix array init with rank > 1. FindMembers
2545         loops in parent class as well.
2546         * image.c: do not insert nested types in name cache.
2547         * reflection.c: warning fix.
2548         * reflection.h: add override method (for interface impl).
2549
2550 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
2551
2552         * metadata.c: fix customattr decoding.
2553
2554 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
2555
2556         * rawbuffer.cs: Added native Win32 implementation, avoids using
2557         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
2558
2559 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
2560
2561         * class.c: make the low-level routines handle the cache.
2562
2563 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
2564
2565         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
2566
2567 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
2568
2569         * class.c: fix mono_array_element_size() for objects.
2570         * class.h, class.c: add properties to MonoClass and load them
2571         at init time.
2572         * icall.c: check with isinst() when assigning a value to an array
2573         instead of requiring the classes to match exactly.
2574         Implemented icall for System.Type::GetType().
2575         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
2576         enums. Handle bindingflags when looking for methods and fields.
2577         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
2578         and mono_metadata_methods_from_property().
2579         * reflection.h, reflection.c: added structures for propreties,
2580         parameters and enums. Implemented mono_property_get_object() and
2581         mono_param_get_objects().
2582
2583 2001-12-18  Dick Porter  <dick@ximian.com>
2584
2585         * file-io.c: Use mono_string_to_utf16() instead of
2586         mono_string_chars()
2587
2588         * object.c: Added mono_string_to_utf16(), which copies the non
2589         NULL-terminated MonoString into a new double-null-terminated
2590         buffer.
2591
2592 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
2593
2594         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
2595
2596 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
2597
2598         * file-io.c: raise exceptions if handle is invalid.
2599
2600 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
2601
2602         * assembly.c: yet another check for mscorlib.
2603         * class.c, class.h: load nesting info for classes.
2604         * icall.c: many new functions to support the Reflection classes.
2605         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
2606         * reflection.h, reflection.c: mono_image_create_token(),
2607         mono_assembly_get_object(), mono_type_get_object(),
2608         mono_method_get_object(), mono_field_get_object(): methods to return
2609         objects that parallel the C representation of assemblies, types,
2610         methods, fields.
2611
2612 2001-12-11  Dick Porter  <dick@ximian.com>
2613
2614         * icall.c:
2615         * file-io.c: Internal calls for file IO.
2616
2617 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
2618
2619         * tabledefs.h: missing FileAttributes.
2620         * verify.h, verify.c: use is_valid_string () to simplify and check for
2621         valid strings more correctly. Fix warnings and speeling.
2622         Check more tables: Filed, File, ModuleRef, StandAloneSig.
2623         Check code: branches, maxstack, method calls.
2624
2625 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
2626
2627         * object.c (mono_object_allocate): removed static, so that the jit
2628         can allocate value types.
2629
2630         * icall.c (ves_icall_System_DateTime_GetNow): impl.
2631
2632 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2633
2634         * class.c: init enum types right away and register the
2635         token->MonoClass map in mono_class_create_from_typedef ().
2636         * verify.h, verify.c: first cut of the verifier.
2637         * pedump.c: add --verify switch to verify metadata tables.
2638         * tabledefs.h: add some missing enums.
2639
2640 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
2641
2642         * class.c (mono_install_runtime_class_init): impl.
2643         (mono_class_init): renamed mono_class_metadata_init to
2644         mono_class_init, also removed the metadata_inited flag
2645
2646         * object.c (mono_object_isinst): use faster algorithm
2647
2648 2001-11-30  Radek Doulik  <rodo@ximian.com>
2649
2650         * mono-endian.h: reverted last change
2651         added function prototypes
2652
2653         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
2654         add mono-endian.c back
2655
2656         * mono-endian.c: returned back, as Paolo pointed out, it's needed
2657         for unaligned access, I've mistaked it with endianess. I am
2658         sorry.
2659         (mono_read16): fix reverted endianess
2660         (mono_read64): ditto
2661         (mono_read32): ditto
2662
2663 2001-11-30  Dick Porter  <dick@ximian.com>
2664
2665         * exception.c: Implement mono_exception_from_name()
2666
2667 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
2668
2669         * metadata.h, metadata.c: remove params_size and locals_size and their
2670         calculation from the metadata code: they are only usefult to the
2671         interp.
2672
2673 2001-11-29  Radek Doulik  <rodo@ximian.com>
2674
2675         * object.c (mono_ldstr): swap bytes here, it's probably not the
2676         best place, but works for me now, I'll redo it once I know mono
2677         better, also note that I add PROT_WRITE and don't reset back, also
2678         note that it's only affects big endians, so x86 should be OK
2679
2680         * mono-endian.h (read16): use just glib macros for both endians
2681
2682         * mono-endian.c: removed as glib macros are used in in
2683         mono-endian.h so we don't need to care about endianess for read
2684         macros as glib does that for us already
2685
2686 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
2687
2688         * class.h, class.h: take minimum alignment into consideration so
2689         that the fields of a class remain aligned also when in an array.
2690
2691 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2692
2693         * loader.h, loader.c: add mono_method_get_param_names().
2694         * class.c: 0-init class fields.
2695
2696 2001-11-26  Dick Porter  <dick@ximian.com>
2697
2698         * icall.c:
2699         * threads-types.h:
2700         * threads.c: New file that handles System.Threading on all platforms
2701
2702         * object.c: 
2703         * object.h: Remove the synchronisation struct from MonoObject,
2704         replace it with a pointer that gets initialised on demand
2705
2706         * Makefile.am: Replace all the system-specific threading code with
2707         a single file that uses the new wrapper library
2708
2709 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
2710
2711         * class.c, class.h: add mono_install_trampoline() so that the runtime
2712         can register a function to create a trampoline: removes the ugly
2713         requirement that a runtime needed to export arch_create_jit_trampoline.
2714         * object.h, object.c: added mono_install_handler() so that the runtime
2715         can install an handler for exceptions generated in C code (with
2716         mono_raise_exception()). Added C struct for System.Delegate.
2717         * pedump.c: removed arch_create_jit_trampoline.
2718         * reflection.c: some cleanups to allow registering user strings and
2719         later getting a token for methodrefs and fieldrefs before the assembly
2720         is built.
2721         * row-indexes.h: updates and fixes from the new ECMA specs.
2722
2723 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
2724
2725         * class.h, class.c: add enum_basetype field to MonoClass.
2726         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
2727         to get index in the constant table reated to a field, param or
2728         property.
2729         * reflection.h, reflection.c: handle constructors. Set public-key and
2730         version number of the built assembly to 0.
2731         * row-indexes.h: update from new ECMA spec.
2732
2733 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
2734
2735         * class.h, class.c: add a max_interface_id to MonoClass.
2736         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
2737         since it's used to do that. Added mono_type_type_from_obj().
2738         Make GetType() return NULL instead of segfaulting if the type was not
2739         found. Handle simple arrays in assQualifiedName.
2740         * object.h: add a struct to represent an Exception.
2741         * reflection.c: output call convention in method signature.
2742         Add code to support P/Invoke methods and fixed offsets for fields.
2743
2744 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
2745
2746         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
2747         the value.
2748         * icall.c: use mono_array_addr instead of array->vector: fixes the
2749         reflection image writing.
2750         * reflection.c: init call convention byte to 0 in method signature.
2751         Encode the property signature. Don't output property-related methods
2752         twice. Really process the properties for a type (don't cast a field to
2753         a property, my mom always told me that).
2754         Fix 64 bit issues in pointer alignment in a different and more
2755         readable way.
2756
2757 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
2758
2759         * loader.h: Removed type class from MonoDefaults, added monotype
2760
2761         * loader.c: Loaded MonoType, removed loading of Type
2762
2763         * icall.c (my_mono_new_object): Now returns a System.MonoType,
2764         and fills in System.Type._impl with a RuntimeTypeHandle rather
2765         than the actual MonoClass *
2766
2767         (ves_icall_type_from_handle): change from type_class to
2768         monotype_class
2769
2770         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
2771         implemented
2772
2773         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
2774         implemented
2775
2776         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
2777
2778         (ves_icall_System_Reflection_Assembly_GetType): implemented
2779
2780         (ves_icall_System_MonoType_assQualifiedName): implemented
2781
2782         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
2783
2784 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
2785
2786         * assembly.c (mono_assembly_open): Implement a cache for the
2787         assemblies. 
2788
2789         (mono_assembly_close): only destroy the assembly when the last
2790         reference is gone.
2791         
2792 2001-11-09  Dick Porter  <dick@ximian.com>
2793
2794         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
2795
2796 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
2797
2798         * class.c (mono_class_metadata_init): bug fix: compute the right slot
2799
2800 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
2801
2802         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
2803         from Martin Weindel.
2804         * object.h: add mono_string_chars ().
2805
2806 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
2807
2808         * reflection.c (build_compressed_metadata): Eliminates warnings
2809         and uses 64-bit clean code.
2810
2811         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
2812         (mono_type_equal): Change signature to eliminate warnings.
2813
2814 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2815
2816         * icall.c, loader.c: remove the internalcall array constructors.
2817         Changes to match the new MonoArray structure.
2818         * object.h, object.c: an array object doesn't allocate an extra
2819         vector. Add mono_array_new_full () to create jagged arrays easily.
2820
2821 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
2822
2823         * metadata.h, metadata.c: add mono_metadata_field_info () to
2824         retreive all the info about a field from vairous tables.
2825         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
2826         * class.h, class.c: augment MonoClassField with more info.
2827         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
2828         policy and load a field's RVA if needed.
2829
2830 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
2831
2832         * class.c (mono_class_metadata_init): create a trampoline for all
2833         virtual functions instead of actually compiling them.
2834
2835 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
2836
2837         * class.h, class.c: include name in MonoClassField.
2838         * class.c: fix fundamental type of System.Object and System.String.
2839         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
2840         tokens in ldtoken.
2841         * icall.c: remove internalcalls for the Reflection stuff that is now
2842         done in C# code.
2843         * loader.c: mono_field_from_memberref () implementation.
2844         * mono-endian.c: thinko (s/struct/union/g).
2845         * object.c, object.h: make the mono_string_* prototypes actually use
2846         MonoString instead of MonoObject.
2847         * reflection.c, reflection.h: updates for changes in the reflection
2848         code in corlib: we use C structures that map to the actual C# classes.
2849         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
2850         fat method header if needed and use the info from the ILGenerator for
2851         methods. Handle fields in types. Misc fixes.
2852
2853 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
2854
2855         * class.c (mono_class_metadata_init): bug fix: always allocate
2856         space for static class data
2857
2858 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
2859
2860         * class.c (mono_compute_relative_numbering): use relative
2861         numbering to support fast runtime type checks.
2862
2863 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
2864
2865         * class.c (mono_class_create_from_typeref): added debugging output
2866         to print class name when MonoDummy is returned instead of real class
2867
2868 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
2869
2870         * class.c (mono_class_metadata_init): interface offset table now
2871         contains pointers into the vtable - this is more efficient for the jit
2872
2873 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
2874
2875         * class.c (mono_class_metadata_init): use a temporary vtable (the
2876         old algorithm only worked for the interpreter, but not for the jit)
2877
2878 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
2879
2880         * loader.c (method_from_memberref): use mono_class_get to get the
2881         class of an array instead of using System.Array directly.
2882         (mono_get_method): also add MEMBERREF methods to the method cache
2883         which usefull for arrays.
2884
2885 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
2886
2887         * pedump.c (arch_compile_method): added to compute vtable entry
2888
2889         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
2890         number of interfaces.
2891         
2892         * class.h: merged MonoArrayClass into MonoClass
2893
2894         * class.c (mono_class_create_from_typedef): compute the vtable size and
2895         allocate space to include the vtable inside MonoClass
2896         (mono_class_metadata_init): initialize the vtable
2897
2898 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
2899
2900         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
2901         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
2902         * image.c: endian fixes by Laurent Rioux.
2903         * object.h, object.c: rename MonoStringObject to MonoString and
2904         MonoArrayObject to MonoArray. Change some function names to conform to
2905         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
2906         guint16* as first argument, so don't use char*.
2907         Provide macros to do the interesting things on arrays in a portable way.
2908         * threads-pthread.c: updates for the API changes and #include <sched.h>
2909         (required for sched_yield()).
2910         * icall.c: updates for the API changes above.
2911         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
2912         platforms that need them.
2913
2914 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
2915
2916         * class.c: set the correct type for all the fundamental
2917         type when loading the class.
2918
2919 2001-10-05  Dick Porter  <dick@ximian.com>
2920
2921         * threads-pthread.c (pthread_mutex_timedlock): Simple
2922         compatibility version for C libraries that lack this call.
2923
2924 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2925
2926         * class.c: MonoTypes stored in MonoClass are stored as
2927         fundamental MonoTypes when the class represents a
2928         fundamental type (System.Int32, ...).
2929         The TypeHandle return by ldtoken is a MonoType*.
2930         * icall.c: ves_icall_get_data_chunk () write out all the
2931         PE/COFF stuff. Implement ves_icall_define_method (),
2932         ves_icall_set_method_body (), ves_icall_type_from_handle ().
2933         * image.c: properly skip unknown streams.
2934         * loader.h, loader.c: add type_class to mono_defaults.
2935         * metadata.c, metadata.h: export compute_size () as
2936         mono_metadata_compute_size () with a better interface.
2937         Typo and C&P fixes.
2938         * pedump.c: don't try to print the entry point RVA if there is no entry point.
2939         * reflection.c, reflection.h: many cleanups, fixes, output method
2940         signatures and headers, typedef and typeref info, compress the metadata
2941         tables, output all the heap streams, cli header etc.
2942         * row-indexes.h: typo fixes.
2943
2944 2001-10-04  Dick Porter  <dick@ximian.com>
2945
2946         * object.h: Add a synchronisation mutex struct to MonoObject
2947
2948         * object.c (mono_new_object): Initialise the object
2949         synchronisation mutexes
2950
2951         * icall.c: System.Threading.Monitor internal calls
2952         
2953         * threads-pthread.h:
2954         * threads-pthread.c: System.Threading.Monitor internal calls
2955
2956         * threads-types.h: New file, includes the system-specific thread
2957         structures
2958         
2959         * threads-pthread-types.h:
2960         * threads-pthread-types.c: New files, handle pthread-specific
2961         synchronisation types
2962
2963         * threads-dummy-types.h: 
2964         * threads-dummy-types.c: New files of dummy support for
2965         thread-specific types
2966
2967         * metadata.c:
2968         * image.c:
2969         * pedump.c: include mono-endian.h not endian.h
2970         
2971         * Makefile.am: More threads files.
2972         Name mono-endian.h not endian.h
2973
2974 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
2975
2976         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
2977         stuff and implement a few more bits.
2978         * icall.c: a field needs to be dereferenced twice. Do not use the same
2979         name for two variables in the same scope.
2980         * image.c, image.h: cleanups.
2981
2982 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
2983
2984         * class.c (mono_class_metadata_init): bug fix: compute the right size
2985
2986 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
2987
2988         * icall.c: implemented some of the Reflection internalcalls.
2989         * image.c, image.h: start writing out the PE/COFF image.
2990         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
2991         that does the reverse than decode_blob_size ().
2992         * object.c: use mono_metadata_encode_value (). Move here
2993         temporary implementation of mono_string_to_utf8 ().
2994         * rawbuffer.c: make malloc_map static.
2995
2996 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2997
2998         * metadata.c: fix type comparison for arrays.
2999         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
3000         Added a couple of new classes to monodefaults.
3001         * icall.c: added a couple of Reflection-related internalcalls.
3002         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
3003         Added a byval_arg MonoType to MonoClass.
3004
3005 2001-09-28  Dick Porter  <dick@ximian.com>
3006
3007         * icall.c:
3008         * threads-pthread.h: 
3009         * threads-pthread.c: Implemented internal calls for
3010         LocalDataStoreSlot operations.  Applied mutexes around all shared
3011         data.  Reworked the thread creation and Start() operations to
3012         avoid a race condition.
3013         
3014         * threads-dummy.h:
3015         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
3016
3017 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
3018
3019         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
3020
3021 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
3022
3023         * class.c, loader.c: warn and return NULL instead of erroring out.
3024         * icall.c: added System.AppDomain::getCurDomain().
3025         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
3026
3027 2001-09-25  Dick Porter  <dick@ximian.com>
3028
3029         * threads-pthread.h:
3030         * threads-pthread.c: Implemented timed thread joining and added
3031         System.Threading.Thread::Join_internal internal call
3032
3033         * icall.c: Added System.Threading.Thread::Join_internal internal call
3034
3035         * threads-dummy.h:
3036         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
3037
3038 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
3039
3040         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
3041         mono_string_intern () to implement the semantics of the ldstr opcode
3042         and the interning of System.Strings.
3043         * icall.c: provide hooks to make String::IsIntern and String::Intern
3044         internalcalls.
3045
3046 2001-09-23  Dick Porter  <dick@ximian.com>
3047
3048         * threads-dummy.c: 
3049         * threads-dummy.h: New files of dummy threading routines
3050
3051         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
3052         support code based on system specifics
3053
3054         Rename PTHREAD_LIBS to THREAD_LIBS
3055         
3056 2001-09-23  Dick Porter  <dick@ximian.com>
3057
3058         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
3059         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
3060         internal calls.
3061         (mono_thread_init): Set up a Thread object instance to return when
3062         the main thread calls Thread.CurrentThread
3063         (mono_thread_cleanup): Wait for all subthreads to exit
3064
3065         * icall.c: New internal calls for System.Threading.Thread::Sleep
3066         (including Schedule) and CurrentThread
3067
3068         * threads.h: New file, to insulate thread-specific stuff from the
3069         rest of the code
3070
3071 2001-09-21  Dick Porter  <dick@ximian.com>
3072
3073         * threads-pthread.h: 
3074         * threads-pthread.c: New file, for handling pthreads-style
3075         threading support.  Start() now starts a new thread and executes
3076         the ThreadStart delegate instance.
3077
3078         * icall.c: Added the internalcall for
3079         System.Threading.Thread::Start_internal
3080
3081         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
3082
3083 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
3084
3085         * loader.c: work around the different signatures for delegates
3086         constructors csc generates in compiled code vs the ones compiled in mscorlib.
3087
3088 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
3089
3090         * class.h, class.c: add mono_class_get_field_from_name ().
3091         * *: Fix C comments and other ANSI C issues.
3092
3093 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
3094
3095         * endian.h, assembly.c: fix some endianness issues.
3096
3097 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
3098
3099         * loader.h, load.c: add delegate_class to mono_defaults.
3100         Handle runtime provided methods in mono_get_method ().
3101
3102 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
3103
3104         * loader.c (mono_get_method): use pinvoke for internal call
3105
3106         * icall.c: use pinvoke for internal call
3107
3108         * loader.c (method_from_memberref): set the method name
3109
3110 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
3111
3112         * metadata.c: help the compiler generate better code for
3113         mono_class_from_mono_type ().
3114
3115 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
3116
3117         * class.c (mono_class_metadata_init): delayed computing of the
3118         class size to mono_class_metadata_init ()
3119
3120 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
3121
3122         * class.c, class.h: add an interfaces member to MonoClass.
3123         * image.c, image.h: add assembly_name field to MonoImage
3124         from the assembly table.
3125         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
3126
3127 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
3128
3129         * class.c: Handle Array in mono_class_from_mono_type ().
3130         * metadata.c, pedump.c: some endian fixes.
3131
3132 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
3133
3134         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
3135         * metadata.c: fix small problem introduced with the latest commit.
3136
3137 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
3138
3139         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
3140         We don't need a MonoMetadata pointer anymore to compare signatures in
3141         mono_metadata_signature_equal (), update callers.
3142         Reduced memory usage an number of allocations for MonoMethodHeader and
3143         MonoMethodSignature.
3144
3145 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
3146
3147         * metadata.c: added compare for szarray.
3148
3149 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
3150
3151         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
3152         and add a couple more types to it and mono_defaults. Give an hint on
3153         classes that need implementing in our corlib and are referenced
3154         in mscorlib.
3155
3156 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
3157
3158         * class.h, class.c: keep track if a class is also an Enum.
3159         * loader.c: Implement a couple more types for use in libffi
3160         marshalling. Gives better diagnostics when failing to dlopen
3161         a library. Set method->klass for P/Invoke methods, too.
3162
3163 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
3164
3165         * class.c, class.h: add a MonoType this_arg to MonoClass that
3166         represents a pointer to an object of the class' type that
3167         can be used by the interpreter and later the type cache.
3168         Add best guess alignment info for valuetype objects.
3169
3170 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
3171
3172         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
3173         into MonoType: one less level of indirection and allocation and
3174         simplifies quite a bit of code. Added cache for MonoTypes that are
3175         used frequently, so that we don't need to allocate them all the time.
3176
3177 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
3178
3179         * class.c (mono_class_create_from_typedef): System.Enum is also a
3180         value type, although it does not derive from System.ValueType
3181         (maybe a bug in the ms compiler?)
3182
3183         * metadata.c (mono_type_size): return the right size for value types
3184
3185         * loader.c (mono_get_method): only initialize method header if not abstract
3186
3187         * class.c (mono_class_from_mono_type): use mono_default values. 
3188
3189 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
3190
3191         * *: use MonoClass pointers instead of <type_tokens>
3192         
3193         * class.h: new flag: metadata_inited.
3194
3195         * class.c (mono_class_metadata_init): impl.
3196         (mono_class_instance_size): impl.
3197         (mono_class_data_size): impl.
3198
3199 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
3200
3201         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
3202         MonoClass now has the name and name_space fields. 
3203         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
3204         mono_get_method () takes and optional MonoClass as argument.
3205         Removed mono_typedef_from_name() and added mono_class_token_from_name()
3206         instead that takes advantage of a map from class names to typedef
3207         tokens in MonoImage.
3208
3209 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
3210
3211         * metadata.c: zero is not a valid alignment boundary.
3212         Merge MONO_TYPE_VOID in default decoding code.
3213
3214 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
3215
3216         * image.h: merged MonoMetadata into MonoImage
3217
3218         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
3219         identify the type of elements.
3220
3221 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
3222
3223         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
3224         * cil-coff.h: split MonoMSDOSHeader and add size info.
3225         * image.c: add some consistency checks.
3226         * metadata.c: fix row size computation: one programmer
3227         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
3228         add explanation for the locator routine.
3229         Fix decoding of size in method header.
3230         
3231 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
3232
3233         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
3234         (g_concat_dir_and_file): Bring g_concat_dir_and_file
3235         function from gnome-libs.  This uses the right path separator
3236         based on the OS, and also works around a bug in some systems where
3237         a double slash is not allowed. 
3238         (default_assembly_name_resolver): Use g_concat_dir_and_file
3239         (mono_assembly_open): ditto.
3240
3241 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
3242
3243         * metadata.c (mono_metadata_signature_equal): impl.
3244
3245         * *: void is now a realy MonoType (instead of using NULL)
3246         
3247         * metadata.c (do_mono_metadata_parse_type): use
3248         mono_metadata_parse_type to parse void value.
3249
3250 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
3251
3252         * metadata.c, metadata.h: in the signature and method header store
3253         only the space required for holding the loca vars and incoming arguments.
3254
3255 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
3256
3257         * metadata.c (do_mono_metadata_parse_type): treat void like any
3258         other type (instead of assigning NULL);
3259
3260 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
3261
3262         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
3263
3264 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
3265
3266         * image.c (do_mono_image_open): added a cache for arrays.
3267
3268 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
3269
3270         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
3271         decode a single column from a row in a metadata table and changes
3272         to take advantage of it in the typedef locator (gives a nice speed up).
3273         Store offset info for function params.
3274
3275 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
3276
3277         * image.h (MONO_IMAGE_IS_CORLIB): removed 
3278
3279 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
3280
3281         * assembly.c: how could mono_assembly_close () had ever worked?
3282         * metadata.c, metadata.h: provide offset info for local vars.
3283         Implement mono_type_size () to take care of alignment as well
3284         as size (it was mono_field_type_size in cli/class.c before).
3285
3286 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
3287
3288         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
3289
3290         * assembly.h (CORLIB_NAME): set to corlib.dll
3291
3292         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
3293
3294 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
3295
3296         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
3297         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
3298         tokentype.h: massive namespace cleanup.
3299
3300 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
3301
3302         * metadata.h, metadata.c: decode exception clauses when parsing method header.
3303
3304 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
3305
3306         * metadata.c (mono_metadata_free_type): added check for type !=
3307         NULL (void) before calling mono_metadata_free_type()
3308
3309 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
3310
3311         * metadata.h, row_indexes.h: added header with enumerations to use
3312         to index in the columns from tables in metadata and to decode coded
3313         tokens: we should start using this instead of embedding magic numbers
3314         all over the code.
3315
3316 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
3317
3318         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
3319         Move metadata_t info from cli_image_info_t to MonoImage, where
3320         it's easily accessible. Changed all the uses accordingly.
3321         Added the method and class caches to MonoImage.
3322         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
3323         and mono_metadata_decode_value () signature to be more consistent
3324         with the other parse functions (and simplify code). Taken advantage
3325         of zero-length array allocation with GCC. Removed reduntant (and
3326         wrong) MonoFieldType struct and use MonoParam instead. Changed
3327         mono_metadata_parse_field_type () to use common code for parsing.
3328         Added mono_metadata_typedef_from_field () and
3329         mono_metadata_typedef_from_method () to lookup a typedef index from a
3330         field or method token.
3331         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
3332
3333 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
3334
3335         * metadata.c (mono_metadata_parse_field_type): Implement. 
3336         (do_mono_metadata_parse_type): Split engine from
3337         mono_metadata_parse_type, so that we can create smaller structures
3338         for things that just have one pointer to the MonoType (look at
3339         the MonoFieldType)
3340
3341 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
3342
3343         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
3344         as Jan Gray found out, it is incorrect. 
3345
3346 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
3347
3348         * assembly.c: Implement asssembly loading.  This loads an image
3349         and loads all the referenced assemblies.  Come to think of it, we
3350         could always do lazy loading of the assemblies. 
3351
3352         * image.c (mono_image_open): Keep loaded images in a hashtable.
3353
3354         * image.h (MonoImage): Add reference count.
3355
3356 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
3357
3358         * assembly.c (mono_assembly_open): Keep track of the file name in
3359         case the assembly has no ASSEMBLY table.
3360
3361         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
3362         from get.c here.
3363
3364 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
3365
3366         * metadata.c, metadata.h: decode local vars in method header
3367         parse function. Change callers accordingly.
3368
3369 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
3370
3371         * metadata.h, cil-coff.h: protect against multiple inclusion.
3372         Added some new structures to hold information decoded from metadata:
3373         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
3374         and relevant decoding/free functions.
3375         * metadata.c: implement decoding functions. Add warning for out of bounds
3376         index in mono_metadata_locate(). Implement mono_get_method () to retreive
3377         all the info about a method signature and invocation. Remove check on
3378         uninitialized local var in parse_mh() and fix memory leak.
3379
3380 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
3381
3382         * metadata.h: More macros.
3383
3384         * tokentype.h: New file.
3385
3386 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
3387
3388         * assembly.c: added a consistency check and initialize
3389         some structures with g_new0().
3390         * metadata.c: fixed a couple more bugs in table size computation
3391         and add other checks for out-of bound access to metadata.
3392
3393 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
3394
3395         * metatada.c: fix bugs computing table sizes. Spew a
3396         warning when index in string heap is out of bounds.
3397
3398 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
3399
3400         * metadata.h: Add a couple of macros to manipulate tokens. 
3401
3402 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
3403
3404         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
3405         cli_section_tables).
3406
3407 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
3408
3409         * metadata.c (mono_metadata_user_string): New function, provides
3410         access to the UserString heap. 
3411
3412 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
3413
3414         * metadata.c: Add inline documentation.
3415
3416 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
3417
3418         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
3419         files. 
3420
3421 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
3422
3423         * typeattr.h: New file, TypeAttribute flags. 
3424
3425 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
3426
3427         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
3428         mono_assembly_ensure_section): Section loading code.
3429         (load_section_tables): Load the sections.
3430
3431         * mono/metadata/metadata.c (mono_metadata_locate_token,
3432         mono_metadata_locate): Functions to locate the information
3433         definition given a token or a table and an index.
3434         (mono_metadata_compute_table_bases): New.
3435         (compute_size): New function to compute the sizes of the various
3436         tables.
3437
3438         * mono/metadata/metadata.h: Finish listing the different index
3439         types. 
3440
3441         * mono/metadata/pedump.c: Improve to dump new information.
3442
3443 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
3444
3445         * mono/metadata/metadata.c: Entered all the tables matching
3446         Beta2. 
3447
3448         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
3449