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