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