2003-10-13 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
1 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
2
3         * marshal.h: Add missing function to fix build.
4
5         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6         the SetLastError pinvoke attribute.
7
8         * marshal.c (mono_marshal_set_last_error): New helper function called
9         by the generated code.
10         
11         * marshal.c (mono_mb_emit_branch): New helper function.
12
13         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14
15         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16         classes as parameters and return values of delegates. Fixes #29256. 
17
18 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
19
20         * locales.c: use gint32 in non HAVE_ICU case
21
22 2003-10-11  Martin Baulig  <martin@ximian.com>
23
24         * mono-debug.c (mono_debug_add_method): Added a workaround for
25         bug #48591.
26
27 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
28
29         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
30         delegates passed to native code must use the STDCALL calling 
31         convention. Fixes #35987.
32
33 2003-10-10  Martin Baulig  <martin@ximian.com>
34
35         * class.c (inflate_generic_type): If we're inflating for a generic
36         type instance (and not for a generic method), return
37         MONO_TYPE_MVAR unchanged.
38
39 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
40
41         * string-icalls.c: Join ignores null strings in the source array.
42         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
43         * threads.c: GetAvailableTheads is slightly more accurate.
44
45 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
46
47         * threads.h threads.c : add mono_threads_set_default_stacksize
48         and pass default to CreateThread calls.
49
50 2003-10-10  Martin Baulig  <martin@ximian.com>
51
52         * reflection.c (MonoReflectionGenericParam): Added `guint32 index'.
53         (mono_reflection_define_generic_parameter): If `gparam->index' is
54         non-zero, create a MONO_TYPE_MVAR.
55         (encode_type): Added support for MONO_TYPE_MVAR.
56
57 2003-10-09  Dick Porter  <dick@ximian.com>
58
59         * icall.c:
60         * locales.h:
61         * locales.c: Internal calls for constructing CultureInfo and
62         related objects from libicu (if its available.)
63
64 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
65
66         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
67
68 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
69
70         * threadpool.c: added an argument to async_invoke_thread that is the
71         item to process, pass the MonoAsyncResult to the thread start function
72         when creating a new thread. This way we don't need to acquire any lock
73         when we're creating a new thread. Readded a semaphore for faster
74         response times (instead of that Sleep i added).
75
76 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
77
78         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
79         get daylight change dates better on Windows, fix handling
80         of platforms without tm_gmtoff.
81
82 2003-10-06  Martin Baulig  <martin@ximian.com>
83
84         * class.c (inflate_generic_method): Renamed to
85         mono_class_inflate_generic_method() and made public.
86         (mono_class_init): Don't inflate the generic methods here.
87         (mono_class_from_generic): Added `gboolean inflate_methods'
88         argument.  Inflate the methods here.
89
90         * loader.c (mono_method_get_param_names): Ignore instances of
91         generic types for the moment.
92
93         * reflection.c (fixup_method): Added support for inflated methods.
94         (mono_image_create_token): Use mono_image_get_methodref_token()
95         for inflated methods.
96         (mono_custom_attrs_from_param): Ignore instances of generic types
97         for the moment.
98         (mono_reflection_bind_generic_parameters): New public function.
99         Moved all the functionality from
100         ves_icall_Type_BindGenericParameters() here and added support for
101         dynamic types.
102         (mono_reflection_define_generic_parameter): Initialize
103         `klass->methods' here.
104
105         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
106         functionality into mono_reflection_define_generic_parameter().
107         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
108         TypeBuilder, return that TypeBuilder.
109
110 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
111
112         * appdomain.c: removed mono_delegate_semaphore.
113
114         * threadpool.c:
115         (mono_thread_pool_add): moved hash table creation inside and the thread 
116         creation outside of the critical region.
117         (mono_thread_pool_finish): removed obsolete code.
118         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
119         continue or exit the thread depending on the queue.
120
121 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
122
123         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
124         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
125         handle more bool marshalling options
126
127 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
128
129         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
130         arrays of structs. Also add a more descriptive error message when
131         a structure member is marshalled as LPArray.
132
133 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
134
135         * marshal.c (mono_marshal_get_native_wrapper): Add support for
136         marshalling arrays of complex types. Fixes #29098. Also remove an
137         usused and incomplete function.
138
139 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
140
141         * gc.c: report heap_size - free_bytes as total memory allocated
142         (bug#49362).
143
144 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
145
146         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
147         fix timezone handling problems on Windows.
148         
149         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
150         asserts when the year is outside the range handled by ms the functions.
151
152         * class.c (setup_interface_offsets): If the class is an interface,
153         fill out its interface_offsets slot.
154
155 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
156
157         * threadpool.c: mark threadpool threads as background.
158
159 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
160
161         * decimal.c - define DECINLINE to nothing if not using GCC
162
163 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
164
165         * assembly.c: More refcount fixes.
166
167 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
168
169         * string-icalls.c: if we're not trimming, return the same string.
170         When not splitting, don't create a new string.
171
172 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
173
174         * image.c:
175         (mono_image_open): increment the ref_count inside the critical section.
176
177 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
178
179         * image.c (mono_image_open): Fix reference counting bug.
180
181 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
182
183         * marshal.c (mono_marshal_type_size) struct alignment changed for 
184         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
185         64bits. Avoid leak in mono_marshal_get_native_wrapper when
186         mono_lookup_pinvoke_call throws.        
187
188 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
189
190         * reflection.c (mono_reflection_parse_type): Fix #49114.
191
192         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
193         temporary workaround for cygwin header problem.
194
195         * object.c (mono_object_isinst): Synchronize this with the code
196         generated by the JIT for casts.
197
198 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
199
200         * reflection.c (encode_type): Fix #38332.
201
202 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
203
204         * marshal.c (mono_marshal_method_from_wrapper): New function to return
205         the original method from the wrapper method.
206
207 2003-09-25  Martin Baulig  <martin@ximian.com>
208
209         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
210         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
211         (ves_icall_Type_get_IsGenericInstance): New interncall.
212
213 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
214
215         * object.c: fix cast warning in big endian code.
216
217 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
218
219         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
220         
221 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
222
223         * assembly.c: don't call check_env from mono_assembly_load. It's
224         already done once in mono_assemblies_init and may cause headaches when
225         multiple threads are loading assemblies.
226
227 2003-09-19  Martin Baulig  <martin@ximian.com>
228
229         * reflection.c (mono_reflection_define_generic_parameter): Don't
230         allocate `klass->methods', set `klass->flags' to
231         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
232
233 2003-09-18  Martin Baulig  <martin@ximian.com>
234
235         * class.c (mono_class_init): Don't create `class->methods' if it's
236         already initialized.
237
238         * metadata.c (mono_metadata_load_generic_params): Make this
239         actually work.
240
241         * reflection.c (mono_reflection_define_generic_parameter): Set
242         parent class and interfaces from the constraints.
243
244         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
245         to keep this struct in sync with the declaration in TypeBuilder.cs.
246
247 2003-09-17  Martin Baulig  <martin@ximian.com>
248
249         * metadata.h (MonoType): Replaced the data's `int type_param'
250         field with `MonoGenericParam *generic_param'.
251         (MonoGenericParam): Added `MonoClass *klass'.
252
253         * class.c (mono_class_from_gen_param): Removed the
254         `MonoImage *image' and `int type_num' arguments.
255
256         * metadata.c (mono_metadata_parse_generic_param): New static
257         method; creates a MonoGenericParam which just contains the index.
258         (do_mono_metadata_parse_type): Call
259         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
260         MONO_TYPE_MVAR.
261
262         * reflection.c (mono_image_typedef_or_ref): Generic type
263         parameters may be in the same assembly, but never use a typedef
264         for them.
265         (mono_reflection_define_generic_parameter): We're now creating a
266         "real" class for the type parameter; it's now safe to call
267         mono_class_from_mono_type() on the class'es type, it'll do the
268         right thing.
269
270 2003-09-16  Martin Baulig  <martin@ximian.com>
271
272         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
273         `symfile->range_entry_size' and `symfile->class_entry_size' here;
274         the `symfile' data structure must be fully initialized before it
275         gets added to the table.
276
277 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
278
279         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
280
281         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
282         class init trampolines.
283
284 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
285
286         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
287         to the built-in profiler to turn off time and allocation profiling
288         respectively.
289
290 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
291
292         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
293         g_direct_equal.
294
295         * debug-helpers.c (mono_method_full_name): Print the wrapper type
296         in human readable form.
297
298 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
299
300         * reflection.c icall.c: Fixed warnings.
301
302         * image.c (load_class_names): Use a temporary hash table to hold the
303         namespaces in order to avoid doing many string comparisons.
304
305         * image.h: Fix typo.
306
307         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
308         Pass NULL instead of g_direct_equal to the GHashTable constructor 
309         since the NULL case is short-circuited inside g_hash_table_lookup, 
310         leading to better performance.  
311
312         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
313         obtain the first custom attribute for a given index. Depends on the
314         CustomAttribute table being sorted by the parent field.
315
316         * reflection.c (mono_custom_attrs_from_index): Use the new function 
317         for better performance.
318
319 2003-09-07  Martin Baulig  <martin@ximian.com>
320
321         * class.c (mono_class_init): If we're a generic instance, inflate
322         all our methods instead of loading them from the image.
323         (mono_class_from_generic): Set `class->methods = gklass->methods'.
324
325 2003-09-07  Martin Baulig  <martin@ximian.com>
326
327         * mono-debug-debugger.c: Added support for constructors.
328
329 2003-09-06  Martin Baulig  <martin@ximian.com>
330
331         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
332         New interncall.
333
334         * reflection.c (mono_reflection_setup_generic_class): Call
335         ensure_runtime_vtable() to create the vtable.
336
337 2003-09-05  Martin Baulig  <martin@ximian.com>
338
339         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
340         MONO_TYPE_MVAR.
341
342 2003-09-04  Martin Baulig  <martin@ximian.com>
343
344         * reflection.c (mono_reflection_define_generic_parameter): Generic
345         parameters start with zero.
346
347 2003-09-04  Martin Baulig  <martin@ximian.com>
348
349         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
350
351         * reflection.h (MonoReflectionGenericParam): New typedef.
352         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
353         the generic parameters from the managed TypeBuilder.
354
355         * reflection.c (mono_reflection_define_generic_parameter): New function.
356         (mono_reflection_create_runtime_class): Encode generic parameters.
357         (mono_reflection_setup_generic_class): New function; this is
358         called after adding adding all generic params to the TypeBuilder.
359         (encode_type): Added MONO_TYPE_VAR.
360
361 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
362
363         * class.h class.c (mono_class_needs_cctor_run): Moved this method
364         here from the JIT.
365
366         * assembly.h assembly.c: Moved the AOT loading code into an assembly
367         load hook.
368
369 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
370
371         * reflection.h reflection.c class.h class.c: Delete duplicate 
372         definition of mono_type_get_name () from reflection.c and export the
373         one in class.c.
374
375         * class.c: Class loading fixes from Bernie Solomon 
376         (bernard@ugsolutions.com).
377
378         * reflection.c: Endianness fixes from Bernie Solomon 
379         (bernard@ugsolutions.com).
380         
381 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
382
383         * assembly.h assembly.c: Define a file format version for AOT
384         libraries.
385         
386         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
387
388         * appdomain.h (MonoJitInfo): New field to determine whenever the
389         code is domain neutral.
390         
391 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
392
393         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
394
395 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
396
397         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
398         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
399         Avoid caching the result since strings must be domain specific. Fixes
400         #48050.
401
402 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
403
404         * marshal.c (mono_marshal_init): Make this callable multiple times
405         since it is hard to find a correct place to call it.
406
407         * object.c (mono_runtime_class_init): Execute static constructors in
408         the correct appdomain.
409
410         * image.c (build_guid_table): Handle the case when multiple images have
411         the same GUID.
412
413 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
414
415         * icall.c: added a couple of icalls for System.Web.
416
417 2003-08-28  Martin Baulig  <martin@ximian.com>
418
419         * icall.c (ves_icall_Type_BindGenericParameters): Use
420         `klass->generic_inst' instead of `&klass->byval_arg' in the
421         mono_type_get_object() call.  The returned type must be
422         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
423
424 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
425
426         * NOTES: New file.
427
428         * object.c (mono_class_proxy_vtable): Make it thread safe.
429
430         * pedump.c: Fix warning.
431
432         * object.c appdomain.h: Get rid of metadata_section. 
433         It is no longer needed and it was causing deadlocks with domain->lock.
434
435         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
436
437 2003-08-26  Martin Baulig  <martin@ximian.com>
438
439         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
440
441 2003-08-26  Martin Baulig  <martin@ximian.com>
442
443         * pedump.c (main): Call mono_metadata_init(),
444         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
445         and mono_loader_init().
446
447 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
448
449         * loader.h: Add missing include to fix build.
450
451         * image.h: mono_image_load_references is no more.
452
453         * assembly.c: Reworked assembly loading to make it really thread safe.
454         After these changes, the assembly returned by mono_assembly_open is
455         fully initialized, i.e. all its references assemblies are loaded.
456
457         * assembly.c (mono_image_load_references): Renamed to 
458         mono_assembly_load_references, and made private, since clients no
459         longer need to call it.
460
461         * class.c: Removed calls to mono_assembly_load_references, since it was
462         a source of deadlocks.
463
464         * loader.h loader.c class.h class.c: Protect data structures using a 
465         new lock, the loader lock.
466
467         * class.c (mono_class_setup_vtable): Create temporary hash tables and
468         GPtrArrays only when needed.
469
470         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
471         into empty structures by mcs. Fixes pinvoke7.cs.
472         
473         * domain.c (mono_init): Call a new initialization function.
474
475         * appdomain.c (mono_runtime_init): Call the new initializer function
476         of the marshal module.
477
478         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
479         inserted into empty structures by mcs. Fixes pinvoke7.cs.
480
481         * marshal.h marshal.c: Added locks around the wrapper caches to make
482         this module thread safe.
483
484         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
485         this argument. Fixes pinvoke1.exe.
486
487 2003-08-25  Lluis Sanchez <lluis@ximian.com>
488
489         * object.h: Added call_type field to MonoMethodMessage and the corresponding
490         enumeration of values. Removed fields to store remote call output values in
491         MonoAsyncResult. Not needed any more.
492         * object.c: Initialize call_type and async_result fields in mono_message_init.
493         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
494         dispatching the message.
495         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
496         async call to finish. To do it use a message with EndInvoke call type.
497
498 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
499
500         * loader.h loader.c (mono_method_hash_marhal_info): New function which
501         determines whenever a method has marshalling info.
502
503 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
504
505         * assembly.c: fix the build on windows.
506
507 2003-08-22 Lluis Sanchez <lluis@ximian.com>
508
509         * object.cs: Fixed bug #47785.
510
511 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
512
513         * string-icalls.c (StringReplace): If their are no occurances of
514         the old string found return a reference to the supplied
515         string. This saves some memory and matches MS behavoir.
516         
517 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
518
519         * socket-io.c: fixed compilation for systems that define AF_INET6
520         and don't define SOL_IP/SOL_IPV6.
521
522 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
523
524         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
525         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
526
527         * rawbuffer.c rawbuffer.h: Make this module thread safe.
528
529         * domain.c: Make this module thread safe.
530
531         * domain.c (mono_init): Call new initialization function.
532
533         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
534         reference types too. Fixes #38812.
535
536         * image.c (mono_image_init): Fixed warnings.
537
538         * class.c (mono_class_from_typeref): Handle assembly load failure
539         correctly.
540
541         * appdomain.c (add_assemblies_to_domain): Handle the case when
542         the references of an assembly are not yet loaded.
543
544         * metadata.c image.c assembly.c: Moved initialization of global
545         variables to a separate function called at startup since lazy 
546         initialization of these variables is not thread safe.
547         
548         * image.c assembly.c: Made this module thread safe by adding locks in 
549         the appropriate places.
550
551         * domain.c (mono_init): Call the new initialization functions of the
552         three modules.
553
554 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
555
556         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
557           make a direct call. It is proxy's work to make the call asynchronous.
558           mono_delegate_end_invoke(): If the targe is a proxy, just collect
559           the return values.
560         * object.cs: mono_method_call_message_new(): read AsyncResult and
561           state object from parameters list, if this info is requested.
562         * object.h: Added fields to store remote call output values in
563           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
564
565 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
566
567         * object.h: add needed fields to MonoThread.
568         * threads.c, threads.h: allow registering a function to cleanup data
569         allocated per thread by the JIT.
570
571 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
572
573         * loader.h: portability fix by Bernie Solomon
574         * <bernard@ugsolutions.com>.
575
576 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
577
578         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
579         return a MonoArray. This simplifies the code and also ensures that
580         the cache allways contains an object reference as a value.
581
582         * icall.c (ves_icall_get_parameter_info): Simplified using the new
583         function.
584
585 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
586
587         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
588         fixes a problem with byte ordering when getting the address family for
589         a socket.
590
591 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
592
593         * .cvsignore: Added monosn.
594
595         * reflection.h reflection.c loader.c: Added support for parameter
596         marshalling to dynamically created types. Fixes #47295.
597
598 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
599
600         * rand.c: remove useless warnings.
601
602 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
603
604         * class.c: implemented ldtoken for methods and fieldrefs.
605
606 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
607
608         * threadpool.c: when mono_async_invoke was called, no one took care of
609         monitoring the queue. So if the method invoked took some time and we
610         got new async invoke requests after 500 ms (the thread created waited
611         that long in WaitForSingleObject), the new async invoke was not called
612         until the previous one finished.
613
614         This is fixed now. Thanks to Totte for helping with it.
615
616 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
617
618         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
619
620 2003-08-11  Martin Baulig  <martin@ximian.com>
621
622         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
623
624 2003-08-06  Martin Baulig  <martin@ximian.com>
625
626         * mono-debug-debugger.c: Added support for static fields,
627         properties and methods.
628
629 2003-08-06  Martin Baulig  <martin@ximian.com>
630
631         * mono-debug-debugger.c: Don't store the MonoString's vtable to
632         make this work for applications with multiple application domains.
633
634 2003-08-04  Martin Baulig  <martin@ximian.com>
635
636         * mono-debug-debugger.c: Completely reworked the type support; the
637         most important thing is that we're now just using one single
638         `MonoType' instance per type.
639
640 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
641
642         * mono-endian.h, mono-endian.c, icall.c: Added icall
643         ves_icall_System_Double_AssertEndianity to assert double word endianity
644         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
645
646 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
647
648         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
649         support, icalls and fixes.
650
651 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
652
653         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
654         classes that are a punctuation character in .NET is not the same a
655         g_unichar_ispunct.
656
657 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
658
659         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
660
661 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
662
663         * icall.c: Add new MemCopy internalcall.
664         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
665         Simplified code; It is not necessary to handle all the cases here,
666         as the C# code takes care of it.  Only handle the case of the name
667         resource embedded into the assembly.
668
669         Changed signature to return the data pointer and the size of the
670         data. 
671
672 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
673
674         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
675         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
676
677 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
678
679         * socket-io.c: ignore EINTR error in select.
680
681 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
682
683         * class.h, class.c: removed unused subclasses field in MonoClass.
684
685 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
686
687         * icall.c: improve fix of get_base_definition(). If the parent class
688           doesn't have the mehod, look at the parent of the parent.
689         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
690           to check if a parameter is an in or out parameter
691           (PARAM_ATTRIBUTE_IN is not set by default).
692           mono_method_return_message_restore(): Use mono_class_value_size to
693           get the size of a value type. mono_type_stack_size (parameterType)
694           does not return the correct value if parameterType is byRef.
695           mono_load_remote_field(), mono_load_remote_field_new(),
696           mono_store_remote_field(), mono_store_remote_field_new():
697           raise exception if the remote call returns an exception.
698
699 2003-07-28  Martin Baulig  <martin@ximian.com>
700
701         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
702         method.  This is a wrapper around mono_runtime_invoke() which
703         boxes the instance object if neccessary.
704
705 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
706
707         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
708         metadata.h, row-indexes.h, verify.c: first cut of generics support.
709
710 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
711
712         * icall.c: disable mcs bug workaround.
713
714 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
715
716         * object.c (mono_runtime_class_init): Take the metadata_section
717         mutex before obtaining the domain mutex.
718
719         * appdomain.h: Added definition of metadata_section mutex here. 
720
721         * object.c: define metadata_mutex here.
722
723 2003-07-24  Ravi Pratap  <ravi@ximian.com>
724
725         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
726         fixed.
727
728 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
729
730         * reflection.c: Fix bug #46669
731
732 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
733
734         * exception.c:
735         * exception.h:
736         * icall.c:
737         * object.h: fill in the type name for TypeLoadException.
738
739 2003-07-23  Ravi Pratap  <ravi@ximian.com>
740
741         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
742         relationship between TypeBuilders while compiling corlib) and bug
743         45993 (Array types returned from the runtime while compiling
744         corlib were from the loaded corlib).
745
746 2003-07-22  Martin Baulig  <martin@ximian.com>
747
748         * mono-debug-debugger.c: Reworked the type support a bit more;
749         distinguish between types and classes.
750
751 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
752
753         * icall.c: add IsArrayImpl icall.
754
755 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
756
757         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
758         initializing real_size only once. Also fix bug #46602.
759
760 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
761
762         * object.c: Renamed mono_metadata_section to metadata_section.
763
764 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
765
766         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
767           empty array if the type is an array. Fixed.
768           ves_icall_MonoMethod_get_base_definition: if the base method
769           is abstract, get the MethodInfo from the list of methods of
770           the class.
771         * reflection.c: ParameterInfo.PositionImpl should be zero-based
772           and it was 1-based. Fixed in mono_param_get_objects.
773
774 2003-07-20  Martin Baulig  <martin@ximian.com>
775
776         * mono-debug.h: Set version number to 31.
777         (mono_debug_init): Added `MonoDomain *' argument.
778
779         * mono-debug-debugger.c: Reworked the type support; explicitly
780         tell the debugger about builtin types; pass the `klass' address to
781         the debugger.
782
783 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
784
785         * image.c: Allow new metadata tables to be loaded without a
786         warning. Also update the warning message to give the new constant value.
787                 
788 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
789
790         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
791         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
792         array type representation changes.
793
794 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
795
796         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
797         on Environment.Exit () call.
798
799 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
800
801         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
802         requires a matching corlib.
803
804 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
805
806         * Changelog: My editor decided to add a CR to each line. Sorry about that.
807           Committed again without the CRs.
808         
809 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
810
811         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
812           getting it from the "this" socket instance. Did not work
813           if the socket is a subclass of Socket.
814           Also fixed bug #35371.
815
816 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
817
818         * metadata.c: fixed size for TypedByRef.
819         * loader.c: when searching for a method, consider the vararg amrker.
820         * unicode.c, decimal.c: constify some arrays.
821
822 2003-07-15  Dick Porter  <dick@ximian.com>
823
824         * socket-io.c: Fixed compilation for gcc < 3.2.
825
826         Fixed compilation for machines that don't have AF_INET6 (thanks to
827         Bernie Solomon <bernard@ugsolutions.com> for that part.)
828
829         Fixed compile warnings.
830         
831         Fixed formatting and line endings.
832
833 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
834
835         * socket-io.h:
836         * socket-io.c: Added IPv6 support.
837
838 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
839
840         * class.c (mono_class_is_assignable_from): New function to implement
841         the is_assignable_from logic. Used by mono_object_isinst, 
842         Type::IsAssignableFrom () and the interpreter.
843
844         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
845         Object, even interfaces.
846         
847         * object.c (mono_object_isinst): Implement in terms of 
848         is_assignable_from.
849
850         * icall.c (ves_icall_type_is_assignable_from): New icall.
851
852 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
853
854         * domain.c (foreach_domain): fix compiler warning.
855
856 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
857
858         * image.c (load_metadata_ptrs): use g_strndup because strndup is
859         not available on all plattforms
860
861 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
862
863         * image.h image.c: Store the metadata version string in MonoImage.
864         * icall.c: New icall to retrieve the image version.
865         * reflection.c (create_dynamic_image): Fill in the image version field
866         * reflection.c (build_compressed_metadata): Use the image version
867         from the image structure.
868
869 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
870
871         * appdomain.c: modified comment.
872         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
873         That will be its last iteration when mono_gc_cleanup is called from
874         mono_runtime_cleanup and before the domain is unloaded.
875
876         Fixes bug #45962.
877
878 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
879
880         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
881         attributes.
882
883 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
884
885         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
886         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
887         Bernie Solomon <bernard@ugsolutions.com>.
888
889 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
890
891         * object.c, object.h: provide mono_object_new_fast() for faster
892         allocation in some special cases.
893
894 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
895
896         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
897         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
898
899 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
900
901         * threadpool.c: fix leaks.
902
903 2003-07-01  Dick Porter  <dick@ximian.com>
904
905         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
906         using MonoGHashTables.  Fixes threadpool bug posted to list.
907
908 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
909
910         * image.h, image.c: added support to load an assembly from a byte array.
911         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
912         assembly bundle support.
913
914 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
915
916         * threadpool.c (mono_thread_pool_add): keep a reference to the
917         AsyncResult to prevent GC
918
919 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
920
921         * class.c: leak fix.
922
923 2003-06-25  Dick Porter  <dick@ximian.com>
924
925         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
926         for the async object, the WaitHandle object will close the handle.
927         Fixes bug 45321.
928
929 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
930
931         * class.c: in mono_array_class_get (), lookup from the hash with the
932         same type we insert: this works around a bug in
933         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
934         lluis. The real fix will have to wait for after the release.
935
936 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
937
938         * icall.c: fix memory leak when getting type members.
939
940 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
941
942         * reflection.c: added more pubtoken special cases.
943
944 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
945
946         * class.c: handle field offset correctly when class size
947         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
948
949 2003-06-20  Martin Baulig  <martin@ximian.com>
950
951         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
952         *image' field.
953
954 2003-06-20  Martin Baulig  <martin@ximian.com>
955
956         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
957
958 2003-06-20  Martin Baulig  <martin@ximian.com>
959
960         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
961         just distinguish between variables in registers and variables at
962         an offset relative to a register.
963
964 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
965
966         * icall.c: #ifdef out latest changes until mcs is fixed.
967
968 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
969
970         * icall.c: return members in metadata order.
971
972 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
973
974         * icall.c: avoid infinite loop in GetTimeZoneData.
975
976 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
977
978         * icall.c: added Marshal.Prelink/All icalls.
979
980 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
981
982         * object.c, object.h: fix warnings and do some overflow checking
983         when creating arrays.
984
985 2003-06-17  Dick Porter  <dick@ximian.com>
986
987         * file-io.h:
988         * file-io.c: File attributes need to be tweaked slightly when
989         passed from the managed to the w32 world.
990
991 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
992         * profiler.h profiler-private.h profiler.c: Rework last patch
993         based on suggestion by Paolo.
994         
995 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
996
997         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
998         instruction level coverage data collection.
999         * profiler.h profiler.c (: Added new callback function which can be
1000         used by the profiler to limit which functions should have coverage
1001         instrumentation.
1002         * profiler.c (mono_profiler_load): Call g_module_build_path to
1003         generate the file name of the profiler library.
1004
1005 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
1006
1007         * profiler.c, profiler.h, profiler-private.h: added basic block 
1008         coverage profiling API.
1009
1010 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
1011
1012         * reflection.c (mono_reflection_create_runtime_class): Add support
1013         for events in dynamically generated code.
1014
1015         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
1016         not allocated.
1017
1018 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
1019
1020         * icall.c: when getting timezone info, return reasonable values if we
1021         can't get the actual data.
1022
1023 2003-06-14  Dick Porter  <dick@ximian.com>
1024
1025         * threads.c (start_wrapper): Remove the reference to the thread
1026         object in the TLS data, so the thread object can be finalized.
1027         This won't be reached if the thread threw an uncaught exception,
1028         so those thread handles will stay referenced :-( (This is due to
1029         missing support for scanning thread-specific data in the Boehm GC
1030         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
1031
1032 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
1033
1034         * reflection.c: ensure streams and tables are first allocated with
1035         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
1036
1037 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
1038
1039         * icall.c: fixed GetElementType for byrefs (bug# 44792).
1040
1041 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
1042
1043         * reflection.c (mono_reflection_create_runtime_class): Add support for
1044         properties to dynamically created classes.
1045         * reflection.c: Fix a few places where non-MonoObjects were inserted
1046         into the tokens hashtable.
1047
1048 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
1049
1050         * object.c: some support to handle out of memory exceptions.
1051
1052 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
1053
1054         * marshal.c (mono_marshal_get_native_wrapper): support reference
1055         return types
1056
1057 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
1058
1059         * object.h, object.c: more portability stuff from Bernie Solomon.
1060         Unexport mono_object_allocate(). Added mono_object_unbox ().
1061         Set exitcode when an unhandled exception is thrown.
1062
1063 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
1064
1065         * marshal.c (mono_marshal_get_native_wrapper): use custom
1066         marshaler for return types.
1067
1068 2003-06-10  Dick Porter  <dick@ximian.com>
1069
1070         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
1071         ip_mreq is available
1072
1073 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
1074
1075         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
1076         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
1077         by Bernie Solomon <bernard@ugsolutions.com>.
1078
1079 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
1080
1081         * gc.c (mono_gc_init): Avoid error message on shutdown when
1082         GC_DONT_GC=1 is used.
1083
1084         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
1085         New icall to return the GUID of a module.
1086
1087 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
1088
1089         * class.c: ensure instance size always includes the parent's size
1090         even whem class size is set explicitly (fixes bug#44294).
1091
1092 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
1093
1094         * profiler.h, profiler.c: made the simple profiler thread-safe,
1095         get more accurate timing info. Allow the loading of an
1096         externally-developed profiler module.
1097
1098 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
1099
1100         * marshal.c (mono_marshal_get_native_wrapper): improved
1101         class/byref arguments.
1102         (mono_marshal_get_native_wrapper): better string marshaling support.
1103
1104 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
1105
1106         * class.c: ensure .pack and .size are handled correctly and
1107         simplified layout of static fields.
1108
1109 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
1110
1111         * appdomain.c
1112         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
1113
1114         * loader.c (mono_lookup_pinvoke_call): look for modules in the
1115         current directory (fix bug 44008)
1116
1117 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
1118
1119         * marshal.c (mono_marshal_get_native_wrapper): started support for
1120         custom marshalers.
1121         (mono_delegate_to_ftnptr): consider marshalling specifications
1122
1123 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
1124
1125         * reflection.c, reflection.h: emit custom marshal info.
1126
1127 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1128
1129         * object.c: free the GError.
1130         * icall.c: added CloseEvent_internal.
1131         * threads.[ch]:
1132         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
1133         call.
1134
1135 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
1136
1137         * loader.c (mono_method_get_signature): Add support for dynamic
1138         assemblies.
1139
1140 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
1141
1142         * reflection.c: fixed bug #43905.
1143
1144 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
1145
1146         * class.c, domain.c, icall.c, metadata.h, object.h: support for
1147         handling TypedReference and ArgIterator.
1148         * loader.c, loader.h: added function to get signature at call site.
1149
1150 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
1151
1152         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
1153         data readonly. Buglets and warning fixes. Some MethodSpec support.
1154
1155 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
1156
1157         * class.h, class.c, object.c: remove relative numbering support.
1158
1159 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
1160
1161         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
1162         free the string, until we get a chance to fix Gtk#
1163
1164 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1165
1166         * marshal.c: revert last patch.
1167
1168 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
1169
1170         * icall.c: updates for new mono_class_vtable() not calling
1171         the type constructor anymore.
1172
1173 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
1174
1175         * object.h, object.c: separate vtable creation from type
1176         initialization. Make running the .cctor thread safe.
1177
1178 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
1179
1180         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
1181
1182 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
1183
1184         * loader.c (mono_get_method): consider calling convention
1185
1186 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
1187
1188         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
1189         to return the invisible global type for a module.
1190
1191         * reflection.c (mono_image_build_metadata): Emit global fields too.
1192
1193 2003-05-20  Peter Williams  <peterw@ximian.com>
1194
1195         * loader.c (mono_lookup_internal_call): Add a few newlines.
1196
1197 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
1198
1199         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
1200         literal strings.
1201
1202         * appdomain.c (set_domain_search_path): Recalculate search path when
1203         AppDomainSetup.PrivateBinPath changes.
1204
1205         * object.c (mono_class_compute_gc_descriptor): It turns out some
1206         parts of the class libs (like System.Thread) holds pointers to
1207         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
1208         to treat native int a pointer type here.
1209         
1210 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
1211
1212         * appdomain.h, domain.c: add hashtable for jump target resolution.
1213
1214 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
1215
1216         * reflection.h reflection.c icall.c: Added new icalls 
1217         GetManifestResourceInfoInternal, GetModulesInternal and support
1218         infrastructure.
1219
1220 2003-05-16  Dick Porter  <dick@ximian.com>
1221
1222         * icall.c:
1223         * file-io.h:
1224         * file-io.c: Implement System.IO.MonoIO::GetTempPath
1225
1226 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
1227
1228         * object.c: mono_store_remote_field: little fix to previous patch.
1229
1230 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
1231
1232         * class.c: add constructors to array classes.
1233         * icall.c: special case array construction for InternalInvoke (),
1234
1235 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
1236
1237         * class.h class.c reflection.c object.c: Added support for field
1238         defaults in dynamically generated classes.
1239
1240 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
1241
1242         * reflection.c: properly encode charset for ddlimport.
1243
1244 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
1245
1246         * threads.c: allow compiling without GC.
1247
1248 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
1249
1250         * appdomain.h, object.c, object.h, threads.c, threads.h: added
1251         handling of thread static data.
1252
1253 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
1254
1255         * reflection.h, reflection.c: added mono_custom_attrs_free ().
1256
1257 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
1258
1259         * class.c (mono_array_class_get): always set the serializable flags
1260         (mono_array_class_get): always set the SEALED attribute for array types
1261
1262 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
1263
1264         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
1265         attributes (fix for bug 42021).
1266
1267 2003-05-12  Dick Porter  <dick@ximian.com>
1268
1269         * gc.c: Don't run finalizers when the finalizer thread is
1270         finishing up, because the default domain has already been
1271         destroyed.
1272
1273 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
1274
1275         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
1276         value is null, we should throw an exception.   This is slightly
1277         different than the other conventions used for the constructor.
1278
1279 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1280
1281         * socket-io.c: fixed windows build.
1282
1283 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1284
1285         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
1286
1287 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
1288
1289         * object.c (mono_string_new_wrapper): Compatibility fix for MS
1290         compilers.
1291
1292 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
1293
1294         * class.c (mono_class_layout_fields): Add experimental GC aware
1295         auto layout facility. Requires class library changes to work correctly.
1296
1297         (mono_class_setup_vtable): Avoid overriding explicit interface
1298         method implementations. Fixes iface3.exe test.
1299
1300         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
1301         object reference.
1302         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
1303         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
1304
1305         * metadata.h: Add new type classification macro which determines
1306         whenever the type holds an object reference.
1307
1308 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
1309
1310         * marshal.c (mono_marshal_get_native_wrapper): cleanups
1311
1312 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
1313
1314         * gc.c (finalizer_thread): Work around a GC bug.
1315
1316 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
1317
1318         * marshal.c (emit_struct_conv): allow unions
1319
1320         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
1321
1322 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
1323
1324         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
1325
1326 2003-05-06  Martin Baulig  <martin@ximian.com>
1327
1328         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
1329
1330 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1331
1332         * socket-io.c:
1333         (Select_internal): allow NULLs, don't create arrays if not needed.
1334         Coupled with Socket.cs changes.
1335
1336         * threadpool.c:
1337         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
1338         register a finalizer for it that will close the semaphore handle. This
1339         fixes the leak and make Lupus' test run with > 4080 loops.
1340
1341 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
1342
1343         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
1344         Jerome Laban (bug #42287)
1345
1346 2003-05-02  Martin Baulig  <martin@ximian.com>
1347
1348         * debug-mono-symfile.h
1349         (MonoSymbolFile): Moved declaration into mono-debug.h.
1350         (MonoDebugMethodJitInfo): Likewise.
1351         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
1352         argument.
1353         (_mono_debug_address_from_il_offset): Take a
1354         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
1355
1356         * mono-debug.h
1357         (MonoDebugDomainData): New struct.
1358         (mono_debug_get_domain_data): New function.
1359         (mono_debug_add_method): Take an additional `MonoDomain *'
1360         argument.
1361         (mono_debug_source_location_from_address): Likewise.
1362         (mono_debug_il_offset_from_address): Likewise.
1363         (mono_debug_address_from_il_offset): Likewise.
1364
1365 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
1366
1367         * reflection.c: one more check for null type in custom attrs.
1368
1369 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1370
1371         * reflection.c: avoid warning (comparison is always false due to limited
1372         range of data type).
1373
1374 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1375
1376         * icall.c: throw an exception in Type.GetField if the argument 'name'
1377         is NULL.
1378
1379 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
1380
1381         * reflection.c: fixed handling of enums in named arguments to custom
1382         attributes (bug #42123).
1383
1384 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
1385
1386         * reflection.c: use the right array element type and handle
1387         a null for a Type argument, too.
1388
1389 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
1390
1391         * reflection.c: handle arrays as arguments to custom attributes.
1392
1393 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
1394
1395         * reflection.c: handle a string value in a custom attr
1396         ctor that takes an object.
1397
1398 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
1399
1400         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
1401         (fix bug #42063)
1402
1403 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
1404
1405         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
1406
1407 2003-04-27  Martin Baulig  <martin@ximian.com>
1408
1409         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
1410         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
1411         MONO_DEBUGGER_EVENT_BREAKPOINT.
1412         (mono_breakpoint_trampoline_code): Removed.
1413         (mono_debugger_event_handler): The last argument is now a
1414         `guint32'.
1415         (mono_debugger_insert_breakpoint_full): Removed the
1416         `use_trampoline' argument.
1417         (mono_debugger_method_has_breakpoint): Likewise.
1418         (mono_debugger_trampoline_breakpoint_callback): Renamed to
1419         mono_debugger_breakpoint_callback(); take the method and
1420         breakpoint number as arguments.
1421
1422 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
1423
1424         * metadata.c: fix off by one when loading parameters attributes.
1425
1426 2003-04-24  Martin Baulig  <martin@ximian.com>
1427
1428         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
1429
1430 2003-04-24  Martin Baulig  <martin@ximian.com>
1431
1432         * mono-debug-debugger.c: Moved all code which interacts with the
1433         Mono Debugger here.
1434
1435         * debug-mono-symfile.c: This code now just deals with the symbol
1436         file itself, the debugger code is now in mono-debug-debugger.c.
1437
1438 2003-04-23  Martin Baulig  <martin@ximian.com>
1439
1440         * mono-debug.c (mono_debug_source_location_from_il_offset):
1441         New method; like mono_debug_source_location_from_address(), but
1442         takes an IL offset instead of a machine address.
1443
1444 2003-04-23  Martin Baulig  <martin@ximian.com>
1445
1446         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
1447         `line' field; this is now computed by the debugger.
1448
1449 2003-04-23  Martin Baulig  <martin@ximian.com>
1450
1451         * mono-debug.[ch]: New files.  This is the new debugging interface.
1452
1453         * mono-debug-debugger.[ch]: New files.  Moved all code which
1454         interacts with the Mono Debugger here.
1455
1456 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
1457
1458         * domain.c (mono_init): initialize mono_defaults.monitor_class
1459
1460 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
1461
1462         * reflection.c (method_encode_code): Add a spicy exception to help
1463         future compiler authors.
1464
1465 2003-04-21  Martin Baulig  <martin@ximian.com>
1466
1467         * icall.c
1468         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1469         Make this work with relative pathnames; g_filename_to_uri() needs
1470         an absolute filename.
1471
1472 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
1473
1474         * icall.c: Track name changes in Object and ValueType.
1475
1476 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
1477
1478         * metadata.c (mono_type_stack_size): size should be a multiple of
1479         sizeof (gpointer)
1480
1481 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1482
1483         * gc.c:
1484         (internal_domain_finalize): moved into mono_domain_finalize. No need
1485         to create another thread because the finalizers will be run in the
1486         finalizer thread.
1487         
1488         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
1489         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
1490         to be run (MS does this too).
1491
1492 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
1493
1494         * object.c (mono_class_compute_gc_descriptor): Update comment.
1495
1496         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
1497
1498         * image.h: Add synchronized wrapper cache.
1499
1500         * image.c (do_mono_image_open): Initialize cache.
1501
1502         * reflection.c (create_dynamic_mono_image): Initialize cache.
1503
1504 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1505
1506         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
1507         ves_icall_System_Buffer_ByteLengthInternal.
1508
1509 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
1510
1511         * reflection.c: setup klass->nested_in earlier. Allow
1512         a dash in the assembly name.
1513
1514 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
1515
1516         * metadata.c (mono_type_to_unmanaged): dont access
1517         type->data.klass for MONO_TYPE_OBJECT
1518         (mono_type_to_unmanaged): consider System.Delegate class
1519
1520 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
1521
1522         * class.c: just setup supertypes in the proper place instead of
1523         initializing the full element class for arrays.
1524
1525 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
1526
1527         * class.c: ensure the element class of arrays is initialized.
1528         Setup the supertype info for array classes, too.
1529
1530 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
1531
1532         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
1533
1534 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1535
1536         * Makefile.am: re-added -m option when running cygpath. This way,
1537         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
1538         separator.
1539         * mono-config.c: same codepath for locating mono config file for WIN32
1540         and the rest.
1541         * assembly.c: if mono_assembly_setrootdir is called, don't override
1542         the value set.
1543
1544 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1545
1546         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
1547         MONO_ASSEMBLIES variable.
1548
1549 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
1550
1551         * icall.c: added Assembly::GetNamespaces() icall.
1552
1553 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1554
1555         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
1556
1557 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
1558
1559         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
1560         * object.c: fixed bug in the construction of vtable for proxies
1561
1562 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
1563
1564         * object.c (mono_array_new): Mark mono_array_new as an icall.
1565
1566 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1567
1568         * class.c: fixed test for public method when overriding interfaces.
1569         Closes bug #40970.
1570
1571 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
1572
1573         * appdomain.h, domain.c: added mono_domain_foreach() to
1574         be able to access the currently loaded appdomains.
1575         * object.c: make string interning work across sppdomains.
1576         Mark some functions for use as icalls.
1577
1578 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
1579
1580         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
1581
1582         * reflection.h reflection.c: Allocate long living data using 
1583         GC_MALLOC_ATOMIC so the collector does not need to scan it.
1584
1585         * reflection.c: Double the allocation size in streams instead of
1586         increasing it, to prevent unneccesary copying on large assemblies.
1587         
1588         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
1589         creation if the assembly does not have the Run flag set.
1590
1591 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
1592
1593         * class.h: avoid the C++ keywords in header files (Jerome Laban
1594         spotted and fixed this).
1595
1596 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1597
1598         * object.c:
1599         (mono_unhandled_exception): fill in the arguments for the
1600         UnhandledException event. Only trigger that event for the default
1601         domain (as MS does).
1602
1603 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
1604
1605         * object.c: Improve typed allocation stuff based on suggestions from
1606         Paolo. Also turn it on if the GC library supports it.
1607
1608 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
1609
1610         * object.c object.h class.h: Added experimental typed allocation
1611         facility using the interfaces in gc_gcj.h.
1612
1613         * os/gc_wrapper.h: Added new include files.
1614         
1615 2003-04-03  Martin Baulig  <martin@ximian.com>
1616
1617         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
1618         which is not yet enabled by default.
1619
1620         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
1621         functions.
1622         (mono_gc_lock, mono_gc_unlock): New static functions.
1623
1624         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
1625         functions; stop/start the world for the garbage collector.  This
1626         is using the windows API; we need to complete the SuspendThread()/
1627         ResumeThread() implementation in the io-layer to make this work on Unix.
1628         (mono_gc_push_all_stacks): New public function; tells the garbage
1629         collector about the stack pointers from all managed threads.
1630
1631 2003-04-03  Martin Baulig  <martin@ximian.com>
1632
1633         * object.h (MonoThread): Added `gpointer stack_ptr'.
1634
1635         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
1636
1637 2003-04-03  Martin Baulig  <martin@ximian.com>
1638
1639         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
1640
1641 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
1642
1643         * reflection.c (typebuilder_setup_fields): Initialize field.first and
1644         field.last.
1645
1646 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
1647
1648         * loader.c (mono_lookup_internal_call): Report the corlib that is
1649         out of sync.
1650
1651 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
1652
1653         * icall.c (ves_icall_type_GetTypeCode): fixed check for
1654         System.DBNull (it's class not valuetype).
1655
1656 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
1657
1658         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
1659         if the array method was already assigned a token (fixes bug#40646).
1660
1661 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
1662
1663         * reflection.c (mono_reflection_get_type): Attempt type resolve even
1664         if no assembly is given.
1665
1666 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
1667
1668         * metadata.h: Added the new tables.
1669
1670         * row-indexes.h: Added definitions for new tables.
1671
1672         * metadata.c: Add schemas for new tables, and add support for
1673         computing the sizes of them.
1674
1675         * class.c: Update for handling the new type cases.
1676
1677 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
1678
1679         * metadata.h (MONO_TYPE_IS_VOID): new macro
1680
1681 2003-03-31  Martin Baulig  <martin@ximian.com>
1682
1683         * threads.h (MonoThreadCallbacks): Added `thread_created'.
1684
1685         * threads.c (mono_thread_new_init): Call `thread_created' in the
1686         mono_thread_callbacks.
1687
1688 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
1689
1690         * loader.h: added marshalbyrefobject_class to mono_defaults
1691         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
1692         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
1693           generation of output parameters.
1694           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
1695         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
1696           contextbound and the target object belongs to the context of the caller.
1697         * object.h: added context and unwrapped_server variables in MonoRealProxy.
1698         * object.c: Implemented support for interfaces and abstract classes
1699           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
1700           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
1701
1702 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
1703
1704         * class.h class.c (mono_class_is_subclass_of): New function.
1705         
1706         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
1707         routines for most common case (calls from ArrayList::ToArray).
1708
1709         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
1710         routine so programs which call Environment::Exit() can be profiled.
1711
1712         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
1713         Added MONO_ARCH_SAVE_REGS.
1714
1715         * icall.c (ves_icall_type_is_subtype_of): Use new function.
1716
1717 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
1718
1719         * blob.h: Add a couple of new MonoType types definitions.
1720
1721         * tabledefs.h: Add a couple of new call convs.
1722
1723 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
1724
1725         * reflection.h (MonoReflectionDynamicAssembly): track changes in
1726         the layout of the class.
1727
1728         * reflection.c (alloc_table): double the size on overflow to avoid
1729         unnecessary copying.
1730
1731         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
1732         avoid filling out metadata tables and blobs. Also set mb->ilgen to
1733         null so it can be garbage collected.
1734         
1735 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
1736
1737         * reflection.c (mono_reflection_get_type): Return the resolved type
1738         only if it is in the assembly we searched.
1739
1740         * reflection.c (ensure_runtime_vtable): Initialize method slots.
1741
1742         * class.c (mono_class_setup_vtable): Set the slot of the overriding
1743         method.
1744
1745 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1746
1747         * appdomain.c:
1748         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
1749         the right one is 'file:///blah', but MS allows it.
1750         * assembly.c:
1751         (mono_assembly_open): allow 'file://blah'
1752
1753         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
1754
1755 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
1756
1757         * socket-io.c: fixes bug #40310.
1758
1759 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
1760
1761         * reflection.c (mono_reflection_parse_type): handle deeply nested
1762         types correctly.
1763
1764         * reflection.c (mono_image_create_token): Use unique token values
1765         since they will be put into a hash table.
1766
1767         * class.c (mono_class_setup_vtable): If a method occurs in more than
1768         one place in the vtable, and it gets overriden, then change the
1769         other occurances too.
1770
1771         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
1772         object as return type.
1773
1774 2003-03-22  Pedro Martínez Juliá  <yoros@wanadoo.es>
1775
1776         * icall.c: Deleted "ToString" implementation for double and float
1777         because they are full implemented in managed code.
1778
1779 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
1780
1781         * reflection.c, reflection.h: implemented and exported functions
1782         to retrieve info about custom attributes.
1783
1784 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1785
1786         * appdomain.c: moved Uri handling to assembly.c
1787         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
1788         work when using a file Uri in *nix and windows.
1789
1790         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
1791         GetReferencedAssemblies.
1792
1793 2003-03-18  Dick Porter  <dick@ximian.com>
1794
1795         * icall.c: Rename a couple of internal calls
1796
1797         * threads.c: Set the thread state to Stopped when a thread exits.
1798         Fixes bug 39377.
1799
1800 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
1801
1802         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
1803         New icall.
1804
1805         * object.c (mono_class_vtable): fix warning.
1806
1807 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
1808
1809         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
1810
1811         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
1812         memory.
1813         (method_encode_clauses): Create exception info structures in the right
1814         order.
1815         (mono_reflection_setup_internal_class): Initialize supertypes field.
1816
1817         * class.c object.c: Handle interfaces which implement other interfaces 
1818         correctly.
1819
1820         * class.h class.c: Move the supertypes array initialization code into 
1821         a separate function so it can be used for dynamic types too. Also call
1822         it earlier, in mono_class_init(), since it can be used before the
1823         type is initialized.
1824
1825 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1826
1827         * Makefile.am:
1828         * assembly.c:
1829         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
1830
1831         * appdomain.c:
1832         * appdomain.h:
1833         * marshal.c:
1834         * object.c: remove warnings.
1835
1836 2003-03-13  Martin Baulig  <martin@ximian.com>
1837
1838         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
1839         (MonoDebugLexicalBlockEntry): New types.
1840
1841         * debug-mono-symfile.c
1842         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
1843
1844 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1845
1846         * process.c: ret can be any non-zero value accroding to MS doc.
1847
1848 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
1849
1850         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
1851         fixing a warning for a miss-used prototype, would have cause
1852         random memory corruption.
1853
1854 2003-03-07  Martin Baulig  <martin@ximian.com>
1855
1856         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
1857         getting really annoying ....
1858
1859 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
1860
1861         * reflection.c (fixup_method): added support for array methods.
1862
1863 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
1864
1865         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
1866         (pointed out by Michael Adams).
1867
1868 2003-03-04  Dick Porter  <dick@ximian.com>
1869
1870         * icall.c: Temporarily reverted the Double and Single ToString()
1871         change, because it broke nunit.
1872
1873 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
1874
1875         * object.h, threads.h: make include files compatible with C++
1876         (patch by Jerome Laban <jlaban@wanadoo.fr>).
1877
1878 2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
1879
1880         * icall.c: Erased ToString helper functions for Double and Single.
1881         Now, that implementations ar all in managed code (Double and Single
1882         Formatters).
1883
1884 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
1885
1886         * appdomain.c: Added method for initializing the default context of
1887         a domain. Added internal call for getting the default context.
1888         * appdomain.h: Added context variable in MonoDomain struct.
1889         * domain.c: mono_domain_set also sets the default context of the domain
1890         * icall.c: Mapped internal method InternalGetDefaultContext.
1891         * object.c: mono_object_get_virtual_method returns always a remoting
1892         wrapper if the object is a transparent proxy.
1893         mono_runtime_invoke_array: when creating an object by calling the
1894         constructor, if the created object is a proxy, then the constructor should
1895         be called using the a remoting wrapper.
1896
1897 2003-03-03  Dick Porter  <dick@ximian.com>
1898
1899         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
1900         variable so it compiles on solaris.  Problem spotted by
1901         Christopher Taylor <ct@cs.clemson.edu>
1902
1903 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1904
1905         * appdomain.c:
1906         (get_info_from_assembly_name): don't leak value.
1907
1908         * icall.c:
1909         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
1910         result.
1911
1912 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
1913
1914         * assembly.c: export mono_image_load_references ().
1915         * class.c: handle function pointers. mono_class_from_name() now
1916         supports nested type names directly.
1917
1918 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
1919
1920         * reflection.h reflection.c: Encode already created dynamic methods 
1921         and fields correctly as a DEF instead of a REF.
1922
1923         * reflection.c: Get rid of the force_ref argument to 
1924         mono_image_typedef_or_ref since it was wrong in the first place.
1925
1926         * string-icalls.c: add error checking to string constructors according
1927         to the MSDN docs.
1928
1929         * reflection.c: Emit types in the order their TypeBuilders were 
1930         created. Previously, a new table index was assigned to each type before
1931         the tables were emitted. This was wrong because the signature blob
1932         might already refer to a type by its original table index.
1933
1934 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
1935
1936         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
1937         change.
1938         
1939 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1940
1941         * Makefile.am: make assemblies dir have \ instead of / on windows.
1942
1943 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
1944
1945         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
1946         iterate over the NESTEDCLASS table using a linear search since the
1947         table is not guaranteed to be sorted by the secondary key.
1948
1949         * class.c (mono_class_create_from_typedef): fixed up call to
1950         mono_metadata_nesting_typedef.
1951         
1952 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
1953
1954         * marshal.c (mono_string_to_byvalstr): clear the memory as
1955         suggested by Jerome Laban <jlaban@wanadoo.fr>
1956
1957 2003-02-26  Dick Porter  <dick@ximian.com>
1958
1959         * process.c: Cope with padding in .rsrc blocks
1960
1961 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
1962
1963         * metadata.h: reverted the filter_len change, it breaks reflection
1964         
1965 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
1966
1967         * metadata.h: added a new field to store the filter_len
1968         
1969
1970 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
1971
1972         * reflection.c: handle custom attributes for types and members
1973         created with Reflection.Emit (bug#38422).
1974
1975 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
1976
1977         * reflection.c: define RTSpecialName automatically for constructors for
1978         compatibility with MS.NET.
1979
1980         * reflection.c (mono_reflection_create_runtime_class): initialize
1981         nested_in field of dynamically created classes.
1982
1983 2003-02-22  Martin Baulig  <martin@ximian.com>
1984
1985         * debug-mono-symfile.h: Incremented version number.
1986
1987 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
1988
1989         * object.h icall.c process.c: fix warnings.
1990
1991 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
1992
1993         * appdomain.h appdomain.c:
1994         (mono_domain_try_type_resolve): split the 
1995         name_or_tb argument into a name and a tb argument.
1996         (mono_domain_has_type_resolve): new function to check whenever the
1997         application has registered a TypeResolve event handler.
1998         
1999         * icall.c reflection.h reflection.c: move the type resolve logic into
2000         mono_reflection_get_type () so it will be invoked when 
2001         Assembly::GetType () is called.
2002
2003         * reflection.c:
2004         (mono_reflection_get_type): renamed to get_type_internal.
2005         (mono_reflection_get_type): fixed type name generation so it works 
2006         for nested types too.
2007         (mono_reflection_get_type): call has_type_resolve () to avoid the 
2008         costly type name generation if there is no resolve event handler.
2009
2010 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
2011
2012         * class.c, image.c: load exported types from file references.
2013
2014 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
2015
2016         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
2017           used to cache the managed methods used to create proxies and make 
2018           remote invocation of methods.
2019         * class.h: Added in MonoVTable a flag to indicate that a class needs 
2020           to be remotely created.
2021         * object.c: Modified the method mono_class_vtable(). It now initializes 
2022           the remote flag of the vtable. Modified mono_object_new_specific(), 
2023           so now it checks the remote flag.
2024         * icall.c: Added a couple of internal methods, one for enabling instance 
2025           creation interception for a type, and one for creating objects bypassing
2026           the remote check.
2027
2028 2003-02-18  Martin Baulig  <martin@ximian.com>
2029
2030         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
2031         New interncall to get a method's metadata token.
2032
2033         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
2034         New interncall for the debugger.
2035
2036 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
2037
2038         * class.c (mono_class_setup_vtable): allocate supertype array
2039
2040 2003-02-18  Martin Baulig  <martin@ximian.com>
2041
2042         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
2043
2044 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2045
2046         * reflection.c:
2047         (assembly_name_to_aname): jump over unknown properties (i've found
2048         something like: 'type, assembly, version=xxx, custom=null, public...',
2049         so now will ignore custom=null and still get the rest of the values).
2050
2051 2003-02-17  Dick Porter  <dick@ximian.com>
2052
2053         * threads.c: Have Thread.Start() wait for a semaphore to signal
2054         that the thread has set up all its local data.  This fixes bug
2055         34323, where Abort() raced the new thread's TLS data.
2056
2057         Also removes the handle_store() call from start_wrapper, because
2058         threads are now always created suspended and there is no longer a
2059         race between the parent and child threads to store the info.
2060
2061 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
2062
2063         * image.c: explain the #- heap issue in a message, hopefully
2064         avoiding FAQs on mono-list.
2065
2066 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2067
2068         * icall.c:
2069         (GetEntryAssembly): if the domain has not invoked
2070         AppDomain.ExecuteAssembly yet, return the assembly of the default
2071         AppDomain.
2072
2073 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
2074
2075         * class.c (mono_ldtoken): make it work in dynamic assemblies.
2076
2077 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
2078
2079         * metadata.c, reflection.c: simple speedup to type hash
2080         and equals code.
2081
2082 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
2083
2084         * image.c, image.h, class.c, assembly.c: move module loading
2085         to MonoImage. When loading metadata, consider alignemnet from
2086         the start of metadata, not from the metadata address in memory.
2087
2088 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
2089
2090         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
2091         AssemblyBuilder objects. Factored out custom attribute creation into
2092         a separate function.
2093         (create_custom_attr): new function to create custom attributes.
2094
2095 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
2096
2097         * Makefile.am: Got tired of typing the full pathname to pedump.
2098         Until there is another option, am installing this.
2099
2100 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
2101
2102         * class.c (class_compute_field_layout): always set field->parent 
2103         (mono_ldtoken): use mono_defaults.fieldhandle_class;
2104
2105 2003-02-11  Dick Porter  <dick@ximian.com>
2106
2107         * threads-types.h:
2108         * monitor.c: Rewrote Monitor, making lock much faster and
2109         Pulse/Wait work as specified.  Also uses much fewer handles, and only
2110         creates them as needed.
2111
2112         * exception.c: Added SynchronizationLockException
2113
2114         * threads.c: Deleted old Monitor implementation.  The new one is
2115         in a new file.
2116
2117 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
2118
2119         * class.c: handled TypedReference type code. Set the correct size for
2120         class data. Setup interface_offsets for interface classes, too.
2121
2122 2003-02-09  Martin Baulig  <martin@ximian.com>
2123
2124         * debug-mono-symfile.h: Reflect latest symbol writer changes.
2125
2126 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
2127
2128         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
2129         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
2130         * object.c: fixed mono_object_get_virtual_method () for interfaces.
2131         * verify.c: check for code that runs after the end of the method.
2132
2133 2003-02-08  Pedro Martínez Juliá  <yoros@wanadoo.es>
2134
2135         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
2136         "System.Math::Round2".
2137         * sysmath.h: Added Floor, Round and Round2 definitions.
2138         * sysmath.c: Modified certain functions that were not 100% compliant
2139         with MS.NET (math precision) and added the implementation of Floor,
2140         Round and Round2.
2141
2142 2003-02-07  Martin Baulig  <martin@ximian.com>
2143
2144         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
2145
2146 2003-02-07  Martin Baulig  <martin@ximian.com>
2147
2148         * debug-mono-symfile.c: Reflected latest symwriter changes.
2149         (mono_debug_create_mono_symbol_file): Removed.
2150         (mono_debug_open_mono_symbol_file): Take an argument which
2151         specifies whether to create a dynamic symbol file.
2152
2153 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
2154
2155         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
2156
2157 2003-02-05  Martin Baulig  <martin@ximian.com>
2158
2159         * reflection.c (mono_image_build_metadata): Make this public,
2160         protect it against being called multiple times, don't create
2161         resources and don't build the compressed metadata here.
2162         (mono_image_create_pefile): Do this here.
2163
2164         * icall.c
2165         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
2166
2167 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2168
2169         * socket-io.c: fixed bug #36322.
2170
2171 2003-02-06  Piers Haken <piersh@friskit.com>
2172
2173         * appdomain.[ch]:
2174         * class.h:
2175         * debug-mono-symfile.c:
2176         * icall.c:
2177         * loader.c:
2178         * mono-config.c:
2179         * monosn.c:
2180         * reflection.c:
2181         * socket-io.c: warning cleanups
2182
2183 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
2184
2185         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
2186         function. works like remoting invoke, but does a check for the Proxy first.
2187
2188 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
2189
2190         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
2191
2192 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
2193
2194         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
2195         array of pointers.
2196         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
2197         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
2198
2199         * object.c (mono_store_remote_field_new): used by the new jit
2200         instead of mono_store_remote_field
2201         (mono_load_remote_field_new): used by the new jit
2202         instead of mono_load_remote_field
2203
2204 2003-02-05  Patrik Torstensson
2205
2206         * appdomain.c: changed unload to take the domain id instead
2207         of domain
2208         
2209         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
2210
2211
2212 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2213
2214         * appdomain.c: don't look for assemblies in ApplicationBase if
2215         PrivateBinPathProbe is set.
2216
2217 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2218
2219         * object.c: make the first argument in main_args contain the absolute
2220         path to the assembly. Fixes bug #37511.
2221
2222 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2223
2224         * icall.c: get correct UTC offset for countries not using daylight
2225         time saving. Fixes bug #30030.
2226
2227 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2228
2229         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
2230         and 1 are the family).
2231
2232 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
2233
2234         * icall.c (ves_icall_InternalExecute): removed wrong assertion
2235
2236         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
2237
2238 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
2239
2240         * reflection.c: added support for SignatureHelper tokens, which is
2241         needed by the Calli opcode.
2242
2243         * reflection.h: track changes to SignatureHelper class.
2244
2245         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
2246
2247 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2248
2249         * appdomain.c: fixed loading assemblies from PrivateBinPath.
2250
2251 2003-02-03  Patrik Torstensson
2252         * appdomain.[c|h], domain.c : 
2253          - Added support for getting a domain via domain id
2254          - Support for setting and getting domain from System.AppDomain 
2255            (used in cross appdomain channel)
2256          - Added support for get/set for a MonoAppContext on a thread 
2257            (Context class in System.Runtime.Remoting.Contexts),
2258          - Removed hack in Get/SetData and ExecuteAssembly.
2259         
2260         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
2261         the managed world to get control when a proxy is created.
2262
2263         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
2264         
2265 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
2266
2267         * icall.c
2268         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2269         Populate the codebase field as well.
2270
2271 2003-02-02  Martin Baulig  <martin@ximian.com>
2272
2273         * debug-mono-symfile.c
2274         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
2275         (mono_debug_symfile_add_method): Allow interncalls.
2276
2277 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2278
2279         * icall.c: throw parse exception if strtod fails or the string is empty.
2280
2281 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
2282
2283         * marshal.c: handle object type separately from defined
2284         class types.
2285
2286 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
2287
2288         * marshal.c: handle NATIVE_LPSTR for strings when it's
2289         explicitly specified.
2290
2291 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
2292
2293         * reflection.c, reflection.h, icall.c: setup the reflection
2294         handle cache for ModuleBuilders and AssemblyBuilders.
2295
2296 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
2297
2298         * reflection.c (reflection_methodbuilder_to_mono_method): set
2299         pinvoke flag
2300
2301 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2302
2303         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
2304
2305 2003-01-29  Dick Porter  <dick@ximian.com>
2306
2307         * threads.c: No need for the fake_thread kludge now that Thread
2308         doesn't run a class constructor
2309         
2310 2003-01-29  Dick Porter  <dick@ximian.com>
2311
2312         * threads.c: Use g_direct_hash instead of the rather bogus
2313         g_int_hash
2314
2315 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
2316
2317         * marshal.c (mono_marshal_get_native_wrapper): add check for null
2318         (fix pinvoke12.exe)
2319         (mono_marshal_get_struct_to_ptr): generate valid IL code
2320         (mono_marshal_get_ptr_to_struct): generate valid IL code
2321         (*): correctly set sig->pinvoke, we need to memdup the signature
2322         to do that
2323
2324 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
2325
2326         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
2327         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
2328
2329 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
2330
2331         * profiler.c: provide more callers information.
2332
2333 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
2334
2335         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
2336
2337         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
2338
2339         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
2340
2341 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
2342
2343         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
2344         exception instead of going into an infinite loop on dates which it 
2345         can't yet handle.
2346
2347         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
2348         out-of-range exception if needed.
2349
2350         * class.c (mono_class_setup_vtable): allow a virtual method to provide
2351         an implementation for an interface method and to override an inherited
2352         method at the same time. 
2353         Imagine a scenario when a virtual method is used to override a
2354         virtual abstract method in a parent class, and this same method 
2355         provides an implementation for an method inherited from an interface. 
2356         In this case, the interface resolution code will set im->slot, which 
2357         means that the virtual method override pass will skip this method 
2358         which means a pointer to the abstract method inherited from the parent
2359         will remain in the vtable of this non-abstract class.
2360
2361         * class.c: (mono_class_setup_vtable): continue search for a real 
2362         method if only an abstract method is found.     
2363
2364 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
2365
2366         * reflection.c: add size to encoding for ByValStr and ByValArray
2367         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
2368
2369 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
2370
2371         * class.c (mono_class_setup_vtable): pass the override info as an
2372         argument.
2373
2374         * class.c (mono_class_setup_vtable): set the slot of overriding methods
2375         correctly.
2376         
2377         * reflection.c (ensure_runtime_vtable); add support for method 
2378         overrides.
2379         
2380 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
2381
2382         * reflection.c (resolution_scope_from_image): Hack to work to work with
2383         dynamic assemblies.
2384
2385         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
2386         added a 'force_ref' argument to force this function to allways return 
2387         a TypeRef. This is needed by mono_image_get_memberref_token ().
2388         
2389 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
2390
2391         * reflection.c (mono_image_get_type_info): interfaces really don't have
2392         a parent.
2393
2394         * reflection.c (mono_image_basic_init): fill out missing fields of
2395         image structure.
2396
2397         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
2398         dynamic assemblies. This is required so dynamic assemblies show up in
2399         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
2400         Type::GetType() etc. This is consistent with MS behaviour.
2401
2402         * image.c image.h reflection.c: add newly created classes to the name 
2403         cache so mono_class_get () will find them.      
2404
2405 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
2406
2407         First part of changes to get IKVM.NET running under mono.
2408         
2409         * appdomain.h, appdomain.c: added new function 
2410         mono_domain_try_type_resolve() which will emit TypeResolve events. 
2411         This function will call AppDomain::DoTypeResolve to do the actual work.
2412
2413         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
2414         moved existing code dealing with dynamic tokens to a new function 
2415         called mono_reflection_lookup_dynamic_token (). This function will 
2416         raise TypeResolve events when appropriate. Since reflection.c is not 
2417         part of libmetadata, a new hook function called 
2418         mono_lookup_dynamic_token() is added to class.c which will call this.
2419
2420         * assembly.h assembly.c: make the invoke_load_hook function public,
2421         so it can be called for dynamic assemblies.
2422
2423         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
2424
2425         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
2426         type isn't found.
2427
2428         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
2429         MonoGHashTable, since it contains pointers to objects which the GC 
2430         needs to track.
2431
2432         * assembly.c (search_loaded): remove unused variable.
2433         
2434 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
2435
2436         * object.c: fixed issue exposed by gcc-generated IL programs
2437         that use RVA data for pointers.
2438
2439 2003-01-25  Martin Baulig  <martin@ximian.com>
2440
2441         * threads.c (start_wrapper): Moved the initialization of
2442         `start_func' above the mono_new_thread_init() call to which we
2443         pass it as argument.
2444
2445 2003-01-24  Martin Baulig  <martin@ximian.com>
2446
2447         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
2448         the MonoThread pointer.
2449
2450 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
2451
2452         * icall.c: Rename `PowImpl' to Pow.
2453
2454 2003-01-23  Dick Porter  <dick@ximian.com>
2455
2456         * threads.c (start_wrapper): Create a Thread object if needed, so
2457         the Main() thread can do the class initialisation in a subthread
2458         that has been set up to allow managed code execution.
2459
2460         Pass the thread ID instead of the MonoThread pointer to the thread
2461         start and attach callbacks.  This change is required, because the
2462         jit thread start callback must be called _before_ the Thread
2463         object can be created.
2464         
2465         (mono_thread_init): Removed much object creation code that is no
2466         longer needed.  No managed code is called from here now.
2467
2468         * object.c (mono_runtime_exec_managed_code): Create a subthread
2469         for Main, and call back to the runtime to use it.
2470         Set the exit code when Main exits.
2471
2472         * gc.c: Make sure domain finalisation happens in a subthread.
2473         Re-enable threaded GC, fixing bug 31333 (again).
2474
2475         * environment.c: System.Environment internall calls (so far just
2476         ExitCode is here, the others are still in icall.c)
2477
2478         * appdomain.c (mono_runtime_cleanup): All threads running managed
2479         code should have finished before mono_runtime_cleanup() is
2480         reached, so no need to clean up threads.
2481
2482 2003-01-22  Martin Baulig  <martin@ximian.com>
2483
2484         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
2485         `gpointer func' arguments.      
2486         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
2487         but added `MonoThread *thread' argument.
2488         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
2489
2490         * threads.c (mono_new_thread_init): Added `gpointer func' argument
2491         and pass it to the mono_thread_start_cb callback.
2492         (mono_install_thread_callbacks): New public function to install a
2493         set of callbacks which are set by the debugger.
2494         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
2495
2496 2003-01-22  Martin Baulig  <martin@ximian.com>
2497
2498         * Makefile.am: Install debug-mono-symfile.h.
2499
2500 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
2501
2502         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
2503
2504 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
2505
2506         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
2507         * class.c (mono_ptr_class_get): correctly set access levels of pointers
2508         (mono_array_class_get): correctly set access levels of arrays
2509
2510 2003-01-20      Patrik Torstensson
2511         * image.h (MonoAssemblyName): changed major, minor, build, revision
2512         from signed to unsigned.
2513
2514 2003-01-20  sean kasun <skasun@azstarnet.com>
2515
2516         * reflection.c (load_cattr_value): Now this handles
2517         MONO_TYPE_SZARRAY.  Fixes bug #35629
2518
2519 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
2520
2521         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
2522         integer value
2523
2524 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2525
2526         * decimal.c: fixed bug #26056.
2527
2528 2003-01-17  Martin Baulig  <martin@ximian.com>
2529
2530         * gc.c: Raise an ExecutionEngineException instead of using g_error().
2531
2532 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2533
2534         * exception.[ch]:
2535         (mono_get_exception_type_initialization): new function.
2536
2537         * object.c: throw a TypeInitializationException when an exception is
2538         thrown invoking the class constructor.
2539
2540 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2541
2542         * reflection.c: fixed attribute reading.
2543
2544 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2545
2546         * icall.c:
2547         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
2548         provided, look for the type in the calling assembly and then in
2549         mscorlib; if the assembly name is provided, only try that one.
2550
2551 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
2552
2553         * object.c: register the vtable before there is a chance it's
2554         queried again recursively.
2555
2556 2003-01-13  Duncan Mak  <duncan@ximian.com>
2557
2558         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
2559         gc-internal.h. 
2560         
2561 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
2562
2563         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
2564
2565 2003-01-11  Martin Baulig  <martin@ximian.com>
2566
2567         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
2568         this to 20 for the release.
2569
2570 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
2571
2572         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
2573
2574         * loader.c (mono_method_get_marshal_info): bug fix
2575
2576         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
2577         structures with explicit layout
2578
2579 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
2580
2581         * profiler.c: made the output more readable (and sorted). 
2582         Added caller information for the allocation profiler.
2583
2584 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
2585
2586         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
2587
2588 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2589
2590         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
2591         to get value types.
2592         
2593 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
2594
2595         * object.c, profiler.h, profiler.c, profiler-private.h:
2596         Added object allocation profiler.
2597
2598 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
2599
2600         * reflection.h, reflection.c: handle global methods.
2601         Compress blob entries.
2602
2603 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
2604
2605         * marshal.c: fix compilation.
2606
2607 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
2608
2609         * loader.c (mono_method_get_marshal_info): impl.
2610
2611         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
2612
2613 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2614
2615         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
2616         for reference types.
2617
2618 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
2619
2620         * loader.c: fixed off by one error in loaded parameter names.
2621
2622 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
2623
2624         * marshal.c (mono_marshal_get_icall_wrapper): like
2625         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
2626         instead of a MonoMethod.
2627
2628 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2629
2630         * decimal.c: fixed bug #36537.
2631
2632 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
2633
2634         * marshal.c: throw a missing method exception if a
2635         P/Invoke method is not found.
2636
2637 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
2638
2639         * icall.c: allow a null this for constructors.
2640
2641 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
2642
2643         * icall.c: raise the proper exceptions if the arguments to the
2644         internal Invoke are incorrect.
2645
2646 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
2647
2648         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
2649
2650 2003-01-03  Martin Baulig  <martin@ximian.com>
2651
2652         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
2653
2654 2002-12-31  Martin Baulig  <martin@ximian.com>
2655
2656         * debug-mono-symfile.c: Completely rewrote the type section.
2657         Instead of using individual malloc()ed fields, we use one big
2658         continuous memory area and offsets into this area.
2659         See the comments in the source code for details.
2660
2661 2002-12-30  Martin Baulig  <martin@ximian.com>
2662
2663         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
2664
2665 2002-12-30  Martin Baulig  <martin@ximian.com>
2666
2667         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
2668         line number table in this data blob instead of using an external
2669         pointer.
2670
2671 2002-12-28  Martin Baulig  <martin@ximian.com>
2672
2673         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
2674
2675 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
2676
2677         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
2678         as a boxed return type.
2679
2680 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
2681
2682         * appdomain.c
2683         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
2684         g_build_filename to properly get separators on the filename created.
2685
2686         * object.h: Small change, introduce MonoMarshalByRefObject to
2687         track the layout of that structure in the C# universe as we make
2688         changes there.
2689
2690 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
2691
2692         * object.c: removed assert to allow static fields on interfaces.
2693         * loader.c: a TypeSpec may be used for any type, not just arrays.
2694
2695 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
2696
2697         * class.c, class.h: added mono_class_array_element_size ().
2698         Ignore static methods in interfaces.
2699
2700 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2701
2702         * threads.c: fixed the build under cygwin.
2703
2704 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2705
2706         * reflection.c: handle nullref constants. Allocate keys for
2707         reflection handles with the GC.
2708
2709 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
2710
2711         * threads.c, threads.h: added mono_thread_get_abort_signal()
2712         to get a suitable signal for thread abort.
2713
2714 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
2715
2716         * metadata.c: fix handling of ExportedType table.
2717
2718 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2719
2720         * icall.c: added WriteWindowsDebugString internal call.
2721
2722 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2723
2724         * reflection.h: added fields to match C# implementation.
2725
2726 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2727
2728         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
2729
2730 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
2731
2732         * gc.h, gc-internal.h: Rename header for GC internal calls to
2733         gc-internal.h from gc.h as to not clash with Boehm GC having its
2734         header installed as <gc.h> in outside include paths.
2735         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
2736         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
2737
2738 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2739
2740         * icall.c: assign minor, build and revision in FillName.
2741
2742 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
2743
2744         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
2745         Added support for running code generated by Reflection.Emit.
2746
2747 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2748
2749         * appdomain.c: check for NULL argument in LoadFrom.
2750
2751 2002-12-10  Dick Porter  <dick@ximian.com>
2752
2753         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
2754
2755 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2756
2757         * appdomain.c: fix buglet when building exe file name.  Handle full
2758         assembly name (needed after latest changes to AssemblyName).
2759         * image.c:
2760         (mono_image_close): free some hashtables.
2761
2762 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
2763
2764         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
2765         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
2766         on some systems (redhat 7.3) 
2767
2768 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
2769
2770         * threads.c: delete the critical section of a sync block,
2771         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
2772
2773 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
2774
2775         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
2776
2777 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2778
2779         * appdomain.[ch]: handle the assembly preload event to try loading the
2780         assemblies using the paths we have in the current domain.
2781
2782         * assembly.[ch]: created an assembly preload hook that is called to try
2783         loading the assembly by other means that the ones provided here.
2784
2785         * domain.c: initialize the domain search path.
2786
2787         From now on, assemblies (TODO: except corlib and System) are loaded
2788         according to these rules when using mono_assembly_load ():
2789
2790                 1. It tries to load the assembly from the ApplicationBase
2791                 of the current domain appending .dll and .exe (TODO: have to
2792                 try loading from name/name.dll and name/name.exe).
2793
2794                 2. It tries the search path specified in PrivateBinPath for the
2795                 current domain (if any).
2796
2797                 3. Previous behavior.
2798
2799 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
2800
2801         * icall.c: implemented GetInterfaceMap() related icall.
2802         * domain.c, loader.h: load MethodInfo in mono_defaults.
2803
2804 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
2805
2806         * gc.c: disable the finalizer thread for now, untill all the issues
2807         with it are resolved.
2808
2809 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
2810
2811         * string-icalls.c: handle embedded nulls in string ctor when the
2812         length is specified.
2813
2814 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
2815
2816         * class.c: look for explicit interface implementation in parent
2817         classes, too.
2818
2819 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
2820
2821         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
2822
2823 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
2824
2825         * gc.c: protect handles with a critical section.
2826
2827 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2828
2829         * icall.c:
2830         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
2831         parameters. If no assembly specified, try getting the type from all
2832         the assemblies in the current domain, else, load the assembly and get
2833         the type from it.
2834
2835 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2836
2837         * marshal.c: applied patch from Aleksey Demakov that fixes
2838         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
2839
2840 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2841
2842         * icall.c: fixed get_location.
2843
2844 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
2845
2846         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
2847         declarations to make it work with older gcc. 
2848
2849         * loader.c (mono_get_method): set signature->pinvoke for native calls
2850
2851 2002-11-20  Dick Porter  <dick@ximian.com>
2852
2853         * threads.c (mono_thread_init): Set the main thread's handle
2854
2855 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
2856
2857         * gc.c: allow compilation without GC support. Changed to match the
2858         mono coding style.
2859
2860 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
2861
2862         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
2863
2864 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
2865
2866         * reflection.c: set a public key token on the core assemblies.
2867
2868 2002-11-18  Dick Porter  <dick@ximian.com>
2869
2870         * threads.c: Split out some thread initialisation so that other
2871         files can set the start callback function.
2872
2873         * gc.c: Run finalisers in a separate thread, to avoid stack
2874         overflow.  Fixes bug 31333.
2875
2876         * appdomain.c: Set up GC finalisation thread.
2877
2878         * reflection.c: 
2879         * object.c: 
2880         * domain.c: Use gc.h macros for GC_malloc
2881         
2882 2002-11-15  Dick Porter  <dick@ximian.com>
2883
2884         * threadpool.c: 
2885         * threads.c:
2886         * appdomain.c: Removed mono_runtime_init_with_attach(),
2887         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
2888         merging the extra parameter with the existing function.  Removed
2889         unneeded code in mono_thread_attach().
2890
2891 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
2892
2893         * image.c (mono_image_loaded_by_guid): a method to get loaded
2894         images by guid. 
2895         (load_metadata_ptrs): we store the guid as string.
2896
2897 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
2898
2899         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
2900
2901         * metadata.c (mono_guid_to_string): imported method form Zoltan
2902         Varga (slightly modified)
2903
2904         * assembly.c (mono_assembly_open): load precompiled code
2905
2906         * loader.h (MonoMethod): we store the method token for use in the
2907         aot compiler. 
2908
2909 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2910
2911         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
2912         the hook function called when an assembly is loaded.
2913         
2914         * domain.c: Modified file.
2915         (mono_domain_assembly_load): removed hash table insertion of assemblies.
2916
2917         Fixes bug #33196.
2918
2919 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
2920
2921         * reflection.c: Map PEFileKind to the value expected by the WinNT
2922         image loader. 
2923
2924 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2925
2926         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
2927         Read until the buffer is filled completely.
2928
2929 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2930
2931         * icall.c: implemented MonoType.InternalGetEvent ().
2932
2933 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2934
2935         * appdomain.c: implemented InitAppDomainSetup. Delayed
2936         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
2937         the entry_assembly.
2938
2939         * assembly.c: base_dir is now an absolute path ending with
2940         G_DIR_SEPARATOR.
2941
2942         * icall.c: modified get_location according to the above changes.
2943
2944         * object.c: init AppDomain.SetupInformation for the default domain after
2945         we have the entry assembly.
2946
2947         * domain.c: when unloading a domain, setup = NULL.
2948
2949 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
2950
2951         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
2952
2953 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
2954
2955         * object.h, object.c: introduced mono_object_get_virtual_method ()
2956         to lookup the method invoked on an object when a callvirt is done on
2957         a method.
2958         * icall.c: make MethodInfo::Invoke() always do a virtual call.
2959
2960 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2961
2962         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
2963         current domain when loaded an assembly and failed to load it.
2964
2965         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
2966
2967 2002-10-31  Dick Porter  <dick@ximian.com>
2968
2969         * icall.c: 
2970         * file-io.h: 
2971         * file-io.c: Return the error status in a parameter, as the
2972         GetLastError() value has long since been blown away if we try and
2973         look it up in a subsequent internal call invocation.  Delete the
2974         GetLastError() internal call, because it's useless.
2975
2976 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
2977
2978         * class.[ch]: added cast_class to fix bug 29517
2979
2980 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
2981
2982         * marshal.c: create valid IL code in the filter clause:
2983         the new JIT is less forgiving:-)
2984
2985 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2986
2987         * icall.c: removed get_property internal call.
2988
2989 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
2990
2991         * appdomain.h domain.c: Added an ID to appdomains.
2992         
2993         * threads.c threads.h icall.c: Implement icall
2994         Thread:GetDomainID(), and remove unused icall 
2995         CurrentThreadDomain_internal.
2996
2997 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2998
2999         * icall.c: Don't recurse through the base types in GetConstructor.
3000         Fixes bug #32063. 
3001
3002 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
3003
3004         * mempool.h, mempool.c: added mono_mempool_empty() and
3005         mono_mempool_stats().
3006
3007 2002-10-23  Dick Porter  <dick@ximian.com>
3008
3009         * file-io.c: 
3010         * file-io.h: 
3011         * icall.c: Added MonoIO.GetFileType internal call
3012
3013 2002-10-17  Dick Porter  <dick@ximian.com>
3014
3015         * appdomain.c (mono_runtime_cleanup): Don't signal the async
3016         delegate semaphore before waiting for all threads to finish,
3017         because new threads can also call async delegates.  Fixes bug
3018         32004.
3019
3020         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
3021         of 3 seconds, in case another async job is queued.  (This part is
3022         needed because the bug fix reintroduced the 3s exit lag.)  This
3023         makes the mono_runtime_shutdown flag superfluous.
3024
3025 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
3026
3027         * reflection.c: include ehader size in method section headers.
3028         Really check for suplicated modules entries.
3029
3030 2002-10-17  Martin Baulig  <martin@gnome.org>
3031
3032         * debug-mono-symfile.c: Added back support for locals.
3033
3034 2002-10-14  Martin Baulig  <martin@gnome.org>
3035
3036         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
3037         MONO_TYPE_VOID.
3038
3039 2002-10-14  Martin Baulig  <martin@gnome.org>
3040
3041         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
3042         mono_class_get() instead of looking in the class cache. 
3043
3044 2002-10-13  Martin Baulig  <martin@gnome.org>
3045
3046         * debug-mono-symfile.c: Set version number to 28, include the
3047         signature in method names.
3048
3049 2002-10-13  Martin Baulig  <martin@gnome.org>
3050
3051         * debug-mono-symfile.h: Set version number to 27.
3052
3053 2002-10-11  Martin Baulig  <martin@gnome.org>
3054
3055         * gc.c: Don't register/unregister NULL pointers as disappearing links.
3056
3057 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
3058
3059         * metadata.c, metadata.h: added helper function to allocate signatures.
3060
3061 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3062
3063         * icall.c: added internal call to get the location of machine.config.
3064
3065 2002-10-08  Martin Baulig  <martin@gnome.org>
3066
3067         * debug-mono-symfile.c: Ignore classes with a pending init for the
3068         moment.
3069
3070 2002-10-03  Dick Porter  <dick@ximian.com>
3071
3072         * threads.c: Freebsd pthread_t is a pointer
3073
3074 2002-10-03  Dick Porter  <dick@ximian.com>
3075
3076         * socket-io.c: Implemented GetHostName_internal
3077
3078 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3079
3080         * mono-config.c:
3081         (mono_config_parse_file): don't leak the text.
3082
3083 2002-10-02  Martin Baulig  <martin@gnome.org>
3084
3085         * debug-mono-symfile.c: Added support for methods.
3086
3087 2002-10-01  Martin Baulig  <martin@gnome.org>
3088
3089         * debug-mono-symfile.c: Don't emit methods and line numbers for
3090         the dynamic symbol file, just write the type table.  We can easily
3091         have an external helper program which creates a symbol file for an
3092         IL file.        
3093
3094 2002-10-01  Dick Porter  <dick@ximian.com>
3095
3096         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
3097         Only add the handle to the cleanup array when we're about to
3098         launch the thread.  Bug 31425 deadlocked when the test was run on
3099         mono under w32.
3100
3101 2002-10-01  Martin Baulig  <martin@gnome.org>
3102
3103         * debug-mono-symfile.c: Added support for properties.
3104
3105 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
3106
3107         * reflection.c: unaligned store fix from Mark Crichton
3108         <crichton@gimp.org>.
3109
3110 2002-09-27  Martin Baulig  <martin@gnome.org>
3111
3112         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
3113         New interncall.
3114
3115 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
3116
3117         * assembly.h, assembly.c: use a sane API to hook into the assembly
3118         loading process instead of a useless special-purpouse hack
3119         (ngen needs a hook, too, for example).
3120
3121 2002-09-27  Dick Porter  <dick@ximian.com>
3122
3123         * threads.c (mono_thread_init): Call GetCurrentProcess() so
3124         io-layer can set up some process handle info.  Not needed on w32,
3125         but doesn't hurt either.
3126
3127         * process.c: Pass the program name in the second parameter to
3128         CreateProcess, so the path is searched.  Include the working
3129         directory. Implemented process name, process enumeration, and some
3130         process detail internal calls.
3131         
3132         * icall.c: Added internal calls for process lookup, and some
3133         process details
3134
3135 2002-09-26  Martin Baulig  <martin@gnome.org>
3136
3137         * assembly.c (mono_install_open_assembly_hook): New global
3138         function to install a function to be invoked each time a new
3139         assembly is loaded.
3140         (mono_assembly_open): Run this callback function if set.
3141
3142         * debug-mono-symfile.c: Put back line numbers for the dynamic
3143         symbol file and also record the .il file as source file.  This
3144         allows us to install the temporary symbol file as `file.dbg' just
3145         like a compiler-generated one.
3146
3147 2002-09-26  Nick Zigarovich <nick@chemlab.org>
3148
3149         * Corrected typo in gc.c (BOHEM vs BOEHM).
3150
3151 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3152
3153         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
3154         GetProperties. Also avoid calling g_slist_length in GetProperties and
3155         GetMethods.
3156
3157 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
3158
3159         * reflection.c: avoid unaligned stores (bug spotted by
3160         Mark Crichton  <crichton@gimp.org>).
3161
3162 2002-09-25  Martin Baulig  <martin@gnome.org>
3163
3164         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
3165         instead of guint64 for addresses and added prologue/epilogue info.
3166
3167 2002-09-25  Martin Baulig  <martin@gnome.org>
3168
3169         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
3170         store line number info.  For the dynamic symbol file, we only need
3171         to provide the JIT generated dynamic line number info for the dynamic
3172         symbol file.
3173
3174 2002-09-25  Martin Baulig  <martin@gnome.org>
3175
3176         * debug-mono-symfile.h: Incremented version number.
3177
3178 2002-09-24  Martin Baulig  <martin@gnome.org>
3179
3180         * class.c (mono_debugger_class_init_func): New global function
3181         pointer variable.
3182         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
3183         call it.
3184
3185         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
3186         function.  This is called via the mono_debugger_class_init_func
3187         hook to add all types to the dynamic type table.
3188         (ves_icall_MonoDebugger_GetType): New interncall to get a class
3189         from its metadata token.
3190
3191         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
3192         New interncall for the debugger.
3193
3194 2002-09-24  Nick Drochak <ndrochak@gol.com>
3195
3196         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
3197         before using it in case it is null.
3198         
3199 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
3200
3201         * metadata.c: allow custom modifiers in local var signatures
3202         (bug spotted by Zoltan Varga).
3203
3204 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
3205
3206         * class.c: deal with the <Module> class that may have a NULL vtable.
3207         Eliminate warnings.
3208
3209 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
3210
3211         * image.c, image.h: more strong name helpers.
3212         * monosn.c: more work: convert pem keys to cryptoapi format.
3213
3214 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
3215
3216         * string-icalls.c: speedup IndexOf.
3217
3218 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
3219
3220         * icall.c: updates from Zoltan.2.Varga@nokia.com.
3221
3222 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
3223
3224         * icall.c: cleanup: use mono_object_domain ().
3225
3226 2002-09-23  Martin Baulig  <martin@gnome.org>
3227
3228         * debug-mono-symfile.c: Improved type support.
3229
3230 2002-09-22  Martin Baulig  <martin@gnome.org>
3231
3232         * debug-mono-symfile.c: Added support for reference types and strings.
3233
3234 2002-09-22  Martin Baulig  <martin@gnome.org>
3235
3236         * debug-mono-symfile.c: Started to work on the type table.
3237
3238 2002-09-21  Martin Baulig  <martin@gnome.org>
3239
3240         * debug-mono-symfile.c: Largely reworked the symbol table format.
3241         The symbol table is now incrementally updated each time a new
3242         method is added.  We're now also using our own magic and version
3243         so that you don't need to recompile all your classes if the
3244         dynamic table changes.
3245         (mono_debug_update_mono_symbol_file): Removed.
3246         (mono_debug_symfile_add_method): New function to add a method.
3247
3248 2002-09-21  Martin Baulig  <martin@gnome.org>
3249
3250         * icall.c
3251         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
3252         New interncall.
3253
3254         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
3255         New interncall to get a method from its metadata token.
3256
3257 2002-09-21  Martin Baulig  <martin@gnome.org>
3258
3259         * debug-mono-symfile.c: Create type table.
3260
3261 2002-09-20  Martin Baulig  <martin@gnome.org>
3262
3263         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
3264
3265 2002-09-20  Martin Baulig  <martin@gnome.org>
3266
3267         * debug-mono-symfile.c: Provide information about params and locals.
3268
3269 2002-09-20  Martin Baulig  <martin@gnome.org>
3270
3271         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
3272         New interncall.
3273
3274         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
3275         interncall to get a method from its metadata token.
3276
3277 2002-09-20  Martin Baulig  <martin@gnome.org>
3278
3279         * debug-mono-symfile.c: Added a few checks for method->header
3280         being non-NULL.  This should never happen, but for the moment
3281         let's use a g_warning() rather than a g_assert().
3282
3283 2002-09-19  Mark Crichton  <crichton@gimp.org>
3284
3285         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
3286         even if support for it isn't present.  Added an #ifdef to fix this.
3287
3288         * socket-io.c: Added checks back for Solaris support.
3289
3290 2002-09-19  Martin Baulig  <martin@gnome.org>
3291
3292         * debug-mono-symfile.c (read_string, write_string): Reflect latest
3293         changes in the symbol file format.
3294
3295 2002-09-18  Martin Baulig  <martin@gnome.org>
3296
3297         * debug-mono-symfile.c: Set version number to 21.
3298
3299 2002-09-18  Dick Porter  <dick@ximian.com>
3300
3301         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
3302         on netbsd.  Fixes bug 30051.
3303
3304 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3305
3306         * reflection.c:
3307         (set_version_from_string): little fix.
3308
3309 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
3310
3311         * monosn.c, Makefile.am: added strong name utility.
3312         * reflection.h, reflection.c: implemented delayed signing,
3313         locale, version and hash id assembly attributes.
3314
3315 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
3316
3317         * loader.c, metadata.c: load param attributes in signatures.
3318
3319 2002-09-16  Martin Baulig  <martin@gnome.org>
3320
3321         * debug-mono-symfile.c: Added string table with all method names.
3322
3323 2002-09-14  Martin Baulig  <martin@gnome.org>
3324
3325         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
3326         fast method lookup.
3327
3328 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
3329
3330         * reflection.c: record the public key token of referenced assemblies.
3331
3332 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
3333
3334         * image.c, image.h: added functions to get the strong name and the
3335         public key of an assembly.
3336         * pedump.c: use them.
3337
3338 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
3339
3340         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
3341
3342 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
3343
3344         * marshal.c (mono_marshal_get_managed_wrapper): Added
3345         MONO_TYPE_BOOLEAN 
3346
3347 2002-09-11  Martin Baulig  <martin@gnome.org>
3348
3349         * gc.c: Call GC_unregister_disappearing_link() on all links when
3350         finalizing them, this is necessary to aviod a crash in boehm's
3351         finalize handler.
3352
3353 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
3354
3355         * gc.c: handle GetTarget for finalized objects spotted and fixed by
3356         nick@chemlab.org.
3357
3358 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
3359
3360         * icall.c: implemented MonoType::Module.
3361         * reflection.c, reflection.h: mono_module_get_object () from
3362         Tomi Pakarinen <tomi.pakarinen@welho.com>.
3363
3364 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
3365
3366         * icall.c: ignore overridden methods in GetMethods ().
3367         Fix for FieldInfo::SetValue().
3368         * object.c: handle float/double in runtime invoke.
3369
3370 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
3371
3372         * object.c: allow a constructor to be called again on an object.
3373
3374 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
3375
3376         * class.h, class.c: move field layout code to it's own function and
3377         export it. Get an interface id earlier. Move fields in MonoClass
3378         so they are more cache friendly and align the bitfields.
3379         * loader.c: temporary handle get_param_names() for a runtime method.
3380         * reflection.c, reflection.h: more code to handle runtime creation of
3381         types.
3382
3383 2002-09-09  Martin Baulig  <martin@gnome.org>
3384
3385         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
3386         signature with the pinvoke field being set for the actual call.
3387
3388 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
3389
3390         * icall.c: removed some unused icalls. Start of map of glib charsets
3391         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
3392
3393 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
3394
3395         * debug-helpers.c: break infinite loop (found and fixed by
3396         Holger Arnold <harnold@gmx.de>).
3397
3398 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
3399
3400         * icall.c: target may be null in create_delegate.
3401
3402 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
3403
3404         * marshal.c: handle a boolean return type.
3405
3406 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
3407
3408         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
3409
3410 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
3411
3412         * gc.c: fix weakreferences.
3413
3414 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
3415
3416         * icall.c: added icall to get default codepage.
3417
3418 2002-09-03  Dick Porter  <dick@ximian.com>
3419
3420         * threads.h: 
3421         * threads.c: Use MonoThread instead of MonoObject where
3422         apropriate.
3423
3424         Store running thread objects in a hash table, so that we have all
3425         the info to hand when waiting for them to finish
3426         (means we don't need OpenThread() any more, so mingw builds should
3427         be fully functional again.)
3428
3429         * verify.c:
3430         * object.h: Added thread ID to MonoThread
3431
3432 2002-09-03  Martin Baulig  <martin@gnome.org>
3433
3434         * icall.c (System.Reflection.Assembly::get_location): New interncall.
3435
3436 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3437
3438         * icall.c: fixed leak in get_temp_path. Thanks lupus.
3439
3440 2002-09-03  Martin Baulig  <martin@gnome.org>
3441
3442         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
3443         argument to store the end address of the disassembled instruction.
3444
3445         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
3446         here from debug-symfile.h.
3447         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
3448         JIT into this struct.
3449         (MonoSymbolFile): Added `char *image_file' field.
3450         (MonoDebugGetMethodFunc): Removed.
3451         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
3452         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
3453         (mono_debug_find_method): New method.
3454
3455         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
3456         create a full symbol file.
3457         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
3458         and static symbol files.
3459         (mono_debug_find_method): The symbol file keeps an internal method hash,
3460         call this to get a MonoDebugMethodInfo from a MonoMethod.
3461
3462         * debug-symfile.[ch]: Removed.
3463
3464 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
3465
3466         * image.c (do_mono_image_open): Remove linker version check.
3467
3468 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
3469
3470         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
3471         wrappers for instance methods.
3472         
3473 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3474
3475         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
3476
3477 2002-08-28  Dick Porter  <dick@ximian.com>
3478
3479         * Makefile.am: Export HOST_CC for w32 builds
3480
3481 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
3482
3483         * file-io.c process.c: MonoString are null terminated, no
3484         need for mono_string_to_utf16() anymore.
3485
3486 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
3487
3488         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
3489
3490 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
3491
3492         * icall.c, reflection.h: speedup System.MonoType.
3493
3494 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
3495
3496         * reflection.c: allow null as the value of a string argument in
3497         custom attributes constructors.
3498
3499 2002-08-27  Martin Baulig  <martin@gnome.org>
3500
3501         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
3502         `trampoline_address' field.
3503
3504 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
3505
3506         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
3507         check (fixes bug #29486) 
3508
3509 2002-08-27  Martin Baulig  <martin@gnome.org>
3510
3511         * debug-mono-symfile.c: Changed the file format in a way that allows us
3512         open it read-only and to use a specially malloced area for all the
3513         dynamic data.  We can now also generate a symbol file on-the-fly if we're
3514         debugging IL code and there is no MCS generated symbol file for it.
3515
3516 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
3517
3518         * object.c: added a define for a good string and array
3519         creation speedup (not enabled by default because we need to deal with
3520         the synch stuff).
3521
3522 2002-08-26  Martin Baulig  <martin@gnome.org>
3523
3524         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
3525         function to create a dynamic symbol file.  This is used by the
3526         debugger to create a symbol file for IL code on-the-fly.
3527
3528 2002-08-26  Martin Baulig  <martin@gnome.org>
3529
3530         * loader.c (mono_lookup_pinvoke_call): Include the error message
3531         from g_module_error() in the error message.
3532
3533 2002-08-24  Martin Baulig  <martin@gnome.org>
3534
3535         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
3536         function to update the symbol file.  The symbol file is mmap()ed
3537         writable, but private.  This allows us to install the symbol file
3538         together with the assembly.
3539
3540 2002-08-24  Martin Baulig  <martin@gnome.org>
3541
3542         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
3543         but they can read the new symbol file format which mcs is now creating.
3544
3545         * debug-symfile.c (mono_debug_find_source_location): Moved to
3546         debug-mono-symfile.c; this is now operating on the new symbol file.
3547
3548 2002-08-23  Martin Baulig  <martin@gnome.org>
3549
3550         * debug-helpers.c (mono_method_desc_from_method): New function to get
3551         a MonoMethodDesc from a MonoMethod.
3552
3553 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
3554
3555         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
3556         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
3557
3558 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
3559
3560         * string-icalls.[ch]: make helper methods static.
3561
3562 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3563
3564         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
3565         types to it and to SetValueInternal.
3566
3567         * object.c: Moved handle_enum label to its proper place. This was the
3568         f... bug! ;-)
3569
3570         This time i compiled mcs and gtk-sharp and they both work.
3571
3572 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3573
3574         * icall.c: reverted partially my previous patch until 
3575         object.c:set_value handles enums correcly.
3576
3577 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3578
3579         * icall.c:
3580         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
3581         (ves_icall_System_Environment_get_MachineName): removed warning when
3582         compiling under cygwin.
3583
3584 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
3585
3586         * object.c: fixed field_get_value() for reference types.
3587
3588 2002-08-22  Dick Porter  <dick@ximian.com>
3589
3590         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
3591         Don't free a buffer while it's still needed.  Patch from Jonathan
3592         Liger <Jonathan.liger@wanadoo.fr>
3593
3594 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
3595
3596         * icall.c (ves_icall_System_Environment_get_Platform): Add new
3597         internal call.
3598
3599 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
3600
3601         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
3602         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
3603
3604         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
3605         we call unmanaged code which throws exceptions.
3606
3607 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
3608
3609         * appdomain.h: added per-domain entry_assembly.
3610         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
3611         arguments.
3612         * icall.c: Assembly::GetEntryAssembly icall.
3613         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
3614         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
3615
3616 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
3617
3618         * appdomain.h, gc.c: added mono_domain_finalize ().
3619
3620 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3621
3622         * object.c:
3623         (mono_print_unhandled_exception): changed g_warning by g_printerr
3624         because g_log has a 1024 characters limit (yeah, i got a big stack
3625         trace). Don't print exception name, that should be in ToString 
3626         returned string.
3627
3628 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3629
3630         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
3631         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
3632
3633 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3634
3635         * object.c:
3636         (mono_print_unhandled_exception): after previous commit, i realized
3637         that MS calls ToString on the exception. I changed this function to
3638         do that. This way we get stack_trace for free.
3639
3640 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3641
3642         * object.c:
3643         (mono_print_unhandled_exception): invoke Message property instead of
3644         getting 'message' field from Exception. Don't allocate memory for
3645         'trace' and 'message' if not needed.
3646
3647 2002-08-18  Dick Porter  <dick@ximian.com>
3648
3649         * unicode.c: Fix asserts to match Encoder.cs checks
3650
3651 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
3652
3653         * marshal.c: fix unaligned store issue and a few wrong
3654         opcode argument types.
3655
3656 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3657
3658         * icall.c: added GetUninitializedObjectInternal internal call.
3659
3660 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
3661
3662         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
3663         to the right domain.
3664
3665 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
3666
3667         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
3668
3669         * class.c (class_compute_field_layout): set blittable to false for Strings
3670
3671         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
3672
3673 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
3674
3675         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
3676         first chunk of code to create types at runtime. Code to
3677         handle ReflectedType/DeclaringType. Make reflection handles
3678         domain specific.
3679
3680 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
3681
3682         * class.c: set correct name in arrays.
3683
3684 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
3685
3686         * appdomain.c (mono_domain_transfer_object): make it work with
3687         valuetypes. bug fixes.
3688
3689 2002-08-12  Dick Porter  <dick@ximian.com>
3690
3691         * object.h: Rename some parameters to avoid c++ keywords (Patch
3692         from Joseph Wenninger <kde@jowenn.at>)
3693
3694 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
3695
3696         * icall.c: added icall to implement Assembly.GetFile*.
3697
3698 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
3699
3700         * reflection.h, reflection.c: code to embed managed resources.
3701
3702 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
3703
3704         * class.c: move all the type size stuff into
3705         class_compute_field_layout().
3706
3707 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
3708
3709         * class.c: ensure enums have always the correct instance size.
3710         * unicode.c: remove wrong assert.
3711
3712 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
3713
3714         * assembly.c: fix mem corruption issue.
3715         * image.h, image.c: added mono_image_get_resource () to access
3716         managed resources.
3717         * icall.c: implemented Assembly.EntryPoint property and some
3718         Managed Resources related internalcalls.
3719
3720
3721 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
3722
3723         * image.c, image.h: impemented mono_image_get_entry_point ().
3724         * appdomain.c: use mono_image_get_entry_point.
3725
3726 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
3727
3728         * reflection.c: support the object type argument when loading
3729         custom attributes.
3730
3731 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
3732
3733         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
3734         String as return type.
3735
3736 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
3737
3738         * reflection.c: fix encoding of named args for custom attrs to match
3739         the ms implementation. Read them back when instantiating custom
3740         attributes.
3741
3742 2002-08-02  Radek Doulik  <rodo@ximian.com>
3743
3744         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
3745         by Dietmar as quick fix
3746         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
3747         16 as stack size, used on more places as quick fix before Dietmar
3748         will fix it properly
3749
3750 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
3751
3752         * object.h, object.c: added accessors for fields and properties.
3753
3754 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
3755
3756         * class.c, class.h: made mono_class_get_field_from_name ()
3757         loop on parent types.
3758         Added mono_class_get_property_from_name ().
3759
3760 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
3761
3762         * class.c, class.h: move the code to setup the type vtable in its own
3763         function so that it can be reused also for types created at runtime.
3764         Eliminate the "class" identifier from the header file.
3765         * reflection.c: setup the vtable for enums so that we can create
3766         objects for use in SetConstant ().
3767
3768 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
3769
3770         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
3771         instead of the delegate itself as this pointer (bug #28383)
3772
3773 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
3774
3775         * marshal.c (mono_marshal_get_managed_wrapper): added return type
3776         conversions.
3777
3778 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
3779
3780         * loader.c: don't set the pinvoke bit on icalls.
3781
3782 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
3783
3784         * debug-helpers.c (mono_method_full_name): only print a number to
3785         indicate wrapper type (so that the output is more readable in traces).
3786
3787 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
3788
3789         * class.c (mono_class_init): include method override patch from Paolo
3790
3791 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
3792
3793         * icall.c: fixed GetTypeCode().
3794
3795 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
3796
3797         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
3798         use real delegate invoke function to make it work with multicast
3799         delegates (fix bug# 28291).
3800
3801 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
3802
3803         * object.c: load constant strings.
3804
3805 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
3806
3807         * reflection.c: no magic numbers.
3808         * tabledefs.h: security action enum.
3809
3810 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
3811
3812         * assembly.c: fix possible memory corruption.
3813
3814 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
3815
3816         * reflection.h, reflection.c: added support for linking resources.
3817         * verify.c: check we have an updated corlib.
3818
3819 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
3820
3821         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
3822         string arrays.
3823         (mono_marshal_string_array): null terminate unmanaged string arrays.
3824         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
3825
3826 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
3827
3828         * icall.c: Type.GetType () can now return also types from the
3829         calling assembly.
3830
3831 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
3832
3833         * loader.h, loader.c: stack walking support.
3834         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
3835         GetCallingAssembly.
3836
3837 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
3838
3839         * marshal.c: added optimisations for blittable types 
3840
3841         * class.c (mono_array_class_get): do not set blittable attribute on arrays
3842         (mono_class_setup_mono_type): set blittable attribute for single
3843         and double.
3844
3845         * marshal.c (mono_string_utf8_to_builder): impl.
3846         (mono_string_builder_to_utf8): impl.
3847         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
3848
3849 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
3850
3851         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
3852         (mono_marshal_get_managed_wrapper): impl. byref types
3853
3854 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3855
3856         * icall.c:
3857         (search_method): don't display debug message. 
3858
3859 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
3860
3861         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
3862
3863 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
3864
3865         * appdomain.c: set the missing filename when throwing exception.
3866
3867 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
3868
3869         * metadata.c (mono_type_size): code cleanup
3870         (mono_type_stack_size): removed some test code
3871
3872 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
3873
3874         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
3875         mono_get_exception_file_not_found now.
3876
3877         * exception.c (mono_exception_from_name_two_strings): New version
3878         that will call a constructor with two string arguments. 
3879         (mono_get_exception_file_not_found): New helper routine, used to
3880         report file-not-found errors.
3881
3882 2002-07-20  Dick Porter  <dick@ximian.com>
3883
3884         * process.h:
3885         * process.c: Pass file handles to CreateProcess
3886         
3887         * icall.c:
3888         * file-io.h:
3889         * file-io.c: Implemented CreatePipe
3890
3891 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
3892
3893         * metadata.c (mono_get_param_info): set alignment for value types
3894
3895 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
3896
3897         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
3898         Constify mono_domain_assembly_open().
3899         * loader.c: handle null namespace in icalls.
3900
3901 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
3902
3903         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
3904         (emit_str_to_ptr_conv): marshal object as structs
3905
3906         * metadata.c (mono_type_to_unmanaged): marshal object as structs
3907
3908         * marshal.c (mono_marshal_get_runtime_invoke): support value types
3909
3910 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
3911
3912         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
3913         (mono_marshal_get_native_wrapper): we an now return value types
3914
3915 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
3916
3917         * verify.c: more checks implemented.
3918
3919 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
3920
3921         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
3922         (fix bug #27695)
3923         (mono_marshal_get_native_wrapper): allow byref arguments
3924         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
3925         impl. PtrToStringXXX methods
3926         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
3927         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
3928         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
3929         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
3930         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
3931
3932 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
3933
3934         * reflection.c: fix buglet in parsing an assembly name.
3935
3936 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
3937
3938         * marshal.c (emit_ptr_to_str_conv): first impl.
3939
3940 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
3941
3942         * object.c, class.h: cache the vtable in the class as suggested by
3943         vargaz@freemail.hu (Zoltan Varga).
3944
3945 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
3946
3947         * class.h, loader.c: added mono_field_from_token().
3948         * verify.c: first cut of type checking code.
3949
3950 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
3951
3952         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
3953
3954 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
3955
3956         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
3957         (fix bug #27782)
3958         (mono_marshal_get_remoting_invoke): impl.
3959         (mono_delegate_begin_invoke): impl.
3960         (mono_mb_emit_save_args): impl.
3961         (mono_delegate_end_invoke): impl.
3962         (mono_marshal_get_delegate_begin_invoke):
3963         (mono_marshal_get_delegate_end_invoke):
3964         (mono_marshal_get_delegate_invoke): generate a special name for
3965         those methods (including the signature) and associate them whith
3966         the delegate class. 
3967
3968 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
3969
3970         * reflection.[ch]: 
3971         (mono_reflection_type_from_name): now it has a MonoImage parameter
3972         which is used as the default image to search the type in. If the image
3973         is NULL or getting the type from it fails, it defaults to corlib.
3974
3975         * icall.c: changed 1 call to mono_reflection_type_from_name to match
3976         new parameter.
3977
3978 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
3979
3980         * reflection.c: update the parameter table index.
3981
3982 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
3983
3984         * domain.c: don't include the mark byte in the string hash.
3985
3986 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
3987
3988         * icall.cs: icall for Type.GetTypeCode ().
3989         * verify: a couple of fixes and disabled local initialization checks.
3990
3991 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
3992
3993         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
3994
3995         * debug-helpers.c (mono_method_full_name): print the type of the
3996         runtime wrapper
3997
3998         * metadata.c (mono_signature_hash): a hash function for signatures
3999         (mono_signature_hash): better hash algorithm
4000
4001         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
4002
4003         * debug-helpers.c (mono_method_full_name): this can now generate
4004         method names with signatures
4005
4006         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
4007         method dont have this pointers.
4008
4009 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
4010
4011         * reflection.c: fixup typebuilder tokens.
4012         * image.c: fix buglet.
4013         * marshal.h: remove whitespace.
4014         * metadata.h, metadata.c: reinstate code that was removed.
4015         * verify.c: handle catch directives and fix another couple of bugs.
4016
4017 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
4018
4019         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
4020         (mono_marshal_get_native_wrapper): make it comp. with the old code
4021         (mono_marshal_get_native_wrapper): support boolean
4022         (mono_marshal_get_managed_wrapper): support more types
4023
4024 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
4025
4026         * class.c (class_compute_field_layout): compute class->blittable attribute.
4027
4028 2002-07-09  Dick Porter  <dick@ximian.com>
4029
4030         * threads.c: Make the thread cleaning up cope with threads that
4031         call ExitThread()
4032
4033 2002-07-08  Radek Doulik  <rodo@ximian.com>
4034
4035         * reflection.c (method_encode_code): use non-translated values to
4036         compute finally_start, this fixes exception handling on ppc, yay!
4037
4038         * decimal.h (struct signscale): fix endianess
4039
4040 2002-07-07  Radek Doulik  <rodo@ximian.com>
4041
4042         * reflection.c: swap box_val and not val
4043
4044 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
4045
4046         * reflection.c, reflection.h: handle full assembly info in type name.
4047         Handle Type arguments when loading custom attributes.
4048         * icall.c: updated to use new mono_reflection_type_from_name () method.
4049
4050 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4051
4052         * loader.c:
4053         (method_from_memberref): also print assembly name when method not found.
4054
4055 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4056
4057         * icall.c:
4058         (ves_icall_TypeGetProperties): fixed bug #27473. 
4059
4060 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4061
4062         * reflection.c: display image name and token when cannot find the
4063         .ctor for an attribute.
4064
4065 2002-07-05  Martin Baulig  <martin@gnome.org>
4066
4067         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
4068
4069 2002-07-04  Dick Porter  <dick@ximian.com>
4070
4071         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
4072         compile on mingw.  This will cause mingw builds to not wait for
4073         subthreads to terminate after the main thread does.  I've lodged a
4074         bug with the mingw developers for them to wrap OpenThread().
4075
4076 2002-07-03  Dick Porter  <dick@ximian.com>
4077
4078         * threads.c: Store thread IDs instead of handles, because
4079         GetCurrentThread() returns a pseudohandle and therefore stores
4080         useless values.  mono_thread_cleanup() continues checking the
4081         array of threads until it is empty, to cope with subthreads
4082         spawning new threads after the main thread has finished.
4083
4084         * profiler.h:
4085         * profiler.c:
4086         * profiler-private.h: Pass the thread ID to thread profiler
4087         functions, instead of a handle
4088
4089 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
4090
4091         * verify.c: fixes to make it more usable.
4092         * pedump.c: added --verify code to verify IL code in an assembly.
4093
4094 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4095
4096         * reflection.c: turn errors into warnings to allow compiling corlib.
4097
4098 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
4099
4100         * reflection.c: add special cases to compile corlib.
4101
4102 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
4103
4104         * reflection.c: handle properties with only a set method.
4105
4106 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
4107
4108         * opcodes.h: add enum with opcodes in opval order.
4109
4110 2002-07-01  Dick Porter  <dick@ximian.com>
4111         
4112         * object.h:
4113         * object.c (mono_runtime_run_main): Removed unneeded argument
4114
4115 2002-06-28  Martin Baulig  <martin@gnome.org>
4116
4117         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
4118
4119 2002-06-27  Dick Porter  <dick@ximian.com>
4120
4121         * threads.c: Store the handle in both the parent thread and in the
4122         subthread, to minimise the time between starting a new thread and
4123         storing its ID.
4124
4125 2002-06-26  Dick Porter  <dick@ximian.com>
4126
4127         * appdomain.c (mono_runtime_cleanup): Close the socket library
4128         after all the threads have finished, not before
4129
4130 2002-06-26  Martin Baulig  <martin@gnome.org>
4131
4132         * debug-symfile.c (mono_debug_find_source_location): Added
4133         `guint32 *line_number' argument.  If it's not NULL, store the line number
4134         there and return the file name without the line number.
4135
4136 2002-06-25  Dick Porter  <dick@ximian.com>
4137
4138         * icall.c:
4139         * process.h:
4140         * process.c: Process forking and other support functions
4141
4142 2002-06-25  Dick Porter  <dick@ximian.com>
4143
4144         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
4145         things dont happen when the image is closed.
4146         (mono_image_lookup_resource): Walk the resource section looking
4147         for a particular entry
4148
4149         * cil-coff.h: PE resource section decoding
4150
4151 2002-06-25  Dick Porter  <dick@ximian.com>
4152         
4153         * assembly.h:
4154         * assembly.c: 
4155         (mono_assembly_foreach): Accessor functions to walk the list of
4156         loaded assemblies
4157         (mono_assembly_set_main):
4158         (mono_assembly_get_main): Process methods need to know which
4159         assembly is the "main" one
4160
4161         * object.c (mono_runtime_run_main): Record the main assembly
4162
4163         * debug-helpers.c: Fix typo
4164
4165 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
4166
4167         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
4168         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
4169
4170 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
4171
4172         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
4173
4174 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
4175
4176         * image.c (do_mono_image_open): Initialize reference count,
4177         otherwise we leak the MonoImage.
4178
4179 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
4180
4181         * reflection.c: small tweak to handle self-hosting.
4182
4183 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
4184
4185         * reflection.c: fix type name parse code.
4186
4187 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
4188
4189         * reflection.c: break out of the loop.
4190         * image.c: special case corlib.
4191
4192 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
4193
4194         * reflection.c: add all the custom attrs at the end to ensure the
4195         ctors have been properly initialized when the attributes are defined
4196         in the current assembly.
4197
4198 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
4199
4200         * reflection.c: handle correctly multiple-nested types.
4201
4202 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
4203
4204         * row-indexes.h: fix typos.
4205         * reflection.c: adjust for typos and fix method_def_or_ref
4206         encoding in MethodImpl table.
4207
4208 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
4209
4210         * reflection.c: fix entry point patching (thanks Serge!).
4211
4212 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
4213
4214         * verify.c: add check for System.Exception
4215
4216 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
4217
4218         * image.c, class.c: minifix for code just c&p'ed.
4219         * reflection.c: warning fix.
4220         * object.h, loader.h, domain.c: load also StringBuilder.
4221
4222 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
4223
4224         * marshal.h, marshal.c: some support code to handle complex marshaling.
4225
4226 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4227
4228         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
4229         Better signatures with vtable error dump.
4230
4231 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
4232
4233         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
4234
4235 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
4236
4237         * icall.c (ves_icall_Type_GetField): impl.
4238
4239 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4240
4241         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
4242         to retrieve a marshal description blob for a field or param.
4243
4244 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
4245
4246         * reflection.h, reflection.c: change order of nested type emission
4247         to avoid table corruption. The NestedTypes table is sorted.
4248         * icall.c: change order of GetConstructor results to workaround mcs bug.
4249
4250 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
4251
4252         * reflection.h, reflection.c: handle field and param marshal
4253         information.
4254
4255 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
4256
4257         * icall.c, marshal.c marshal.h: more Marshal class implementation.
4258
4259 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
4260
4261         * reflection.c: fix call convention.
4262
4263 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
4264
4265         * reflection.h, reflection.c: mono_image_get_memberref_token()
4266         takes a type instead of a class, now. Added
4267         mono_image_get_array_token() to create tokens for the special
4268         multi-dim array methods.
4269
4270 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
4271
4272         * assembly.c: handle modules (no assembly table). Split
4273         loading references in its own function.
4274         * class.c: handle moduleref resolution scope.
4275         * image.c, image.h: cache module name in image.
4276
4277 2002-06-07  Martin Baulig  <martin@gnome.org>
4278
4279         * reflection.c (mono_image_get_type_info): Only add a class layout entry
4280         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
4281
4282 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
4283
4284         * icall.c: more signature fixes that used uint instead of int.
4285
4286 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4287
4288         * reflection.c: fixed signature of field refs.
4289
4290 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
4291
4292         * class.c, reflection.c: handle typerefs of nested types
4293         (both on read and when writing files).
4294
4295 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
4296
4297         * icall.c: fix method signatures that tried to workaround the previous
4298         typo, d'oh!
4299
4300 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
4301
4302         * debug-helpers.c: fix typo.
4303
4304 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
4305
4306         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
4307         rewrote the PE/COFF writing code (our programs are understood by the
4308         ms runtime, now).
4309
4310 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
4311
4312         * gc.c, gc.h, icall.c: weakreference support.
4313
4314 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
4315
4316         * Makefile.am, mono-config.c: use $(sysconfdir).
4317
4318 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
4319
4320         * icall.c: changed default precision of Double.ToString() to 15.
4321         Fixed memory leak. Unified with Single.ToString.
4322
4323 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
4324
4325         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
4326
4327 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
4328
4329         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
4330         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
4331         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
4332         and myself.
4333
4334 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
4335
4336         * debug-symfile.c, sysmath.c: yet more compilation fixes.
4337
4338 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4339
4340         * reflection.c, socket-io.c: more compilation fixes.
4341
4342 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
4343
4344         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
4345         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
4346         unicode.c: warning and compiler compatibility fixes.
4347
4348 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
4349
4350         * class.h, metadata.c: fixed warnings/compilation errors.
4351
4352 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
4353
4354         * Makefile.am, mono-config.c, mono-config.h: configuration file
4355         support routines.
4356         * loader.c, loader.h: make Dll mapping configurable at runtime in the
4357         config file. Export methods to insert and lookup mappings.
4358
4359 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
4360
4361         * reflection.c: handle types and boxed objects in custom attr
4362         constructors.
4363
4364 2002-05-30  Martin Baulig  <martin@gnome.org>
4365
4366         * debug-symfile.c
4367         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
4368
4369 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
4370
4371         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
4372         to lookup the implmap row for a P/Invoke method.
4373         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
4374         P/Invoke method from the runtime on an as needed basis.
4375
4376 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
4377
4378         * metadata.c (mono_metadata_parse_signature): impl.
4379
4380 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
4381
4382         * class.c: handle .pack directive.
4383
4384 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
4385
4386         * object.c: initialize static fields with RVA data.
4387
4388 2002-05-25  Martin Baulig  <martin@gnome.org>
4389
4390         * debug-symfile.c
4391         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
4392
4393 2002-05-24  Martin Baulig  <martin@gnome.org>
4394
4395         * debug-symfile.c
4396         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
4397         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
4398         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
4399
4400 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
4401
4402         * object.c: special case string ctros in invoke.
4403         * gc.c: silly whitespace changes.
4404
4405 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
4406
4407         * threadpool.[ch]: impl. a threadpool that can
4408         be used by mint and mono.
4409
4410 2002-05-22  Martin Baulig  <martin@gnome.org>
4411
4412         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
4413         The first argument is now a `MonoReflectionModuleBuilder *', the return
4414         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
4415         `methods' field to get the method builder.  The `token' argument is the
4416         unfixed token.
4417
4418         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
4419         invalid characters instead of g_assert_not_reached()ing.  This seems
4420         to be the behaviour of mscorlib.
4421
4422 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
4423
4424         * object.c (mono_runtime_invoke_array): applied patch from Rachel
4425         Hestilow to fix bug #25104
4426
4427 2002-05-21  Martin Baulig  <martin@gnome.org>
4428
4429         * debug-symfile.c (mono_debug_find_source_location): New function.
4430         Looks up an IL offset in the line number table and returns the source
4431         location as a string.
4432
4433 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4434
4435         * icall.c:
4436         (mono_double_ToStringImpl): changed %f by %g until we have something
4437         better.
4438
4439 2002-05-21  Nick Drochak  <ndrochak@gol.com>
4440
4441         * icall.c : Use different name for Math.Pow's icall.  Needed to check
4442         parameters first in C#.
4443
4444 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
4445
4446         * icall.c, reflection.h: added icall to get info about an event.
4447
4448 2002-05-20  Radek Doulik  <rodo@ximian.com>
4449
4450         * object.c (mono_value_box): don't use memcpy for boxing on BIG
4451         endian
4452         (mono_value_box): don't use memcpy for small sizes on
4453         architectures with unaligned access
4454
4455 2002-05-20  Martin Baulig  <martin@gnome.org>
4456
4457         * reflection.c (mono_reflection_setup_internal_class): Don't crash
4458         if `tb->parent == NULL'.
4459         (mono_reflection_create_internal_class): New function.  This is
4460         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
4461         for enum types.
4462
4463         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
4464         New interncall.
4465
4466 2002-05-19  Martin Baulig  <martin@gnome.org>
4467
4468         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
4469         argument to get the length, don't default to the array length.
4470
4471 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
4472
4473         * assembly.c (mono_assembly_setrootdir): New function used to
4474         override the MONO_ASSEMBLIES directory.
4475
4476 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
4477
4478         * icall.c: ValueType_GetHashCode() initialize local var.
4479
4480 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
4481
4482         * reflection.c: sort custom attributes table.
4483
4484 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
4485
4486         * reflection.c: support named args in custom attributes (write support).
4487
4488 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
4489
4490         * reflection.c: fix finally position calculation.
4491
4492 2002-05-15  Radek Doulik  <rodo@ximian.com>
4493
4494         * reflection.c: fixed endianess at many places
4495
4496         * icall.c (ves_icall_InitializeArray): comment out debug msg
4497
4498 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
4499
4500         * object.c (mono_unhandled_exception): new function to handle
4501         unhandled exceptions.
4502         (mono_unhandled_exception): call the UnhandledException event.
4503         (mono_runtime_delegate_invoke): impl.
4504
4505 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
4506
4507         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
4508         returns the RVA, not the direct pointer to the data. Handle the case
4509         when the class size is fixed.
4510
4511 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
4512
4513         * reflection.c: fix some endianess issues.
4514
4515 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
4516
4517         * object.c (mono_runtime_invoke): is now able to catch exceptions.
4518
4519         * threads.c (mono_thread_init): added a callback which is invoked
4520         at thread start.
4521
4522 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
4523         
4524         * icall.c: make GetHashCode return non-negative values.
4525
4526 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
4527
4528         * object.c, icall.c, gc.c: revert to address-based hashcode.
4529
4530 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
4531
4532         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
4533
4534 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
4535
4536         * icall.c, class.c: special case <Module>.
4537
4538 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
4539
4540         * icall.c: fix bug in GetNow().
4541
4542 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
4543
4544         * object.c (mono_runtime_class_init): make sure that we call all
4545         static class constructors.
4546
4547 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
4548
4549         * reflection.c: sort methodsemantics table.
4550
4551 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
4552
4553         * reflection.h, reflection.c: honour init locals setting.
4554
4555 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
4556
4557         * icall.c: copied Double ToStringImpl for Single ToStringImpl
4558
4559 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
4560
4561         * reflection.c: support ContructorBuilders in attribute blob creation.
4562
4563 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
4564
4565         * reflection.c: some changes to build a binary that can be run
4566         directly in windows.
4567
4568 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
4569
4570         * loader.c: print a big message when an icall can't be found.
4571
4572 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4573
4574         * string-icalls.c: fix bug 24248.
4575
4576 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
4577
4578         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
4579         icall.c, reflection.h: separate assembly loading by pathname and by
4580         assembly name. Use the MONO_PATH env var to search for assemblies.
4581
4582 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
4583
4584         * assembly.c, image.h: add some support for assemblies
4585         with multiple modules.
4586         * class.c, class.h: export mono_class_from_typeref().
4587         * loader.c: remove duplicated code and use mono_class_from_typeref(),
4588         instead.
4589
4590 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
4591
4592         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
4593         documentation says (the ECMA one is correct).
4594
4595 2002-05-02  Dick Porter  <dick@ximian.com>
4596
4597         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
4598         Don't name the synchronisation mutex.
4599
4600 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
4601
4602         * rand.c
4603         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
4604         Make the prototypes match.
4605         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
4606         Same.
4607
4608         * icall.c
4609         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
4610         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
4611         all systems have tm.tm_zone, so use strftime() with %Z to print
4612         the timezone abreviation into a temp string.
4613
4614         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
4615         rather than mono_array_addr() on a MonoString on Big Endian
4616         machines.
4617
4618 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
4619
4620         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
4621         fix bug 24041
4622
4623 2002-04-30  Dick Porter  <dick@ximian.com>
4624
4625         * socket-io.c: Cope with SOCKET being an integer rather than a
4626         pointer now.
4627
4628         * threads.c: Added Thread_free_internal, to deal with thread
4629         handle cleanup.  Moved calls to handle_store() and handle_remove()
4630         to start_wrapper(), so each can only be called once.  Allocate
4631         synchronisation blocks with GC_malloc(), and use GC finalisation
4632         to close the handles.
4633
4634         * icall.c: added System.Threading.Thread::Thread_free_internal
4635
4636 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
4637
4638         * icall.c: support Environment.Exit, CommandLineArgs().
4639
4640 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
4641
4642         * object.c, object.h: added mono_runtime_run_main () and
4643         mono_runtime_get_main_args () for use in System.Environment.
4644
4645 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
4646
4647         * gc.c: fix thinko, enable actual finalization since the jit is now
4648         fixed.
4649
4650 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
4651
4652         * gc.c, object.c: take into account that an object may be offset wrt the address
4653         returned by GC_malloc().
4654
4655 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
4656
4657         * image.c: handle files without entries in the assembly table (modules).
4658
4659 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
4660
4661         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
4662         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
4663         allowed to be null when it's System.Object class setup.
4664
4665 2002-04-27  Martin Baulig  <martin@gnome.org>
4666
4667         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
4668         if `tb->parent == NULL' rather than crashing.
4669
4670 2002-04-28  Nick Drochak  <ndrochak@gol.com>
4671
4672         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
4673         calling acos() where asin() should have been called.
4674
4675 2002-04-26  Martin Baulig  <martin@gnome.org>
4676
4677         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
4678         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
4679         there's a subdirectory called `System', but we don't want to read that
4680         subdirectory as an assembly.
4681
4682 2002-04-25  Martin Baulig  <martin@gnome.org>
4683
4684         * debug-symfile.c: Reflect latest MonoString changes.
4685
4686 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
4687
4688         * rand.c, rand.h: instance method icalls need to have an explicit
4689         this pointer as first argument in the C implementation.
4690
4691 2002-04-25  Nick Drochak <ndrochak@gol.com>
4692
4693         * icall.c: Fix typo in map for GetNonZeroBytes
4694
4695 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
4696
4697         * string-icalls.c : String does now passes unit tests without any 
4698         errors, the following changes has been made:
4699         
4700         Implemented replace methods.
4701         Renaming of methods to (try) follow the standard.
4702         Fixed compare ordinal
4703         Made all memory allocated directly to function instead of via icall function.
4704         Small performance fix in is_in_array function
4705                         
4706  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
4707
4708         c (mono_string_Internal_ctor_charp_int_int):
4709         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
4710         sindex < 0, throw ArgumentOutOfRangeException instead of
4711         ArgumentNullException.
4712
4713         Added new check for length == 0, however
4714         I need to make it return String.Empty from the C code.
4715         
4716         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
4717         that calculate the length for us here.
4718         
4719         (mono_string_Internal_ctor_sbytep_int_int): Replaced
4720         mono_string_new_utf16 with mono_string_new, since value is utf8.
4721
4722 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
4723
4724         * object.c: register the object for finalization if needed.
4725         Allocate one more char in the string for the terminating 0 char.
4726
4727 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
4728
4729         * class.c, class.h, image.c: check if a type implemenst a destructor.
4730         Use the proper key for array class lookups.
4731         * icall.c: register the icalls in the System.GC class.
4732         * gc.c, gc.h: GC-related functions and icalls.
4733
4734 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4735
4736         * icall.c:
4737         * socket-io.c:
4738         * unicode.c: free some strings gotten from mono_string_to_utf8 and
4739         changed a couple of free () by g_free ().
4740
4741         * decimal.c: one-liner in the comments for decimal2string ().
4742
4743 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
4744
4745         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
4746
4747 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
4748
4749         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
4750         * object.c (mono_runtime_invoke_array) : handle null in params
4751
4752 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
4753
4754         * string-icalls.c: fixed bug in split (one off bug)
4755
4756 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
4757
4758         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
4759         * icalls.c: added String::Equals as internal method
4760
4761 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
4762
4763         * threads.c: fixed bug in the double interlocked functions
4764
4765 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
4766
4767         * threads.c: implemented all of the new interlocked icalls.
4768         * string-icalls.c: fix a bug in insert.
4769         * icalls.c: added the icalls for interlocked, removed old string functions.
4770         
4771 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
4772
4773         * loader.c: fix off-by-one error when reading argument names.
4774
4775 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
4776
4777         * profiler.c: win32 counter implementation (untested).
4778         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
4779         (the latter needs testing and more complete impl. from win32 folks).
4780
4781 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
4782
4783         * object.c: mono_array_new_full workaround mono_array_class_get
4784         problem.
4785
4786 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
4787
4788         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
4789         * object.h (mono_string_chars): Changed casting type.
4790
4791 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
4792
4793         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
4794                            method signatures to use gunichar2 instead of gint16.
4795
4796 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
4797
4798         * object.h, object.c: domain-specific versions of mono_object_new and
4799         mono_array_new.
4800
4801 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
4802
4803         * object.c: changed String layout
4804
4805         * string-icalls.c (mono_string_Internal_ctor_chara): added
4806         internal string constructors.
4807
4808 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
4809
4810         * threads.c: pass 'this' to the thread start routine.
4811
4812 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4813
4814         * string-icalls.c: fix IndexOf and LastIndexOf. Now
4815         InternalCompareStr don't call twice mono_string_cmp_char for the last
4816         character. Improved performance in mono_string_cmp_char.
4817
4818 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
4819
4820         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
4821         code into its own library: libmonoruntime.
4822
4823 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
4824
4825         * object.h, object.c: changed array format so that szarrays do not
4826         require a bounds structure.
4827         * icall.c, appdomain.c: support for new szarray format.
4828
4829 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
4830
4831         * metadata.c: compare also the retuns type when comparing signatures:
4832         we didn't do this as an optimization since really overloaded methods
4833         must differ also in the arguments, but this doesn't work with
4834         low-level IL code (or when using explicit conversion operators: see
4835         bug#23498 for an example).
4836
4837 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
4838
4839         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
4840
4841 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
4842
4843         * icall.c: make MonoType::GetElementType its own icall.
4844
4845 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
4846
4847         * icall.c: remove MonoMethod_get_Name().
4848         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
4849         object.
4850
4851 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
4852
4853         * string-icalls.c: optimized a few methods.
4854
4855 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
4856
4857         * icall.c: added all new string internal calls
4858         * string-icalls.c: added, new string internal call implementation.
4859         * object.c: added mono_string_new_size for allocating a string a size
4860
4861 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
4862
4863         * object.c (mono_object_isinst): use the same code as in the
4864         optimized x86 version.
4865
4866 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
4867
4868         * profiler.c: TSC-based timer code (faster and more accurate).
4869         Not hooked up in configure, yet (set USE_X86TSC to 1).
4870
4871 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
4872
4873         * profiler.c, profiler.h: track time spent compiling methods.
4874         * threads.c: track thread creation/destruction.
4875
4876 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
4877
4878         * profiler.c, profiler.h, profiler-private.h: profiling interface
4879         and sample implementation. Moved here so that it can be used also by
4880         the jit.
4881
4882 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
4883
4884         * reflection.c, reflection.h: keep types and other handles separate in
4885         the hash tables for referred tokens. Add guid for modules.
4886
4887 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
4888
4889         * assembly.c: fix bugs found with valgrind.
4890         * metadata.h, metadata.c: added mono_metadata_guid_heap().
4891
4892 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
4893
4894         * threads: added icall support for getting current domain for
4895                    the thread.
4896  
4897 2002-04-13  Martin Baulig  <martin@gnome.org>
4898
4899         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
4900         (MonoDebugVarInfo): Added `index' field for register based addresses.
4901         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
4902         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
4903         `MonoDebugVarInfo *params' and `guint32 this_offset' with
4904         `MonoDebugVarInfo *this_var'.
4905
4906         * debug-symfile.c (relocate_variable): New static function to write
4907         a location description for a local variable or method parameter.
4908
4909 2002-04-12  Martin Baulig  <martin@gnome.org>
4910
4911         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
4912         stack offset and begin/end scope address of a local variable.
4913         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
4914         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
4915         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
4916
4917         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
4918         Added new relocation types for start/end scope of a local variable.
4919
4920 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
4921
4922         * object.h: add mono_object_domain() macro.
4923         * reflection.c: handle typespecs.
4924         * icall.c: MonoMethod::get_Name() implementation.
4925
4926 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
4927
4928         * icall.c: String::GetHashCode() icall implementation.
4929
4930 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4931
4932         * icall.c: String::IndexOfAny icall.
4933         * object.c, object.h: make array->max_length more useful.
4934         Intrduced mono_object_class() and mono_string_length() macros.
4935
4936 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4937
4938         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
4939         instead of g_unichar_isdigit.
4940
4941 2002-04-11  Nick Drochak  <ndrochak@gol.com>
4942
4943         * icall.c: Implement a simple Double.ToString().
4944
4945 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
4946
4947         * appdomain.h: only io-layer.h is supposed to be included.
4948         * icall.c: explicitly import environ. Fix warning.
4949
4950 2002-04-10  Nick Drochak  <ndrochak@gol.com>
4951
4952         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
4953                 return true even if it's not Daylight Savings time.
4954                 Only return false for the case where the function isn't
4955                 implemented for a plaform (read Windows).
4956
4957 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4958
4959         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
4960         data with a mutex.
4961
4962 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
4963
4964         * mempool.c (mono_mempool_alloc): only use g_malloc when
4965         absolutely necessary.
4966
4967 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
4968
4969         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
4970
4971         * class.c (mono_class_vtable): use domain mempool to allocate vtable
4972         (mono_class_proxy_vtable): use domain mempool
4973
4974 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
4975
4976         * appdomain.h, appdomain.c: split initialization that requires the
4977         execution engine support into mono_runtime_init().
4978
4979 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
4980
4981         * class.c (mono_class_init): don't include vtable inside MonoClass
4982         to save some memory, gather some statistics.
4983         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
4984
4985 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
4986
4987         * icall.c: internalcall implementation for ValueType.Equals().
4988
4989 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
4990
4991         * object.c (mono_message_init): moved 
4992         (mono_runtime_exec_main): new arch. independent impl.
4993         (mono_runtime_invoke_array): new method - like
4994         mono_runtime_invoke, but you can pass an array of objects.
4995         (mono_remoting_invoke): new arch. independent impl.
4996         (mono_message_invoke): new arch. independent impl.
4997         (mono_runtime_class_init): new arch. independent impl.
4998         (mono_runtime_object_init): new arch. independent impl.
4999
5000 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
5001
5002         * metadata.c, object.c, reflection.c: documented the exported
5003         functions.
5004
5005 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
5006
5007         * icall.c: simpler code to pass the assembly builder data to corlib.
5008         Implement GetNestedTypes() internalcall.
5009
5010 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
5011
5012         * class.c: warn if a type can't be loaded.
5013
5014 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
5015
5016         * image.h: typedef MonoImageOpenStatus
5017         * types.h: removed unused file
5018         
5019 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
5020
5021         * icall.c: Enum_ToObject accepts enum value arguments.
5022
5023 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
5024
5025         * class.c: move initialization of properties, events and nested
5026         classes, so that they happen for interfaces, too.
5027
5028 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
5029
5030         * icall.c: cleanup some ugly casts in Array_SetValue*.
5031
5032 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
5033
5034         * icall.c: the values array fro enums is of the correct type, now.
5035         Implement (correctly) getFullName instead of assQualifiedName for
5036         MonoType.
5037         * reflection.h, reflection.c: added mono_type_get_name ().
5038
5039 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
5040
5041         * assembly.c, image.h: for each MonoImage, record from wich assembly
5042         it was loaded.
5043         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
5044         Make Type.Assembly work.
5045
5046 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
5047
5048         * debug-symfile.h: use char* instead of gpointer to avoid
5049         unnecessary casts.
5050
5051         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
5052
5053         * icall.c (ves_icall_InternalExecute): impl. FielSetter
5054         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
5055
5056 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
5057
5058         * icall.c (mono_message_init): impl. (code cleanup)
5059         (ves_icall_InternalExecute): impl. FieldGetter
5060
5061         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
5062         defined we call all (non-static)methods through the vtable. 
5063
5064 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
5065
5066         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
5067         finalizer even though the memory is still referenced (and the chunk of
5068         memory is not freed).
5069
5070 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
5071
5072         * assembly.c: fix brokeness.
5073
5074 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
5075
5076         * class.c: kill some warnings. Check explicit interface method
5077         implementation also without considering the namespace.
5078         Load also literal strings in static class data.
5079
5080 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
5081
5082         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
5083         (default_assembly_name_resolver): Make the resolver take the
5084         "base" directory where the assembly was originally defined, so we
5085         can load DLLs that are in the same directory as the assembly that
5086         is being referenced.
5087
5088 2002-03-28  Dick Porter  <dick@ximian.com>
5089
5090         * file-io.h: 
5091         * file-io.c:
5092         * socket-io.c: 
5093         * unicode.h: 
5094         * unicode.c: Warning cleanups
5095
5096 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
5097
5098         * object.h, reflection.h: use the correct type instead of MonoObject.
5099
5100 2002-03-28  Martin Baulig  <martin@gnome.org>
5101
5102         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
5103         (mono_debug_update_symbol_file): Initialize classes if necessary.
5104
5105 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
5106
5107         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
5108         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
5109
5110 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
5111
5112         * assembly.h: fix function prototype.
5113         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
5114         * mono-endian.h: use const cast.
5115
5116 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
5117
5118         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
5119
5120 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
5121
5122         * loader.c: don't assert when a typeref can't be loaded, give
5123         a chance to the runtime to trow an exception instead.
5124         * loader.h: fix warning.
5125
5126 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
5127
5128         * class.c (mono_class_proxy_vtable): added proxy support
5129
5130 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
5131
5132         * icall.c: removed last of PAL calls, added System.Environment
5133         * file-io.h, file-io.c: MonoIO implementation
5134         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
5135
5136 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
5137
5138         * appdomain.c: do not use the byte marker in ldstr table lookup.
5139         * debug-helpers.c: allow two ':' to separate class and method name.
5140         * object.c: allocate arrays bounds with the GC, too.
5141         * verify: add a few more checks.
5142
5143 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
5144
5145         * reflection.c: output also literal strings. Allocate parameter data
5146         with GC_malloc() (thanks, Martin, for catching this!).
5147
5148 2002-03-26  Martin Baulig  <martin@gnome.org>
5149
5150         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
5151         include the `this' offset in the `param_offsets'.
5152
5153 2002-03-25  Martin Baulig  <martin@gnome.org>
5154
5155         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
5156         mono_debug_get_class() function to get the classes. Added new
5157         relocation types for arrays and strings.
5158         (mono_debug_get_class): New static function to search in all
5159         referenced assemblies for a metadata token.
5160
5161         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
5162
5163 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
5164
5165         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
5166         hold gc-allocated objects. Make the string heap a stream like the
5167         others. Removed duplicated code when writing stream info.
5168         Added asserts to catch possible buffer overflows. Set the sorted map
5169         for tables that need sorting. Added some documentation.
5170
5171 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
5172
5173         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
5174         for interned strings and vtables.
5175
5176 2002-03-24  Martin Baulig  <martin@gnome.org>
5177
5178         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
5179         it in the array since it was created with g_slist_prepend().
5180
5181 2002-03-24  Martin Baulig  <martin@gnome.org>
5182
5183         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
5184         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
5185         (mono_debug_method_from_token): Renamed to
5186         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
5187         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
5188
5189         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
5190         relocation types.
5191
5192         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
5193
5194 2002-03-24  Martin Baulig  <martin@gnome.org>
5195
5196         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
5197         (mono_debug_method_from_token): New func.
5198
5199         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
5200         New interncall, calls mono_debug_local_type_from_signature().
5201         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
5202         calls mono_debug_method_from_token().
5203
5204 2002-03-23  Martin Baulig  <martin@gnome.org>
5205
5206         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
5207         specifies the number of bytes to be converted, not the array size.
5208         Return the number of chars, not the number of bytes.
5209         (ves_icall_iconv_get_chars): The `byteCount' argument
5210         specifies the number of bytes to be converted, not the array size.
5211
5212 2002-03-23  Martin Baulig  <martin@gnome.org>
5213
5214         * reflection.h (MonoReflectionSigHelper): New type.
5215
5216         * reflection.c (mono_reflection_sighelper_get_signature_local),
5217         (mono_reflection_sighelper_get_signature_local): New functions.
5218
5219         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
5220         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
5221         interncalls.
5222
5223 2002-03-23  Martin Baulig  <martin@gnome.org>
5224
5225         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
5226         is_writeable is set.
5227         (mono_raw_buffer_update): New function to write the modified map
5228         back to disk.
5229
5230         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
5231
5232         * debug-symfile.c (mono_debug_update_symbol_file): Call
5233         mono_raw_buffer_update() when done writing.
5234
5235 2002-03-23  Martin Baulig  <martin@gnome.org>
5236
5237         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
5238
5239         * debug-symfile.c: Added support for arguments and local variables.
5240
5241 2002-03-23  Dick Porter  <dick@ximian.com>
5242
5243         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
5244         protected by ifdefs, hence breaking the w32 build.
5245
5246 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
5247
5248         * object.c: implement is_interned() the right way.
5249
5250 2002-03-21  Martin Baulig  <martin@gnome.org>
5251
5252         * debug-symfile.[ch]: New files to handle debugging information
5253         files. There's also support to dynamically update these symbol
5254         files to include machine dependent information.
5255
5256 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
5257
5258         * threads.c (mono_thread_create): new function to create thread
5259         from C
5260
5261 2002-03-20  Martin Baulig  <martin@gnome.org>
5262
5263         * icall.c (ves_icall_InternalInvoke): Create a new object if the
5264         method is a constructor.
5265         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
5266         points to ves_icall_InternalInvoke().
5267
5268 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
5269
5270         * file-io.c: Flush shouldn't throw exceptions.
5271
5272 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
5273
5274         * file-io.c: FileStream flush support; FileSetLength now
5275         restores file pointer.
5276
5277 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
5278
5279         * class.c: set image for pointer classes.
5280
5281 2002/03/19  Nick Drochak <ndrochak@gol.com>
5282
5283         * sysmath.c: Forgot one.
5284
5285 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
5286
5287         * sysmath.c: Avoid redefining existing names.
5288
5289 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
5290
5291         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
5292         handled by runtime as icall rather than dllimport from libm.so
5293         * file-io.c, file-io.h: fixed handle argument type.
5294
5295 2002-03-18  Dick Porter  <dick@ximian.com>
5296
5297         * reflection.c (mono_image_get_type_info): rename interface to
5298         iface, because of "#define interface struct" on windows.
5299
5300 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
5301
5302         * class.c, class.h: rename and export mono_ptr_class_get().
5303         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
5304         * reflection.c, reflection.h, icall.c: better/saner type name
5305         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
5306         method signatures.
5307
5308 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
5309
5310         * class.c (mono_class_init): removed hardcoded GHC_SLOT
5311
5312         * icall.c (ves_icall_InternalInvoke): impl.
5313
5314 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
5315
5316         * reflection.c: output the interface map table, too.
5317
5318 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
5319
5320         * class.c (class_compute_field_layout): separate computation of 
5321         static field layout
5322
5323 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
5324
5325         * icall.c: added System.Buffer support.
5326         * file-io.c: moved file icalls from PAL to FileStream.
5327
5328 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
5329
5330         * icall.c (ves_icall_System_Object_GetHashCode): impl.
5331
5332 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
5333
5334         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
5335
5336 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
5337
5338         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
5339
5340 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
5341
5342         * debug-helpers.{c,h}: moved here from monograph some useful functions
5343         to locate a method by name/signature in a class or image. Included
5344         also a small and flexible IL disassembler.
5345
5346 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
5347
5348         * reflection.c: fixup tokens in methods with small header size, too.
5349
5350 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
5351
5352         * object.c (mono_string_to_utf8): remove assert(!error), instead
5353         print a warning. 
5354
5355 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
5356
5357         * icall.c: update to the new mono_Array_class_get interface.
5358
5359 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
5360
5361         * appdomain.c, object.c: Boehm-GC enable.
5362         * icall.c: make get_data_chunk() support split data requests.
5363         Ensure a class is initialized in more cases. Return only the first
5364         property found in GetProperties() or the compiler gets confused. 
5365         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
5366         * reflection.h, reflection.c: add fixup mechanism for field and method
5367         tokens. Initialize assembly->typeref in a single place. Output
5368         properties after events. Support custom attributes for events, too.
5369         Typo fix for paramter custom attrs.
5370
5371 2002-03-07  Martin Baulig  <martin@gnome.org>
5372
5373         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
5374
5375 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
5376
5377         * class.c (mono_array_class_get): fix. for multi. dim. arrays
5378
5379 2002-03-06  Martin Baulig  <martin@gnome.org>
5380
5381         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
5382         non-zero lower bounds. See testcases #F10-#F13.
5383
5384 2002-03-05  Martin Baulig  <martin@gnome.org>
5385
5386         * exception.c (mono_get_exception_argument_out_of_range): New exception.
5387
5388         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
5389         ves_icall_System_Array_GetValue(), only calculate the absolute array position
5390         here.
5391         (ves_icall_System_Array_SetValue): Likewise.
5392         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
5393         as argument and does the actual work. This function is used when copying a
5394         multi-dimensional array.
5395         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
5396         now do all the widening conversions of value types.
5397         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
5398
5399 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
5400
5401         * class.c: remove some magic numbers and use the smbolic names,
5402         instead. Added init_events() to load event info at class init time.
5403         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
5404         and mono_metadata_methods_from_event().
5405         * reflection.h, reflection.c: added support for writing out the evnets
5406         related information.
5407
5408 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
5409
5410         * reflection.h, icall.c: use a different method (GetInterfaces)
5411         to gather interface info and add isbyref, isprimitive and
5412         ispointer to the ves_icall_get_type_info() return value.
5413
5414 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
5415
5416         * class.h: stared adding support for events.
5417         * icall.c: split find_members implementation. Added debug icall to get
5418         the address of an object.
5419         * reflection.c: handle TypeBuilders in mono_type_get_object().
5420
5421 2002-03-01  Martin Baulig  <martin@gnome.org>
5422
5423         * icall.c (ves_icall_System_Array_GetLength): This must throw an
5424         ArgumentOutOfRangeException(), not an ArgumentException().
5425         (ves_icall_System_Array_GetLowerBound): Likewise.
5426         (ves_icall_System_Array_GetValue): Improved argument checking.
5427         (ves_icall_System_Array_SetValue): Improved argument checking.
5428
5429 2002-03-01  Martin Baulig  <martin@gnome.org>
5430
5431         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
5432         called with invalid arguments rather than just dying with g_assert().
5433         (ves_icall_System_Array_SetValue): Likewise.
5434         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
5435         raise a NotImplementedException instead.
5436         (ves_icall_System_Array_GetLength): Added argument checking.
5437         (ves_icall_System_Array_GetLowerBound): Added argument checking.
5438
5439 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
5440
5441         * object.h (mono_assert): new macros mono_assert and
5442         mono_assert_not_reached
5443
5444 2002-02-28  Martin Baulig  <martin@gnome.org>
5445
5446         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
5447         and "System::String::IsInterned" to "System::String::_IsInterned".
5448
5449 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
5450
5451         * icall.c: remove hacks for typebuilder. Added icall to create a
5452         modified type from a tybebuilder.
5453         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
5454         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
5455         to create a backing MonoClass for a TypeBuilder.
5456
5457 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
5458
5459         * class.c, class.h: more refactoring of class init.
5460         Export mono_class_setup_mono_type() and mono_class_setup_parent().
5461
5462 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
5463
5464         * marshal.c, marshal.h: start of marshaling interface.
5465
5466 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
5467
5468         * icall.c: fix order in assembly qualified name icall.
5469
5470 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
5471
5472         * class.c: do not free str, since we store it in the hash table.
5473         * reflection.h: add label field to MonoILExceptionInfo.
5474         * reflection.c: handle references to more than one assembly. Handle
5475         case when there isn't a module created in the assembly.
5476
5477 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
5478
5479         * class.c: Fix typo. Start refactoring of class init code.
5480
5481 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
5482
5483         * appdomain.c: exit with 1 on error.
5484         * class.c: we already have the name in MonoClassField.
5485         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
5486         MonoStreamHeader instead of an offset of image->raw_metadata.
5487
5488 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
5489
5490         * appdomain.c (mono_init): Be even more descriptive about the error.
5491
5492 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
5493
5494         * appdomain.c: give the user an informative message when corlib can't
5495         be loaded.
5496
5497 2002-02-26  Martin Baulig  <martin@gnome.org>
5498
5499         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
5500         New icall to get the time zone data.
5501
5502 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
5503
5504         * reflection.c: set virtual and raw size of section correctly.
5505         * threads.c: transfer domain information to newly created threads.
5506
5507 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
5508
5509         * class.c: when instancing a class in a domain, load the default
5510         vaules for static fields from the constant table. Fix System.Enum to
5511         not be an enum.
5512         * icall.c: implement Object::GetType() internalcall. Implemented
5513         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
5514         Fixed checking of binding flags in find_members().
5515         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
5516         * reflection.c: handle enumerations when writing to the constant
5517         table. Use a different object cache for types.
5518
5519
5520 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
5521
5522         * object.c (mono_object_isinst): fix for arrays
5523
5524         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
5525
5526 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
5527
5528         * object.c: don't use mprotect ()  and fix intern pool hash table
5529         lookup for big endian systems.
5530
5531 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
5532
5533         * icall.c: change type_is_subtype_of () signature.
5534
5535 2002-02-21  Mark Crichton  <crichton@gimp.org>
5536
5537         * rand.c, rand.h: Added random number generator for
5538         System.Security.Cryptography classes.
5539
5540         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
5541
5542         * icall.c: Added System.Security.Cryptography calls.
5543
5544 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
5545
5546         * class.c, icall.c, metadata.c: better support for pointer types.
5547         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
5548         * reflection.c: Add support for getting custom attrs for properties
5549         and simplify some code.
5550
5551 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
5552
5553         * icall.c: change getToken () and add custom attribute GetBlob()helper
5554         method.
5555         * reflection.h: add custom attrs array to the reflection builder structures.
5556         * reflection.c: encode and emit custom attributes for all the relevant
5557         reflection objects. Cache fieldref and methodref tokens. Change
5558         mono_image_create_token() interface to take a MonoDynamicAssembly.
5559         More complete custom attributes decoder. Load custom attributes for
5560         Assembly, Field, Method and Constructor objects, too. Make the
5561         returned array an Attribute[] one, not object[]. Added
5562         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
5563         custom attribute constructor.
5564
5565 2002-02-20  Dick Porter  <dick@ximian.com>
5566
5567         * icall.c:
5568         * rawbuffer.c:
5569         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
5570         problem code out for now).
5571
5572 2002-02-19  Radek Doulik  <rodo@ximian.com>
5573
5574         * object.c (mono_ldstr): use hash table to avoid multiple swapping
5575
5576 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
5577
5578         * icall.c: register the GetCustomAttributes method.
5579         * object.c, object.h: add mono_string_new_len ().
5580         * reflection.h, reflection.c: added mono_runtime_invoke(),
5581         mono_install_runtime_invoke(). Added
5582         mono_reflection_get_custom_attrs () to load custom attributes and
5583         create the attribute objects.
5584
5585 2002-02-19  Dick Porter  <dick@ximian.com>
5586         * threads-dummy-types.c:
5587         * threads-dummy-types.h:
5588         * threads-dummy.c:
5589         * threads-dummy.h:
5590         * threads-pthread-types.c:
5591         * threads-pthread-types.h:
5592         * threads-pthread.c:
5593         * threads-pthread.h:  Deleted obsolete files
5594
5595 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
5596
5597         * class.c (mono_class_vtable): runtime init the class when we
5598         allocate static class data.
5599
5600         * icall.c (ves_icall_System_Array_SetValue): check for null values.
5601
5602         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
5603         and String - but we will need generic marshalling support in the
5604         future. 
5605         (mono_init): set the domain name in a ms compatible way
5606
5607         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
5608         String[].
5609
5610 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
5611
5612         * object.c (mono_array_clone): use alloca() instead of g_malloc  
5613         for sizes
5614
5615         * appdomain.c (mono_domain_unload): impl.
5616
5617 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
5618
5619         * appdomain.c, object.c: fix intern pool implementation.
5620         * class.c: fix alignment code.
5621
5622 2002-02-16  Radek Doulik  <rodo@ximian.com>
5623
5624         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
5625         and s2 > s1, just copy lower bytes to be compatible with little
5626         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
5627         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
5628
5629         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
5630         force big_endian to be 1 for big endian machines 
5631         (ves_icall_iconv_new_decoder): ditto
5632
5633 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
5634
5635         * socket-io.c (convert_sockopt_level_and_name): If the system
5636         doesn't define SOL_IP or SOL_TCP, get them by hand using
5637         getprotobyname() and caching the values (because this could be a
5638         slow operation).
5639         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
5640         Use the appropriate struct when the system does support it. Ie,
5641         not all systems have struct ip_mreqn so use struct ip_mreq when
5642         appropriate.
5643
5644 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
5645
5646         * reflection.c: handle finally clauses.
5647
5648 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
5649
5650         * socket-io.c: use g_snprintf() instead of snprintf.
5651
5652 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
5653
5654         * reflection.c (mono_param_get_objects): Cast second argument to
5655         mono_method_get_param_names to a const char** to silence the
5656         compiler warning.
5657
5658         * appdomain.c (mono_domain_assembly_open): Put parens around the
5659         truth statement in the for-loop.
5660
5661         * unicode.c (iconv_convert): Got rid of a compiler warning about
5662         int i being unused when the system has a new iconv.
5663         (iconv_get_length): Same.
5664
5665         * image.c (load_class_names): Cast the second argument to
5666         g_hash_table_insert() to char* to hush compiler warnings about the
5667         arg being a const.
5668         (mono_image_open): Same here.
5669
5670         * socket-io.c: Don't conditionally include sys/filio.h or
5671         sys/sockio.h here anymore since we now get them from
5672         io-layer/io-layer.h
5673         (inet_pton): If the system doesn't support inet_aton, implement
5674         using inet_addr and also #define INADDR_NONE if it isn't defined
5675         by the system.
5676
5677 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
5678
5679         * metadata.c, metadata.h: added function to get packing and size info
5680         of a typedef.
5681         * reflection.h, reflection.c: handle field RVA data. Save info about
5682         the table layout if needed. Assign typedef indexes to all the types
5683         before dumping the info about them to avoid forward reference problems.
5684
5685 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
5686
5687         * socket-io.c (convert_sockopt_level_and_name): ifdef
5688         SO_ACCEPTCONN because it is not defined on my system (old debian)
5689
5690 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
5691
5692         * opcode.c: use stddef.h to get NULL.
5693
5694 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
5695
5696         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
5697         for FIONBIO, FIONREAD and SIOCATMARK.
5698         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
5699         define INADDR_NONE and besides, inet_addr() is deprecated and
5700         should not be used. Use inet_pton() instead - it also has the
5701         added bonus that it can easily handle IPv6 addresses as well.
5702         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
5703
5704 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
5705
5706         * decimal.c: remove _MSC_VER conditional.
5707
5708 2002-02-13  Dick Porter  <dick@ximian.com>
5709
5710         * socket-io.c: 
5711         * icall.c: Internal calls for Blocking, Select, Shutdown,
5712         GetSocketOption and SetSocketOption
5713
5714 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
5715
5716         * assembly.cs: better resolver: use it instead of some kludgy
5717         code.
5718
5719 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
5720
5721         * reflection.c: the best way to speed-up the compiler is to avoid
5722         infinite loops.
5723
5724 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
5725
5726         * class.c (mono_class_vtable): changed the object layout
5727         (obj->vtable->class). 
5728         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
5729
5730 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
5731
5732         * assembly.c: look for assemblies in the assembly dir, too.
5733
5734 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
5735
5736         * class.c: fix thinko in mono_class_from_type().
5737
5738 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
5739
5740         * exception.h, exception.c: added TypeLoadException.
5741         * object.h, object.c: added mono_array_clone ().
5742         * icall.c: handle throwOnError in AssemblyGetType().
5743         Added Array.Clone().
5744         * opcode.h, opcode.c: use a single value for the opcode val.
5745         Compile fix for non-gcc compilers.
5746
5747 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
5748
5749         * opcodes.c, opcodes.h: export interesting info about opcodes.
5750
5751 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
5752
5753         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
5754         icalls. 
5755
5756         * class.c (class_compute_field_layout): set element_class for enums
5757         (mono_class_create_from_typedef): set element_class for normal classes
5758
5759         * icall.c (ves_icall_System_Enum_get_value): impl.
5760
5761         * class.c (mono_class_create_from_typedef): do not set valuetype
5762         flag for System.ValueType and System.Enum
5763
5764 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
5765
5766         * unicode.c (iconv_convert): fix big endian problem.
5767
5768 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
5769
5770         * class.c: add asserts if we are ever going to scribble over memory.
5771         * socket-io.c: not all systems have AF_IRDA defined.
5772
5773 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
5774
5775         * class.c (class_compute_field_layout): do not consider static
5776         fields to compute alignment
5777
5778 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
5779
5780         * appdomain.c (mono_appdomain_get): impl.
5781         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
5782
5783 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
5784
5785         * icall.c: ignore "file://" prefix when loading an assembly.
5786
5787 2002-01-23  Dick Porter  <dick@ximian.com>
5788
5789         * socket-io.c:
5790         * icall.c:
5791         * Makefile.am: Added socket support
5792
5793 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
5794
5795         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
5796         code back.  This should return the assemblies that are loaded by
5797         the runtime on behalf of an application domain. 
5798
5799         The current implementation is still broken, it just returns every
5800         assembly loaded, but until we get real applications domain this
5801         will do.
5802
5803 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
5804
5805         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
5806         AppDomain object.
5807
5808 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
5809
5810         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
5811         the mono_class_from_name lookup.
5812         (ves_icall_get_parameter_info): ditto.
5813         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
5814         method.
5815         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
5816
5817 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
5818
5819         * class.c: load also nested classes on class init.
5820         System.ValueType instance methods gets passed boxed
5821         values, unless methods in derived classed that get a pointer to the
5822         data.
5823         * icall.c: use better name parsing code in GetType().
5824         * image.c, image.h: add mono_image_loaded ().
5825         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
5826         * reflection.c, reflection.h: added mono_reflection_parse_type().
5827
5828 2002-01-22  Veronica De Santis <veron78@interfree.it>
5829
5830         * icall.c : Added mapping of internal calls for Manual and Auto reset events
5831         * threads.c : Added the implementation of internal calls for events
5832         * threads.h : Added prototypes of internal calls for events
5833         
5834 2002-01-21  Radek Doulik  <rodo@ximian.com>
5835
5836         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
5837
5838 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
5839
5840         * class.c (mono_class_init): set min_align to 1 (instead of 0)
5841         (mono_class_value_size): use min_align
5842
5843 2002-01-20  Dick Porter  <dick@ximian.com>
5844
5845         * threads.h:
5846         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
5847         so it compiles on w32.
5848
5849 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
5850
5851         * metadata.c (mono_type_stack_size): impl.
5852
5853         * class.c (mono_class_get_field): impl. memberref token
5854
5855 2002-01-16 Veronica De Santis <veron78@@interfree.it>
5856
5857         * icall.h : Added the internal calls mapping for CreateMutex_internal
5858                     and ReleaseMutex_internal.
5859         * threads.h : Added the prototype of mutexes internal calls.
5860         * threads.c : Added the implementations of mutexes internal calls.
5861
5862 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
5863
5864         * metaparse.h: removed unused file.
5865         * reflection.c, reflection.h: added stream_data_align () function 
5866         to align data in streams and keep stream aligned. Add support for
5867         exception support in method headers.
5868
5869 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
5870
5871         * unicode.c: make iconv_convert () return the number of bytess written
5872         in the output buffer.
5873
5874 2002-01-15  Dick Porter  <dick@ximian.com>
5875         * threads.c: Make the runtime's idea of infinite timeouts coincide
5876         with the class library's
5877
5878         Fix a particularly egregious bug in mono_thread_cleanup(). That
5879         code was so utterly bogus it must have been written on a Monday.
5880
5881 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
5882
5883         * reflection.h: add subtypes field to TypeBuilder.
5884         * reflection.c: encode constants for literal fields.
5885         Handle subtypes. Fix user string token (and add a zero byte)
5886         at the end.
5887         
5888 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
5889
5890         * class.c (mono_class_init): bug fix: assign slot numbers for
5891         abstract methods.
5892
5893 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
5894
5895         * reflection.c: don't try to output a code RVA for abstract methods.
5896         Small fixes for method header format. Output parameter info to the
5897         ParamDef table. Save method overriding info to MethodImpl table.
5898         Fix property support. Allow typedef.extends to be a type in the
5899         building assembly.
5900         * verify.c: fix off-by-one error.
5901
5902 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
5903
5904         * class.c: fix mono_class_from_mono_type () for szarray types.
5905         Remove unused cache check in mono_class_from_type_spec().
5906         * icall.c: *type_from_name () functions handle simple arrays and byref.
5907         * reflection.c: handle byref and szarray types. Handle methods without
5908         body (gets P/Invoke compilation working). Handle types and fields in
5909         get_token ().
5910         * reflection.h: add rank to MonoTypeInfo.
5911
5912 2002-01-10  Dick Porter  <dick@ximian.com>
5913
5914         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
5915         internal calls
5916
5917 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
5918
5919         * icall.c: initialize class in type_from_handle ().
5920         Loop also in parent classes for get_method ().
5921         * reflection.c: properly encode class and valuetype types.
5922         Start on encoding TypeBuilder types. Handle fieldrefs.
5923         Use correct length when registering a user string.
5924         Handle ConstructorBuilder and MonoMethod in get_token ().
5925         Make mono_type_get_object () aware of cached types.
5926         * object.c: back out change to mono_string_new ().
5927
5928 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
5929         * object.c: mono_string_new should return a NULL when the string 
5930         passed in is NULL -- not try to deference it.
5931         
5932 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
5933
5934         * icall.c: hack to make IsSubType work for TypeBuilders.
5935         * reflection.c: emit constructors before methods.
5936         Retrieve param names in mono_param_get_objects().
5937
5938 2002/01/05  Nick Drochak  <ndrochak@gol.com>
5939
5940         * Makefile.am: fix list of headers and sources so automake 1.5
5941         doesn't complain. Removed \# at end of list.
5942
5943 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
5944
5945         * reflection.c: get token for a method ref. Set return type of
5946         constructor to void.
5947         * loader.c: debug message.
5948         * class.c: typo fix.
5949
5950 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
5951
5952         * icall.c: fix array init with rank > 1. FindMembers
5953         loops in parent class as well.
5954         * image.c: do not insert nested types in name cache.
5955         * reflection.c: warning fix.
5956         * reflection.h: add override method (for interface impl).
5957
5958 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
5959
5960         * metadata.c: fix customattr decoding.
5961
5962 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
5963
5964         * rawbuffer.cs: Added native Win32 implementation, avoids using
5965         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
5966
5967 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
5968
5969         * class.c: make the low-level routines handle the cache.
5970
5971 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
5972
5973         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
5974
5975 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
5976
5977         * class.c: fix mono_array_element_size() for objects.
5978         * class.h, class.c: add properties to MonoClass and load them
5979         at init time.
5980         * icall.c: check with isinst() when assigning a value to an array
5981         instead of requiring the classes to match exactly.
5982         Implemented icall for System.Type::GetType().
5983         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
5984         enums. Handle bindingflags when looking for methods and fields.
5985         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
5986         and mono_metadata_methods_from_property().
5987         * reflection.h, reflection.c: added structures for propreties,
5988         parameters and enums. Implemented mono_property_get_object() and
5989         mono_param_get_objects().
5990
5991 2001-12-18  Dick Porter  <dick@ximian.com>
5992
5993         * file-io.c: Use mono_string_to_utf16() instead of
5994         mono_string_chars()
5995
5996         * object.c: Added mono_string_to_utf16(), which copies the non
5997         NULL-terminated MonoString into a new double-null-terminated
5998         buffer.
5999
6000 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
6001
6002         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
6003
6004 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
6005
6006         * file-io.c: raise exceptions if handle is invalid.
6007
6008 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
6009
6010         * assembly.c: yet another check for mscorlib.
6011         * class.c, class.h: load nesting info for classes.
6012         * icall.c: many new functions to support the Reflection classes.
6013         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
6014         * reflection.h, reflection.c: mono_image_create_token(),
6015         mono_assembly_get_object(), mono_type_get_object(),
6016         mono_method_get_object(), mono_field_get_object(): methods to return
6017         objects that parallel the C representation of assemblies, types,
6018         methods, fields.
6019
6020 2001-12-11  Dick Porter  <dick@ximian.com>
6021
6022         * icall.c:
6023         * file-io.c: Internal calls for file IO.
6024
6025 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
6026
6027         * tabledefs.h: missing FileAttributes.
6028         * verify.h, verify.c: use is_valid_string () to simplify and check for
6029         valid strings more correctly. Fix warnings and speeling.
6030         Check more tables: Filed, File, ModuleRef, StandAloneSig.
6031         Check code: branches, maxstack, method calls.
6032
6033 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
6034
6035         * object.c (mono_object_allocate): removed static, so that the jit
6036         can allocate value types.
6037
6038         * icall.c (ves_icall_System_DateTime_GetNow): impl.
6039
6040 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
6041
6042         * class.c: init enum types right away and register the
6043         token->MonoClass map in mono_class_create_from_typedef ().
6044         * verify.h, verify.c: first cut of the verifier.
6045         * pedump.c: add --verify switch to verify metadata tables.
6046         * tabledefs.h: add some missing enums.
6047
6048 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
6049
6050         * class.c (mono_install_runtime_class_init): impl.
6051         (mono_class_init): renamed mono_class_metadata_init to
6052         mono_class_init, also removed the metadata_inited flag
6053
6054         * object.c (mono_object_isinst): use faster algorithm
6055
6056 2001-11-30  Radek Doulik  <rodo@ximian.com>
6057
6058         * mono-endian.h: reverted last change
6059         added function prototypes
6060
6061         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
6062         add mono-endian.c back
6063
6064         * mono-endian.c: returned back, as Paolo pointed out, it's needed
6065         for unaligned access, I've mistaked it with endianess. I am
6066         sorry.
6067         (mono_read16): fix reverted endianess
6068         (mono_read64): ditto
6069         (mono_read32): ditto
6070
6071 2001-11-30  Dick Porter  <dick@ximian.com>
6072
6073         * exception.c: Implement mono_exception_from_name()
6074
6075 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
6076
6077         * metadata.h, metadata.c: remove params_size and locals_size and their
6078         calculation from the metadata code: they are only usefult to the
6079         interp.
6080
6081 2001-11-29  Radek Doulik  <rodo@ximian.com>
6082
6083         * object.c (mono_ldstr): swap bytes here, it's probably not the
6084         best place, but works for me now, I'll redo it once I know mono
6085         better, also note that I add PROT_WRITE and don't reset back, also
6086         note that it's only affects big endians, so x86 should be OK
6087
6088         * mono-endian.h (read16): use just glib macros for both endians
6089
6090         * mono-endian.c: removed as glib macros are used in in
6091         mono-endian.h so we don't need to care about endianess for read
6092         macros as glib does that for us already
6093
6094 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
6095
6096         * class.h, class.h: take minimum alignment into consideration so
6097         that the fields of a class remain aligned also when in an array.
6098
6099 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
6100
6101         * loader.h, loader.c: add mono_method_get_param_names().
6102         * class.c: 0-init class fields.
6103
6104 2001-11-26  Dick Porter  <dick@ximian.com>
6105
6106         * icall.c:
6107         * threads-types.h:
6108         * threads.c: New file that handles System.Threading on all platforms
6109
6110         * object.c: 
6111         * object.h: Remove the synchronisation struct from MonoObject,
6112         replace it with a pointer that gets initialised on demand
6113
6114         * Makefile.am: Replace all the system-specific threading code with
6115         a single file that uses the new wrapper library
6116
6117 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
6118
6119         * class.c, class.h: add mono_install_trampoline() so that the runtime
6120         can register a function to create a trampoline: removes the ugly
6121         requirement that a runtime needed to export arch_create_jit_trampoline.
6122         * object.h, object.c: added mono_install_handler() so that the runtime
6123         can install an handler for exceptions generated in C code (with
6124         mono_raise_exception()). Added C struct for System.Delegate.
6125         * pedump.c: removed arch_create_jit_trampoline.
6126         * reflection.c: some cleanups to allow registering user strings and
6127         later getting a token for methodrefs and fieldrefs before the assembly
6128         is built.
6129         * row-indexes.h: updates and fixes from the new ECMA specs.
6130
6131 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
6132
6133         * class.h, class.c: add enum_basetype field to MonoClass.
6134         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
6135         to get index in the constant table reated to a field, param or
6136         property.
6137         * reflection.h, reflection.c: handle constructors. Set public-key and
6138         version number of the built assembly to 0.
6139         * row-indexes.h: update from new ECMA spec.
6140
6141 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
6142
6143         * class.h, class.c: add a max_interface_id to MonoClass.
6144         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
6145         since it's used to do that. Added mono_type_type_from_obj().
6146         Make GetType() return NULL instead of segfaulting if the type was not
6147         found. Handle simple arrays in assQualifiedName.
6148         * object.h: add a struct to represent an Exception.
6149         * reflection.c: output call convention in method signature.
6150         Add code to support P/Invoke methods and fixed offsets for fields.
6151
6152 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
6153
6154         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
6155         the value.
6156         * icall.c: use mono_array_addr instead of array->vector: fixes the
6157         reflection image writing.
6158         * reflection.c: init call convention byte to 0 in method signature.
6159         Encode the property signature. Don't output property-related methods
6160         twice. Really process the properties for a type (don't cast a field to
6161         a property, my mom always told me that).
6162         Fix 64 bit issues in pointer alignment in a different and more
6163         readable way.
6164
6165 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
6166
6167         * loader.h: Removed type class from MonoDefaults, added monotype
6168
6169         * loader.c: Loaded MonoType, removed loading of Type
6170
6171         * icall.c (my_mono_new_object): Now returns a System.MonoType,
6172         and fills in System.Type._impl with a RuntimeTypeHandle rather
6173         than the actual MonoClass *
6174
6175         (ves_icall_type_from_handle): change from type_class to
6176         monotype_class
6177
6178         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
6179         implemented
6180
6181         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
6182         implemented
6183
6184         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
6185
6186         (ves_icall_System_Reflection_Assembly_GetType): implemented
6187
6188         (ves_icall_System_MonoType_assQualifiedName): implemented
6189
6190         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
6191
6192 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
6193
6194         * assembly.c (mono_assembly_open): Implement a cache for the
6195         assemblies. 
6196
6197         (mono_assembly_close): only destroy the assembly when the last
6198         reference is gone.
6199         
6200 2001-11-09  Dick Porter  <dick@ximian.com>
6201
6202         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
6203
6204 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
6205
6206         * class.c (mono_class_metadata_init): bug fix: compute the right slot
6207
6208 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
6209
6210         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
6211         from Martin Weindel.
6212         * object.h: add mono_string_chars ().
6213
6214 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
6215
6216         * reflection.c (build_compressed_metadata): Eliminates warnings
6217         and uses 64-bit clean code.
6218
6219         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
6220         (mono_type_equal): Change signature to eliminate warnings.
6221
6222 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
6223
6224         * icall.c, loader.c: remove the internalcall array constructors.
6225         Changes to match the new MonoArray structure.
6226         * object.h, object.c: an array object doesn't allocate an extra
6227         vector. Add mono_array_new_full () to create jagged arrays easily.
6228
6229 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
6230
6231         * metadata.h, metadata.c: add mono_metadata_field_info () to
6232         retreive all the info about a field from vairous tables.
6233         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
6234         * class.h, class.c: augment MonoClassField with more info.
6235         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
6236         policy and load a field's RVA if needed.
6237
6238 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
6239
6240         * class.c (mono_class_metadata_init): create a trampoline for all
6241         virtual functions instead of actually compiling them.
6242
6243 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
6244
6245         * class.h, class.c: include name in MonoClassField.
6246         * class.c: fix fundamental type of System.Object and System.String.
6247         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
6248         tokens in ldtoken.
6249         * icall.c: remove internalcalls for the Reflection stuff that is now
6250         done in C# code.
6251         * loader.c: mono_field_from_memberref () implementation.
6252         * mono-endian.c: thinko (s/struct/union/g).
6253         * object.c, object.h: make the mono_string_* prototypes actually use
6254         MonoString instead of MonoObject.
6255         * reflection.c, reflection.h: updates for changes in the reflection
6256         code in corlib: we use C structures that map to the actual C# classes.
6257         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
6258         fat method header if needed and use the info from the ILGenerator for
6259         methods. Handle fields in types. Misc fixes.
6260
6261 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
6262
6263         * class.c (mono_class_metadata_init): bug fix: always allocate
6264         space for static class data
6265
6266 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
6267
6268         * class.c (mono_compute_relative_numbering): use relative
6269         numbering to support fast runtime type checks.
6270
6271 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
6272
6273         * class.c (mono_class_create_from_typeref): added debugging output
6274         to print class name when MonoDummy is returned instead of real class
6275
6276 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
6277
6278         * class.c (mono_class_metadata_init): interface offset table now
6279         contains pointers into the vtable - this is more efficient for the jit
6280
6281 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
6282
6283         * class.c (mono_class_metadata_init): use a temporary vtable (the
6284         old algorithm only worked for the interpreter, but not for the jit)
6285
6286 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
6287
6288         * loader.c (method_from_memberref): use mono_class_get to get the
6289         class of an array instead of using System.Array directly.
6290         (mono_get_method): also add MEMBERREF methods to the method cache
6291         which usefull for arrays.
6292
6293 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
6294
6295         * pedump.c (arch_compile_method): added to compute vtable entry
6296
6297         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
6298         number of interfaces.
6299         
6300         * class.h: merged MonoArrayClass into MonoClass
6301
6302         * class.c (mono_class_create_from_typedef): compute the vtable size and
6303         allocate space to include the vtable inside MonoClass
6304         (mono_class_metadata_init): initialize the vtable
6305
6306 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
6307
6308         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
6309         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
6310         * image.c: endian fixes by Laurent Rioux.
6311         * object.h, object.c: rename MonoStringObject to MonoString and
6312         MonoArrayObject to MonoArray. Change some function names to conform to
6313         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
6314         guint16* as first argument, so don't use char*.
6315         Provide macros to do the interesting things on arrays in a portable way.
6316         * threads-pthread.c: updates for the API changes and #include <sched.h>
6317         (required for sched_yield()).
6318         * icall.c: updates for the API changes above.
6319         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
6320         platforms that need them.
6321
6322 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
6323
6324         * class.c: set the correct type for all the fundamental
6325         type when loading the class.
6326
6327 2001-10-05  Dick Porter  <dick@ximian.com>
6328
6329         * threads-pthread.c (pthread_mutex_timedlock): Simple
6330         compatibility version for C libraries that lack this call.
6331
6332 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
6333
6334         * class.c: MonoTypes stored in MonoClass are stored as
6335         fundamental MonoTypes when the class represents a
6336         fundamental type (System.Int32, ...).
6337         The TypeHandle return by ldtoken is a MonoType*.
6338         * icall.c: ves_icall_get_data_chunk () write out all the
6339         PE/COFF stuff. Implement ves_icall_define_method (),
6340         ves_icall_set_method_body (), ves_icall_type_from_handle ().
6341         * image.c: properly skip unknown streams.
6342         * loader.h, loader.c: add type_class to mono_defaults.
6343         * metadata.c, metadata.h: export compute_size () as
6344         mono_metadata_compute_size () with a better interface.
6345         Typo and C&P fixes.
6346         * pedump.c: don't try to print the entry point RVA if there is no entry point.
6347         * reflection.c, reflection.h: many cleanups, fixes, output method
6348         signatures and headers, typedef and typeref info, compress the metadata
6349         tables, output all the heap streams, cli header etc.
6350         * row-indexes.h: typo fixes.
6351
6352 2001-10-04  Dick Porter  <dick@ximian.com>
6353
6354         * object.h: Add a synchronisation mutex struct to MonoObject
6355
6356         * object.c (mono_new_object): Initialise the object
6357         synchronisation mutexes
6358
6359         * icall.c: System.Threading.Monitor internal calls
6360         
6361         * threads-pthread.h:
6362         * threads-pthread.c: System.Threading.Monitor internal calls
6363
6364         * threads-types.h: New file, includes the system-specific thread
6365         structures
6366         
6367         * threads-pthread-types.h:
6368         * threads-pthread-types.c: New files, handle pthread-specific
6369         synchronisation types
6370
6371         * threads-dummy-types.h: 
6372         * threads-dummy-types.c: New files of dummy support for
6373         thread-specific types
6374
6375         * metadata.c:
6376         * image.c:
6377         * pedump.c: include mono-endian.h not endian.h
6378         
6379         * Makefile.am: More threads files.
6380         Name mono-endian.h not endian.h
6381
6382 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
6383
6384         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
6385         stuff and implement a few more bits.
6386         * icall.c: a field needs to be dereferenced twice. Do not use the same
6387         name for two variables in the same scope.
6388         * image.c, image.h: cleanups.
6389
6390 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
6391
6392         * class.c (mono_class_metadata_init): bug fix: compute the right size
6393
6394 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
6395
6396         * icall.c: implemented some of the Reflection internalcalls.
6397         * image.c, image.h: start writing out the PE/COFF image.
6398         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
6399         that does the reverse than decode_blob_size ().
6400         * object.c: use mono_metadata_encode_value (). Move here
6401         temporary implementation of mono_string_to_utf8 ().
6402         * rawbuffer.c: make malloc_map static.
6403
6404 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
6405
6406         * metadata.c: fix type comparison for arrays.
6407         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
6408         Added a couple of new classes to monodefaults.
6409         * icall.c: added a couple of Reflection-related internalcalls.
6410         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
6411         Added a byval_arg MonoType to MonoClass.
6412
6413 2001-09-28  Dick Porter  <dick@ximian.com>
6414
6415         * icall.c:
6416         * threads-pthread.h: 
6417         * threads-pthread.c: Implemented internal calls for
6418         LocalDataStoreSlot operations.  Applied mutexes around all shared
6419         data.  Reworked the thread creation and Start() operations to
6420         avoid a race condition.
6421         
6422         * threads-dummy.h:
6423         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
6424
6425 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
6426
6427         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
6428
6429 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
6430
6431         * class.c, loader.c: warn and return NULL instead of erroring out.
6432         * icall.c: added System.AppDomain::getCurDomain().
6433         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
6434
6435 2001-09-25  Dick Porter  <dick@ximian.com>
6436
6437         * threads-pthread.h:
6438         * threads-pthread.c: Implemented timed thread joining and added
6439         System.Threading.Thread::Join_internal internal call
6440
6441         * icall.c: Added System.Threading.Thread::Join_internal internal call
6442
6443         * threads-dummy.h:
6444         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
6445
6446 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
6447
6448         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
6449         mono_string_intern () to implement the semantics of the ldstr opcode
6450         and the interning of System.Strings.
6451         * icall.c: provide hooks to make String::IsIntern and String::Intern
6452         internalcalls.
6453
6454 2001-09-23  Dick Porter  <dick@ximian.com>
6455
6456         * threads-dummy.c: 
6457         * threads-dummy.h: New files of dummy threading routines
6458
6459         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
6460         support code based on system specifics
6461
6462         Rename PTHREAD_LIBS to THREAD_LIBS
6463         
6464 2001-09-23  Dick Porter  <dick@ximian.com>
6465
6466         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
6467         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
6468         internal calls.
6469         (mono_thread_init): Set up a Thread object instance to return when
6470         the main thread calls Thread.CurrentThread
6471         (mono_thread_cleanup): Wait for all subthreads to exit
6472
6473         * icall.c: New internal calls for System.Threading.Thread::Sleep
6474         (including Schedule) and CurrentThread
6475
6476         * threads.h: New file, to insulate thread-specific stuff from the
6477         rest of the code
6478
6479 2001-09-21  Dick Porter  <dick@ximian.com>
6480
6481         * threads-pthread.h: 
6482         * threads-pthread.c: New file, for handling pthreads-style
6483         threading support.  Start() now starts a new thread and executes
6484         the ThreadStart delegate instance.
6485
6486         * icall.c: Added the internalcall for
6487         System.Threading.Thread::Start_internal
6488
6489         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
6490
6491 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
6492
6493         * loader.c: work around the different signatures for delegates
6494         constructors csc generates in compiled code vs the ones compiled in mscorlib.
6495
6496 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
6497
6498         * class.h, class.c: add mono_class_get_field_from_name ().
6499         * *: Fix C comments and other ANSI C issues.
6500
6501 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
6502
6503         * endian.h, assembly.c: fix some endianness issues.
6504
6505 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
6506
6507         * loader.h, load.c: add delegate_class to mono_defaults.
6508         Handle runtime provided methods in mono_get_method ().
6509
6510 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
6511
6512         * loader.c (mono_get_method): use pinvoke for internal call
6513
6514         * icall.c: use pinvoke for internal call
6515
6516         * loader.c (method_from_memberref): set the method name
6517
6518 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
6519
6520         * metadata.c: help the compiler generate better code for
6521         mono_class_from_mono_type ().
6522
6523 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
6524
6525         * class.c (mono_class_metadata_init): delayed computing of the
6526         class size to mono_class_metadata_init ()
6527
6528 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
6529
6530         * class.c, class.h: add an interfaces member to MonoClass.
6531         * image.c, image.h: add assembly_name field to MonoImage
6532         from the assembly table.
6533         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
6534
6535 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
6536
6537         * class.c: Handle Array in mono_class_from_mono_type ().
6538         * metadata.c, pedump.c: some endian fixes.
6539
6540 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
6541
6542         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
6543         * metadata.c: fix small problem introduced with the latest commit.
6544
6545 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
6546
6547         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
6548         We don't need a MonoMetadata pointer anymore to compare signatures in
6549         mono_metadata_signature_equal (), update callers.
6550         Reduced memory usage an number of allocations for MonoMethodHeader and
6551         MonoMethodSignature.
6552
6553 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
6554
6555         * metadata.c: added compare for szarray.
6556
6557 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
6558
6559         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
6560         and add a couple more types to it and mono_defaults. Give an hint on
6561         classes that need implementing in our corlib and are referenced
6562         in mscorlib.
6563
6564 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
6565
6566         * class.h, class.c: keep track if a class is also an Enum.
6567         * loader.c: Implement a couple more types for use in libffi
6568         marshalling. Gives better diagnostics when failing to dlopen
6569         a library. Set method->klass for P/Invoke methods, too.
6570
6571 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
6572
6573         * class.c, class.h: add a MonoType this_arg to MonoClass that
6574         represents a pointer to an object of the class' type that
6575         can be used by the interpreter and later the type cache.
6576         Add best guess alignment info for valuetype objects.
6577
6578 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
6579
6580         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
6581         into MonoType: one less level of indirection and allocation and
6582         simplifies quite a bit of code. Added cache for MonoTypes that are
6583         used frequently, so that we don't need to allocate them all the time.
6584
6585 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
6586
6587         * class.c (mono_class_create_from_typedef): System.Enum is also a
6588         value type, although it does not derive from System.ValueType
6589         (maybe a bug in the ms compiler?)
6590
6591         * metadata.c (mono_type_size): return the right size for value types
6592
6593         * loader.c (mono_get_method): only initialize method header if not abstract
6594
6595         * class.c (mono_class_from_mono_type): use mono_default values. 
6596
6597 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
6598
6599         * *: use MonoClass pointers instead of <type_tokens>
6600         
6601         * class.h: new flag: metadata_inited.
6602
6603         * class.c (mono_class_metadata_init): impl.
6604         (mono_class_instance_size): impl.
6605         (mono_class_data_size): impl.
6606
6607 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
6608
6609         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
6610         MonoClass now has the name and name_space fields. 
6611         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
6612         mono_get_method () takes and optional MonoClass as argument.
6613         Removed mono_typedef_from_name() and added mono_class_token_from_name()
6614         instead that takes advantage of a map from class names to typedef
6615         tokens in MonoImage.
6616
6617 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
6618
6619         * metadata.c: zero is not a valid alignment boundary.
6620         Merge MONO_TYPE_VOID in default decoding code.
6621
6622 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
6623
6624         * image.h: merged MonoMetadata into MonoImage
6625
6626         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
6627         identify the type of elements.
6628
6629 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
6630
6631         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
6632         * cil-coff.h: split MonoMSDOSHeader and add size info.
6633         * image.c: add some consistency checks.
6634         * metadata.c: fix row size computation: one programmer
6635         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
6636         add explanation for the locator routine.
6637         Fix decoding of size in method header.
6638         
6639 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
6640
6641         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
6642         (g_concat_dir_and_file): Bring g_concat_dir_and_file
6643         function from gnome-libs.  This uses the right path separator
6644         based on the OS, and also works around a bug in some systems where
6645         a double slash is not allowed. 
6646         (default_assembly_name_resolver): Use g_concat_dir_and_file
6647         (mono_assembly_open): ditto.
6648
6649 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
6650
6651         * metadata.c (mono_metadata_signature_equal): impl.
6652
6653         * *: void is now a realy MonoType (instead of using NULL)
6654         
6655         * metadata.c (do_mono_metadata_parse_type): use
6656         mono_metadata_parse_type to parse void value.
6657
6658 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
6659
6660         * metadata.c, metadata.h: in the signature and method header store
6661         only the space required for holding the loca vars and incoming arguments.
6662
6663 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
6664
6665         * metadata.c (do_mono_metadata_parse_type): treat void like any
6666         other type (instead of assigning NULL);
6667
6668 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
6669
6670         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
6671
6672 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
6673
6674         * image.c (do_mono_image_open): added a cache for arrays.
6675
6676 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
6677
6678         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
6679         decode a single column from a row in a metadata table and changes
6680         to take advantage of it in the typedef locator (gives a nice speed up).
6681         Store offset info for function params.
6682
6683 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
6684
6685         * image.h (MONO_IMAGE_IS_CORLIB): removed 
6686
6687 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
6688
6689         * assembly.c: how could mono_assembly_close () had ever worked?
6690         * metadata.c, metadata.h: provide offset info for local vars.
6691         Implement mono_type_size () to take care of alignment as well
6692         as size (it was mono_field_type_size in cli/class.c before).
6693
6694 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
6695
6696         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
6697
6698         * assembly.h (CORLIB_NAME): set to corlib.dll
6699
6700         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
6701
6702 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
6703
6704         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
6705         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
6706         tokentype.h: massive namespace cleanup.
6707
6708 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
6709
6710         * metadata.h, metadata.c: decode exception clauses when parsing method header.
6711
6712 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
6713
6714         * metadata.c (mono_metadata_free_type): added check for type !=
6715         NULL (void) before calling mono_metadata_free_type()
6716
6717 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
6718
6719         * metadata.h, row_indexes.h: added header with enumerations to use
6720         to index in the columns from tables in metadata and to decode coded
6721         tokens: we should start using this instead of embedding magic numbers
6722         all over the code.
6723
6724 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
6725
6726         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
6727         Move metadata_t info from cli_image_info_t to MonoImage, where
6728         it's easily accessible. Changed all the uses accordingly.
6729         Added the method and class caches to MonoImage.
6730         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
6731         and mono_metadata_decode_value () signature to be more consistent
6732         with the other parse functions (and simplify code). Taken advantage
6733         of zero-length array allocation with GCC. Removed reduntant (and
6734         wrong) MonoFieldType struct and use MonoParam instead. Changed
6735         mono_metadata_parse_field_type () to use common code for parsing.
6736         Added mono_metadata_typedef_from_field () and
6737         mono_metadata_typedef_from_method () to lookup a typedef index from a
6738         field or method token.
6739         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
6740
6741 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
6742
6743         * metadata.c (mono_metadata_parse_field_type): Implement. 
6744         (do_mono_metadata_parse_type): Split engine from
6745         mono_metadata_parse_type, so that we can create smaller structures
6746         for things that just have one pointer to the MonoType (look at
6747         the MonoFieldType)
6748
6749 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
6750
6751         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
6752         as Jan Gray found out, it is incorrect. 
6753
6754 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
6755
6756         * assembly.c: Implement asssembly loading.  This loads an image
6757         and loads all the referenced assemblies.  Come to think of it, we
6758         could always do lazy loading of the assemblies. 
6759
6760         * image.c (mono_image_open): Keep loaded images in a hashtable.
6761
6762         * image.h (MonoImage): Add reference count.
6763
6764 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
6765
6766         * assembly.c (mono_assembly_open): Keep track of the file name in
6767         case the assembly has no ASSEMBLY table.
6768
6769         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
6770         from get.c here.
6771
6772 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
6773
6774         * metadata.c, metadata.h: decode local vars in method header
6775         parse function. Change callers accordingly.
6776
6777 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
6778
6779         * metadata.h, cil-coff.h: protect against multiple inclusion.
6780         Added some new structures to hold information decoded from metadata:
6781         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
6782         and relevant decoding/free functions.
6783         * metadata.c: implement decoding functions. Add warning for out of bounds
6784         index in mono_metadata_locate(). Implement mono_get_method () to retreive
6785         all the info about a method signature and invocation. Remove check on
6786         uninitialized local var in parse_mh() and fix memory leak.
6787
6788 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
6789
6790         * metadata.h: More macros.
6791
6792         * tokentype.h: New file.
6793
6794 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
6795
6796         * assembly.c: added a consistency check and initialize
6797         some structures with g_new0().
6798         * metadata.c: fixed a couple more bugs in table size computation
6799         and add other checks for out-of bound access to metadata.
6800
6801 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
6802
6803         * metatada.c: fix bugs computing table sizes. Spew a
6804         warning when index in string heap is out of bounds.
6805
6806 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
6807
6808         * metadata.h: Add a couple of macros to manipulate tokens. 
6809
6810 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
6811
6812         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
6813         cli_section_tables).
6814
6815 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
6816
6817         * metadata.c (mono_metadata_user_string): New function, provides
6818         access to the UserString heap. 
6819
6820 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
6821
6822         * metadata.c: Add inline documentation.
6823
6824 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
6825
6826         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
6827         files. 
6828
6829 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
6830
6831         * typeattr.h: New file, TypeAttribute flags. 
6832
6833 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
6834
6835         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
6836         mono_assembly_ensure_section): Section loading code.
6837         (load_section_tables): Load the sections.
6838
6839         * mono/metadata/metadata.c (mono_metadata_locate_token,
6840         mono_metadata_locate): Functions to locate the information
6841         definition given a token or a table and an index.
6842         (mono_metadata_compute_table_bases): New.
6843         (compute_size): New function to compute the sizes of the various
6844         tables.
6845
6846         * mono/metadata/metadata.h: Finish listing the different index
6847         types. 
6848
6849         * mono/metadata/pedump.c: Improve to dump new information.
6850
6851 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
6852
6853         * mono/metadata/metadata.c: Entered all the tables matching
6854         Beta2. 
6855
6856         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
6857
6858
6859
6860
6861
6862
6863