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