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