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